Compare commits
9 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
910a7b30df | ||
|
|
e205f68717 | ||
|
|
dfde902f3b | ||
|
|
7133784303 | ||
|
|
15e06260ae | ||
|
|
a081b6625b | ||
|
|
97b818a4fb | ||
|
|
6f910ad932 | ||
|
|
9b775ddc05 |
|
|
@ -18,7 +18,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
|
||||
|
|
|
|||
22943
ChangeLog.4
|
|
@ -4,7 +4,7 @@ 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
|
||||
|
|
|
|||
10
Makefile.in
|
|
@ -417,9 +417,9 @@ advice-on-failure:
|
|||
|
||||
sanity-check:
|
||||
@[ -f .no-advice-on-failure ] && exit 0; true
|
||||
@v=`src/emacs${EXEEXT} --batch --eval \
|
||||
@v=$$(src/emacs${EXEEXT} --batch --eval \
|
||||
'(progn (defun f (n) (if (= 0 n) 1 (* n (f (- n 1))))) (princ (f 10)))' \
|
||||
2> /dev/null`; \
|
||||
2> /dev/null); \
|
||||
[ "X$$v" = "X3628800" ] && exit 0; \
|
||||
echo >&2 '***'; \
|
||||
echo >&2 '*** '"\"make ${make-target}\" succeeded, but Emacs is not functional."; \
|
||||
|
|
@ -1273,7 +1273,7 @@ emacslog = build-aux/gitlog-to-emacslog
|
|||
# The ChangeLog history files are called ChangeLog.1, ChangeLog.2, ...,
|
||||
# ChangeLog.$(CHANGELOG_HISTORY_INDEX_MAX). $(CHANGELOG_N) stands for
|
||||
# the newest (highest-numbered) ChangeLog history file.
|
||||
CHANGELOG_HISTORY_INDEX_MAX = 3
|
||||
CHANGELOG_HISTORY_INDEX_MAX = 4
|
||||
CHANGELOG_N = ChangeLog.$(CHANGELOG_HISTORY_INDEX_MAX)
|
||||
|
||||
# Convert git commit log to ChangeLog file. make-dist uses this.
|
||||
|
|
@ -1283,11 +1283,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-29
|
||||
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.
|
||||
|
|
|
|||
2
README
|
|
@ -2,7 +2,7 @@ Copyright (C) 2001-2023 Free Software Foundation, Inc.
|
|||
See the end of the file for license conditions.
|
||||
|
||||
|
||||
This directory tree holds version 30.0.50 of GNU Emacs, the extensible,
|
||||
This directory tree holds version 29.0.90 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
|
||||
|
|
|
|||
|
|
@ -294,7 +294,7 @@ Po Lu
|
|||
|
||||
Tramp
|
||||
Maintainer: Michael Albinus
|
||||
Repository: https://git.savannah.gnu.org/git/tramp.git
|
||||
Repository: git://git.savannah.gnu.org/tramp.git
|
||||
Mailing List: tramp-devel@gnu.org
|
||||
Bug Reports: M-x tramp-bug
|
||||
Notes: For backward compatibility requirements, see
|
||||
|
|
@ -316,7 +316,7 @@ Modus themes
|
|||
Org Mode
|
||||
Home Page: https://orgmode.org/
|
||||
Maintainer: Org Mode developers
|
||||
Repository: https://git.savannah.gnu.org/git/emacs/org-mode.git
|
||||
Repository: git://git.sv.gnu.org/emacs/org-mode.git
|
||||
Mailing list: emacs-orgmode@gnu.org
|
||||
Bug Reports: M-x org-submit-bug-report
|
||||
Notes: Org Mode is maintained as a separate project that is
|
||||
|
|
|
|||
|
|
@ -110,7 +110,7 @@ Root must be the root of an Emacs source tree."
|
|||
(submatch (1+ (in "0-9."))))))
|
||||
(set-version-in-file root "configure.ac" version
|
||||
(rx (and "AC_INIT" (1+ (not (in ?,)))
|
||||
?, (0+ space)
|
||||
?, (0+ space) ?\[
|
||||
(submatch (1+ (in "0-9."))))))
|
||||
(set-version-in-file root "nt/README.W32" version
|
||||
(rx (and "version" (1+ space)
|
||||
|
|
@ -843,11 +843,8 @@ $Date: %s $
|
|||
(package-install pkg)
|
||||
(require pkg nil t))))
|
||||
|
||||
(declare-function org-html-export-as-html "ox-html.el")
|
||||
(defvar org-html-postamble)
|
||||
(defvar org-html-mathjax-template)
|
||||
(defvar htmlize-output-type)
|
||||
|
||||
(defun make-news-html-file (root version)
|
||||
"Convert the NEWS file into an HTML file."
|
||||
(interactive (let ((root
|
||||
|
|
|
|||
275
admin/authors.el
|
|
@ -48,7 +48,9 @@ files.")
|
|||
("Alexander Gramiak" "Alex Gramiak")
|
||||
("Alexandru Harsanyi" "Alex Harsanyi")
|
||||
("Álvar Jesús Ibeas Martín" "Álvar Ibeas")
|
||||
(nil "ambihelical")
|
||||
("Andrea Corallo" "AndreaCorallo")
|
||||
("Andrii Kolomoiets" "andreyk\\.mad@gmail\\.com")
|
||||
("Andrew Csillag" "Drew Csillag")
|
||||
("Andrew G Cohen" "Andrew Cohen")
|
||||
("Anna M. Bigatti" "Anna Bigatti")
|
||||
|
|
@ -56,19 +58,26 @@ files.")
|
|||
("Barry A. Warsaw" "Barry A. Warsaw, Century Computing, Inc."
|
||||
"Barry A. Warsaw, ITB" "Barry Warsaw")
|
||||
("Bastien Guerry" "Bastien .*bzg")
|
||||
("Benjamin Carlsson" "glacials" "ben@twos\\.dev")
|
||||
("Benjamin Schwerdtner" "Benjamin\\.Schwerdtner@gmail\\.com" "Ben Schw")
|
||||
("Bill Carpenter" "WJ Carpenter")
|
||||
("Bill Mann" "William F. Mann")
|
||||
("Bill Rozas" "Guillermo J. Rozas")
|
||||
(nil "binjo.cn@gmail.com")
|
||||
(nil "bug-gnu-emacs@gnu.org") ; mistake
|
||||
("Billy Zheng" "vil963@gmail\\.com")
|
||||
(nil "binjo\\.cn@gmail\\.com")
|
||||
(nil "bug-gnu-emacs@gnu\\.org") ; mistake
|
||||
("Björn Torkelsson" "Bjorn Torkelsson")
|
||||
("Brian Fox" "Brian J. Fox")
|
||||
("Brian P Templeton" "BT Templeton")
|
||||
("Brian Sniffen" "Brian T. Sniffen")
|
||||
(nil "brotzeitmacher@gmail\\.com")
|
||||
(nil "castor@my-dejanews")
|
||||
(nil "chengang31@gmail.com")
|
||||
(nil "chengang31@gmail\\.com")
|
||||
(nil "chuntaro")
|
||||
("Clément Pit-Claudel" "Clément Pit--Claudel")
|
||||
(nil "Cristian" "crstml@libero\\.it")
|
||||
("Le Trung Dan" "daanturo@gmail\\.com" "Daanturo")
|
||||
("Daniel Freeman" "dannyfreeman")
|
||||
("David Abrahams" "Dave Abrahams")
|
||||
("David J. Biesack" "David Biesack")
|
||||
("David De La Harpe Golden" "David Golden")
|
||||
|
|
@ -81,7 +90,7 @@ files.")
|
|||
(nil "dalanicolai")
|
||||
(nil "deech@deech")
|
||||
("Deepak Goel" "D. Goel")
|
||||
("Earl Hyatt" "Earl" "ej32u@protonmail.com")
|
||||
("Earl Hyatt" "Earl" "ej32u@protonmail\\.com")
|
||||
("Ed L. Cashin" "Ed L Cashin")
|
||||
("Edward M. Reingold" "Ed\\(ward\\( M\\)?\\)? Reingold" "Reingold Edward M")
|
||||
("Emilio C. Lopes" "Emilio Lopes")
|
||||
|
|
@ -90,18 +99,27 @@ files.")
|
|||
("Etienne Prud’Homme" "Etienne Prud'Homme")
|
||||
("Fabián Ezequiel Gallina" "Fabian Ezequiel Gallina" "Fabi.n E\\. Gallina")
|
||||
(nil "felix.*EmacsWiki")
|
||||
(nil "felix\\.dick@web\\.de")
|
||||
(nil "foudfou")
|
||||
("Feraidoon Mehri"
|
||||
"NightMachinary"
|
||||
"rudiwillalwaysloveyou@gmail\\.com" "fifymehry@gmail\\.com")
|
||||
("Francis Litterio" "Fran Litterio")
|
||||
("Francis J. Wright" "Dr Francis J. Wright" "Francis Wright")
|
||||
("François Pinard" "Francois Pinard")
|
||||
("Francesco Potortì" "Francesco Potorti" "Francesco Potorti`")
|
||||
("Frederic Pierresteguy" "Fred Pierresteguy")
|
||||
(nil "^FSF")
|
||||
(nil "galeo")
|
||||
("Garid Zorigoo" "garid3000" "garidzorigoo@gmail\\.com")
|
||||
("Gerd Möllmann" "Gerd Moellmann")
|
||||
(nil "haqle314")
|
||||
("Hallvard B. Furuseth" "Hallvard B Furuseth" "Hallvard Furuseth")
|
||||
(nil "hokomo@airmail\\.cc" "hokomo")
|
||||
("Hrvoje Nikšić" "Hrvoje Niksic")
|
||||
("Ian Dunn" "^Ian D\\>")
|
||||
;; lisp/org/ChangeLog.1 2010-11-11.
|
||||
("Ignacio Casso" "ignacio\\.decasso@imdea\\.org" "ignaciocasso@hotmail\\.com")
|
||||
(nil "immerrr")
|
||||
(nil "aaa bbb")
|
||||
(nil "Code Extracted") ; lisp/newcomment.el's "Author:" header
|
||||
|
|
@ -118,6 +136,8 @@ files.")
|
|||
("Jérémie Courrèges-Anglas" "Jeremie Courreges-Anglas")
|
||||
("Jeremy Bertram Maitin-Shepard" "Jeremy Maitin-Shepard")
|
||||
("Jérémy Compostella" "Jeremy Compostella")
|
||||
(nil "jgarte@" "jgart")
|
||||
(nil "jicksaw@pm\\.me" "jicksaw")
|
||||
("Jimmy Aguilar Mena" "Ergus")
|
||||
("Johan Bockgård" "Johan Bockgard")
|
||||
("John F. Carr" "John F Carr")
|
||||
|
|
@ -131,6 +151,7 @@ files.")
|
|||
("Juan León Lahoz García" "Juan-Leon Lahoz Garcia")
|
||||
("Jürgen Hötzel" "Juergen Hoetzel")
|
||||
(nil "k3tu0isui")
|
||||
(nil "kby@tilde\\.team")
|
||||
("K. Shane Hartman" "Shane Hartman")
|
||||
("Kai Großjohann" "Kai Grossjohann")
|
||||
("Karl Berry" "K. Berry")
|
||||
|
|
@ -140,8 +161,14 @@ files.")
|
|||
("Kenichi Handa" "Ken'ichi Handa" "Kenichi HANDA" "K\\. Handa")
|
||||
("Kevin Greiner" "Kevin J. Greiner")
|
||||
("Kim F. Storm" "Kim Storm")
|
||||
;; The dash is a kludge, so this contributor is not ignored.
|
||||
("kobarity-" "kobarity@gmail\\.com")
|
||||
("Koen van Greevenbroek" "realcomplex" "koenvg@posteo\\.net")
|
||||
("Kyle Jones" "Kyle E. Jones")
|
||||
("Lars Magne Ingebrigtsen" "Lars Ingebrigtsen")
|
||||
("Laurence Warne" "lWarne" "laurencewarne@gmail\\.com")
|
||||
(nil "lensplaysgames@gmail\\.com")
|
||||
(nil "lorniu@gmail\\.com")
|
||||
(nil "LynX@bk.ru")
|
||||
(nil "lu4nx")
|
||||
("Marcus G. Daniels" "Marcus Daniels")
|
||||
|
|
@ -163,14 +190,19 @@ files.")
|
|||
("Michael R. Cook" "Michael Cook")
|
||||
("Michael Sperber" "Mike Sperber" "Michael Sperber \\[Mr. Preprocessor\\]")
|
||||
("Michalis V" "^mvar")
|
||||
("Miha Rihtaršič" "Miha Rihtarsic")
|
||||
("Miha Rihtaršič" "Miha Rihtarsic" "miha@kamnitnik\\.top" "miha")
|
||||
("Mikio Nakajima" "Nakajima Mikio")
|
||||
(nil "montag451@laposte\\.net")
|
||||
(nil "na@aisrntairetnraoitn")
|
||||
("Nelson Jose dos Santos Ferreira" "Nelson Ferreira")
|
||||
("Noorul Islam" "Noorul Islam K M")
|
||||
;;; ("Tetsurou Okazaki" "OKAZAKI Tetsurou") ; FIXME?
|
||||
(nil "odanoburu@")
|
||||
(nil "one\\.last\\.kiss@outlook\\.com")
|
||||
("Cao ZhenXiang" "mail@ookami\\.one")
|
||||
("Óscar Fuentes" "Oscar Fuentes")
|
||||
(nil "pillule")
|
||||
(nil "psyberbits@gmail.com")
|
||||
(nil "psyberbits@gmail\\.com")
|
||||
("Paul Eggert" "Paul R\\. Eggert")
|
||||
("Pavel Janík" "Pavel Janík Ml." "Pavel Janik Ml." "Pavel Janik")
|
||||
("Pavel Kobiakov" "Pavel Kobyakov")
|
||||
|
|
@ -182,15 +214,19 @@ files.")
|
|||
("Philip Kaludercic" "Philip K\\." "Philip K")
|
||||
("Philipp Stephani" "Philipp .*phst@google")
|
||||
("Piotr Zieliński" "Piotr Zielinski")
|
||||
("Po Lu" "Po Lu Via" "Your Name") ; looks like a mistake
|
||||
("Po Lu" "Po Lu Via") ; looks like a mistake
|
||||
("Po Lu" "oldosfan" "luangruo@yahoo\\.com")
|
||||
("Przemysław Wojnowski" "Przemyslaw Wojnowski")
|
||||
("R. Bernstein" "rb@dustyfeet.com")
|
||||
("Qifan Wang" "LdBeth" "andpuke@foxmail\\.com")
|
||||
("R. Bernstein" "rb@dustyfeet\\.com")
|
||||
("Rainer Schöpf" "Rainer Schoepf")
|
||||
("Raja R. Harinath" "Raja R Harinath")
|
||||
("Rasmus Pank Roulund" "Rasmus .*rasmus@gmx")
|
||||
(nil "rbrtb@")
|
||||
("Richard G. Bielawski" "Richard G Bielawski" "Richard Bielawski")
|
||||
("Richard King" "Dick King")
|
||||
("Richard M. Stallman" "Richard Stallman" "rms@gnu.org")
|
||||
(nil "webmaster@robario\\.com")
|
||||
("Robert J. Chassell" "Bob Chassell")
|
||||
("Roberto Huelga Díaz" "Roberto Huelga")
|
||||
("Rodney J. Whitby" "Rod Whitby")
|
||||
|
|
@ -198,17 +234,19 @@ files.")
|
|||
("Ron Schnell" "Ronnie Schnell")
|
||||
("Rui-Tao Dong" "Rui-Tao Dong ~{6-HpLN~}")
|
||||
("Ryan Thompson" "Ryan .*rct@thompsonclan")
|
||||
(nil "rvs314")
|
||||
(nil "rzl24ozi")
|
||||
("Sacha Chua" "Sandra Jean Chua")
|
||||
("Sam Steingold" "Sam Shteingold")
|
||||
("Satyaki Das" "Indexed search by Satyaki Das")
|
||||
("Sébastien Vauban" "Sebastien Vauban")
|
||||
("Sergey Litvinov" "Litvinov Sergey")
|
||||
("Simen Heggestøyl" "simenheg@gmail.com")
|
||||
("Simen Heggestøyl" "simenheg@gmail\\.com")
|
||||
(nil "prime.wizard")
|
||||
("Shun-ichi Goto" "Shun-ichi GOTO")
|
||||
;; There are other Stefans.
|
||||
;;; ("Stefan Monnier" "Stefan")
|
||||
(nil "ssnnoo")
|
||||
("Steven L. Baur" "SL Baur" "Steven L Baur")
|
||||
("Stewart M. Clamen" "Stewart Clamen")
|
||||
("Stuart D. Herring" "Stuart Herring" "Davis Herring")
|
||||
|
|
@ -222,6 +260,7 @@ files.")
|
|||
("Thomas Dye" "Tom Dye")
|
||||
("Thomas Horsley" "Tom Horsley") ; FIXME ?
|
||||
("Thomas Wurgler" "Tom Wurgler")
|
||||
(nil "thuna\\.cing@gmail\\.com")
|
||||
("Toby Cubitt" "Toby S\\. Cubitt")
|
||||
("Tomohiko Morioka" "MORIOKA Tomohiko")
|
||||
("Torbjörn Axelsson" "Torbjvrn Axelsson")
|
||||
|
|
@ -230,23 +269,29 @@ files.")
|
|||
("Tsugutomo Enami" "enami tsugutomo")
|
||||
("Ulrich Müller" "Ulrich Mueller")
|
||||
(nil "vividsnow")
|
||||
(nil "Valenoern" "valenoern@distributary\\.network")
|
||||
("Vincent Del Vecchio" "Vince Del Vecchio")
|
||||
("M Visuwesh" "visuweshm@gmail\\.com")
|
||||
(nil "vjoki@")
|
||||
(nil "whatacold@gmail\\.com")
|
||||
("William M. Perry" "Bill Perry")
|
||||
("Wlodzimierz Bzyl" "W.*dek Bzyl")
|
||||
(nil "xyblor")
|
||||
("Yilkal Argaw" "yilkalargaw" "yilkalargawworkneh@gmail\\.com")
|
||||
("Yoni Rabkin" "Yoni Rabkin Katzenell")
|
||||
("Yoshinori Koseki" "KOSEKI Yoshinori" "小関 吉則")
|
||||
("Yuzhana Ego" "YugaEgo" "yet@ego\\.team")
|
||||
("Yutaka NIIBE" "NIIBE Yutaka")
|
||||
(nil "stardiviner")
|
||||
(nil "lin.sun")
|
||||
(nil "lin\\.sun")
|
||||
("Nitish Chinta" "nitishch")
|
||||
("Carlos Pita" "memeplex")
|
||||
("Vinicius Jose Latorre" "viniciusjl")
|
||||
("Gaby Launay" "galaunay")
|
||||
("Dick R. Chiang" "dickmao")
|
||||
("Lin Zhou" "georgealbert@qq.com")
|
||||
(nil "yan@metatem.net")
|
||||
(nil "gnu_lists@halloleo.hailmail.net")
|
||||
("Lin Zhou" "georgealbert@qq\\.com")
|
||||
(nil "yan@metatem\\.net")
|
||||
(nil "gnu_lists@halloleo\\.hailmail\\.net")
|
||||
)
|
||||
"Alist of author aliases.
|
||||
|
||||
|
|
@ -920,9 +965,30 @@ Changes to files in this list are not listed.")
|
|||
"emacsclient.c" "etags.c" "hexl.c" "make-docfile.c" "movemail.c"
|
||||
"test-distrib.c" "testfile"
|
||||
"tpu-edt.doc" ; see below
|
||||
;; etc/images/gnus/
|
||||
"etc/images/gnus/important.pbm"
|
||||
"etc/images/gnus/receipt.pbm"
|
||||
"etc/images/gnus/unimportant.pbm"
|
||||
"iso-swed.el"
|
||||
;; lisp/obsolete/
|
||||
"lisp/obsolete/vc-mcvs.el"
|
||||
"obsolete/vc-mcvs.el"
|
||||
"lisp/obsolete/patcomp.el"
|
||||
"lisp/obsolete/abbrevlist.el"
|
||||
"lisp/obsolete/assoc.el"
|
||||
"obsolete/assoc.el"
|
||||
"lisp/obsolete/complete.el"
|
||||
"lisp/obsolete/cust-print.el"
|
||||
"lisp/obsolete/erc-hecomplete.el"
|
||||
"lisp/obsolete/mailpost.el"
|
||||
"obsolete/mailpost.el"
|
||||
"lisp/obsolete/mouse-sel.el"
|
||||
"lisp/obsolete/old-emacs-lock.el"
|
||||
"obsolete/old-emacs-lock.el"
|
||||
"lisp/obsolete/patcomp.el"
|
||||
"lisp/obsolete/pc-select.el"
|
||||
"lisp/obsolete/s-region.el"
|
||||
"obsolete/pc-select.el"
|
||||
"nnwarchive.el"
|
||||
"nnultimate.el"
|
||||
"nnslashdot.el"
|
||||
|
|
@ -958,7 +1024,41 @@ Changes to files in this list are not listed.")
|
|||
"flymake-ui.el"
|
||||
"pinentry.el"
|
||||
"ledit.el"
|
||||
"lmenu.el")
|
||||
"lmenu.el"
|
||||
"src/pgtkselect.h"
|
||||
"test/manual/noverlay/many-errors.h"
|
||||
"lisp/better-pixel-scroll.el"
|
||||
"test/infra/default-gitlab-ci.yml"
|
||||
"test/infra/test-jobs-generator.sh"
|
||||
"org-install.el"
|
||||
;; use-package stuff removed after it was added
|
||||
"etc/USE-PACKAGE-NEWS"
|
||||
"lisp/use-package/bind-chord.el"
|
||||
"lisp/use-package/use-package-chords.el"
|
||||
"lisp/use-package/use-package-chords-tests.el"
|
||||
"test/lisp/use-package/use-package-chords-tests.el"
|
||||
;; Eglot stuff removed after it was added
|
||||
"README.mdown"
|
||||
"README.md"
|
||||
".travis.yml"
|
||||
;; Tree-sitter stuff
|
||||
"admin/notes/tree-sitter/html-manual/Parser_002dbased-Font-Lock.html"
|
||||
"admin/notes/tree-sitter/html-manual/Parsing-Program-Source.html"
|
||||
"admin/notes/tree-sitter/html-manual/build-manual.sh"
|
||||
"admin/notes/tree-sitter/html-manual/Accessing-Node.html"
|
||||
"admin/notes/tree-sitter/html-manual/Language-Definitions.html"
|
||||
"admin/notes/tree-sitter/html-manual/Multiple-Languages.html"
|
||||
"admin/notes/tree-sitter/html-manual/Parser_002dbased-Indentation.html"
|
||||
"admin/notes/tree-sitter/html-manual/Pattern-Matching.html"
|
||||
"admin/notes/tree-sitter/html-manual/Retrieving-Node.html"
|
||||
"admin/notes/tree-sitter/html-manual/Tree_002dsitter-C-API.html"
|
||||
"admin/notes/tree-sitter/html-manual/Using-Parser.html"
|
||||
"admin/notes/tree-sitter/html-manual/manual.css"
|
||||
"admin/notes/tree-sitter/build-module/build.sh"
|
||||
"admin/notes/tree-sitter/build-module/batch.sh"
|
||||
"doc/misc/gnus-coding.texi"
|
||||
"gnus-coding.texi"
|
||||
)
|
||||
"File names which are valid, but no longer exist (or cannot be found)
|
||||
in the repository.")
|
||||
|
||||
|
|
@ -1337,6 +1437,153 @@ in the repository.")
|
|||
("test/lisp/url/url-handlers-test.el" . "url-handlers-tests.el")
|
||||
("test/src/dired-tests.el" . "dired-tests.el")
|
||||
(".dir-locals.el" . ".dir-locals.el")
|
||||
;; use-package files that were moved when use-package was added:
|
||||
("use-package.texi" . "use-package.texi")
|
||||
("use-package-core.el" . "use-package-core.el")
|
||||
("bind-key.el" . "use-package-bind-key.el")
|
||||
("use-package.el" . "use-package.el")
|
||||
("use-package-tests.el" . "use-package-tests.el")
|
||||
;; pgtk stuff which used incorrect file names
|
||||
("pgtkmenu.c" . "pgtkmenu.c")
|
||||
("pgtk-win.el" . "pgtk-win.el")
|
||||
("pgtkfns.c" . "pgtkfns.c")
|
||||
("pgtkterm.c" . "pgtkterm.c")
|
||||
("pgtkterm.h" . "pgtkterm.h")
|
||||
("../src/pgtkfns.c" . "pgtkfns.c")
|
||||
("../src/pgtkterm.c" . "pgtkterm.c")
|
||||
("../src/pgtkterm.h" . "pgtkterm.h")
|
||||
("../src/atimer.c" . "atimer.c")
|
||||
("../src/gtkutil.c" . "gtkutil.c")
|
||||
("../src/image.c" . "image.c")
|
||||
("../lisp/faces.el" . "faces.el")
|
||||
("../src/pgkterm.h" . "pgkterm.h")
|
||||
("pgkterm.c" . "pgkterm.c")
|
||||
("../src/emacsgtkfixed.c" . "emacsgtkfixed.c")
|
||||
("../src/xfaces.c" . "xfaces.c")
|
||||
("../src/pgtkgui.h" . "pgtkgui.h")
|
||||
("../src/dispextern.h" . "dispextern.h")
|
||||
("../src/menu.c" . "menu.c")
|
||||
("../lisp/net/browse-url.el" . "browse-url.el")
|
||||
;; miscellany
|
||||
("nsterm.m" . "nsterm.m")
|
||||
("jsonrpc.el" . "jsonrpc.el")
|
||||
("jsonrpc-tests.el" . "jsonrpc-tests.el")
|
||||
("jrpc.el" . "jsonrpc.el")
|
||||
("eldoc.el" . "eldoc.el")
|
||||
("lisp/progmodes/ts-mode.el" . "typescript-ts-mode.el")
|
||||
("icalendar-tests.el" . "icalendar-tests.el")
|
||||
("lisp/progmodes/css-ts-mode.el" . "css-mode.el")
|
||||
("lisp/erc/erc-tests.el" . "erc-tests.el")
|
||||
("lisp/erc/erc-scenarios-base-reconnect.el" . "erc-scenarios-base-reconnect.el")
|
||||
("test/lisp/erc-tests.el" . "erc-tests.el")
|
||||
("eglot.el" . "eglot.el")
|
||||
("eglot-tests.el" . "eglot-tests.el")
|
||||
("NEWS.md" . "EGLOT-NEWS")
|
||||
("test/lisp/comp-tests.el" . "comp-tests.el")
|
||||
("package-vc.el" . "package-vc.el")
|
||||
("package.el" . "package.el")
|
||||
("lisp/net/tramp-docker.el" . "tramp-container.el")
|
||||
("xterm.c" . "xterm.c")
|
||||
("lisp/osc.el" . "ansi-osc.el")
|
||||
("test/lisp/osc-tests.el" . "ansi-osc-tests.el")
|
||||
("lisp/ansi-osc.el" . "ansi-osc-tests.el")
|
||||
("test/lisp/thumbs-tests.el" . "thumbs-tests.el")
|
||||
("rmail.el" . "rmail.el")
|
||||
("window.el" . "window.el")
|
||||
("nsmenu.m" . "nsmenu.m")
|
||||
("nsfont.m" . "nsfont.m")
|
||||
("nsfns.m" . "nsfns.m")
|
||||
("src/nsterm.c" . "nsterm.m")
|
||||
("subr.el" . "subr.el")
|
||||
("test/lisp/image-dired-tests.el" . "image-dired-tests.el")
|
||||
("modus-themes.org" . "modus-themes.org")
|
||||
("emacs-authors-mode.el" . "emacs-authors-mode.el")
|
||||
("lisp/textmodes/etc-authors-mode.el" . "emacs-authors-mode.el")
|
||||
("bytecomp.el" . "bytecomp.el")
|
||||
("test/lisp/makesum-tests.el" . "makesum-tests.el")
|
||||
("rcirc.el" . "rcirc.el")
|
||||
("haiku_support.cc" . "haiku_support.cc")
|
||||
("gnus-art.el" . "gnus-art.el")
|
||||
("mh-mime.el" . "mh-mime.el")
|
||||
("terminal.c" . "terminal.c")
|
||||
("eudc.texi" . "eudc.texi")
|
||||
("gnus-search.el" . "gnus-search.el")
|
||||
("lisp/gnus-search.el" . "gnus-search.el")
|
||||
("ETAGS_good_1" . "ETAGS_good_1")
|
||||
("ETAGS_good_2" . "ETAGS_good_2")
|
||||
("ETAGS_good_3" . "ETAGS_good_3")
|
||||
("ETAGS_good_4" . "ETAGS_good_4")
|
||||
("ETAGS_good_5" . "ETAGS_good_5")
|
||||
("ETAGS_good_6" . "ETAGS_good_6")
|
||||
("test/lisp/eshell-em-script-tests.el" . "eshell-em-script-tests.el")
|
||||
("test/lisp/eshell-em-glob-tests.el" . "eshell-em-glob-tests.el")
|
||||
("lisp/eshell/esh-var-tests.el" . "esh-var-tests.el")
|
||||
("test/lisp/eshell/esh-var-test.el" . "esh-var-tests.el")
|
||||
("gnus-logic.el" . "gnus-logic.el")
|
||||
("sh-script.el" . "sh-script.el")
|
||||
("repeat.el" . "repeat.el")
|
||||
("files.el" . "files.el")
|
||||
("lisp/emacs-lisp/generate-file.el" . "generate-lisp-file.el")
|
||||
("pp.el" . "pp.el")
|
||||
("src/help-fns.el" . "help-fns.el")
|
||||
("print.c" . "print.c")
|
||||
("shell.el" . "shell.el")
|
||||
("xdisp.c" . "xdisp.c")
|
||||
("haikufns.c" . "haikufns.c")
|
||||
("haikuterm.c" . "haikuterm.c")
|
||||
("haikumenu.c" . "haikumenu.c")
|
||||
("haikufont.c" . "haikufont.c")
|
||||
("src/haiku_support.c" . "haiku_support.cc")
|
||||
("src/haiku_draw_support.c" . "haiku_draw_support.cc")
|
||||
("haiku-win.el" . "haiku-win.el")
|
||||
("elisp-mode.el" . "elisp-mode.el")
|
||||
("doc-view.el" . "doc-view.el")
|
||||
("src/lisp/net/rcirc.el" . "rcirc.el")
|
||||
("project.el" . "project.el")
|
||||
("emacsbug.el" . "emacsbug.el")
|
||||
("timefns.c" . "timefns.c")
|
||||
("xwidget.c" . "xwidget.c")
|
||||
("src/xwidget.el" . "xwidget.el")
|
||||
("lisp/net/lisp/net/tramp-sshfs.el" . "tramp-sshfs.el")
|
||||
("tramp-sudoedit.el" . "tramp-sudoedit.el")
|
||||
("test/lisp/mail/undigest.el" . "undigest-tests.el")
|
||||
("Activate.c" . "Activate.c")
|
||||
("quail.el" . "quail.el")
|
||||
("sed1v2.inp" . "sed1v2.inp")
|
||||
("ruby-parenless-call-arguments-indent.rb" . "ruby-parenless-call-arguments-indent.rb")
|
||||
("commands.texi" . "doc/lispref/commands.texi")
|
||||
("message.el" . "message.el")
|
||||
("lisp/debug-early.el" . "debug-early.el")
|
||||
("tabulated-list.el" . "tabulated-list.el")
|
||||
("mouse.el" . "mouse.el")
|
||||
("hi-lock.el" . "hi-lock.el")
|
||||
("man.el" . "man.el")
|
||||
("doc/emacs/frames.tex" . "frames.texi")
|
||||
("lisp/emacs-list/eieio-compat.el" . "eieio-compat.el")
|
||||
("epa.el" . "epa.el")
|
||||
("lisp/emacs-lisp/macroexpand.el" . "macroexp.el")
|
||||
("src/pixel-scroll.el" . "pixel-scroll.el")
|
||||
("test/lisp/mh-e/mh-utils.el" . "mh-utils-tests.el")
|
||||
("compile.el" . "compile.el")
|
||||
("compile-tests.el" . "compile-tests.el")
|
||||
("Makefile.in" . "Makefile.in")
|
||||
("Makefie.in" . "Makefile.in")
|
||||
("test/lisp/net/netrc-tests.el" . "auth-source-tests.el")
|
||||
("test/lisp/ert-x-tests.el" . "ert-x-tests.el")
|
||||
("lisp/mh-e-mh-scan.el" . "mh-scan.el")
|
||||
("lisp/progmodes/c-fonts.el" . "cc-fonts.el")
|
||||
("lisp/emacs/lisp/cl-generic.el" . "cl-generic.el")
|
||||
("doc/lisprefdisplay.texi" . "display.texi")
|
||||
("erc.el" . "erc.el")
|
||||
("erc-tests.el" . "erc-tests.el")
|
||||
("vc/vc-mtn.el" . "vc-mtn.el")
|
||||
("net/rlogin.el" . "rlogin.el")
|
||||
("emacs-lisp/eieio-compat.el" . "eieio-compat.el")
|
||||
("mh-compat.el" . "mh-compat.el")
|
||||
("url-about.el" . "url-about.el")
|
||||
("url-dired.el" . "url-dired.el")
|
||||
("lisp/text-modes/tex-mode.el" . "tex-mode.el")
|
||||
("editfns.c" . "editfns.c")
|
||||
)
|
||||
"Alist of files which have been renamed during their lifetime.
|
||||
Elements are (OLDNAME . NEWNAME).")
|
||||
|
|
|
|||
|
|
@ -181,7 +181,7 @@ ${charsetdir}/GB180304.map: ${charsetdir}/GB180302.map ${gb180304}
|
|||
${AM_V_GEN}$(AWK) -f ${gb180304} < $< > $@
|
||||
|
||||
${charsetdir}/JISX0201.map: ${GLIBC_CHARMAPS}/JIS_X0201.gz ${mapconv} ${compact}
|
||||
${AM_V_GEN}(${run_mapconv} $< '/^<.*[ ]\/x[0-9]/' GLIBC-1 ${compact} && \
|
||||
${AM_V_GEN}(${mapconv} $< '/^<.*[ ]\/x[0-9]/' GLIBC-1 ${compact} && \
|
||||
echo "# Generated by hand" && \
|
||||
echo "0xA1-0xDF 0xFF61" ) > $@
|
||||
|
||||
|
|
|
|||
|
|
@ -38,8 +38,7 @@
|
|||
## So that eg [A-F] as used by KANJI-DATABASE branch below works as expected.
|
||||
## Otherwise with LANG=en_US.utf8, CNS-6.map was generated with a
|
||||
## bogus entry. By experiment, LC_COLLATE=C was not enough.
|
||||
LC_ALL=C
|
||||
export LC_ALL
|
||||
export LC_ALL=C
|
||||
|
||||
BASE=`expr "$1" : '.*/\(.*\)' '|' "$1"` # basename
|
||||
FILE="admin/charsets/mapfiles/$BASE"
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -293,7 +293,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))
|
||||
|
|
|
|||
|
|
@ -23,30 +23,29 @@
|
|||
|
||||
# written by Paul Eggert
|
||||
|
||||
GNULIB_URL=https://git.savannah.gnu.org/git/gnulib.git
|
||||
GNULIB_URL=git://git.savannah.gnu.org/gnulib.git
|
||||
|
||||
GNULIB_MODULES='
|
||||
alignasof alloca-opt binary-io byteswap c-ctype c-strcase
|
||||
alloca-opt binary-io byteswap c-ctype c-strcase
|
||||
canonicalize-lgpl
|
||||
careadlinkat close-stream copy-file-range
|
||||
count-leading-zeros count-one-bits count-trailing-zeros
|
||||
crypto/md5 crypto/md5-buffer
|
||||
crypto/sha1-buffer crypto/sha256-buffer crypto/sha512-buffer
|
||||
d-type diffseq double-slash-root dtoastr dtotimespec dup2
|
||||
environ execinfo faccessat
|
||||
environ execinfo explicit_bzero faccessat
|
||||
fchmodat fcntl fcntl-h fdopendir file-has-acl
|
||||
filemode filename filevercmp flexmember fpieee
|
||||
free-posix fstatat fsusage fsync futimens
|
||||
getloadavg getopt-gnu getrandom gettime gettimeofday gitlog-to-changelog
|
||||
ieee754-h ignore-value intprops largefile libgmp lstat
|
||||
manywarnings memmem-simple mempcpy memrchr memset_explicit
|
||||
minmax mkostemp mktime
|
||||
manywarnings memmem-simple mempcpy memrchr minmax mkostemp mktime
|
||||
nanosleep nproc nstrftime
|
||||
pathmax pipe2 pselect pthread_sigmask
|
||||
qcopy-acl readlink readlinkat regex
|
||||
sig2str sigdescr_np socklen stat-time std-gnu11 stdbool stddef stdio
|
||||
sig2str sigdescr_np socklen stat-time std-gnu11 stdalign stdbool 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
|
||||
'
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -83,46 +83,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-28).
|
||||
|
||||
mkdir ~/emacs
|
||||
cd ~/emacs
|
||||
git clone <membername>@git.sv.gnu.org:/srv/git/emacs.git master
|
||||
cd master
|
||||
git config push.default current
|
||||
git worktree add ../emacs-29 emacs-29
|
||||
git worktree add ../emacs-28 emacs-28
|
||||
|
||||
You now have both branches conveniently accessible, and you can do
|
||||
"git pull" in them once in a while to keep updated.
|
||||
|
|
@ -67,10 +67,10 @@ which will look like
|
|||
|
||||
commit 958b768a6534ae6e77a8547a56fc31b46b63710b
|
||||
|
||||
cd ~/emacs/emacs-29
|
||||
cd ~/emacs/emacs-28
|
||||
git cherry-pick -xe 958b768a6534ae6e77a8547a56fc31b46b63710b
|
||||
|
||||
and add "Backport:" to the commit string. Then
|
||||
and optionally add "Backport:" to the commit string. Then
|
||||
|
||||
git push
|
||||
|
||||
|
|
@ -109,7 +109,7 @@ up-to-date by doing a pull. Then start Emacs with
|
|||
emacs -l admin/gitmerge.el -f gitmerge
|
||||
|
||||
You'll be asked for the branch to merge, which will default to
|
||||
(eg) 'origin/emacs-29', which you should accept. Merging a local tracking
|
||||
(eg) 'origin/emacs-28', which you should accept. Merging a local tracking
|
||||
branch is discouraged, since it might not be up-to-date, or worse,
|
||||
contain commits from you which are not yet pushed upstream.
|
||||
|
||||
|
|
|
|||
|
|
@ -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}"
|
||||
|
|
@ -340,8 +340,7 @@ git_config diff.texinfo.xfuncname \
|
|||
tailored_hooks=
|
||||
sample_hooks=
|
||||
|
||||
for hook in commit-msg pre-commit prepare-commit-msg post-commit \
|
||||
pre-push commit-msg-files.awk; do
|
||||
for hook in commit-msg pre-commit prepare-commit-msg; do
|
||||
cmp -- build-aux/git-hooks/$hook "$hooks/$hook" >/dev/null 2>&1 ||
|
||||
tailored_hooks="$tailored_hooks $hook"
|
||||
done
|
||||
|
|
|
|||
4
build-aux/config.guess
vendored
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
# shellcheck disable=SC2006,SC2268 # see below for rationale
|
||||
|
||||
timestamp='2023-01-01'
|
||||
timestamp='2022-09-17'
|
||||
|
||||
# This file is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by
|
||||
|
|
@ -60,7 +60,7 @@ version="\
|
|||
GNU config.guess ($timestamp)
|
||||
|
||||
Originally written by Per Bothner.
|
||||
Copyright 1992-2023 Free Software Foundation, Inc.
|
||||
Copyright 1992-2022 Free Software Foundation, Inc.
|
||||
|
||||
This is free software; see the source for copying conditions. There is NO
|
||||
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
|
||||
|
|
|
|||
6
build-aux/config.sub
vendored
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
# shellcheck disable=SC2006,SC2268 # see below for rationale
|
||||
|
||||
timestamp='2023-01-21'
|
||||
timestamp='2022-09-17'
|
||||
|
||||
# This file is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by
|
||||
|
|
@ -76,7 +76,7 @@ Report bugs and patches to <config-patches@gnu.org>."
|
|||
version="\
|
||||
GNU config.sub ($timestamp)
|
||||
|
||||
Copyright 1992-2023 Free Software Foundation, Inc.
|
||||
Copyright 1992-2022 Free Software Foundation, Inc.
|
||||
|
||||
This is free software; see the source for copying conditions. There is NO
|
||||
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
|
||||
|
|
@ -1075,7 +1075,7 @@ case $cpu-$vendor in
|
|||
pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
|
||||
cpu=i586
|
||||
;;
|
||||
pentiumpro-* | p6-* | 6x86-* | athlon-* | athlon_*-*)
|
||||
pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*)
|
||||
cpu=i686
|
||||
;;
|
||||
pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
|
||||
|
|
|
|||
|
|
@ -1,128 +0,0 @@
|
|||
# Check the file list of GNU Emacs change log entries for each commit SHA.
|
||||
|
||||
# Copyright 2023 Free Software Foundation, Inc.
|
||||
|
||||
# This file is part of GNU Emacs.
|
||||
|
||||
# GNU Emacs is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
|
||||
# GNU Emacs is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
### Commentary:
|
||||
|
||||
# This script accepts a list of (unabbreviated) Git commit SHAs, and
|
||||
# will then iterate over them to check that any files mentioned in the
|
||||
# commit message are actually present in the commit's diff. If not,
|
||||
# it will print out the incorrect file names and return 1.
|
||||
|
||||
# You can also pass "-v reason=pre-push", which will add more-verbose
|
||||
# output, indicating the abbreviated commit SHA and first line of the
|
||||
# commit message for any improper commits.
|
||||
|
||||
### Code:
|
||||
|
||||
function get_commit_changes(commit_sha, changes, cmd, i, j, len, \
|
||||
bits, filename) {
|
||||
# Collect all the files touched in the specified commit.
|
||||
cmd = ("git show --name-status --first-parent --format= " commit_sha)
|
||||
while ((cmd | getline) > 0) {
|
||||
for (i = 2; i <= NF; i++) {
|
||||
len = split($i, bits, "/")
|
||||
for (j = 1; j <= len; j++) {
|
||||
if (j == 1)
|
||||
filename = bits[j]
|
||||
else
|
||||
filename = filename "/" bits[j]
|
||||
changes[filename] = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
close(cmd)
|
||||
}
|
||||
|
||||
function check_commit_msg_files(commit_sha, verbose, changes, good, \
|
||||
cmd, msg, filenames_str, filenames, i) {
|
||||
get_commit_changes(commit_sha, changes)
|
||||
good = 1
|
||||
|
||||
cmd = ("git log -1 --format=%B " commit_sha)
|
||||
while ((cmd | getline) > 0) {
|
||||
if (verbose && ! msg)
|
||||
msg = $0
|
||||
|
||||
# Find file entries in the commit message. We look at any line
|
||||
# starting with "*" (possibly prefixed by "; ") followed by a ":",
|
||||
# possibly on a different line. If we encounter a blank line
|
||||
# without seeing a ":", then we don't treat that as a file entry.
|
||||
|
||||
# Accumulate the contents of a (possible) file entry.
|
||||
if (/^[ \t]*$/)
|
||||
filenames_str = ""
|
||||
else if (/^(; )?\*[ \t]+[[:alnum:]]/)
|
||||
filenames_str = $0
|
||||
else if (filenames_str)
|
||||
filenames_str = (filenames_str $0)
|
||||
|
||||
# We have a file entry; analyze it.
|
||||
if (filenames_str && /:/) {
|
||||
# Delete the leading "*" and any trailing information.
|
||||
sub(/^(; )?\*[ \t]+/, "", filenames_str)
|
||||
sub(/[ \t]*[[(<:].*$/, "", filenames_str)
|
||||
|
||||
# There might be multiple files listed in this entry, separated
|
||||
# by spaces (and possibly a comma). Iterate over each of them.
|
||||
split(filenames_str, filenames, ",[ \t]+")
|
||||
for (i in filenames) {
|
||||
# Remove trailing slashes from any directory entries.
|
||||
sub(/\/$/, "", filenames[i])
|
||||
|
||||
if (length(filenames[i]) && ! (filenames[i] in changes)) {
|
||||
if (good) {
|
||||
# Print a header describing the error.
|
||||
if (verbose)
|
||||
printf("In commit %s \"%s\"...\n", substr(commit_sha, 1, 10), msg)
|
||||
printf("Files listed in commit message, but not in diff:\n")
|
||||
}
|
||||
printf(" %s\n", filenames[i])
|
||||
good = 0
|
||||
}
|
||||
}
|
||||
|
||||
filenames_str = ""
|
||||
}
|
||||
}
|
||||
close(cmd)
|
||||
|
||||
return good
|
||||
}
|
||||
|
||||
BEGIN {
|
||||
if (reason == "pre-push")
|
||||
verbose = 1
|
||||
}
|
||||
|
||||
/^[a-z0-9]{40}$/ {
|
||||
if (! check_commit_msg_files($0, verbose)) {
|
||||
status = 1
|
||||
}
|
||||
}
|
||||
|
||||
END {
|
||||
if (status != 0) {
|
||||
if (reason == "pre-push")
|
||||
error_msg = "Push aborted"
|
||||
else
|
||||
error_msg = "Bad commit message"
|
||||
printf("%s; please see the file 'CONTRIBUTE'\n", error_msg)
|
||||
}
|
||||
exit status
|
||||
}
|
||||
|
|
@ -1,47 +0,0 @@
|
|||
#!/bin/sh
|
||||
# Check the file list of GNU Emacs change log entries after committing.
|
||||
|
||||
# Copyright 2023 Free Software Foundation, Inc.
|
||||
|
||||
# This file is part of GNU Emacs.
|
||||
|
||||
# GNU Emacs is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
|
||||
# GNU Emacs is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
### Commentary:
|
||||
|
||||
# This hook runs after a commit is finalized and checks that the files
|
||||
# mentioned in the commit message match the diff. We perform this in
|
||||
# the post-commit phase so that we can be sure we properly detect all
|
||||
# the files in the diff (this is difficult during the commit-msg hook,
|
||||
# since there's no cross-platform way to detect when a commit is being
|
||||
# amended).
|
||||
|
||||
# However, since this is a post-commit hook, it's too late to error
|
||||
# out and abort the commit: it's already done! As a result, this hook
|
||||
# is purely advisory, and instead we error out when trying to push
|
||||
# (see "pre-push" in this directory).
|
||||
|
||||
### Code:
|
||||
|
||||
HOOKS_DIR=`dirname "$0"`
|
||||
|
||||
# Prefer gawk if available, as it handles NUL bytes properly.
|
||||
if type gawk >/dev/null 2>&1; then
|
||||
awk="gawk"
|
||||
else
|
||||
awk="awk"
|
||||
fi
|
||||
|
||||
git rev-parse HEAD | $awk -v reason=post-commit \
|
||||
-f "$HOOKS_DIR"/commit-msg-files.awk
|
||||
|
|
@ -1,88 +0,0 @@
|
|||
#!/bin/sh
|
||||
# Check the file list of GNU Emacs change log entries before pushing.
|
||||
|
||||
# Copyright 2023 Free Software Foundation, Inc.
|
||||
|
||||
# This file is part of GNU Emacs.
|
||||
|
||||
# GNU Emacs is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
|
||||
# GNU Emacs is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
### Commentary:
|
||||
|
||||
# This hook runs before pushing a series of commits and checks that
|
||||
# the files mentioned in each commit message match the diffs. This
|
||||
# helps ensure that the resulting change logs are correct, which
|
||||
# should prevent errors when generating etc/AUTHORS.
|
||||
|
||||
# These checks also happen in the "post-commit" hook (which see), but
|
||||
# that hook can't abort a commit; it just advises the committer to fix
|
||||
# the commit so that this hook runs without errors.
|
||||
|
||||
### Code:
|
||||
|
||||
HOOKS_DIR=`dirname "$0"`
|
||||
|
||||
# Prefer gawk if available, as it handles NUL bytes properly.
|
||||
if type gawk >/dev/null 2>&1; then
|
||||
awk="gawk"
|
||||
else
|
||||
awk="awk"
|
||||
fi
|
||||
|
||||
# Standard input receives lines of the form:
|
||||
# <local ref> SP <local sha> SP <remote ref> SP <remote sha> LF
|
||||
$awk -v origin_name="$1" '
|
||||
# If the local SHA is all zeroes, ignore it.
|
||||
$2 ~ /^0{40}$/ {
|
||||
next
|
||||
}
|
||||
|
||||
# Check any lines with a valid local SHA and whose remote ref is
|
||||
# master or an emacs-NN release branch. (We want to avoid checking
|
||||
# feature or scratch branches here.)
|
||||
$2 ~ /^[a-z0-9]{40}$/ && $3 ~ /^refs\/heads\/(master|emacs-[0-9]+)$/ {
|
||||
newref = $2
|
||||
# If the remote SHA is all zeroes, this is a new object to be
|
||||
# pushed (likely a branch)...
|
||||
if ($4 ~ /^0{40}$/) {
|
||||
back = 0
|
||||
# ... Go backwards until we find a SHA on an origin branch.
|
||||
# Stop trying after 1000 commits, just in case...
|
||||
for (back = 0; back < 1000; back++) {
|
||||
cmd = ("git branch -r -l '\''" origin_name "/*'\''" \
|
||||
" --contains " newref "~" back)
|
||||
rv = (cmd | getline)
|
||||
close(cmd)
|
||||
if (rv > 0)
|
||||
break;
|
||||
}
|
||||
|
||||
cmd = ("git rev-parse " newref "~" back)
|
||||
cmd | getline oldref
|
||||
if (!(oldref ~ /^[a-z0-9]{40}$/)) {
|
||||
# The SHA is misformatted! Skip this line.
|
||||
next
|
||||
}
|
||||
close(cmd)
|
||||
} else if ($4 ~ /^[a-z0-9]{40}$/) {
|
||||
oldref = $4
|
||||
} else {
|
||||
# The SHA is misformatted! Skip this line.
|
||||
next
|
||||
}
|
||||
|
||||
# Print every SHA after oldref, up to (and including) newref.
|
||||
system("git rev-list --first-parent --reverse " oldref ".." newref)
|
||||
}
|
||||
' | $awk -v reason=pre-push -f "$HOOKS_DIR"/commit-msg-files.awk
|
||||
|
|
@ -137,7 +137,7 @@
|
|||
eval 'exec perl -wSx -0777 -pi "$0" "$@"'
|
||||
if 0;
|
||||
|
||||
my $VERSION = '2023-01-11.04:24'; # UTC
|
||||
my $VERSION = '2020-04-04.15:07'; # UTC
|
||||
# The definition above must lie within the first 8 lines in order
|
||||
# for the Emacs time-stamp write hook (at end) to update it.
|
||||
# If you change this file with Emacs, please let the write hook
|
||||
|
|
@ -280,7 +280,7 @@ if (defined $stmt_re)
|
|||
}
|
||||
|
||||
# Replace the old copyright statement.
|
||||
s/$stmt_re/$stmt_wrapped/g;
|
||||
s/$stmt_re/$stmt_wrapped/;
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
|
|||
127
configure.ac
|
|
@ -23,7 +23,7 @@ dnl along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
|
|||
|
||||
AC_PREREQ([2.65])
|
||||
dnl Note this is parsed by (at least) make-dist and lisp/cedet/ede/emacs.el.
|
||||
AC_INIT([GNU Emacs], [30.0.50], [bug-gnu-emacs@gnu.org], [],
|
||||
AC_INIT([GNU Emacs], [29.0.90], [bug-gnu-emacs@gnu.org], [],
|
||||
[https://www.gnu.org/software/emacs/])
|
||||
|
||||
dnl Set emacs_config_options to the options of 'configure', quoted for the shell,
|
||||
|
|
@ -1001,7 +1001,7 @@ AC_ARG_ENABLE([gcc-warnings],
|
|||
# however, if there is also a .tarball-version file it is probably
|
||||
# just a release imported into Git for patch management.
|
||||
gl_gcc_warnings=no
|
||||
if test -d "$srcdir"/.git && test ! -f "$srcdir"/.tarball-version; then
|
||||
if test -e "$srcdir"/.git && test ! -f "$srcdir"/.tarball-version; then
|
||||
# Clang typically identifies itself as GCC 4.2 or something similar
|
||||
# even if it is recent enough to accept the warnings we enable.
|
||||
AS_IF([test "$emacs_cv_clang" = yes],
|
||||
|
|
@ -1139,7 +1139,6 @@ AS_IF([test $gl_gcc_warnings = no],
|
|||
|
||||
# clang is unduly picky about some things.
|
||||
if test "$emacs_cv_clang" = yes; then
|
||||
gl_WARN_ADD([-Wno-bitwise-instead-of-logical])
|
||||
gl_WARN_ADD([-Wno-missing-braces])
|
||||
gl_WARN_ADD([-Wno-null-pointer-arithmetic])
|
||||
gl_WARN_ADD([-Wno-implicit-const-int-float-conversion])
|
||||
|
|
@ -1843,9 +1842,7 @@ AC_CHECK_HEADERS_ONCE(
|
|||
coff.h pty.h
|
||||
sys/resource.h
|
||||
sys/utsname.h pwd.h utmp.h util.h
|
||||
sanitizer/lsan_interface.h
|
||||
sanitizer/asan_interface.h
|
||||
sanitizer/common_interface_defs.h])
|
||||
sanitizer/lsan_interface.h])
|
||||
|
||||
AC_CACHE_CHECK([for ADDR_NO_RANDOMIZE],
|
||||
[emacs_cv_personality_addr_no_randomize],
|
||||
|
|
@ -2034,23 +2031,31 @@ if test "${with_ns}" != no; then
|
|||
ns_appresdir=${ns_appdir}/Contents/Resources
|
||||
ns_appsrc=Cocoa/Emacs.base
|
||||
ns_fontfile=macfont.o
|
||||
elif flags=`(gnustep-config --objc-flags) 2>/dev/null`; then
|
||||
elif flags=$( (gnustep-config --objc-flags) 2>/dev/null); then
|
||||
NS_IMPL_GNUSTEP=yes
|
||||
NS_GNUSTEP_CONFIG=yes
|
||||
GNU_OBJC_CFLAGS="$flags"
|
||||
LIBS_GNUSTEP=`gnustep-config --gui-libs || exit`
|
||||
LIBS_GNUSTEP=$(gnustep-config --gui-libs) || exit
|
||||
elif test -f $GNUSTEP_CONFIG_FILE; then
|
||||
NS_IMPL_GNUSTEP=yes
|
||||
dnl FIXME sourcing this several times in subshells seems inefficient.
|
||||
GNUSTEP_SYSTEM_HEADERS=`. $GNUSTEP_CONFIG_FILE \
|
||||
&& AS_ECHO(["$GNUSTEP_SYSTEM_HEADERS"])`
|
||||
GNUSTEP_SYSTEM_LIBRARIES=` . $GNUSTEP_CONFIG_FILE \
|
||||
&& AS_ECHO(["$GNUSTEP_SYSTEM_LIBRARIES"])`
|
||||
GNUSTEP_SYSTEM_HEADERS=$(
|
||||
. $GNUSTEP_CONFIG_FILE
|
||||
AS_ECHO(["$GNUSTEP_SYSTEM_HEADERS"])
|
||||
)
|
||||
GNUSTEP_SYSTEM_LIBRARIES=$(
|
||||
. $GNUSTEP_CONFIG_FILE
|
||||
AS_ECHO(["$GNUSTEP_SYSTEM_LIBRARIES"])
|
||||
)
|
||||
dnl I seemed to need these as well with GNUstep-startup 0.25.
|
||||
GNUSTEP_LOCAL_HEADERS=`. $GNUSTEP_CONFIG_FILE \
|
||||
&& AS_ECHO(["$GNUSTEP_LOCAL_HEADERS"])`
|
||||
GNUSTEP_LOCAL_LIBRARIES=`. $GNUSTEP_CONFIG_FILE \
|
||||
&& AS_ECHO(["$GNUSTEP_LOCAL_LIBRARIES"])`
|
||||
GNUSTEP_LOCAL_HEADERS=$(
|
||||
. $GNUSTEP_CONFIG_FILE
|
||||
AS_ECHO(["$GNUSTEP_LOCAL_HEADERS"])
|
||||
)
|
||||
GNUSTEP_LOCAL_LIBRARIES=$(
|
||||
. $GNUSTEP_CONFIG_FILE
|
||||
AS_ECHO(["$GNUSTEP_LOCAL_LIBRARIES"])
|
||||
)
|
||||
test "x${GNUSTEP_LOCAL_HEADERS}" != "x" && \
|
||||
GNUSTEP_LOCAL_HEADERS="-I${GNUSTEP_LOCAL_HEADERS}"
|
||||
test "x${GNUSTEP_LOCAL_LIBRARIES}" != "x" && \
|
||||
|
|
@ -2689,6 +2694,39 @@ if test "${HAVE_X11}" = "yes"; then
|
|||
export LD_RUN_PATH
|
||||
fi
|
||||
|
||||
if test "${opsys}" = "gnu-linux"; then
|
||||
AC_CACHE_CHECK([whether X on GNU/Linux needs -b to link], [emacs_cv_b_link],
|
||||
[AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],
|
||||
[[XOpenDisplay ("foo");]])],
|
||||
[xgnu_linux_first_failure=no],
|
||||
[xgnu_linux_first_failure=yes])
|
||||
if test "${xgnu_linux_first_failure}" = "yes"; then
|
||||
OLD_CPPFLAGS="$CPPFLAGS"
|
||||
OLD_LIBS="$LIBS"
|
||||
CPPFLAGS="$CPPFLAGS -b i486-linuxaout"
|
||||
LIBS="$LIBS -b i486-linuxaout"
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],
|
||||
[[XOpenDisplay ("foo");]])],
|
||||
[xgnu_linux_second_failure=no],
|
||||
[xgnu_linux_second_failure=yes])
|
||||
if test "${xgnu_linux_second_failure}" = "yes"; then
|
||||
# If we get the same failure with -b, there is no use adding -b.
|
||||
# So leave it out. This plays safe.
|
||||
emacs_cv_b_link=no
|
||||
else
|
||||
emacs_cv_b_link=yes
|
||||
fi
|
||||
CPPFLAGS=$OLD_CPPFLAGS
|
||||
LIBS=$OLD_LIBS
|
||||
else
|
||||
emacs_cv_b_link=no
|
||||
fi])
|
||||
if test "x$emacs_cv_b_link" = xyes ; then
|
||||
LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -b i486-linuxaout"
|
||||
C_SWITCH_X_SITE="$C_SWITCH_X_SITE -b i486-linuxaout"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Reportedly, some broken Solaris systems have XKBlib.h but are missing
|
||||
# header files included from there.
|
||||
AC_CACHE_CHECK([for Xkb], [emacs_cv_xkb],
|
||||
|
|
@ -3773,7 +3811,7 @@ if test "${HAVE_X11}" = "yes"; then
|
|||
AC_DEFINE([HAVE_OTF_GET_VARIATION_GLYPHS], [1],
|
||||
[Define to 1 if libotf has OTF_get_variation_glyphs.])
|
||||
fi
|
||||
if $PKG_CONFIG --atleast-version=0.9.16 libotf; then :; else
|
||||
if ! $PKG_CONFIG --atleast-version=0.9.16 libotf; then
|
||||
AC_DEFINE([HAVE_OTF_KANNADA_BUG], [1],
|
||||
[Define to 1 if libotf is affected by https://debbugs.gnu.org/28110.])
|
||||
fi
|
||||
|
|
@ -3881,7 +3919,7 @@ if test "${HAVE_BE_APP}" = "yes"; then
|
|||
AC_DEFINE([HAVE_OTF_GET_VARIATION_GLYPHS], [1],
|
||||
[Define to 1 if libotf has OTF_get_variation_glyphs.])
|
||||
fi
|
||||
if $PKG_CONFIG --atleast-version=0.9.16 libotf; then :; else
|
||||
if ! $PKG_CONFIG --atleast-version=0.9.16 libotf; then
|
||||
AC_DEFINE([HAVE_OTF_KANNADA_BUG], [1],
|
||||
[Define to 1 if libotf is affected by https://debbugs.gnu.org/28110.])
|
||||
fi
|
||||
|
|
@ -3921,10 +3959,21 @@ if test "${HAVE_X11}" = "yes"; then
|
|||
if test "${HAVE_XCB}" = "yes"; then
|
||||
AC_CHECK_LIB([X11-xcb], [XGetXCBConnection], [HAVE_X11_XCB=yes])
|
||||
if test "${HAVE_X11_XCB}" = "yes"; then
|
||||
AC_DEFINE([USE_XCB], [1],
|
||||
AC_CHECK_LIB([xcb-util], [xcb_aux_sync], [HAVE_XCB_UTIL=yes])
|
||||
if test "${HAVE_XCB_UTIL}" = "yes"; then
|
||||
AC_DEFINE([USE_XCB], [1],
|
||||
[Define to 1 if you have the XCB library and X11-XCB library for mixed
|
||||
X11/XCB programming.])
|
||||
XCB_LIBS="-lX11-xcb -lxcb"
|
||||
X11/XCB programming.])
|
||||
XCB_LIBS="-lX11-xcb -lxcb -lxcb-util"
|
||||
else
|
||||
AC_CHECK_LIB([xcb-aux], [xcb_aux_sync], [HAVE_XCB_AUX=yes])
|
||||
if test "${HAVE_XCB_AUX}" = "yes"; then
|
||||
AC_DEFINE([USE_XCB], [1],
|
||||
[Define to 1 if you have the XCB library and X11-XCB library for mixed
|
||||
X11/XCB programming.])
|
||||
XCB_LIBS="-lX11-xcb -lxcb -lxcb-aux"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
|
@ -4192,14 +4241,12 @@ AC_SUBST_FILE([module_env_snippet_26])
|
|||
AC_SUBST_FILE([module_env_snippet_27])
|
||||
AC_SUBST_FILE([module_env_snippet_28])
|
||||
AC_SUBST_FILE([module_env_snippet_29])
|
||||
AC_SUBST_FILE([module_env_snippet_30])
|
||||
module_env_snippet_25="$srcdir/src/module-env-25.h"
|
||||
module_env_snippet_26="$srcdir/src/module-env-26.h"
|
||||
module_env_snippet_27="$srcdir/src/module-env-27.h"
|
||||
module_env_snippet_28="$srcdir/src/module-env-28.h"
|
||||
module_env_snippet_29="$srcdir/src/module-env-29.h"
|
||||
module_env_snippet_30="$srcdir/src/module-env-30.h"
|
||||
emacs_major_version=`AS_ECHO([$PACKAGE_VERSION]) | sed 's/[[.]].*//'`
|
||||
emacs_major_version="${PACKAGE_VERSION%%.*}"
|
||||
AC_SUBST([emacs_major_version])
|
||||
|
||||
### Emacs Lisp native compiler support
|
||||
|
|
@ -4309,16 +4356,14 @@ if test "${with_native_compilation}" != "no"; then
|
|||
# available. (We filter out the gcc4 packages, because they
|
||||
# don't support jit, and they have names like "gcc49" that
|
||||
# sort later than "gcc11".)
|
||||
PORT_PACKAGE=`port installed active | grep '^ *gcc@<:@0-9@:>@* ' | \
|
||||
PORT_PACKAGE=$(port installed active | grep '^ *gcc@<:@0-9@:>@* ' | \
|
||||
awk '{ print $1; }' | grep -v 'gcc4@<:@0-9@:>@' | \
|
||||
sort -V | tail -n 1`
|
||||
sort -V | tail -n 1)
|
||||
if test -n "$PORT_PACKAGE"; then
|
||||
emacs_val=`port contents $PORT_PACKAGE | grep libgccjit.h`
|
||||
emacs_val=`dirname $emacs_val`
|
||||
MAC_CFLAGS="-I$emacs_val"
|
||||
emacs_val=`port contents $PORT_PACKAGE | grep libgccjit.dylib`
|
||||
emacs_val=`dirname $emacs_val`
|
||||
MAC_LIBS="-L$emacs_val"
|
||||
MAC_CFLAGS="-I$(dirname $(port contents $PORT_PACKAGE | \
|
||||
grep libgccjit.h))"
|
||||
MAC_LIBS="-L$(dirname $(port contents $PORT_PACKAGE | \
|
||||
grep libgccjit.dylib))"
|
||||
fi
|
||||
fi
|
||||
|
||||
|
|
@ -4682,7 +4727,7 @@ AC_SUBST([XINERAMA_LIBS])
|
|||
### Use Xfixes (-lXfixes) if available
|
||||
HAVE_XFIXES=no
|
||||
if test "${HAVE_X11}" = "yes"; then
|
||||
XFIXES_REQUIRED=1.0.0
|
||||
XFIXES_REQUIRED=4.0.0
|
||||
XFIXES_MODULES="xfixes >= $XFIXES_REQUIRED"
|
||||
EMACS_CHECK_MODULES([XFIXES], [$XFIXES_MODULES])
|
||||
if test $HAVE_XFIXES = no; then
|
||||
|
|
@ -4986,7 +5031,6 @@ pthread_sigmask strsignal setitimer \
|
|||
sendto recvfrom getsockname getifaddrs freeifaddrs \
|
||||
gai_strerror sync \
|
||||
getpwent endpwent getgrent endgrent \
|
||||
renameat2 \
|
||||
cfmakeraw cfsetspeed __executable_start log2 pthread_setname_np \
|
||||
pthread_set_name_np])
|
||||
LIBS=$OLD_LIBS
|
||||
|
|
@ -5616,7 +5660,7 @@ case $opsys in
|
|||
esac
|
||||
|
||||
case $opsys in
|
||||
gnu-* | solaris | cygwin )
|
||||
gnu-* | solaris )
|
||||
dnl FIXME Can't we test if this exists (eg /proc/$$)?
|
||||
AC_DEFINE([HAVE_PROCFS], [1], [Define if you have the /proc filesystem.])
|
||||
;;
|
||||
|
|
@ -6380,7 +6424,7 @@ fi
|
|||
# it temporarily reverts them to their pre-pkg-config values,
|
||||
# because gnulib needs to work with both src (which uses the
|
||||
# pkg-config stuff) and lib-src (which does not). For example, gnulib
|
||||
# may need to determine whether CLOCK_TIME_LIB should contain -lrt,
|
||||
# may need to determine whether LIB_CLOCK_GETTIME should contain -lrt,
|
||||
# and it therefore needs to run in an environment where LIBS does not
|
||||
# already contain -lrt merely because 'pkg-config --libs' printed '-lrt'
|
||||
# for some package unrelated to lib-src.
|
||||
|
|
@ -6520,12 +6564,6 @@ if test "$window_system" != "none"; then
|
|||
AC_DEFINE([POLL_FOR_INPUT], [1],
|
||||
[Define if you poll periodically to detect C-g.])
|
||||
WINDOW_SYSTEM_OBJ="fontset.o fringe.o image.o"
|
||||
|
||||
if test "$window_system" = "x11"; then
|
||||
AC_DEFINE([HAVE_TEXT_CONVERSION], [1],
|
||||
[Define if the window system has text conversion support.])
|
||||
WINDOW_SYSTEM_OBJ="$WINDOW_SYSTEM_OBJ textconv.o"
|
||||
fi
|
||||
fi
|
||||
|
||||
AC_SUBST([WINDOW_SYSTEM_OBJ])
|
||||
|
|
@ -6578,9 +6616,7 @@ if test "${HAVE_GTK}" = "yes"; then
|
|||
fi
|
||||
|
||||
if test $USE_ACL -ne 0; then
|
||||
ACL_SUMMARY="yes"
|
||||
test "$LIB_ACL" && ACL_SUMMARY="$ACL_SUMMARY $LIB_ACL"
|
||||
test "$LIB_XATTR" && ACL_SUMMARY="$ACL_SUMMARY $LIB_XATTR"
|
||||
ACL_SUMMARY="yes $LIB_ACL"
|
||||
else
|
||||
ACL_SUMMARY=no
|
||||
fi
|
||||
|
|
@ -6651,7 +6687,6 @@ AC_DEFINE_UNQUOTED([EMACS_CONFIG_FEATURES], ["${emacs_config_features}"],
|
|||
[Summary of some of the main features enabled by configure.])
|
||||
|
||||
AS_ECHO([" Does Emacs use -lXaw3d? ${HAVE_XAW3D}
|
||||
Does Emacs use the X Double Buffer Extension? ${HAVE_XDBE}
|
||||
Does Emacs use -lXpm? ${HAVE_XPM}
|
||||
Does Emacs use -ljpeg? ${HAVE_JPEG}
|
||||
Does Emacs use -ltiff? ${HAVE_TIFF}
|
||||
|
|
|
|||
|
|
@ -812,21 +812,22 @@ in these cases, customize the variable
|
|||
@vindex write-region-inhibit-fsync
|
||||
Normally, when a program writes a file, the operating system briefly
|
||||
caches the file's data in main memory before committing the data to
|
||||
secondary storage. Although this can greatly improve performance, it
|
||||
risks data loss if the system loses power before committing the cache,
|
||||
and on some platforms other processes might not immediately notice the
|
||||
file's change.
|
||||
disk. This can greatly improve performance; for example, when running
|
||||
on laptops, it can avoid a disk spin-up each time a file is written.
|
||||
However, it risks data loss if the operating system crashes before
|
||||
committing the cache to disk.
|
||||
|
||||
To lessen this risk, Emacs can invoke the @code{fsync} system call
|
||||
after saving a file. Using @code{fsync} does not eliminate the risk
|
||||
of data loss or slow notification, partly because many systems do not support
|
||||
of data loss, partly because many systems do not implement
|
||||
@code{fsync} properly, and partly because Emacs's file-saving
|
||||
procedure typically relies also on directory updates that might not
|
||||
survive a crash even if @code{fsync} works properly.
|
||||
|
||||
The @code{write-region-inhibit-fsync} variable controls whether
|
||||
Emacs invokes @code{fsync} after saving a file. The variable's
|
||||
default value is @code{t}.
|
||||
default value is @code{nil} when Emacs is interactive, and @code{t}
|
||||
when Emacs runs in batch mode (@pxref{Initial Options, Batch Mode}).
|
||||
|
||||
Emacs never uses @code{fsync} when writing auto-save files, as these
|
||||
files might lose data anyway.
|
||||
|
|
@ -1737,13 +1738,9 @@ only the hunks within the region.
|
|||
Re-generate the current hunk (@code{diff-refresh-hunk}).
|
||||
|
||||
@item C-c C-w
|
||||
@vindex diff-ignore-whitespace-switches
|
||||
@findex diff-ignore-whitespace-hunk
|
||||
Re-generate the current hunk, disregarding changes in whitespace.
|
||||
With a non-@code{nil} prefix arg, re-generate all the hunks
|
||||
(@code{diff-ignore-whitespace-hunk}). This calls @code{diff-command}
|
||||
with @code{diff-ignore-whitespace-switches}, which defaults to
|
||||
@samp{-b}, meaning ignore changes in whitespace only.
|
||||
Re-generate the current hunk, disregarding changes in whitespace
|
||||
(@code{diff-ignore-whitespace-hunk}).
|
||||
|
||||
@item C-x 4 A
|
||||
@findex diff-add-change-log-entries-other-window
|
||||
|
|
@ -1903,11 +1900,6 @@ following in the Trash directory:
|
|||
liable to also delete this @code{.dir-locals.el} file, so this should
|
||||
only be done if you delete files from the Trash directory manually.
|
||||
|
||||
@vindex remote-file-name-inhibit-delete-by-moving-to-trash
|
||||
If the variable @code{remote-file-name-inhibit-delete-by-moving-to-trash}
|
||||
is non-@code{nil}, remote files are never moved to the Trash. They
|
||||
are deleted instead.
|
||||
|
||||
@ifnottex
|
||||
If a file is under version control (@pxref{Version Control}), you
|
||||
should delete it using @kbd{M-x vc-delete-file} instead of @kbd{M-x
|
||||
|
|
|
|||
|
|
@ -317,16 +317,6 @@ by using the @kbd{M-x shortdoc} command. This will prompt you for an
|
|||
area of interest, e.g., @code{string}, and pop you to a buffer where
|
||||
many of the functions relevant for handling strings are listed.
|
||||
|
||||
You can also request that documentation of functions and commands
|
||||
shown in @file{*Help*} buffers popped by @kbd{C-h f} includes examples
|
||||
of their use. To that end, add the following to your initialization
|
||||
file (@pxref{Init File}):
|
||||
|
||||
@example
|
||||
(add-hook 'help-fns-describe-function-functions
|
||||
#'shortdoc-help-fns-examples-function)
|
||||
@end example
|
||||
|
||||
@kindex C-h v
|
||||
@findex describe-variable
|
||||
@kbd{C-h v} (@code{describe-variable}) is like @kbd{C-h f} but
|
||||
|
|
|
|||
|
|
@ -961,14 +961,12 @@ File ‘foo.el’ exists; overwrite? (y or n)
|
|||
@end smallexample
|
||||
|
||||
@cindex yes or no prompt
|
||||
@vindex yes-or-no-prompt
|
||||
The second type of yes-or-no query is typically employed if giving
|
||||
the wrong answer would have serious consequences; it thus features a
|
||||
longer prompt ending with @samp{(yes or no)} (or the value of
|
||||
@code{yes-or-no-prompt} if you've customized that). For example, if
|
||||
you invoke @kbd{C-x k} (@code{kill-buffer}) on a file-visiting buffer
|
||||
with unsaved changes, Emacs activates the minibuffer with a prompt
|
||||
like this:
|
||||
longer prompt ending with @samp{(yes or no)}. For example, if you
|
||||
invoke @kbd{C-x k} (@code{kill-buffer}) on a file-visiting buffer with
|
||||
unsaved changes, Emacs activates the minibuffer with a prompt like
|
||||
this:
|
||||
|
||||
@smallexample
|
||||
Buffer foo.el modified; kill anyway? (yes or no)
|
||||
|
|
|
|||
|
|
@ -1810,28 +1810,31 @@ you can give each daemon its own server name like this:
|
|||
emacs --daemon=foo
|
||||
@end example
|
||||
|
||||
@vindex server-stop-automatically
|
||||
@findex server-stop-automatically
|
||||
The Emacs server can optionally be stopped automatically when
|
||||
certain conditions are met. To do this, set the option
|
||||
@code{server-stop-automatically} to one of the following values:
|
||||
certain conditions are met. To do this, call the function
|
||||
@code{server-stop-automatically} in your init file (@pxref{Init
|
||||
File}), with one of the following arguments:
|
||||
|
||||
@table @code
|
||||
@item empty
|
||||
This value causes the server to be stopped when it has no clients, no
|
||||
unsaved file-visiting buffers and no running processes anymore.
|
||||
@itemize
|
||||
@item
|
||||
With the argument @code{empty}, the server is stopped when it has no
|
||||
clients, no unsaved file-visiting buffers and no running processes
|
||||
anymore.
|
||||
|
||||
@item delete-frame
|
||||
This value means that when the last client frame is being closed, you
|
||||
are asked whether each unsaved file-visiting buffer must be saved and
|
||||
each unfinished process can be stopped, and if so, the server is
|
||||
@item
|
||||
With the argument @code{delete-frame}, when the last client frame is
|
||||
being closed, you are asked whether each unsaved file-visiting buffer
|
||||
must be saved and each unfinished process can be stopped, and if so,
|
||||
the server is stopped.
|
||||
|
||||
@item
|
||||
With the argument @code{kill-terminal}, when the last client frame is
|
||||
being closed with @kbd{C-x C-c} (@code{save-buffers-kill-terminal}),
|
||||
you are asked whether each unsaved file-visiting buffer must be saved
|
||||
and each unfinished process can be stopped, and if so, the server is
|
||||
stopped.
|
||||
|
||||
@item kill-terminal
|
||||
This value means that when the last client frame is being closed with
|
||||
@kbd{C-x C-c} (@code{save-buffers-kill-terminal}), you are asked
|
||||
whether each unsaved file-visiting buffer must be saved and each
|
||||
unfinished process can be stopped, and if so, the server is stopped.
|
||||
@end table
|
||||
@end itemize
|
||||
|
||||
@findex server-eval-at
|
||||
If you have defined a server by a unique server name, it is possible
|
||||
|
|
|
|||
|
|
@ -163,7 +163,6 @@ Emacs we use it for all languages.
|
|||
* Left Margin Paren:: An open-paren or similar opening delimiter
|
||||
starts a defun if it is at the left margin.
|
||||
* Moving by Defuns:: Commands to move over or mark a major definition.
|
||||
* Moving by Sentences:: Commands to move over certain code units.
|
||||
* Imenu:: Making buffer indexes as menus.
|
||||
* Which Function:: Which Function mode shows which function you are in.
|
||||
@end menu
|
||||
|
|
@ -266,66 +265,6 @@ tree-sitter library provide control of this behavior: if the variable
|
|||
@code{treesit-defun-tactic} is set to the value @code{top-level}, the
|
||||
defun commands will find the @emph{outermost} defuns instead.
|
||||
|
||||
@node Moving by Sentences
|
||||
@subsection Moving by Sentences
|
||||
@cindex sentences, in programming languages
|
||||
|
||||
These commands move point or set up the region based on units of
|
||||
code, also called @dfn{sentences}. Even though sentences are usually
|
||||
considered when writing human languages, Emacs can use the same
|
||||
commands to move over certain constructs in programming languages
|
||||
(@pxref{Sentences}, @pxref{Moving by Defuns}). In a programming
|
||||
language a sentence is usually a complete language construct smaller
|
||||
than defuns, but larger than sexps (@pxref{List Motion,,, elisp, The
|
||||
Emacs Lisp Reference Manual}). What exactly is a sentence in this
|
||||
case depends on the programming language, but usually it is a complete
|
||||
statement, such as a variable definition and initialization, or a
|
||||
conditional statement. An example of a sentence in the C language
|
||||
could be
|
||||
|
||||
@example
|
||||
int x = 5;
|
||||
@end example
|
||||
|
||||
@noindent
|
||||
or in the JavaScript language it could look like
|
||||
|
||||
@example
|
||||
@group
|
||||
const thing = () => console.log("Hi");
|
||||
@end group
|
||||
@group
|
||||
const foo = [1] == '1'
|
||||
? "No way"
|
||||
: "...";
|
||||
@end group
|
||||
|
||||
@end example
|
||||
|
||||
@table @kbd
|
||||
@item M-a
|
||||
Move to beginning of current or preceding sentence
|
||||
(@code{backward-sentence}).
|
||||
@item M-e
|
||||
Move to end of current or following sentence (@code{forward-sentence}).
|
||||
@end table
|
||||
|
||||
@cindex move to beginning or end of sentence
|
||||
@cindex sentence, move to beginning or end
|
||||
@kindex M-a @r{(programming modes)}
|
||||
@kindex M-e @r{(programming modes)}
|
||||
@findex backward-sentence @r{(programming modes)}
|
||||
@findex forward-sentence @r{(programming modes)}
|
||||
The commands to move to the beginning and end of the current
|
||||
sentence are @kbd{M-a} (@code{backward-sentence}) and @kbd{M-e}
|
||||
(@code{forward-sentence}). If you repeat one of these commands, or
|
||||
use a positive numeric argument, each repetition moves to the next
|
||||
sentence in the direction of motion.
|
||||
|
||||
@kbd{M-a} with a negative argument @minus{}@var{n} moves forward
|
||||
@var{n} times to the next end of a sentence. Likewise, @kbd{M-e} with
|
||||
a negative argument moves back to the start of a sentence.
|
||||
|
||||
@node Imenu
|
||||
@subsection Imenu
|
||||
@cindex index of buffer definitions
|
||||
|
|
@ -492,9 +431,6 @@ large chunks of code:
|
|||
@table @kbd
|
||||
@item C-M-q
|
||||
Reindent all the lines within one parenthetical grouping.
|
||||
@item M-q
|
||||
Fill a single paragraph in a defun, or reindent all the lines within
|
||||
that defun.
|
||||
@item C-u @key{TAB}
|
||||
Shift an entire parenthetical grouping rigidly sideways so that its
|
||||
first line is properly indented.
|
||||
|
|
@ -515,21 +451,6 @@ indentation of the line where the grouping starts). The function that
|
|||
etc. To correct the overall indentation as well, type @kbd{@key{TAB}}
|
||||
first.
|
||||
|
||||
@kindex M-q
|
||||
@findex prog-fill-reindent-defun
|
||||
@vindex beginning-of-defun-function
|
||||
@vindex end-of-defun-function
|
||||
@vindex fill-paragraph-function
|
||||
To reindent the entire defun around point, type @kbd{M-q}
|
||||
(@code{prog-fill-reindent-defun}). If point is in a comment or a
|
||||
string, this command fills and indents the comment or string instead.
|
||||
What exactly constitutes a comment, a string, or a defun depends on
|
||||
the major mode: the bounds of a defun are decided by the variables
|
||||
@code{beginning-of-defun-function} and @code{end-of-defun-function}
|
||||
(@pxref{List Motion,,, elisp, The Emacs Lisp Reference Manual}),
|
||||
and the filling mechanism is decided by @code{fill-paragraph-function}
|
||||
(@pxref{Filling,,, elisp, The Emacs Lisp Reference Manual}).
|
||||
|
||||
@kindex C-u TAB
|
||||
If you like the relative indentation within a grouping but not the
|
||||
indentation of its first line, move point to that first line and type
|
||||
|
|
@ -1387,12 +1308,6 @@ this, change the value of the variable @code{Man-switches} to
|
|||
@kbd{M-p} to switch between man pages in different sections. The mode
|
||||
line shows how many manual pages are available.
|
||||
|
||||
@vindex Man-prefer-synchronous-call
|
||||
By default, @kbd{M-x man} calls the @code{man} program
|
||||
asynchronously. You can force the invocation to be synchronous by
|
||||
customizing @code{Man-prefer-synchronous-calls} to a non-@code{nil}
|
||||
value.
|
||||
|
||||
@findex woman
|
||||
@cindex manual pages, on MS-DOS/MS-Windows
|
||||
An alternative way of reading manual pages is the @kbd{M-x woman}
|
||||
|
|
|
|||
|
|
@ -253,10 +253,6 @@ value of @code{sentence-end-double-space}.
|
|||
of a sentence. Set the variable @code{sentence-end-without-period} to
|
||||
@code{t} in such cases.
|
||||
|
||||
Even though the above mentioned sentence movement commands are based
|
||||
on human languages, other Emacs modes can set these command to get
|
||||
similar functionality (@pxref{Moving by Sentences}).
|
||||
|
||||
@node Paragraphs
|
||||
@section Paragraphs
|
||||
@cindex paragraphs
|
||||
|
|
|
|||
|
|
@ -252,8 +252,11 @@ the original symbol. If the contents are another symbol, this
|
|||
process, called @dfn{symbol function indirection}, is repeated until
|
||||
it obtains a non-symbol. @xref{Function Names}, for more information
|
||||
about symbol function indirection.
|
||||
We eventually obtain a non-symbol, which ought to be a function or
|
||||
other suitable object.
|
||||
|
||||
One possible consequence of this process is an infinite loop, in the
|
||||
event that a symbol's function cell refers to the same symbol.
|
||||
Otherwise, we eventually obtain a non-symbol, which ought to be a
|
||||
function or other suitable object.
|
||||
|
||||
@kindex invalid-function
|
||||
More precisely, we should now have a Lisp function (a lambda
|
||||
|
|
@ -329,17 +332,19 @@ or just
|
|||
The built-in function @code{indirect-function} provides an easy way to
|
||||
perform symbol function indirection explicitly.
|
||||
|
||||
@defun indirect-function function
|
||||
@defun indirect-function function &optional noerror
|
||||
@anchor{Definition of indirect-function}
|
||||
This function returns the meaning of @var{function} as a function. If
|
||||
@var{function} is a symbol, then it finds @var{function}'s function
|
||||
definition and starts over with that value. If @var{function} is not a
|
||||
symbol, then it returns @var{function} itself.
|
||||
|
||||
This function returns @code{nil} if the final symbol is unbound.
|
||||
This function returns @code{nil} if the final symbol is unbound. It
|
||||
signals a @code{cyclic-function-indirection} error if there is a loop
|
||||
in the chain of symbols.
|
||||
|
||||
There is also a second, optional argument that is obsolete and has no
|
||||
effect.
|
||||
The optional argument @var{noerror} is obsolete, kept for backward
|
||||
compatibility, and has no effect.
|
||||
|
||||
Here is how you could define @code{indirect-function} in Lisp:
|
||||
|
||||
|
|
|
|||
|
|
@ -692,9 +692,11 @@ files that the user does not need to know about.
|
|||
|
||||
@defvar write-region-inhibit-fsync
|
||||
If this variable's value is @code{nil}, @code{write-region} uses the
|
||||
@code{fsync} system call after writing a file. If the value is
|
||||
@code{t}, Emacs does not use @code{fsync}. The default value is
|
||||
@code{t}. @xref{Files and Storage}.
|
||||
@code{fsync} system call after writing a file. Although this slows
|
||||
Emacs down, it lessens the risk of data loss after power failure. If
|
||||
the value is @code{t}, Emacs does not use @code{fsync}. The default
|
||||
value is @code{nil} when Emacs is interactive, and @code{t} when Emacs
|
||||
runs in batch mode. @xref{Files and Storage}.
|
||||
@end defvar
|
||||
|
||||
@defmac with-temp-file file body@dots{}
|
||||
|
|
@ -1877,11 +1879,6 @@ no prefix argument is given, and @code{nil} otherwise.
|
|||
See also @code{delete-directory} in @ref{Create/Delete Dirs}.
|
||||
@end deffn
|
||||
|
||||
@defopt remote-file-name-inhibit-delete-by-moving-to-trash
|
||||
If this variable is non-@code{nil}, remote files are never moved to
|
||||
the Trash. They are deleted instead.
|
||||
@end defopt
|
||||
|
||||
@cindex file permissions, setting
|
||||
@cindex permissions, file
|
||||
@cindex file modes, setting
|
||||
|
|
@ -2051,28 +2048,17 @@ data already stored elsewhere on secondary storage until one file or
|
|||
the other is later modified; this will lose both files if the only
|
||||
copy on secondary storage is lost due to media failure. Second, the
|
||||
operating system might not write data to secondary storage
|
||||
immediately, which will lose the data if power is lost
|
||||
or if there is a media failure.
|
||||
immediately, which will lose the data if power is lost.
|
||||
|
||||
@findex write-region
|
||||
Although both sorts of failures can largely be avoided by a suitably
|
||||
configured system, such systems are typically more expensive or
|
||||
less efficient. In lower-end systems, to survive media failure you
|
||||
configured file system, such systems are typically more expensive or
|
||||
less efficient. In more-typical systems, to survive media failure you
|
||||
can copy the file to a different device, and to survive a power
|
||||
failure (or be immediately notified of a media failure) you can use
|
||||
the @code{write-region} function with the
|
||||
failure you can use the @code{write-region} function with the
|
||||
@code{write-region-inhibit-fsync} variable set to @code{nil}.
|
||||
Although this variable is ordinarily @code{t} because that can
|
||||
significantly improve performance, it may make sense to temporarily
|
||||
bind it to @code{nil} if using Emacs to implement database-like
|
||||
transactions that survive power failure on lower-end systems.
|
||||
@xref{Writing to Files}.
|
||||
|
||||
On some platforms when Emacs changes a file other processes might not
|
||||
be notified of the change immediately. Setting
|
||||
@code{write-region-inhibit-fsync} to @code{nil} may improve
|
||||
notification speed in this case, though there are no guarantees.
|
||||
|
||||
@node File Names
|
||||
@section File Names
|
||||
@cindex file names
|
||||
|
|
@ -3390,7 +3376,7 @@ first, before handlers for jobs such as remote file access.
|
|||
@code{file-directory-p},
|
||||
@code{file-equal-p},
|
||||
@code{file-executable-p}, @code{file-exists-p},
|
||||
@code{file-group-gid}, @code{file-in-directory-p},
|
||||
@code{file-in-directory-p},
|
||||
@code{file-local-copy}, @code{file-locked-p},
|
||||
@code{file-modes}, @code{file-name-all-completions},
|
||||
@code{file-name-as-directory},
|
||||
|
|
@ -3405,8 +3391,7 @@ first, before handlers for jobs such as remote file access.
|
|||
@code{file-readable-p}, @code{file-regular-p},
|
||||
@code{file-remote-p}, @code{file-selinux-context},
|
||||
@code{file-symlink-p}, @code{file-system-info},
|
||||
@code{file-truename}, @code{file-user-uid},
|
||||
@code{file-writable-p},
|
||||
@code{file-truename}, @code{file-writable-p},
|
||||
@code{find-backup-file-name},@*
|
||||
@code{get-file-buffer},
|
||||
@code{insert-directory},
|
||||
|
|
@ -3452,7 +3437,7 @@ first, before handlers for jobs such as remote file access.
|
|||
@code{file-direc@discretionary{}{}{}tory-p},
|
||||
@code{file-equal-p},
|
||||
@code{file-executable-p}, @code{file-exists-p},
|
||||
@code{file-group-gid}, @code{file-in-directory-p},
|
||||
@code{file-in-directory-p},
|
||||
@code{file-local-copy}, @code{file-locked-p},
|
||||
@code{file-modes}, @code{file-name-all-completions},
|
||||
@code{file-name-as-directory},
|
||||
|
|
@ -3467,8 +3452,7 @@ first, before handlers for jobs such as remote file access.
|
|||
@code{file-readable-p}, @code{file-regular-p},
|
||||
@code{file-remote-p}, @code{file-selinux-context},
|
||||
@code{file-symlink-p}, @code{file-system-info},
|
||||
@code{file-truename}, @code{file-user-uid},
|
||||
@code{file-writable-p},
|
||||
@code{file-truename}, @code{file-writable-p},
|
||||
@code{find-backup-file-name},
|
||||
@code{get-file-buffer},
|
||||
@code{insert-directory},
|
||||
|
|
|
|||
|
|
@ -737,12 +737,9 @@ explicitly in the source file being loaded. This is because
|
|||
By contrast, in programs that manipulate function definitions for other
|
||||
purposes, it is better to use @code{fset}, which does not keep such
|
||||
records. @xref{Function Cells}.
|
||||
|
||||
If the resulting function definition chain would be circular, then
|
||||
Emacs will signal a @code{cyclic-function-indirection} error.
|
||||
@end defun
|
||||
|
||||
@defun function-alias-p object
|
||||
@defun function-alias-p object &optional noerror
|
||||
Checks whether @var{object} is a function alias. If it is, it returns
|
||||
a list of symbols representing the function alias chain, else
|
||||
@code{nil}. For instance, if @code{a} is an alias for @code{b}, and
|
||||
|
|
@ -753,8 +750,9 @@ a list of symbols representing the function alias chain, else
|
|||
@result{} (b c)
|
||||
@end example
|
||||
|
||||
There is also a second, optional argument that is obsolete and has no
|
||||
effect.
|
||||
If there's a loop in the definitions, an error will be signaled. If
|
||||
@var{noerror} is non-@code{nil}, the non-looping parts of the chain is
|
||||
returned instead.
|
||||
@end defun
|
||||
|
||||
You cannot create a new primitive function with @code{defun} or
|
||||
|
|
@ -1484,7 +1482,7 @@ the symbol as a function, Emacs signals a @code{void-function} error.
|
|||
Note that void is not the same as @code{nil} or the symbol
|
||||
@code{void}. The symbols @code{nil} and @code{void} are Lisp objects,
|
||||
and can be stored into a function cell just as any other object can be
|
||||
(and they can be valid functions if you define them in turn with
|
||||
(and @code{void} can be a valid function if you define it with
|
||||
@code{defun}). A void function cell contains no object whatsoever.
|
||||
|
||||
You can test the voidness of a symbol's function definition with
|
||||
|
|
@ -1541,9 +1539,6 @@ is not a function, e.g., a keyboard macro (@pxref{Keyboard Macros}):
|
|||
If you wish to use @code{fset} to make an alternate name for a
|
||||
function, consider using @code{defalias} instead. @xref{Definition of
|
||||
defalias}.
|
||||
|
||||
If the resulting function definition chain would be circular, then
|
||||
Emacs will signal a @code{cyclic-function-indirection} error.
|
||||
@end defun
|
||||
|
||||
@node Closures
|
||||
|
|
@ -2631,12 +2626,6 @@ so the byte compiler can ignore calls whose value is ignored. This is
|
|||
the same as the @code{side-effect-free} property of the function's
|
||||
symbol, @pxref{Standard Properties}.
|
||||
|
||||
@item (important-return-value @var{val})
|
||||
If @var{val} is non-@code{nil}, the byte compiler will warn about
|
||||
calls to this function that do not use the returned value. This is the
|
||||
same as the @code{important-return-value} property of the function's
|
||||
symbol, @pxref{Standard Properties}.
|
||||
|
||||
@item (speed @var{n})
|
||||
Specify the value of @code{native-comp-speed} in effect for native
|
||||
compilation of this function (@pxref{Native-Compilation Variables}).
|
||||
|
|
|
|||
|
|
@ -989,29 +989,3 @@ in the function group to insert the function into.
|
|||
If @var{group} doesn't exist, it will be created. If @var{section}
|
||||
doesn't exist, it will be added to the end of the function group.
|
||||
@end defun
|
||||
|
||||
You can also query the examples of use of functions defined in
|
||||
shortdoc groups.
|
||||
|
||||
@defun shortdoc-function-examples function
|
||||
This function returns all shortdoc examples for @var{function}. The
|
||||
return value is an alist with items of the form
|
||||
@w{@code{(@var{group} . @var{examples})}}, where @var{group} is a
|
||||
documentation group where @var{function} appears, and @var{examples}
|
||||
is a string with the examples of @var{function}s use as defined in
|
||||
@var{group}.
|
||||
|
||||
@code{shortdoc-function-examples} returns @code{nil} if @var{function}
|
||||
is not a function or if it doesn't have any shortdoc examples.
|
||||
@end defun
|
||||
|
||||
@vindex help-fns-describe-function-functions
|
||||
@defun shortdoc-help-fns-examples-function function
|
||||
This function queries the registered shortdoc groups and inserts
|
||||
examples of use of a given Emacs Lisp @var{function} into the current
|
||||
buffer. It is suitable for addition to the
|
||||
@code{help-fns-describe-function-functions} hook, in which case
|
||||
examples from shortdoc of using a function will be displayed in the
|
||||
@file{*Help*} buffer when the documentation of the function is
|
||||
requested.
|
||||
@end defun
|
||||
|
|
|
|||
|
|
@ -735,15 +735,14 @@ Emacs session.
|
|||
@section C Dialect
|
||||
@cindex C programming language
|
||||
|
||||
The C part of Emacs is portable to C99 or later: later C features such
|
||||
as @samp{<stdckdint.h>} and @samp{[[noreturn]]} are not used without a check,
|
||||
The C part of Emacs is portable to C99 or later: C11-specific features such
|
||||
as @samp{<stdalign.h>} and @samp{_Noreturn} are not used without a check,
|
||||
typically at configuration time, and the Emacs build procedure
|
||||
provides a substitute implementation if necessary. Some later features,
|
||||
provides a substitute implementation if necessary. Some C11 features,
|
||||
such as anonymous structures and unions, are too difficult to emulate,
|
||||
so they are avoided entirely.
|
||||
|
||||
At some point in the future the base C dialect will no doubt change to
|
||||
something later than C99.
|
||||
At some point in the future the base C dialect will no doubt change to C11.
|
||||
|
||||
@node Writing Emacs Primitives
|
||||
@section Writing Emacs Primitives
|
||||
|
|
@ -898,17 +897,15 @@ Currently, only the following attributes are recognized:
|
|||
@table @code
|
||||
@item noreturn
|
||||
Declares the C function as one that never returns. This corresponds
|
||||
to C23's @code{[[noreturn]]}, to C11's @code{_Noreturn}, and to GCC's
|
||||
@w{@code{__attribute__ ((__noreturn__))}} (@pxref{Function
|
||||
Attributes,,, gcc, Using the GNU Compiler Collection}). (Internally,
|
||||
Emacs's own C code uses @code{_Noreturn} as it can be defined as a
|
||||
macro on C platforms that do not support it.)
|
||||
to the C11 keyword @code{_Noreturn} and to @w{@code{__attribute__
|
||||
((__noreturn__))}} attribute of GCC (@pxref{Function Attributes,,,
|
||||
gcc, Using the GNU Compiler Collection}).
|
||||
|
||||
@item const
|
||||
Declares that the function does not examine any values except its
|
||||
arguments, and has no effects except the return value. This
|
||||
corresponds to C23's @code{[[unsequenced]]} and to GCC's
|
||||
@w{@code{__attribute__ ((__const__))}}.
|
||||
corresponds to @w{@code{__attribute__ ((__const__))}} attribute of
|
||||
GCC.
|
||||
|
||||
@item noinline
|
||||
This corresponds to @w{@code{__attribute__ ((__noinline__))}}
|
||||
|
|
|
|||
|
|
@ -705,7 +705,7 @@ same way.
|
|||
Normally, when @var{tree} is anything other than a cons cell,
|
||||
@code{copy-tree} simply returns @var{tree}. However, if @var{vecp} is
|
||||
non-@code{nil}, it copies vectors too (and operates recursively on
|
||||
their elements). This function cannot cope with circular lists.
|
||||
their elements).
|
||||
@end defun
|
||||
|
||||
@defun flatten-tree tree
|
||||
|
|
@ -1224,15 +1224,7 @@ x
|
|||
@end example
|
||||
|
||||
However, the other arguments (all but the last) should be mutable
|
||||
lists. They can be dotted lists, whose last @sc{cdr}s are then
|
||||
replaced with the next argument:
|
||||
|
||||
@example
|
||||
@group
|
||||
(nconc (cons 1 2) (cons 3 (cons 4 5)) 'z)
|
||||
@result{} (1 3 4 . z)
|
||||
@end group
|
||||
@end example
|
||||
lists.
|
||||
|
||||
A common pitfall is to use a constant list as a non-last argument to
|
||||
@code{nconc}. If you do this, the resulting behavior is undefined
|
||||
|
|
|
|||
|
|
@ -2233,12 +2233,10 @@ minibuffer. It returns @code{t} if the user enters @samp{yes},
|
|||
@code{nil} if the user types @samp{no}. The user must type @key{RET} to
|
||||
finalize the response. Upper and lower case are equivalent.
|
||||
|
||||
@vindex yes-or-no-prompt
|
||||
@code{yes-or-no-p} starts by displaying @var{prompt} in the
|
||||
minibuffer, followed by the value of @code{yes-or-no-prompt} @w{(default
|
||||
@samp{(yes or no) })}. The user must type one of the expected
|
||||
responses; otherwise, the function responds @w{@samp{Please answer yes or
|
||||
no.}}, waits about two seconds and repeats the request.
|
||||
@code{yes-or-no-p} starts by displaying @var{prompt} in the minibuffer,
|
||||
followed by @w{@samp{(yes or no) }}. The user must type one of the
|
||||
expected responses; otherwise, the function responds @samp{Please answer
|
||||
yes or no.}, waits about two seconds and repeats the request.
|
||||
|
||||
@code{yes-or-no-p} requires more work from the user than
|
||||
@code{y-or-n-p} and is appropriate for more crucial decisions.
|
||||
|
|
|
|||
|
|
@ -2398,7 +2398,6 @@ specifies addition of text properties.
|
|||
|
||||
@node %-Constructs
|
||||
@subsection @code{%}-Constructs in the Mode Line
|
||||
@cindex @code{%}-constructs in the mode line
|
||||
|
||||
Strings used as mode line constructs can use certain
|
||||
@code{%}-constructs to substitute various kinds of data. The
|
||||
|
|
@ -2489,9 +2488,6 @@ The mnemonics of keyboard, terminal, and buffer coding systems.
|
|||
@item %Z
|
||||
Like @samp{%z}, but including the end-of-line format.
|
||||
|
||||
@item %&
|
||||
@samp{*} if the buffer is modified, and @samp{-} otherwise.
|
||||
|
||||
@item %*
|
||||
@samp{%} if the buffer is read only (see @code{buffer-read-only}); @*
|
||||
@samp{*} if the buffer is modified (see @code{buffer-modified-p}); @*
|
||||
|
|
@ -2503,6 +2499,9 @@ Like @samp{%z}, but including the end-of-line format.
|
|||
@samp{-} otherwise. This differs from @samp{%*} only for a modified
|
||||
read-only buffer. @xref{Buffer Modification}.
|
||||
|
||||
@item %&
|
||||
@samp{*} if the buffer is modified, and @samp{-} otherwise.
|
||||
|
||||
@item %@@
|
||||
@samp{@@} if the buffer's @code{default-directory} (@pxref{File Name
|
||||
Expansion}) is on a remote machine, and @samp{-} otherwise.
|
||||
|
|
|
|||
|
|
@ -1279,33 +1279,13 @@ This function returns the real @acronym{UID} of the user.
|
|||
This function returns the effective @acronym{UID} of the user.
|
||||
@end defun
|
||||
|
||||
@defun file-user-uid
|
||||
This function returns the connection-local value for the user's
|
||||
effective @acronym{UID}. If @code{default-directory} is local, this
|
||||
is equivalent to @code{user-uid}, but for remote files (@pxref{Remote
|
||||
Files, , , emacs, The GNU Emacs Manual}), it will return the
|
||||
@acronym{UID} for the user associated with that remote connection; if
|
||||
the remote connection has no associated user, it will instead return
|
||||
-1.
|
||||
@end defun
|
||||
|
||||
@cindex GID
|
||||
@defun group-real-gid
|
||||
This function returns the real @acronym{GID} of the Emacs process.
|
||||
@end defun
|
||||
|
||||
@defun group-gid
|
||||
This function returns the effective @acronym{GID} of the Emacs process.
|
||||
@end defun
|
||||
|
||||
@defun file-group-gid
|
||||
This function returns the connection-local value for the user's
|
||||
effective @acronym{GID}. Similar to @code{file-user-uid}, if
|
||||
@code{default-directory} is local, this is equivalent to
|
||||
@code{group-gid}, but for remote files (@pxref{Remote Files, , ,
|
||||
emacs, The GNU Emacs Manual}), it will return the @acronym{GID} for
|
||||
the user associated with that remote connection; if the remote
|
||||
connection has no associated user, it will instead return -1.
|
||||
@defun group-real-gid
|
||||
This function returns the real @acronym{GID} of the Emacs process.
|
||||
@end defun
|
||||
|
||||
@defun system-users
|
||||
|
|
|
|||
|
|
@ -849,53 +849,6 @@ Each node in the returned tree looks like
|
|||
|
||||
@heading More convenience functions
|
||||
|
||||
@defun treesit-node-get node instructions
|
||||
This is a convenience function that chains together multiple node
|
||||
accessor functions together. For example, to get @var{node}'s
|
||||
parent's next sibling's second child's text:
|
||||
|
||||
@example
|
||||
@group
|
||||
(treesit-node-get node
|
||||
'((parent 1)
|
||||
(sibling 1 nil)
|
||||
(child 1 nil)
|
||||
(text nil)))
|
||||
@end group
|
||||
@end example
|
||||
|
||||
@var{instruction} is a list of INSTRUCTIONs of the form
|
||||
@w{@code{(@var{fn} @var{arg}...)}}. The following @var{fn}'s are
|
||||
supported:
|
||||
|
||||
@table @code
|
||||
@item (child @var{idx} @var{named})
|
||||
Get the @var{idx}'th child.
|
||||
|
||||
@item (parent @var{n})
|
||||
Go to parent @var{n} times.
|
||||
|
||||
@item (field-name)
|
||||
Get the field name of the current node.
|
||||
|
||||
@item (type)
|
||||
Get the type of the current node.
|
||||
|
||||
@item (text @var{no-property})
|
||||
Get the text of the current node.
|
||||
|
||||
@item (children @var{named})
|
||||
Get a list of children.
|
||||
|
||||
@item (sibling @var{step} @var{named})
|
||||
Get the nth prev/next sibling, negative @var{step} means prev sibling,
|
||||
positive means next sibling.
|
||||
@end table
|
||||
|
||||
Note that arguments like @var{named} and @var{no-property} can't be
|
||||
omitted, unlike in their original functions.
|
||||
@end defun
|
||||
|
||||
@defun treesit-filter-child node predicate &optional named
|
||||
This function finds immediate children of @var{node} that satisfy
|
||||
@var{predicate}.
|
||||
|
|
@ -1358,8 +1311,7 @@ matches regular expression @var{regexp}. Matching is case-sensitive.
|
|||
|
||||
@deffn Predicate pred fn &rest nodes
|
||||
Matches if function @var{fn} returns non-@code{nil} when passed each
|
||||
node in @var{nodes} as arguments. The function runs with the current
|
||||
buffer set to the buffer of node being queried.
|
||||
node in @var{nodes} as arguments.
|
||||
@end deffn
|
||||
|
||||
Note that a predicate can only refer to capture names that appear in
|
||||
|
|
|
|||
|
|
@ -858,40 +858,6 @@ top-level defuns, if the value is @code{nested}, navigation functions
|
|||
recognize nested defuns.
|
||||
@end defvar
|
||||
|
||||
@defvar treesit-sentence-type-regexp
|
||||
The value of this variable is a regexp matching the node type of sentence
|
||||
nodes. (For ``node'' and ``node type'', @pxref{Parsing Program Source}.)
|
||||
@end defvar
|
||||
|
||||
@findex treesit-forward-sentence
|
||||
@findex forward-sentence
|
||||
@findex backward-sentence
|
||||
If Emacs is compiled with tree-sitter, it can use the tree-sitter
|
||||
parser information to move across syntax constructs. Since what
|
||||
exactly is considered a sentence varies between languages, a major
|
||||
mode should set @code{treesit-sentence-type-regexp} to determine that.
|
||||
Then the mode can get navigation-by-sentence functionality for free,
|
||||
by using @code{forward-sentence} and
|
||||
@code{backward-sentence}(@pxref{Moving by Sentences,,, emacs, The
|
||||
extensible self-documenting text editor}).
|
||||
|
||||
@defvar treesit-sexp-type-regexp
|
||||
The value of this variable is a regexp matching the node type of sexp
|
||||
nodes. (For ``node'' and ``node type'', @pxref{Parsing Program
|
||||
Source}.)
|
||||
@end defvar
|
||||
|
||||
@findex treesit-forward-sexp
|
||||
@findex forward-sexp@r{, and tree-sitter}
|
||||
@findex backward-sexp@r{, and tree-sitter}
|
||||
If Emacs is compiled with tree-sitter, it can use the tree-sitter
|
||||
parser information to move across syntax constructs. Since what
|
||||
exactly is considered a sexp varies between languages, a major mode
|
||||
should set @code{treesit-sexp-type-regexp} to determine that. Then
|
||||
the mode can get navigation-by-sexp functionality for free, by using
|
||||
@code{forward-sexp} and @code{backward-sexp}(@pxref{Moving by
|
||||
Sentences,,, emacs, The extensible self-documenting text editor}).
|
||||
|
||||
@node Skipping Characters
|
||||
@subsection Skipping Characters
|
||||
@cindex skipping characters
|
||||
|
|
|
|||
|
|
@ -643,12 +643,6 @@ ignore a call whose value is unused. If the property's value is
|
|||
calls. In addition to byte compiler optimizations, this property is
|
||||
also used for determining function safety (@pxref{Function Safety}).
|
||||
|
||||
@item important-return-value
|
||||
@cindex @code{important-return-value} property
|
||||
A non-@code{nil} value makes the byte compiler warn about code that
|
||||
calls the named function without using its returned value. This is
|
||||
useful for functions where doing so is likely to be a mistake.
|
||||
|
||||
@item undo-inhibit-region
|
||||
If non-@code{nil}, the named function prevents the @code{undo} operation
|
||||
from being restricted to the active region, if @code{undo} is invoked
|
||||
|
|
|
|||
|
|
@ -2561,9 +2561,6 @@ documentation as @var{base-variable} has, if any, unless
|
|||
the documentation of the variable at the end of the chain of aliases.
|
||||
|
||||
This function returns @var{base-variable}.
|
||||
|
||||
If the resulting variable definition chain would be circular, then
|
||||
Emacs will signal a @code{cyclic-variable-indirection} error.
|
||||
@end defun
|
||||
|
||||
Variable aliases are convenient for replacing an old name for a
|
||||
|
|
@ -2612,6 +2609,9 @@ look like:
|
|||
This function returns the variable at the end of the chain of aliases
|
||||
of @var{variable}. If @var{variable} is not a symbol, or if @var{variable} is
|
||||
not defined as an alias, the function returns @var{variable}.
|
||||
|
||||
This function signals a @code{cyclic-variable-indirection} error if
|
||||
there is a loop in the chain of symbols.
|
||||
@end defun
|
||||
|
||||
@example
|
||||
|
|
|
|||
|
|
@ -11042,8 +11042,7 @@ the year even for older dates. The customizable variable
|
|||
have Calc's date forms switch from the Julian to Gregorian calendar at
|
||||
any specified date.
|
||||
|
||||
A few platforms support leap seconds, such as the time stamp
|
||||
1972-06-30 23:59:60 UTC, an extra second appended to June 1972.
|
||||
Today's timekeepers introduce an occasional ``leap second''.
|
||||
These do not occur regularly and Calc does not take these minor
|
||||
effects into account. (If it did, it would have to report a
|
||||
non-integer number of days between, say,
|
||||
|
|
@ -17343,12 +17342,8 @@ it can be a variable which is a time zone name in upper- or lower-case.
|
|||
For example @samp{tzone(PST) = tzone(8)} and @samp{tzone(pdt) = tzone(7)}
|
||||
(for Pacific standard and daylight saving times, respectively).
|
||||
|
||||
North American and European time zone names are defined as follows.
|
||||
These names are obsolescent and new code should not rely on them:
|
||||
the @samp{YST}-related names have disagreed with time in Yukon since 1973,
|
||||
and other names could well become confusing or wrong in the future
|
||||
as countries change their time zone rules.
|
||||
For each time zone there is one name for standard time,
|
||||
North American and European time zone names are defined as follows;
|
||||
note that for each time zone there is one name for standard time,
|
||||
another for daylight saving time, and a third for ``generalized'' time
|
||||
in which the daylight saving adjustment is computed from context.
|
||||
|
||||
|
|
@ -17370,7 +17365,7 @@ To define time zone names that do not appear in the above table,
|
|||
you must modify the Lisp variable @code{math-tzone-names}. This
|
||||
is a list of lists describing the different time zone names; its
|
||||
structure is best explained by an example. The three entries for
|
||||
circa-2022 US Pacific Time look like this:
|
||||
Pacific Time look like this:
|
||||
|
||||
@smallexample
|
||||
@group
|
||||
|
|
|
|||
|
|
@ -330,7 +330,6 @@ Syntactic Symbols
|
|||
* Multiline Macro Symbols::
|
||||
* Objective-C Method Symbols::
|
||||
* Java Symbols::
|
||||
* Constraint Symbols::
|
||||
* Statement Block Symbols::
|
||||
* K&R Symbols::
|
||||
|
||||
|
|
@ -4235,9 +4234,6 @@ The first line in a ``topmost'' definition. @ref{Function Symbols}.
|
|||
Topmost definition continuation lines. This is only used in the parts
|
||||
that aren't covered by other symbols such as @code{func-decl-cont} and
|
||||
@code{knr-argdecl}. @ref{Function Symbols}.
|
||||
@item constraint-cont
|
||||
Continuation line of a topmost C++20 concept or requires clause.
|
||||
@ref{Constraint Symbols}.
|
||||
@item annotation-top-cont
|
||||
Topmost definition continuation lines where all previous items are
|
||||
annotations. @ref{Java Symbols}.
|
||||
|
|
@ -4401,7 +4397,6 @@ Java. @ref{Java Symbols}.
|
|||
* Multiline Macro Symbols::
|
||||
* Objective-C Method Symbols::
|
||||
* Java Symbols::
|
||||
* Constraint Symbols::
|
||||
* Statement Block Symbols::
|
||||
* K&R Symbols::
|
||||
@end menu
|
||||
|
|
@ -5075,39 +5070,6 @@ the current line. Similarly, line 4 is assigned the @code{annotation-var-cont}
|
|||
syntax due to it being a continuation of a variable declaration where preceding
|
||||
the declaration is an annotation.
|
||||
|
||||
@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
@node Constraint Symbols
|
||||
@subsection C++ Constraint Symbols
|
||||
@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
The C++20 standard introduced the notion of @dfn{concepts} and
|
||||
@dfn{requirements}, a typical instance of which looks something like
|
||||
this:
|
||||
|
||||
@example
|
||||
1: template <typename T>
|
||||
2: requires
|
||||
3: requires (T t) @{
|
||||
4: @{ ++t; @}
|
||||
5: @}
|
||||
6: && std::is_integral<T>
|
||||
7: int foo();
|
||||
@end example
|
||||
|
||||
@ssindex constraint-cont
|
||||
Line 1 is assigned the familiar @code{topmost-intro}. Line 2 gets
|
||||
@code{topmost-intro-cont}, being the keyword which introduces a
|
||||
@dfn{requires clause}. Lines 3, 6, and 7 are assigned the syntax
|
||||
@code{constraint-cont}, being continuations of the requires clause
|
||||
started on line 2. Lines 4 and 5 get the syntaxes
|
||||
@code{defun-block-intro} and @code{defun-close}, being analyzed as
|
||||
though part of a function.
|
||||
|
||||
Note that the @code{requires} on Line 3 begins a @dfn{requires
|
||||
expression}, not a a requires clause, hence its components are not
|
||||
assigned @code{constraint-cont}. See
|
||||
@url{https://en.cppreference.com/w/cpp/language/requires}.
|
||||
|
||||
@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
@node Statement Block Symbols
|
||||
@subsection Statement Block Symbols
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
@c %**start of header
|
||||
@setfilename ../../info/erc.info
|
||||
@settitle ERC Manual
|
||||
@set ERCVER 5.5
|
||||
@set ERCVER 5.5.0.29.1
|
||||
@set ERCDIST as distributed with Emacs @value{EMACSVER}
|
||||
@include docstyle.texi
|
||||
@syncodeindex fn cp
|
||||
|
|
@ -952,7 +952,7 @@ Here, ``password'' refers to your account password, which is usually
|
|||
your @samp{NickServ} password. To make this work, customize
|
||||
@code{erc-sasl-user} and @code{erc-sasl-password} or specify the
|
||||
@code{:user} and @code{:password} keyword arguments when invoking
|
||||
@code{erc-tls}.
|
||||
@code{erc-tls}. Note that @code{:user} cannot be given interactively.
|
||||
|
||||
@item @code{external} (via Client TLS Certificate)
|
||||
This works in conjunction with the @code{:client-certificate} keyword
|
||||
|
|
|
|||
|
|
@ -418,9 +418,9 @@ alias (@pxref{Aliases}). Example:
|
|||
@example
|
||||
~ $ which sudo
|
||||
eshell/sudo is a compiled Lisp function in `em-tramp.el'.
|
||||
~ $ alias sudo '*sudo $@@*'
|
||||
~ $ alias sudo '*sudo $*'
|
||||
~ $ which sudo
|
||||
sudo is an alias, defined as "*sudo $@@*"
|
||||
sudo is an alias, defined as "*sudo $*"
|
||||
@end example
|
||||
|
||||
Some of the built-in commands have different behavior from their
|
||||
|
|
@ -540,7 +540,7 @@ Manual}.
|
|||
|
||||
If @code{eshell-plain-diff-behavior} is non-@code{nil}, then this
|
||||
command does not use Emacs's internal @code{diff}. This is the same
|
||||
as using @samp{alias diff '*diff $@@*'}.
|
||||
as using @samp{alias diff '*diff $*'}.
|
||||
|
||||
@item dirname
|
||||
@cmindex dirname
|
||||
|
|
@ -602,8 +602,6 @@ disabled by default.
|
|||
@cmindex egrep
|
||||
@itemx fgrep
|
||||
@cmindex fgrep
|
||||
@itemx rgrep
|
||||
@cmindex rgrep
|
||||
@itemx glimpse
|
||||
@cmindex glimpse
|
||||
The @command{grep} commands are compatible with GNU @command{grep},
|
||||
|
|
@ -612,9 +610,9 @@ but use Emacs's internal @code{grep} instead.
|
|||
|
||||
If @code{eshell-plain-grep-behavior} is non-@code{nil}, then these
|
||||
commands do not use Emacs's internal @code{grep}. This is the same as
|
||||
using @samp{alias grep '*grep $@@*'}, though this setting applies to
|
||||
all of the built-in commands for which you would need to create a
|
||||
separate alias.
|
||||
using @samp{alias grep '*grep $*'}, though this setting applies to all
|
||||
of the built-in commands for which you would need to create a separate
|
||||
alias.
|
||||
|
||||
@item history
|
||||
@cmindex history
|
||||
|
|
@ -670,7 +668,7 @@ Alias to Emacs's @code{locate} function, which simply runs the external
|
|||
|
||||
If @code{eshell-plain-locate-behavior} is non-@code{nil}, then Emacs's
|
||||
internal @code{locate} is not used. This is the same as using
|
||||
@samp{alias locate '*locate $@@*'}.
|
||||
@samp{alias locate '*locate $*'}.
|
||||
|
||||
@item ls
|
||||
@cmindex ls
|
||||
|
|
@ -1049,21 +1047,12 @@ whenever you change the current directory to a different host
|
|||
the value will automatically update to reflect the search path on that
|
||||
host.
|
||||
|
||||
@vindex $UID
|
||||
@item $UID
|
||||
This returns the effective @acronym{UID} for the current user. This
|
||||
variable is connection-aware, so when the current directory is remote,
|
||||
its value will be @acronym{UID} for the user associated with that
|
||||
remote connection.
|
||||
|
||||
@vindex $_
|
||||
@item $_
|
||||
This refers to the last argument of the last command. With a
|
||||
subscript, you can access any argument of the last command. For
|
||||
example, @samp{$_[1]} refers to the second argument of the last
|
||||
command (excluding the command name itself). To get all arguments of
|
||||
the last command, you can use an index range like @samp{$_[..]}
|
||||
(@pxref{Dollars Expansion}).
|
||||
command (excluding the command name itself).
|
||||
|
||||
@vindex $$
|
||||
@item $$
|
||||
|
|
@ -1089,7 +1078,6 @@ that are currently visible in the Eshell window. They are both
|
|||
copied to the environment, so external commands invoked from
|
||||
Eshell can consult them to do the right thing.
|
||||
|
||||
@vindex $INSIDE_EMACS
|
||||
@item $INSIDE_EMACS
|
||||
This variable indicates to external commands that they are being
|
||||
invoked from within Emacs so they can adjust their behavior if
|
||||
|
|
@ -1103,47 +1091,24 @@ necessary. Its value is @code{@var{emacs-version},eshell}.
|
|||
@node Aliases
|
||||
@section Aliases
|
||||
|
||||
@findex eshell-read-aliases-list
|
||||
Aliases are commands that expand to a longer input line. For example,
|
||||
@command{ll} is a common alias for @code{ls -l}. To define this alias
|
||||
in Eshell, you can use the command invocation @kbd{alias ll 'ls -l
|
||||
$@@*'}; with this defined, running @samp{ll foo} in Eshell will
|
||||
actually run @samp{ls -l foo}. Aliases defined (or deleted) by the
|
||||
@command{alias} command are automatically written to the file named by
|
||||
@code{eshell-aliases-file}, which you can also edit directly. After
|
||||
doing so, use @w{@kbd{M-x eshell-read-aliases-list}} to load the
|
||||
edited aliases.
|
||||
|
||||
Note that unlike aliases in Bash, arguments must be handled
|
||||
explicitly. Within aliases, you can use the special variables
|
||||
@samp{$*}, @samp{$0}, @samp{$1}, @samp{$2}, etc. to refer to the
|
||||
arguments passed to the alias.
|
||||
|
||||
@table @code
|
||||
|
||||
@vindex $*
|
||||
@item $*
|
||||
This expands to the list of arguments passed to the alias. For
|
||||
example, if you run @code{my-alias 1 2 3}, then @samp{$*} would be the
|
||||
list @code{(1 2 3)}. Note that since this variable is a list, using
|
||||
@samp{$*} in an alias will pass this list as a single argument to the
|
||||
aliased command. Therefore, when defining an alias, you should
|
||||
usually use @samp{$@@*} to pass all arguments along, splicing them
|
||||
into your argument list (@pxref{Dollars Expansion}).
|
||||
Aliases are commands that expand to a longer input line. For example,
|
||||
@command{ll} is a common alias for @code{ls -l}, and would be defined
|
||||
with the command invocation @kbd{alias ll 'ls -l $*'}; with this defined,
|
||||
running @samp{ll foo} in Eshell will actually run @samp{ls -l foo}.
|
||||
Aliases defined (or deleted) by the @command{alias} command are
|
||||
automatically written to the file named by @code{eshell-aliases-file},
|
||||
which you can also edit directly (although you will have to manually
|
||||
reload it).
|
||||
|
||||
@vindex $0
|
||||
@item $0
|
||||
This expands to the name of the alias currently being executed.
|
||||
|
||||
@vindex $1, $2, @dots{}, $9
|
||||
@item $1, $2, @dots{}, $9
|
||||
These variables expand to the nth argument (starting at 1) passed to
|
||||
the alias. This lets you selectively use an alias's arguments, so
|
||||
@vindex $1, $2, @dots{}
|
||||
Note that unlike aliases in Bash, arguments must be handled
|
||||
explicitly. Typically the alias definition would end in @samp{$*} to
|
||||
pass all arguments along. More selective use of arguments via
|
||||
@samp{$1}, @samp{$2}, etc., is also possible. For example,
|
||||
@kbd{alias mcd 'mkdir $1 && cd $1'} would cause @kbd{mcd foo} to
|
||||
create and switch to a directory called @samp{foo}.
|
||||
|
||||
@end table
|
||||
|
||||
@node History
|
||||
@section History
|
||||
@cmindex history
|
||||
|
|
@ -1374,24 +1339,11 @@ index. The exact behavior depends on the type of @var{expr}'s value:
|
|||
@item a sequence
|
||||
Expands to the element at the (zero-based) index @var{i} of the
|
||||
sequence (@pxref{Sequences Arrays Vectors, Sequences, , elisp, The
|
||||
Emacs Lisp Reference Manual}). If @var{i} is negative, @var{i} counts
|
||||
from the end, so -1 refers to the last element of the sequence.
|
||||
|
||||
If @var{i} is a range like @code{@var{start}..@var{end}}, this expands
|
||||
to a subsequence from the indices @var{start} to @var{end}, where
|
||||
@var{end} is excluded@footnote{This behavior is different from ranges
|
||||
in Bash (where both the start and end are included in the range), but
|
||||
matches the behavior of similar Emacs Lisp functions, like
|
||||
@code{substring} (@pxref{Creating Strings, , , elisp, The Emacs Lisp
|
||||
Reference Manual}).}. @var{start} and/or @var{end} can also be
|
||||
omitted, which is equivalent to the start and/or end of the entire
|
||||
list. For example, @samp{$@var{expr}[-2..]} expands to the last two
|
||||
values of @var{expr}.
|
||||
Emacs Lisp Reference Manual}).
|
||||
|
||||
@item a string
|
||||
Split the string at whitespace, and then expand to the @var{i}th
|
||||
element of the resulting sequence. As above, @var{i} can be a range
|
||||
like @code{@var{start}..@var{end}}.
|
||||
element of the resulting sequence.
|
||||
|
||||
@item an alist
|
||||
If @var{i} is a non-numeric value, expand to the value associated with
|
||||
|
|
@ -1418,36 +1370,12 @@ to split the string. @var{regexp} can be any form other than a
|
|||
number. For example, @samp{$@var{var}[: 0]} will return the first
|
||||
element of a colon-delimited string.
|
||||
|
||||
@cindex length operator, in variable expansion
|
||||
@item $#@var{expr}
|
||||
This is the @dfn{length operator}. It expands to the length of the
|
||||
result of @var{expr}, an expression in one of the above forms. For
|
||||
example, @samp{$#@var{var}} returns the length of the variable
|
||||
@var{var} and @samp{$#@var{var}[0]} returns the length of the first
|
||||
element of @var{var}. Again, signals an error if the result of
|
||||
@var{expr} is not a string or a sequence.
|
||||
|
||||
@cindex splice operator, in variable expansion
|
||||
@item $@@@var{expr}
|
||||
This is the @dfn{splice operator}. It ``splices'' the elements of
|
||||
@var{expr} (an expression of one of the above forms) into the
|
||||
resulting list of arguments, much like the @samp{,@@} marker in Emacs
|
||||
Lisp (@pxref{Backquote, , , elisp, The Emacs Lisp Reference Manual}).
|
||||
The elements of @var{expr} become arguments at the same level as the
|
||||
other arguments around it. For example, if @var{numbers} is the list
|
||||
@code{(1 2 3)}, then:
|
||||
|
||||
@example
|
||||
@group
|
||||
~ $ echo 0 $numbers
|
||||
(0
|
||||
(1 2 3))
|
||||
@end group
|
||||
@group
|
||||
~ $ echo 0 $@@numbers
|
||||
(0 1 2 3)
|
||||
@end group
|
||||
@end example
|
||||
Expands to the length of the result of @var{expr}, an expression in
|
||||
one of the above forms. For example, @samp{$#@var{var}} returns the
|
||||
length of the variable @var{var} and @samp{$#@var{var}[0]} returns the
|
||||
length of the first element of @var{var}. Again, signals an error if
|
||||
the result of @var{expr} is not a string or a sequence.
|
||||
|
||||
@end table
|
||||
|
||||
|
|
@ -2166,7 +2094,7 @@ Allow for a Bash-compatible syntax, such as:
|
|||
|
||||
@example
|
||||
alias arg=blah
|
||||
function arg () @{ blah $@@* @}
|
||||
function arg () @{ blah $* @}
|
||||
@end example
|
||||
|
||||
@item Pcomplete sometimes gets stuck
|
||||
|
|
@ -2191,6 +2119,8 @@ Hitting space during a process invocation, such as @command{make}, will
|
|||
cause it to track the bottom of the output; but backspace no longer
|
||||
scrolls back.
|
||||
|
||||
@item It's not possible to fully @code{unload-feature} Eshell
|
||||
|
||||
@item Menu support was removed, but never put back
|
||||
|
||||
@item If an interactive process is currently running, @kbd{M-!} doesn't work
|
||||
|
|
@ -2249,6 +2179,11 @@ So that @kbd{M-@key{DEL}} acts in a predictable manner, etc.
|
|||
|
||||
@item Allow all Eshell buffers to share the same history and list-dir
|
||||
|
||||
@item There is a problem with script commands that output to @file{/dev/null}
|
||||
|
||||
If a script file, somewhere in the middle, uses @samp{> /dev/null},
|
||||
output from all subsequent commands is swallowed.
|
||||
|
||||
@item Split up parsing of text after @samp{$} in @file{esh-var.el}
|
||||
|
||||
Make it similar to the way that @file{esh-arg.el} is structured.
|
||||
|
|
@ -2457,6 +2392,13 @@ current being used.
|
|||
|
||||
This way, the user could change it to use rc syntax: @samp{>[2=1]}.
|
||||
|
||||
@item Allow @samp{$_[-1]}, which would indicate the last element of the array
|
||||
|
||||
@item Make @samp{$x[*]} equal to listing out the full contents of @samp{x}
|
||||
|
||||
Return them as a list, so that @samp{$_[*]} is all the arguments of the
|
||||
last command.
|
||||
|
||||
@item Copy ANSI code handling from @file{term.el} into @file{em-term.el}
|
||||
|
||||
Make it possible for the user to send char-by-char to the underlying
|
||||
|
|
|
|||
|
|
@ -92,10 +92,9 @@ searched via @code{eww-search-prefix}. The default search engine is
|
|||
either prefix the file name with @code{file://} or use the command
|
||||
@kbd{M-x eww-open-file}.
|
||||
|
||||
If you invoke @code{eww} or @code{eww-open-file} with a prefix
|
||||
argument, as in @w{@kbd{C-u M-x eww}}, they will create a new EWW
|
||||
buffer instead of reusing the default one, which is normally called
|
||||
@file{*eww*}.
|
||||
If you invoke @code{eww} with a prefix argument, as in @w{@kbd{C-u
|
||||
M-x eww}}, it will create a new EWW buffer instead of reusing the
|
||||
default one, which is normally called @file{*eww*}.
|
||||
|
||||
@findex eww-quit
|
||||
@findex eww-reload
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
\input texinfo @c -*- mode: texinfo; coding: utf-8 -*-
|
||||
@comment %**start of header
|
||||
@setfilename ../../info/flymake.info
|
||||
@set VERSION 1.3.4
|
||||
@set UPDATED April 2023
|
||||
@set VERSION 1.2.2
|
||||
@set UPDATED November 2021
|
||||
@settitle GNU Flymake @value{VERSION}
|
||||
@include docstyle.texi
|
||||
@syncodeindex pg cp
|
||||
|
|
@ -142,12 +142,6 @@ highlighted regions to learn what the specific problem
|
|||
is. Alternatively, place point on the highlighted regions and use the
|
||||
commands @code{eldoc} or @code{display-local-help}.
|
||||
|
||||
Another easy way to get instant access to the diagnostic text is to
|
||||
set @code{flymake-show-diagnostics-at-end-of-line} to a non-@code{nil}
|
||||
value. This makes the diagnostic messages appear at the end of the
|
||||
line where the regular annotation is located (@pxref{Customizable
|
||||
variables})
|
||||
|
||||
@cindex next and previous diagnostic
|
||||
If the diagnostics are outside the visible region of the buffer,
|
||||
@code{flymake-goto-next-error} and @code{flymake-goto-prev-error} are
|
||||
|
|
@ -320,22 +314,6 @@ Which fringe (if any) should show the warning/error bitmaps.
|
|||
@item flymake-wrap-around
|
||||
If non-@code{nil}, moving to errors with @code{flymake-goto-next-error} and
|
||||
@code{flymake-goto-prev-error} wraps around buffer boundaries.
|
||||
|
||||
@item flymake-show-diagnostics-at-end-of-line
|
||||
If non-@code{nil}, show summarized descriptions of diagnostics at the
|
||||
end of the line. Depending on your preference, this can either be
|
||||
distracting and easily confused with actual code, or a significant
|
||||
early aid that relieves you from moving around or reaching for the
|
||||
mouse to consult an error message.
|
||||
|
||||
@item flymake-error-eol
|
||||
A custom face for summarizing diagnostic error messages.
|
||||
|
||||
@item flymake-warning-eol
|
||||
A custom face for summarizing diagnostic warning messages.
|
||||
|
||||
@item flymake-note-eol
|
||||
A custom face for summarizing diagnostic notes.
|
||||
@end vtable
|
||||
|
||||
@node Extending Flymake
|
||||
|
|
@ -416,7 +394,7 @@ its @code{flymake-overlay-control} property:
|
|||
|
||||
@item
|
||||
@cindex severity of diagnostic
|
||||
@code{severity} is a non-negative integer specifying the
|
||||
@code{flymake-severity} is a non-negative integer specifying the
|
||||
diagnostic's severity. The higher the value, the more serious is the
|
||||
error. If the overlay property @code{priority} is not specified in
|
||||
@code{flymake-overlay-control}, @code{flymake-severity} is used to set
|
||||
|
|
@ -431,17 +409,6 @@ type, in case the name of the symbol associated with it is very long.
|
|||
@vindex flymake-category
|
||||
@code{flymake-category} is a symbol whose property list is considered
|
||||
the default for missing values of any other properties.
|
||||
|
||||
@item
|
||||
@cindex mode-line appearance of a diagnostic
|
||||
@code{mode-line-face} is a face specifier controlling the appearance
|
||||
of the indicator of this type of diagnostic in the mode line.
|
||||
|
||||
@item
|
||||
@cindex summarized appearance of a diagnostic
|
||||
@code{echo-face} is a face specifier controlling the appearance of the
|
||||
summarized description of this diagnostic when reading diagnostic
|
||||
messages (@pxref{Finding diagnostics}).
|
||||
@end itemize
|
||||
|
||||
@cindex predefined diagnostic types
|
||||
|
|
|
|||
|
|
@ -10528,9 +10528,9 @@ article (@code{gnus-summary-refer-references}).
|
|||
@kindex A T @r{(Summary)}
|
||||
Display the full thread where the current article appears
|
||||
(@code{gnus-summary-refer-thread}). By default this command looks for
|
||||
articles only in the current group. If the group belongs to a backend
|
||||
that has an associated search engine, articles are found by searching.
|
||||
In other cases each header in the current group must be fetched and
|
||||
articles only in the current group. Some backends (currently only
|
||||
@code{nnimap}) know how to find articles in the thread directly. In
|
||||
other cases each header in the current group must be fetched and
|
||||
examined, so it usually takes a while. If you do it often, you may
|
||||
consider setting @code{gnus-fetch-old-headers} to @code{invisible}
|
||||
(@pxref{Filling In Threads}). This won't have any visible effects
|
||||
|
|
@ -10538,22 +10538,19 @@ normally, but it'll make this command work a whole lot faster. Of
|
|||
course, it'll make group entry somewhat slow.
|
||||
|
||||
@vindex gnus-refer-thread-use-search
|
||||
If @code{gnus-refer-thread-use-search} is @code{nil} (the default)
|
||||
then thread-referral only looks for articles in the current group. If
|
||||
this variable is @code{t} the server to which the current group
|
||||
belongs is searched (provided that searching is available for the
|
||||
server's backend). If this variable is a list of servers, each server
|
||||
in the list is searched.
|
||||
If @code{gnus-refer-thread-use-search} is non-@code{nil} then those backends
|
||||
that know how to find threads directly will search not just in the
|
||||
current group but all groups on the same server.
|
||||
|
||||
@vindex gnus-refer-thread-limit
|
||||
The @code{gnus-refer-thread-limit} variable says how many old (i.e.,
|
||||
articles before the first displayed in the current group) headers to
|
||||
fetch when referring a thread. The default is 500. If @code{t}, all
|
||||
the available headers will be fetched. This variable can be
|
||||
overridden by giving the @kbd{A T} command a numerical prefix.
|
||||
fetch when doing this command. The default is 200. If @code{t}, all
|
||||
the available headers will be fetched. This variable can be overridden
|
||||
by giving the @kbd{A T} command a numerical prefix.
|
||||
|
||||
@vindex gnus-refer-thread-limit-to-thread
|
||||
@code{gnus-summary-refer-thread} tries to add any articles it finds to
|
||||
In most cases @code{gnus-refer-thread} adds any articles it finds to
|
||||
the current summary buffer. (When @code{gnus-refer-thread-use-search}
|
||||
is true and the initial referral starts from a summary buffer for a
|
||||
non-virtual group this may not be possible. In this case a new
|
||||
|
|
|
|||
|
|
@ -1948,9 +1948,11 @@ requires the @acronym{POP}-before-@acronym{SMTP} authentication.
|
|||
@cindex X-Message-SMTP-Method
|
||||
If you have a complex @acronym{SMTP} setup, and want some messages to
|
||||
go via one mail server, and other messages to go through another, you
|
||||
can use the @samp{X-Message-SMTP-Method} header to override the
|
||||
default by using the keyword @samp{smtp} followed by the server
|
||||
information:
|
||||
can use the @samp{X-Message-SMTP-Method} header. These are the
|
||||
supported values:
|
||||
|
||||
@table @samp
|
||||
@item smtpmail
|
||||
|
||||
@example
|
||||
X-Message-SMTP-Method: smtp smtp.fsf.org 587
|
||||
|
|
@ -1966,19 +1968,16 @@ This is the same as the above, but uses @samp{other-user} as the user
|
|||
name when authenticating. This is handy if you have several
|
||||
@acronym{SMTP} accounts on the same server.
|
||||
|
||||
This header may also be used to specify an alternative MTA by using a
|
||||
@samp{mailer} keyword, where @samp{mailer} is the name of an MTA with
|
||||
a corresponding @code{message-send-mail-with-'mailer'} function. For
|
||||
example:
|
||||
@item sendmail
|
||||
|
||||
@example
|
||||
X-Message-SMTP-Method: sendmail
|
||||
@end example
|
||||
|
||||
will send the message via the locally installed sendmail program. The
|
||||
recognized values of @samp{mailer} are sendmail, qmail, mh, and
|
||||
mailclient.
|
||||
This will send the message via the locally installed sendmail/exim/etc
|
||||
installation.
|
||||
|
||||
@end table
|
||||
|
||||
@item message-mh-deletable-headers
|
||||
@vindex message-mh-deletable-headers
|
||||
|
|
|
|||
|
|
@ -793,7 +793,7 @@ You should see the scan line for your message, and perhaps others. Use
|
|||
|
||||
@cartouche
|
||||
@smallexample
|
||||
3 t08/24 root received fax files on Wed Aug 24 11:00:13 -0700 1
|
||||
3 t08/24 root received fax files on Wed Aug 24 11:00:13 PDT 1
|
||||
# 4+t08/24 To:wohler Test<<This is a test message to get the wheels
|
||||
|
||||
-:%% @{+inbox/select@} 4 msgs (1-4) Bot L4 (MH-Folder Show)---------
|
||||
|
|
|
|||
|
|
@ -307,16 +307,11 @@ news ticker.
|
|||
|
||||
@findex newsticker-start-ticker
|
||||
@findex newsticker-stop-ticker
|
||||
@vindex newsticker-ticker-period
|
||||
Headlines can be displayed in the echo area, either scrolling like
|
||||
messages in a stock-quote ticker, or just changing. This can be
|
||||
started with the command @code{newsticker-start-ticker}. It can be
|
||||
stopped with @code{newsticker-stop-ticker}.
|
||||
|
||||
The ticker by default runs continuously. To only run it once, at a
|
||||
specific time interval, set the @code{newsticker-ticker-period}
|
||||
variable.
|
||||
|
||||
|
||||
@node Navigation
|
||||
@section Navigation
|
||||
|
|
@ -547,10 +542,8 @@ are shown in the echo area, i.e., the ``ticker''.
|
|||
@itemize
|
||||
@item
|
||||
@vindex newsticker-display-interval
|
||||
@vindex newsticker-ticker-period
|
||||
@vindex newsticker-scroll-smoothly
|
||||
@code{newsticker-ticker-interval},
|
||||
@code{newsticker-ticker-period}, and
|
||||
@code{newsticker-ticker-interval} and
|
||||
@code{newsticker-scroll-smoothly} define how headlines are shown in
|
||||
the echo area.
|
||||
@end itemize
|
||||
|
|
|
|||
|
|
@ -691,11 +691,11 @@ window is showing them), the mode line will now show you the abbreviated
|
|||
channel or nick name. Use @kbd{C-c C-@key{SPC}} to switch to these
|
||||
buffers.
|
||||
|
||||
@cindex rcirc-track-abbreviate-flag
|
||||
@cindex rcirc-track-abbrevate-flag
|
||||
By default the channel names are abbreviated, set
|
||||
@code{rcirc-track-abbreviate-flag} to a non-@code{nil} value. This
|
||||
might be interesting if the IRC activities are not tracked in the mode
|
||||
line, but somewhere else.
|
||||
@code{rcirc-track-abbrevate-flag} to a non-@code{nil} value. This might be
|
||||
interesting if the IRC activities are not tracked in the mode line,
|
||||
but somewhere else.
|
||||
|
||||
@vindex rcirc-mode-hook
|
||||
If you prefer not to load @code{rcirc} immediately, you can delay the
|
||||
|
|
|
|||
|
|
@ -404,7 +404,7 @@ from the alist with the @code{sc-mail-field} function. Thus, if the
|
|||
following fields were present in the original article:
|
||||
|
||||
@example
|
||||
Date:@: 08 Apr 1991 17:32:09 -0500
|
||||
Date:@: 08 April 1991, 17:32:09 EST
|
||||
Subject:@: Better get out your asbestos suit
|
||||
@end example
|
||||
|
||||
|
|
@ -415,7 +415,7 @@ then, the following lisp constructs return:
|
|||
|
||||
@example
|
||||
(sc-mail-field "date")
|
||||
==> "08 Apr 1991 17:32:09 -0500"
|
||||
==> "08 April 1991, 17:32:09 EST"
|
||||
|
||||
(sc-mail-field "subject")
|
||||
==> "Better get out your asbestos suit"
|
||||
|
|
|
|||
1080
doc/misc/texinfo.tex
|
|
@ -361,7 +361,7 @@ Another way is to follow the terminal session below:
|
|||
@example
|
||||
@group
|
||||
$ cd ~/emacs
|
||||
$ git clone https://git.savannah.gnu.org/git/tramp.git
|
||||
$ git clone git://git.savannah.gnu.org/tramp.git
|
||||
@end group
|
||||
@end example
|
||||
|
||||
|
|
@ -927,27 +927,6 @@ pod is used.
|
|||
|
||||
This method does not support user names.
|
||||
|
||||
@item @option{toolbox}
|
||||
@cindex method @option{toolbox}
|
||||
@cindex @option{toolbox} method
|
||||
|
||||
Integration of Toolbox system containers. The host name may be either
|
||||
a container's name or ID, as returned by @samp{toolbox list -c}.
|
||||
Without a host name, the default Toolbox container for the host will
|
||||
be used.
|
||||
|
||||
This method does not support user names.
|
||||
|
||||
@item @option{flatpak}
|
||||
@cindex method @option{flatpak}
|
||||
@cindex @option{flatpak} method
|
||||
|
||||
Integration of Flatpak sandboxes. The host name may be either an
|
||||
application ID, a sandbox instance ID, or a PID, as returned by
|
||||
@samp{flatpak ps}.
|
||||
|
||||
This method does not support user names.
|
||||
|
||||
@end table
|
||||
|
||||
|
||||
|
|
@ -2742,7 +2721,6 @@ entry, @option{Seconds between keepalives} option. Set this to 5.
|
|||
There is no counter which could be set.
|
||||
|
||||
|
||||
@anchor{Using ssh connection sharing}
|
||||
@subsection Using ssh connection sharing
|
||||
|
||||
@vindex ControlPath@r{, ssh option}
|
||||
|
|
@ -2772,33 +2750,20 @@ allows you to set the @option{ControlPath} provided the variable
|
|||
Note how @samp{%r}, @samp{%h} and @samp{%p} must be encoded as
|
||||
@samp{%%r}, @samp{%%h} and @samp{%%p}.
|
||||
|
||||
@vindex tramp-use-connection-share
|
||||
Using a predefined string in @code{tramp-ssh-controlmaster-options},
|
||||
or puzzling an own string, happens only when user option
|
||||
@code{tramp-use-connection-share} is set to @code{t}. If the
|
||||
@file{~/.ssh/config} file is configured appropriately for the above
|
||||
behavior, then any changes to @command{ssh} can be suppressed with
|
||||
this @code{nil} setting:
|
||||
@vindex tramp-use-ssh-controlmaster-options
|
||||
If the @file{~/.ssh/config} file is configured appropriately for the
|
||||
above behavior, then any changes to @command{ssh} can be suppressed
|
||||
with this @code{nil} setting:
|
||||
|
||||
@lisp
|
||||
(customize-set-variable 'tramp-use-connection-share nil)
|
||||
(customize-set-variable 'tramp-use-ssh-controlmaster-options nil)
|
||||
@end lisp
|
||||
|
||||
Sometimes, it is not possible to use OpenSSH's @option{ControlMaster}
|
||||
option for remote processes. This could result in concurrent access
|
||||
to the OpenSSH socket when reading data by different processes, which
|
||||
could block Emacs. In this case, setting
|
||||
@code{tramp-use-connection-share} to @code{suppress} disables shared
|
||||
access. It is not needed to set this user option permanently to
|
||||
@code{suppress}, binding the user option prior calling
|
||||
@code{make-process} is sufficient. @value{tramp} does this for
|
||||
esxample for compilation processes on its own.
|
||||
|
||||
@vindex ProxyCommand@r{, ssh option}
|
||||
@vindex ProxyJump@r{, ssh option}
|
||||
@code{tramp-use-connection-share} should also be set to @code{nil} or
|
||||
@code{suppress} if you use the @option{ProxyCommand} or
|
||||
@option{ProxyJump} options in your @command{ssh} configuration.
|
||||
This should also be set to @code{nil} if you use the
|
||||
@option{ProxyCommand} or @option{ProxyJump} options in your
|
||||
@command{ssh} configuration.
|
||||
|
||||
In order to use the @option{ControlMaster} option, @value{tramp} must
|
||||
check whether the @command{ssh} client supports this option. This is
|
||||
|
|
@ -2820,16 +2785,12 @@ Host *
|
|||
Check the @samp{ssh_config(5)} man page whether these options are
|
||||
supported on your proxy host.
|
||||
|
||||
On MS Windows, @code{tramp-use-connection-share} is set to @code{nil}
|
||||
by default, because the MS Windows and MSYS2 implementations of
|
||||
@command{OpenSSH} do not support this option properly.
|
||||
On MS Windows, @code{tramp-use-ssh-controlmaster-options} is set to
|
||||
@code{nil} by default, because the MS Windows and MSYS2
|
||||
implementations of @command{OpenSSH} do not support this option properly.
|
||||
|
||||
In PuTTY, you can achieve connection sharing in the
|
||||
@option{Connection/SSH} entry, enabling the @option{Share SSH
|
||||
connections if possible} option. @code{tramp-use-connection-share}
|
||||
must be set to @code{nil}. If @code{tramp-use-connection-share} is
|
||||
set to @code{t} or @code{suppress}, @command{plink} is called with the
|
||||
option @option{-share} or @option{-noshare}, respectively.
|
||||
In PuTTY, you can achieve connection sharing in the @option{Connection/SSH}
|
||||
entry, enabling the @option{Share SSH connections if possible} option.
|
||||
|
||||
|
||||
@subsection Configure direct copying between two remote servers
|
||||
|
|
@ -3213,11 +3174,6 @@ auto-saved files to the same directory as the original file.
|
|||
Alternatively, set the user option @code{tramp-auto-save-directory}
|
||||
to direct all auto saves to that location.
|
||||
|
||||
@c Since Emacs 30.
|
||||
@vindex remote-file-name-inhibit-auto-save
|
||||
If you want to suppress auto-saving of remote files at all, set user
|
||||
option @code{remote-file-name-inhibit-auto-save} to non-@code{nil}.
|
||||
|
||||
@c Since Emacs 29.
|
||||
@vindex remote-file-name-inhibit-auto-save-visited
|
||||
An alternative to @code{auto-save-mode} is
|
||||
|
|
@ -3516,7 +3472,12 @@ much more appropriate.
|
|||
|
||||
@value{tramp} can complete the following @value{tramp} file name
|
||||
components: method names, user names, host names, and file names
|
||||
located on remote hosts.
|
||||
located on remote hosts. User name and host name completion is
|
||||
activated only, if file name completion has one of the styles
|
||||
@code{basic}, @code{emacs21}, or @code{emacs22}.
|
||||
@ifinfo
|
||||
@xref{Completion Styles, , , emacs}.
|
||||
@end ifinfo
|
||||
|
||||
For example, type @kbd{C-x C-f @value{prefixwithspace} s @key{TAB}},
|
||||
@value{tramp} completion choices show up as
|
||||
|
|
@ -3550,7 +3511,10 @@ directory @file{/sbin} on your local host.
|
|||
Type @kbd{s h @value{postfixhop}} for the minibuffer completion to
|
||||
@samp{@value{prefix}ssh@value{postfixhop}}. Typing @kbd{@key{TAB}}
|
||||
shows host names @value{tramp} extracts from @file{~/.ssh/config}
|
||||
file, for example:
|
||||
@c bug#50387
|
||||
file, for example@footnote{Some completion styles, like
|
||||
@code{substring} or @code{flex}, require to type at least one
|
||||
character after the trailing @samp{@value{postfixhop}}.}.
|
||||
|
||||
@example
|
||||
@group
|
||||
|
|
@ -3978,12 +3942,12 @@ connection-local variables.
|
|||
|
||||
@vindex async-shell-command-width
|
||||
@vindex COLUMNS@r{, environment variable}
|
||||
@value{tramp} cares about the user option
|
||||
@code{async-shell-command-width} for asynchronous shell commands. It
|
||||
specifies the number of display columns for command output. For
|
||||
synchronous shell commands, a similar effect can be achieved by adding
|
||||
the environment variable @env{COLUMNS} to
|
||||
@code{tramp-remote-process-environment}.
|
||||
If Emacs supports the user option @code{async-shell-command-width}
|
||||
(since @w{Emacs 27}), @value{tramp} cares about its value for
|
||||
asynchronous shell commands. It specifies the number of display
|
||||
columns for command output. For synchronous shell commands, a similar
|
||||
effect can be achieved by adding the environment variable
|
||||
@env{COLUMNS} to @code{tramp-remote-process-environment}.
|
||||
|
||||
|
||||
@subsection Running @code{eshell} on a remote host
|
||||
|
|
@ -4333,10 +4297,9 @@ It does not use @code{tramp-remote-path}.
|
|||
In order to gain even more performance, it is recommended to bind
|
||||
@code{tramp-verbose} to 0 when running @code{make-process} or
|
||||
@code{start-file-process}. Furthermore, you might set
|
||||
@code{tramp-use-connection-share} to @code{nil} in order to bypass
|
||||
@value{tramp}'s handling of the @option{ControlMaster} options, and
|
||||
use your own settings in @file{~/.ssh/config}, @ref{Using ssh
|
||||
connection sharing}.
|
||||
@code{tramp-use-ssh-controlmaster-options} to @code{nil} in order to
|
||||
bypass @value{tramp}'s handling of the @option{ControlMaster} options,
|
||||
and use your own settings in @file{~/.ssh/config}.
|
||||
|
||||
|
||||
@node Cleanup remote connections
|
||||
|
|
@ -4377,6 +4340,7 @@ Flushes the current buffer's remote connection objects, the same as in
|
|||
Flushes all active remote connection objects, the same as in
|
||||
@code{tramp-cleanup-connection}. This command removes also ad-hoc
|
||||
proxy definitions (@pxref{Ad-hoc multi-hops}).
|
||||
|
||||
@end deffn
|
||||
|
||||
@deffn Command tramp-cleanup-all-buffers
|
||||
|
|
@ -4385,20 +4349,6 @@ connections and ad-hoc proxy definition are cleaned up in addition to
|
|||
killing all buffers related to remote connections.
|
||||
@end deffn
|
||||
|
||||
@deffn Command tramp-cleanup-some-buffers
|
||||
Similar to @code{tramp-cleanup-all-buffers}, where all remote
|
||||
connections and ad-hoc proxy definition are cleaned up. However,
|
||||
additional buffers are killed only if one of the functions in
|
||||
@code{tramp-cleanup-some-buffers-hook} returns @code{t}.
|
||||
@end deffn
|
||||
|
||||
@defopt tramp-cleanup-some-buffers-hook
|
||||
The functions in this hook determine, whether a remote buffer is
|
||||
killed when @code{tramp-cleanup-some-buffers} is called. Per default,
|
||||
remote buffers which are linked to a remote file, remote @code{dired}
|
||||
buffers, and buffers related to a remote process are cleaned up.
|
||||
@end defopt
|
||||
|
||||
|
||||
@node Renaming remote files
|
||||
@section Renaming remote files
|
||||
|
|
@ -4888,8 +4838,8 @@ Where is the latest @value{tramp}?
|
|||
@item
|
||||
Which systems does it work on?
|
||||
|
||||
The package works successfully on @w{Emacs 27}, @w{Emacs 28}, @w{Emacs
|
||||
29}, and @w{Emacs 30}.
|
||||
The package works successfully on @w{Emacs 26}, @w{Emacs 27}, @w{Emacs
|
||||
28}, and @w{Emacs 29}.
|
||||
|
||||
While Unix and Unix-like systems are the primary remote targets,
|
||||
@value{tramp} has equal success connecting to other platforms, such as
|
||||
|
|
@ -4947,36 +4897,6 @@ Disable file locks. Set @code{remote-file-name-inhibit-locks} to
|
|||
@code{t} if you know that different Emacs sessions are not modifying
|
||||
the same remote file.
|
||||
|
||||
@item
|
||||
@vindex remote-file-name-inhibit-auto-save
|
||||
Keep auto-save files local. This is already the default configuration
|
||||
in Emacs, don't change it. If you want to disable auto-saving for
|
||||
remote files at all, set @code{remote-file-name-inhibit-auto-save} to
|
||||
@code{t}, but think about the consequences!
|
||||
|
||||
If you want to disable auto-saving just for selected connections, for
|
||||
example due to security considerations, use connection-local variables
|
||||
in order to set @code{buffer-auto-save-file-name}. If you, for
|
||||
example, want to disable auto-saving for all @option{sudo}
|
||||
connections, apply the following code.
|
||||
@ifinfo
|
||||
@xref{Connection Variables, , , emacs}.
|
||||
@end ifinfo
|
||||
|
||||
@lisp
|
||||
@group
|
||||
(connection-local-set-profile-variables
|
||||
'my-auto-save-profile
|
||||
'((buffer-auto-save-file-name . nil)))
|
||||
@end group
|
||||
|
||||
@group
|
||||
(connection-local-set-profiles
|
||||
'(:application tramp :protocol "sudo")
|
||||
'my-auto-save-profile)
|
||||
@end group
|
||||
@end lisp
|
||||
|
||||
@item
|
||||
Disable excessive traces. Set @code{tramp-verbose} to 3 or lower,
|
||||
default being 3. Increase trace levels temporarily when hunting for
|
||||
|
|
@ -5291,7 +5211,6 @@ HISTFILE=/dev/null
|
|||
@item
|
||||
Where are remote files trashed to?
|
||||
|
||||
@vindex remote-file-name-inhibit-delete-by-moving-to-trash
|
||||
Emacs can trash file instead of deleting
|
||||
@ifinfo
|
||||
them, @ref{Misc File Ops, Trashing , , emacs}.
|
||||
|
|
@ -5299,10 +5218,9 @@ them, @ref{Misc File Ops, Trashing , , emacs}.
|
|||
@ifnotinfo
|
||||
them.
|
||||
@end ifnotinfo
|
||||
Remote files are always trashed to the local trash, except the user
|
||||
option @code{remote-file-name-inhibit-delete-by-moving-to-trash} is
|
||||
non-@code{nil}, or it is a remote encrypted file (@pxref{Keeping files
|
||||
encrypted}), which are deleted anyway.
|
||||
Remote files are always trashed to the local trash, except remote
|
||||
encrypted files (@pxref{Keeping files encrypted}), which are deleted
|
||||
anyway.
|
||||
|
||||
If Emacs is configured to use the XDG conventions for the trash
|
||||
directory, remote files cannot be restored with the respective tools,
|
||||
|
|
|
|||
|
|
@ -7,10 +7,10 @@
|
|||
|
||||
@c In the Tramp GIT, the version number and the bug report address
|
||||
@c are auto-frobbed from configure.ac.
|
||||
@set trampver 2.7.0-pre
|
||||
@set trampver 2.6.0.29.1
|
||||
@set trampurl https://www.gnu.org/software/tramp/
|
||||
@set tramp-bug-report-address tramp-devel@@gnu.org
|
||||
@set emacsver 27.1
|
||||
@set emacsver 26.1
|
||||
|
||||
@c Other flags from configuration.
|
||||
@set instprefix /usr/local
|
||||
|
|
|
|||
1345
etc/AUTHORS
22
etc/DEBUG
|
|
@ -1007,28 +1007,6 @@ Address sanitization is incompatible with undefined-behavior
|
|||
sanitization, unfortunately. Address sanitization is also
|
||||
incompatible with the --with-dumping=unexec option of 'configure'.
|
||||
|
||||
*** Address poisoning/unpoisoning
|
||||
|
||||
When compiled with address sanitization, Emacs will also try to mark
|
||||
dead/free lisp objects as poisoned, forbidding them from being
|
||||
accessed without being unpoisoned first. This adds an extra layer
|
||||
of checking with objects in internal free lists, which may otherwise
|
||||
evade traditional use-after-free checks. To disable this, add
|
||||
'allow_user_poisoning=0' to ASAN_OPTIONS, or build Emacs with
|
||||
'-DGC_ASAN_POISON_OBJECTS=0' in CFLAGS.
|
||||
|
||||
While using GDB, memory addresses can be inspected by using helper
|
||||
functions additionally provided by the ASan library:
|
||||
|
||||
(gdb) call __asan_describe_address(ptr)
|
||||
|
||||
To check whether an address range is poisoned or not, use:
|
||||
|
||||
(gdb) call __asan_region_is_poisoned(ptr, 8)
|
||||
|
||||
Additional functions can be found in the header
|
||||
'sanitizer/asan_interface.h' in your compiler's headers directory.
|
||||
|
||||
** Running Emacs under Valgrind
|
||||
|
||||
Valgrind <https://valgrind.org/> is free software that can be useful
|
||||
|
|
|
|||
108
etc/EGLOT-NEWS
|
|
@ -12,102 +12,20 @@ This file is about changes in Eglot, the Emacs client for LSP
|
|||
(Language Server Protocol) distributed with GNU Emacs since Emacs
|
||||
version 29.1 and with GNU ELPA since 2018.
|
||||
|
||||
Note: references to some Eglot issues are presented as "github#nnnn".
|
||||
This refers to https://github.com/joaotavora/eglot/issues/. That is,
|
||||
to look up issue github#1234, go to
|
||||
Note: references to Eglot issues are presented as "github#nnnn".
|
||||
This refers to https://github.com/joaotavora/eglot/issues/.
|
||||
That is, to look up issue github#1234, go to
|
||||
https://github.com/joaotavora/eglot/issues/1234.
|
||||
|
||||
|
||||
* Changes in Eglot 1.15 (29/4/2023)
|
||||
|
||||
** Fix LSP "languageId" detection
|
||||
|
||||
Many servers today support multiple languages, meaning they can handle
|
||||
more than one file type in the same connection. This relies on the
|
||||
client supplying a ':languageId' string. Previously, Eglot calculated
|
||||
this string based on an imperfect heuristic and was often wrong. See
|
||||
github#1206.
|
||||
|
||||
** Fix problems with missing signature documentation (bug#62687)
|
||||
|
||||
** Reworked 'eglot-imenu'
|
||||
|
||||
Eglot's Imenu backend (used for M-x imenu among other extensions), has
|
||||
been reworked. Most newer servers respond to
|
||||
'textDocument/documentSymbol' with a vector of 'DocumentSymbol', not
|
||||
'SymbolInformation'. It's not worth it trying to make the two formats
|
||||
resemble each other. This also lays groundwork supporting a
|
||||
forthcoming "breadcrumb" feature of bug#58431.
|
||||
|
||||
** New command 'eglot-update'
|
||||
|
||||
This allows users to easily update to the latest version of Eglot.
|
||||
|
||||
|
||||
* Changes in Eglot 1.14 (3/4/2023)
|
||||
|
||||
** Faster, more responsive completion
|
||||
|
||||
Eglot takes advantage of LSP's "isIncomplete" flag in responses to
|
||||
completion requests to drive new completion-caching mechanism for the
|
||||
duration of each completion session. Once a full set of completions
|
||||
is obtained for a given position, the server needn't be contacted in
|
||||
many scenarios, resulting in significantly less communication
|
||||
overhead. This works with the popular Company package and stock
|
||||
completion-at-point interfaces.
|
||||
|
||||
A variable 'eglot-cache-session-completions', t by default, controls
|
||||
this. The mechanism was tested with ccls, jdtls, pylsp, golsp and
|
||||
clangd. Notably, the C/C++ language server Clangd version 15 has a
|
||||
bug in its "isIcomplete" flag (it is fixed in later versions). If you
|
||||
run into problems, disable this mechanism like so:
|
||||
|
||||
(add-hook 'c-common-mode-hook
|
||||
(lambda () (setq-local eglot-cache-session-completions nil)))
|
||||
|
||||
** At-point documentation less obtrusive in echo area
|
||||
|
||||
Eglot takes advantage of new features of ElDoc to separate short
|
||||
documentation strings from large ones, sending the former to be shown in
|
||||
the ElDoc's echo area and the latter to be shown in other outlets,
|
||||
such as the *eldoc* buffer obtainable with 'C-h .'.
|
||||
|
||||
** New variable 'eglot-prefer-plaintext'
|
||||
|
||||
Customize this to t to opt-in to docstrings in plain text instead of
|
||||
Markdown.
|
||||
|
||||
(bug#61373)
|
||||
|
||||
** Progress indicators inhabit the mode-line by default
|
||||
|
||||
To switch to the echo area, customize 'eglot-report-progress' to
|
||||
'messages'. To switch off progress reporting completely, set to nil.
|
||||
|
||||
** Snippet support is easier to enable
|
||||
|
||||
The user needn't manually activate 'yas-minor-mode' or
|
||||
'yas-global-mode'. If YASnippet is installed and the server supports
|
||||
snippets, it is used automatically, unless the symbol 'yasnippet' has
|
||||
been added to 'eglot-stay-out-of'.
|
||||
|
||||
|
||||
* Changes in Eglot 1.13 (15/03/2023)
|
||||
|
||||
** ELPA installations on Emacs 26.3 are supported again.
|
||||
|
||||
|
||||
* Changes in Eglot 1.12.29 (Eglot bundled with Emacs 29.1)
|
||||
|
||||
** Eglot can upgrade itself to the latest version.
|
||||
** Eglot has a new command to upgrade to the latest version.
|
||||
|
||||
The new command 'eglot-upgrade-eglot' works around behaviour in the
|
||||
existing 'package-install' command and the new 'package-upgrade'
|
||||
command which would prevent the user from easily grabbing the latest
|
||||
version as usual.
|
||||
|
||||
|
||||
* Changes in Eglot 1.12 (13/03/2023)
|
||||
The new command 'eglot-upgrade-eglot' allows easily grabbing the
|
||||
latest version of Eglot from ELPA. This might be more convenient than
|
||||
using the more general command 'package-install', which by default
|
||||
will not upgrade "built-in" packages, those that come with Emacs.
|
||||
|
||||
** LSP inlay hints are now supported.
|
||||
Inlay hints are small text annotations not unlike diagnostics, but
|
||||
|
|
@ -253,12 +171,12 @@ may be disabled via 'eglot-ignored-server-capabilities'
|
|||
** Basic LSP "workspace folders" support added.
|
||||
Eglot now advertises 'project-root' and 'project-external-roots' as
|
||||
workspace-folders. (Configuring 'project-vc-external-roots-function'
|
||||
via Elisp or 'tags-table-list' via Custtomize are two ways to set the
|
||||
via Elisp or 'tags-table-list' via Customize are two ways to set the
|
||||
external roots of a simple git project.)
|
||||
|
||||
(github#893)
|
||||
|
||||
** Eglot can now show project wide diagnosics via Flymake.
|
||||
** Eglot can now show project wide diagnostics via Flymake.
|
||||
Some LSP servers report diagnostics for all files in the current
|
||||
workspace. Flymake has (as of version 1.2.1) the option to show
|
||||
diagnostics from buffers other than the currently visited one. The
|
||||
|
|
@ -417,7 +335,7 @@ This disconnects the server after last managed buffer is killed.
|
|||
|
||||
(github#217, github#270)
|
||||
|
||||
** Completion support has been fixed.
|
||||
** Completion support support has been fixed.
|
||||
Among other things, consider LSP's "filterText" cookies, which enable
|
||||
a kind of poor-man's flex-matching for some backends.
|
||||
|
||||
|
|
@ -476,7 +394,7 @@ these two domains.
|
|||
|
||||
* Changes in Eglot 1.3 (10/12/2018)
|
||||
|
||||
** Provide strict checking of incoming LSP messagesp.
|
||||
** Provide strict checking of incoming LSP messages.
|
||||
|
||||
(github#144, github#156)
|
||||
|
||||
|
|
@ -570,7 +488,7 @@ here.
|
|||
* Changes in Eglot 1.1 (9/7/2018)
|
||||
|
||||
** Implement TCP autostart/autoconnect (and support Ruby's Solargraph).
|
||||
The ':autoport' symbol in the server incovation is replaced
|
||||
The ':autoport' symbol in the server invocation is replaced
|
||||
dynamically by a local port believed to be vacant, so that the ensuing
|
||||
TCP connection finds a listening server.
|
||||
|
||||
|
|
|
|||
212
etc/ERC-NEWS
|
|
@ -11,210 +11,6 @@ This file is about changes in ERC, the powerful, modular, and
|
|||
extensible IRC (Internet Relay Chat) client distributed with
|
||||
GNU Emacs since Emacs version 22.1.
|
||||
|
||||
|
||||
* Changes in ERC 5.6
|
||||
|
||||
** Module 'keep-place' now offers a visual indicator.
|
||||
Remember your place in ERC buffers a bit more easily while retaining
|
||||
the freedom to look around. Optionally sync the indicator to any
|
||||
progress made when you haven't yet caught up to the live stream. See
|
||||
options 'erc-keep-place-indicator-style' and friends and new module
|
||||
'keep-place-indicator', which for now must be added manually to
|
||||
'erc-modules'.
|
||||
|
||||
** Module 'fill' now offers a style based on 'visual-line-mode'.
|
||||
This fill style mimics the "hanging indent" look of 'erc-fill-static'
|
||||
and provides some movement and editing commands to optionally tame the
|
||||
less familiar aspects of 'visual-line' behavior. An interactive
|
||||
helper called 'erc-fill-wrap-nudge' allows for dynamic "refilling" of
|
||||
buffers on the fly. Set 'erc-fill-function' to 'erc-fill-wrap' to get
|
||||
started.
|
||||
|
||||
** A unified interactive entry point.
|
||||
New users are often dismayed to discover that M-x ERC doesn't connect
|
||||
to its default network, Libera.Chat, over TLS. Though perhaps a
|
||||
decade overdue, this is no longer the case. Other UX improvements in
|
||||
this area aim to make the process of connecting interactively slightly
|
||||
more streamlined and less repetitive, even for veteran users.
|
||||
|
||||
** Revised buffer-display handling for interactive commands.
|
||||
A point of friction for new users and one only just introduced with
|
||||
ERC 5.5 has been the lack of visual feedback when first connecting via
|
||||
M-x erc or when issuing a "/JOIN" command at the prompt. As explained
|
||||
below, in the news for 5.5, the discovery of a security issue led to
|
||||
most new ERC buffers being "buried" on creation. On further
|
||||
reflection, this was judged to have been an overcorrection in the case
|
||||
of interactive invocations, hence the borrowing of an old option,
|
||||
'erc-query-display', and the bestowing of a new alias,
|
||||
'erc-interactive-display', which better describes its expanded role as
|
||||
a more general buffer-display knob for interactive commands ("/QUERY"
|
||||
still among them).
|
||||
|
||||
Accompanying this addition are "display"-suffixed aliases for related
|
||||
options 'erc-join-buffer' and 'erc-auto-query', which users have
|
||||
reported as being difficult to discover and remember. When the latter
|
||||
option (now known as 'erc-receive-query-display') is nil, ERC uses
|
||||
'erc-join-buffer' in its place, much like it does for
|
||||
'erc-interactive-display'. The old nil behavior can still be gotten
|
||||
via the new compatibility flag 'erc-receive-query-display-defer'.
|
||||
|
||||
** Setting a module's mode variable via Customize earns a warning.
|
||||
Trying and failing to activate a module via its minor mode's Custom
|
||||
widget has been an age-old annoyance for new users. Previously
|
||||
ineffective, this method now actually works, but it also admonishes
|
||||
users to edit the 'erc-modules' widget instead.
|
||||
|
||||
** The option 'erc-timestamp-use-align-to' is more versatile.
|
||||
While this option has always offered to right-align stamps via the
|
||||
'display' text property, it's now more effective at doing so when set
|
||||
to a number indicating an offset from the right edge. And when set to
|
||||
the symbol 'margin', it displays stamps in the right margin, although,
|
||||
at the moment, this is mostly intended for use by other modules, such
|
||||
as 'fill-wrap', described above. For both these variants, users of
|
||||
the 'log' module may want to customize 'erc-log-filter-function' to
|
||||
'erc-stamp-prefix-log-filter' to avoid ragged right-hand stamps
|
||||
appearing in their saved logs.
|
||||
|
||||
** Smarter reconnect handling for users on the move.
|
||||
ERC now offers a new, experimental reconnect strategy in the function
|
||||
'erc-server-delayed-check-reconnect', which tests for underlying
|
||||
connectivity before attempting to reconnect in earnest. See options
|
||||
'erc-server-reconnect-function' and 'erc-nickname-in-use-functions' to
|
||||
get started.
|
||||
|
||||
** Easily constrain all ERC-related business to a dedicated frame.
|
||||
The option 'erc-reuse-frames' can now be set to 'displayed', which
|
||||
tells ERC to show new buffers in frames already occupied by buffers
|
||||
from the same connection. This customization depends on the option
|
||||
'erc-buffer-display' (formerly 'erc-join-buffer') being set to
|
||||
'frame'. If you find the name 'displayed' unhelpful, please suggest
|
||||
an alternative by writing to the mailing list.
|
||||
|
||||
** Some keybindings are now set by modules rather than their libraries.
|
||||
To put it another way, simply loading a built-in module's library no
|
||||
longer modifies 'erc-mode-map'. Instead, modifications occur during
|
||||
module setup. This should not impact most user configs since ERC
|
||||
doesn't bother with keys already taken and only removes bindings it's
|
||||
previously created. Note that while all affected bindings still
|
||||
reside in 'erc-mode-map', future built-in modules will use their own
|
||||
minor-mode maps, and new third-party modules should do the same.
|
||||
|
||||
** The option 'erc-timestamp-format-right' has been deprecated.
|
||||
Having to account for this option prevented other ERC modules from
|
||||
easily determining what right-hand stamps would look like before
|
||||
insertion, which is knowledge needed for certain UI decisions. The
|
||||
way ERC has chosen to address this is imperfect and boils down to
|
||||
asking users who've customized this option to switch to
|
||||
'erc-timestamp-format' instead. If you're affected by this and feel
|
||||
that some other solution, like automatic migration, is justified,
|
||||
please make that known on the bug list.
|
||||
|
||||
** The 'nicknames' entry in 'erc-button-alist' is officially exceptional.
|
||||
It's no secret that the 'buttons' module treats potential nicknames
|
||||
specially. To simplify ERC's move to next-gen "rich UI" extensions,
|
||||
this special treatment is being canonized. From now on, all values
|
||||
other than the symbol 'erc-button-buttonize-nicks' appearing in the
|
||||
"FORM" field (third element) of this entry are considered deprecated
|
||||
and will incur a warning.
|
||||
|
||||
** Option 'erc-query-on-unjoined-chan-privmsg' restored and renamed.
|
||||
This option was accidentally removed from the default client in ERC
|
||||
5.5 and was thus prevented from influencing PRIVMSG routing. It's now
|
||||
been restored with a slightly revised role contingent on a few
|
||||
assumptions explained in its doc string. For clarity, it has been
|
||||
renamed 'erc-ensure-target-buffer-on-privmsg'.
|
||||
|
||||
** Miscellaneous UX changes.
|
||||
Some minor quality-of-life niceties have finally made their way to
|
||||
ERC. For example, the function 'erc-echo-timestamp' is now
|
||||
interactive and can be invoked on any message to view its timestamp in
|
||||
the echo area. The command 'erc-button-previous' now moves to the
|
||||
beginning instead of the end of buttons. And the 'irccontrols' module
|
||||
now supports additional colors and special handling for "spoilers"
|
||||
(hidden text).
|
||||
|
||||
** Changes in the library API.
|
||||
|
||||
*** Some top-level dependencies have been removed.
|
||||
The library 'erc-goodies' is no longer loaded by ERC's main library.
|
||||
This was done to further cement the move toward a unidirectional
|
||||
dependency flow begun in 5.5. Additionally, a few barely used and
|
||||
newly introduced dependencies are now lazily loaded, which may upset
|
||||
some third-party code. The first of these is 'pp' because its
|
||||
'pp-to-string' is autoloaded in all supported ERC versions. Also gone
|
||||
are 'thingatpt', 'time-date', and 'iso8601'. All were used ultra
|
||||
sparingly, and the latter two have only been around for one minor
|
||||
release cycle, so their removal hopefully won't cause much churn.
|
||||
|
||||
*** Some ERC-applied text properties have changed.
|
||||
Chiefly, 'rear-sticky' has been replaced by 'erc-command', which
|
||||
records the IRC command (or numeric) associated with a message. Less
|
||||
impactfully, the value of the 'field' property for ERC's prompt has
|
||||
changed from 't' to the more useful 'erc-prompt', although the
|
||||
property of the same name has been retained.
|
||||
|
||||
*** ERC now manages timestamp-related properties a bit differently.
|
||||
For starters, the 'cursor-sensor-functions' property no longer
|
||||
contains unique closures and thus no longer proves effective for
|
||||
traversing messages. To compensate, a new property, 'erc-timestamp',
|
||||
now spans message bodies but not the newlines delimiting them.
|
||||
Somewhat relatedly, the function 'erc-insert-aligned' has been
|
||||
deprecated and removed from the primary client code path.
|
||||
|
||||
*** The role of a module's Custom group is now more clearly defined.
|
||||
Associating built-in modules with Custom groups and provided library
|
||||
features has improved. More specifically, a module's group now enjoys
|
||||
the singular purpose of determining where the module's minor mode
|
||||
variable lives in the Customize interface. And although ERC is now
|
||||
slightly more adept at linking these entities, third-parties are still
|
||||
encouraged to keep a module's name aligned with its group's as well as
|
||||
the provided feature of its containing library, if only for the usual
|
||||
reasons of namespace hygiene and discoverability.
|
||||
|
||||
*** ERC now supports arbitrary CHANTYPES.
|
||||
Specifically, channels can be prefixed with any predesignated
|
||||
character, mainly to afford more flexibility to specialty services,
|
||||
like bridges to other protocols.
|
||||
|
||||
*** 'erc-cmd-HELP' recognizes subcommands.
|
||||
Some IRC "slash" commands are hierarchical and require users to
|
||||
specify a subcommand to actually carry out anything of consequence.
|
||||
Built-in modules can now provide more detailed help for a particular
|
||||
subcommand by telling ERC to defer to a specialized handler.
|
||||
|
||||
*** Longtime quasi modules have been made proper.
|
||||
The 'fill' module is now defined by 'define-erc-module'. The same
|
||||
goes for ERC's imenu integration, which has 'imenu' now appearing in
|
||||
the default value of 'erc-modules'.
|
||||
|
||||
*** Prompt input is split before 'erc-pre-send-functions' has a say.
|
||||
Hook members are now treated to input whose lines have already been
|
||||
adjusted to fall within the allowed length limit. For convenience,
|
||||
third-party code can request that the final input be "re-filled" prior
|
||||
to being sent. See doc string for details.
|
||||
|
||||
*** ERC's prompt survives the insertion of user input and messages.
|
||||
Previously, ERC's prompt and its input marker disappeared while
|
||||
running hooks during message insertion, and the position of its
|
||||
"insert marker" (ERC's per-buffer process mark) was inconsistent
|
||||
during these spells. To make insertion handling more predictable in
|
||||
preparation for incorporating various protocol extensions, the prompt
|
||||
and its bounding markers have become perennial fixtures. In rare
|
||||
cases, these changes may mean third-party code needs tweaking, for
|
||||
example, requiring the use of 'insert-before-markers' instead of
|
||||
'insert'. As always, users feeling unduly inconvenienced by these
|
||||
changes are encouraged to voice their concerns on the bug list.
|
||||
|
||||
*** Miscellaneous changes
|
||||
Two helper macros from GNU ELPA's Compat library are now available to
|
||||
third-party modules as 'erc-compat-call' and 'erc-compat-function'.
|
||||
In the area of buttons, 'Info-goto-node' has been supplanted by plain
|
||||
old 'info' in 'erc-button-alist', and the bracketed "<URL:...>"
|
||||
pattern entry has been removed because it was more or less redundant.
|
||||
And the "TAB" key is now bound to a new command, 'erc-tab', that only
|
||||
calls 'completion-at-point' when point is in the input area and
|
||||
module-specific commands, like 'erc-button-next', otherwise.
|
||||
|
||||
|
||||
* Changes in ERC 5.5
|
||||
|
||||
|
|
@ -284,9 +80,7 @@ can now opt for an improved 'window-noselect' instead. It still
|
|||
offers the same pronounced visual cue when connecting and joining but
|
||||
now avoids any hijacking of the active window as well.
|
||||
|
||||
Beyond this, additional flexibility is now available for controlling
|
||||
the behavior of newly created target buffers during reconnection.
|
||||
See the option 'erc-reconnect-display' for more.
|
||||
(Edited for ERC 5.5.0.29.1 in Emacs 29.1.)
|
||||
|
||||
** Improved handling of multiline prompt input.
|
||||
This means better detection and handling of intervening and trailing
|
||||
|
|
@ -359,8 +153,8 @@ In an effort to help further tame ERC's complexity, the variable
|
|||
'erc-default-recipients' is now expected to hold but a single target.
|
||||
As a consequence, functions like 'erc-add-default-channel' that
|
||||
imagine an alternate, aspirational model of buffer-target relations
|
||||
have been deprecated. Grep for their names in ChangeLog.4 for
|
||||
details.
|
||||
have been deprecated. See Emacs change-log entries from around July
|
||||
of 2022 for specifics.
|
||||
|
||||
A number of less consequential deprecations also debut in this
|
||||
release. For example, the function 'erc-auto-query' was deemed too
|
||||
|
|
|
|||
4981
etc/NEWS.29
24
etc/PROBLEMS
|
|
@ -1239,20 +1239,6 @@ you should use an Emacs input method instead.
|
|||
|
||||
* X runtime problems
|
||||
|
||||
** X security problems
|
||||
|
||||
*** Emacs faces trouble when running as an untrusted client.
|
||||
|
||||
When Emacs is running as an untrusted client under X servers with the
|
||||
Security extension, it is unable to use some window manager features
|
||||
but reports them to the window manager anyway. This can lead to
|
||||
constant prompting by the window manager about Emacs being
|
||||
unresponsive. To resolve the problem, place:
|
||||
|
||||
(setq x-detect-server-trust t)
|
||||
|
||||
in your early-init.el.
|
||||
|
||||
** X keyboard problems
|
||||
|
||||
*** `x-focus-frame' fails to activate the frame.
|
||||
|
|
@ -1724,8 +1710,8 @@ which can be carried out at the same time:
|
|||
|
||||
7) If selecting text with the mouse is slow, the main culprit is
|
||||
likely `select-active-regions', coupled with a program monitoring
|
||||
the clipboard or primary selection on the X server you are
|
||||
connected to. Try turning that off.
|
||||
the clipboard on the X server you are connected to. Try turning
|
||||
that off.
|
||||
|
||||
However, over networks with moderate to high latency, with no
|
||||
clipboard monitor running, the bottleneck is likely to be
|
||||
|
|
@ -1735,12 +1721,6 @@ which can be carried out at the same time:
|
|||
cause Emacs features that relies on accurate mouse position
|
||||
reporting to stop working reliably.
|
||||
|
||||
8) If creating or resizing frames is slow, turn off
|
||||
`frame-resize-pixelwise' (this will not take effect until you
|
||||
create a new frame); then, enable `x-lax-frame-positioning'. This
|
||||
means frame placement will be less accurate, but makes frame
|
||||
creation, movement, and resize visibly faster.
|
||||
|
||||
*** Emacs gives the error, Couldn't find per display information.
|
||||
|
||||
This can result if the X server runs out of memory because Emacs uses
|
||||
|
|
|
|||
|
|
@ -1,43 +0,0 @@
|
|||
This directory contains icons for some inline symbols.
|
||||
|
||||
COPYRIGHT AND LICENSE INFORMATION FOR IMAGE FILES
|
||||
|
||||
Files: *.svg
|
||||
Author: Yuan Fu <casouri@gmail.com>
|
||||
Copyright (C) 2023 Free Software Foundation, Inc.
|
||||
License: GNU General Public License version 3 or later (see COPYING)
|
||||
|
||||
How I made these icons: I made them with Figma, and exported them into
|
||||
SVG. I made the shapes with vectors (SVG paths) rather than strokes,
|
||||
merged all the shapes into a single shape with union operation, and
|
||||
stripped filling attributes from the SVG files. This way the icons can
|
||||
be colored like normal text! I'm not exactly sure how it works, but as
|
||||
long as the icon uses SVG path, and there is only one path in the
|
||||
file, and there is no filling attributes, the icons can be colored as
|
||||
text.
|
||||
|
||||
FWIW, this is the command I used to strip filling attributes:
|
||||
|
||||
sed -i 's/fill="none"//g' <file>
|
||||
sed -i 's/fill="black"//g' <file>
|
||||
|
||||
Naming: Use underscore to separate styles, dash are considered normal
|
||||
character so you can use it for names. End with the intended optical
|
||||
size for the icon.
|
||||
|
||||
There should also be an order for all the keywords. Right now we have
|
||||
directions (left/right), circle, fill, and optical size. Among them,
|
||||
the order should be
|
||||
|
||||
1. direction
|
||||
2. circle
|
||||
3. fill
|
||||
4. size
|
||||
|
||||
E.g., arrow_right_circle_fill_16.
|
||||
|
||||
|
||||
|
||||
Every time you modify the SVG icons, please use the ImageMagick
|
||||
`convert' utility to convert them to PBM icons, for the sake of
|
||||
Emacsen that cannot display SVG images.
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M6.58449 9.82778L3.75736 6.99807L2.3425 8.41164L6.58321 12.6562L13.6575 5.58837L12.2439 4.17351L6.58449 9.82778Z" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 218 B |
|
|
@ -1,3 +0,0 @@
|
|||
<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M14 4.5L14 7L8 12L2 7L2 4.5L8 9.5L14 4.5Z" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 147 B |
|
|
@ -1,3 +0,0 @@
|
|||
<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M11 3.05H8.5L4 8.00001L8.5 13H11L6.5 8.00001L11 3.05Z" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 159 B |
|
|
@ -1,3 +0,0 @@
|
|||
<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M4.95455 3H7.45455L12 8L7.45455 13H4.95455L9.5 8L4.95455 3Z" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 165 B |
|
|
@ -1,3 +0,0 @@
|
|||
<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M2 11.5L2 9L8 4L14 9L14 11.5L8 6.5L2 11.5Z" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 148 B |
|
|
@ -1,3 +0,0 @@
|
|||
<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M5.17157 3.75736L3.75736 5.17157L6.58579 8L3.75736 10.8284L5.17157 12.2426L8 9.41421L10.8284 12.2426L12.2426 10.8284L9.41421 8L12.2426 5.17157L10.8284 3.75736L8 6.58579L5.17157 3.75736Z" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 291 B |
|
|
@ -1,3 +0,0 @@
|
|||
<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M15 8C15 11.866 11.866 15 8 15C4.13401 15 1 11.866 1 8C1 4.13401 4.13401 1 8 1C11.866 1 15 4.13401 15 8ZM13 8C13 10.7614 10.7614 13 8 13C5.23858 13 3 10.7614 3 8C3 5.23858 5.23858 3 8 3C10.7614 3 13 5.23858 13 8ZM9.76777 4.81802L11.182 6.23223L9.41421 8L11.182 9.76777L9.76777 11.182L8 9.41421L6.23223 11.182L4.81802 9.76777L6.58579 8L4.81802 6.23223L6.23223 4.81802L8 6.58579L9.76777 4.81802Z" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 539 B |
|
|
@ -1,3 +0,0 @@
|
|||
<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M8 15C11.866 15 15 11.866 15 8C15 4.13401 11.866 1 8 1C4.13401 1 1 4.13401 1 8C1 11.866 4.13401 15 8 15ZM10.1213 4.46447L11.5355 5.87868L9.41421 8L11.5355 10.1213L10.1213 11.5355L8 9.41421L5.87868 11.5355L4.46447 10.1213L6.58579 8L4.46447 5.87868L5.87868 4.46447L8 6.58579L10.1213 4.46447Z" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 435 B |
|
|
@ -1,3 +0,0 @@
|
|||
<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M8 5.5C8 5.5 9.5 3.5 11 3.5C12.5 3.5 14 4.5 14 6.5C14 10.1005 8 13.5 8 13.5C8 13.5 2 10.1005 2 6.5C2 4.5 3.34315 3.5 5 3.5C6.5 3.5 8 5.5 8 5.5ZM8 7.5C9 6.5 10 5.5 11 5.5C11.4898 5.5 11.738 5.65071 12 6C12.3515 6.46863 12.2982 7.40369 12 8C11 10 8 11.5 8 11.5C8 11.5 5 10 4 8C3.70858 7.41714 3.64853 6.46863 4 6C4.26197 5.65071 4.55933 5.5 5 5.5C6 5.5 7 6.5 8 7.5Z" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 509 B |
|
|
@ -1,3 +0,0 @@
|
|||
<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M11 3.5C9.5 3.5 8 5.5 8 5.5C8 5.5 6.5 3.5 5 3.5C3.34315 3.5 2 4.5 2 6.5C2 10.1005 8 13.5 8 13.5C8 13.5 14 10.1005 14 6.5C14 4.5 12.5 3.5 11 3.5Z" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 250 B |
|
|
@ -1,3 +0,0 @@
|
|||
<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M8 5.5C8 5.5 9.5 3.5 11 3.5C12.5 3.5 14 4.5 14 6.5C14 10.1005 8 13.5 8 13.5C8 13.5 2 10.1005 2 6.5C2 4.5 3.34315 3.5 5 3.5C6.5 3.5 8 5.5 8 5.5ZM12 8C11 10 8 11.5 8 11.5V7.5C9 6.5 10 5.5 11 5.5C11.4898 5.5 11.738 5.65071 12 6C12.3515 6.46863 12.2982 7.40369 12 8Z" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 408 B |
|
|
@ -1,3 +0,0 @@
|
|||
<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M14 3H2V5H14V3ZM14 7H2V9H14V7ZM2 11H14V13H2V11Z" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 193 B |
|
|
@ -1,3 +0,0 @@
|
|||
<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M13 7H3V9H13V7Z" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 121 B |
|
|
@ -1,3 +0,0 @@
|
|||
<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M15 8C15 11.866 11.866 15 8 15C4.13401 15 1 11.866 1 8C1 4.13401 4.13401 1 8 1C11.866 1 15 4.13401 15 8ZM13 8C13 10.7614 10.7614 13 8 13C5.23858 13 3 10.7614 3 8C3 5.23858 5.23858 3 8 3C10.7614 3 13 5.23858 13 8ZM11.5 7V9H4.5V7H11.5Z" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 379 B |
|
|
@ -1,3 +0,0 @@
|
|||
<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M8 15C11.866 15 15 11.866 15 8C15 4.13401 11.866 1 8 1C4.13401 1 1 4.13401 1 8C1 11.866 4.13401 15 8 15ZM12 7V9H4V7H12Z" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 265 B |