Compare commits

..

9 commits

Author SHA1 Message Date
Eli Zaretskii
910a7b30df Fix beginning/end-of-defun with tree-sitter
* lisp/treesit.el (treesit-beginning-of-defun)
(treesit-end-of-defun): Push mark, as other beginning/end-of-defun
functions do.
2023-05-07 09:13:10 +03:00
Theodor Thornhill
e205f68717 Fix indent for enums in csharp-mode
* lisp/progmodes/csharp-mode.el (csharp-guess-basic-syntax): Check for
keywords containing 'enum' on the line before an opening bracket, and
make it behave like a class-open token.
2023-05-06 21:15:21 +02:00
Philip Kaludercic
dfde902f3b ; Expand 'package-vc-install' documentation
* lisp/emacs-lisp/package-vc.el (package-vc-install): Go into further
detail on the handling of the REV argument.  (Bug#60418)
2023-05-06 20:51:49 +02:00
Eli Zaretskii
7133784303 Teach c-ts-mode about the 'restrict' keyword
* lisp/progmodes/c-ts-mode.el (c-ts-mode--keywords): Add
"restrict" and "_Atomic" type qualifiers.  (Bug#63323)
2023-05-06 15:15:42 +03:00
Eli Zaretskii
15e06260ae * lisp/x-dnd.el (x-dnd-after-move-frame): Skip dead frames. (Bug#63312) 2023-05-06 14:16:36 +03:00
Shynur
a081b6625b ; Updated Elispref-Manual: `nil' cannot be defun'ed
* doc/lispref/functions.texi (Function Cells): Fix inaccuracy.
(Bug#62746)
2023-05-06 12:46:23 +03:00
Eli Zaretskii
97b818a4fb Fix doc strings of 'mark-sexp' and 'mark-word'
* lisp/emacs-lisp/lisp.el (mark-sexp):
* lisp/simple.el (mark-word): Clarify the doc strings in various
usage cases.  (Bug#62892)
2023-05-06 11:47:31 +03:00
Eli Zaretskii
6f910ad932 ; * etc/EGLOT-NEWS: Fix misspellings. 2023-05-06 09:45:05 +03:00
Eli Zaretskii
9b775ddc05 ; * etc/EGLOT-NEWS: Fix wording of last change. 2023-05-06 09:38:20 +03:00
700 changed files with 40816 additions and 58350 deletions

View file

@ -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

File diff suppressed because it is too large Load diff

View file

@ -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

View file

@ -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
View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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 PrudHomme" "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).")

View file

@ -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" ) > $@

View file

@ -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"

View file

@ -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)

View file

@ -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))

View file

@ -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
'

View file

@ -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

View file

@ -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.

View file

@ -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.

View file

@ -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

View file

@ -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}"

View file

@ -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

View file

@ -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."

View file

@ -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-*)

View file

@ -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
}

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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}

View file

@ -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

View file

@ -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

View file

@ -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)

View file

@ -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

View file

@ -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}

View file

@ -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

View file

@ -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:

View file

@ -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},

View file

@ -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}).

View file

@ -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

View file

@ -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__))}}

View file

@ -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

View file

@ -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.

View file

@ -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.

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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)---------

File diff suppressed because it is too large Load diff

View file

@ -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

View file

@ -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

View file

@ -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"

File diff suppressed because it is too large Load diff

View file

@ -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,

View file

@ -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

File diff suppressed because it is too large Load diff

View file

@ -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

View file

@ -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.

View file

@ -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

5273
etc/NEWS

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -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

View file

@ -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.

Binary file not shown.

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

Binary file not shown.

View file

@ -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

Binary file not shown.

View file

@ -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

View file

@ -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

View file

@ -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

Binary file not shown.

View file

@ -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

Binary file not shown.

View file

@ -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

Binary file not shown.

View file

@ -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

Binary file not shown.

View file

@ -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

Binary file not shown.

View file

@ -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

View file

@ -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

View file

@ -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

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show more