mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-06-14 12:31:25 +00:00
Merge branch 'savannah/master' into feature/igc3
This commit is contained in:
commit
540dbab6b1
146 changed files with 3054 additions and 719 deletions
1321
ChangeLog.5
1321
ChangeLog.5
File diff suppressed because it is too large
Load diff
38
Makefile.in
38
Makefile.in
|
|
@ -115,6 +115,8 @@ HAVE_GSETTINGS = @HAVE_GSETTINGS@
|
|||
|
||||
ANDROID = @ANDROID@
|
||||
|
||||
DOCLANGS?=@DOCLANGS@
|
||||
|
||||
# ==================== Where To Install Things ====================
|
||||
|
||||
# Location to install Emacs.app under GNUstep / macOS.
|
||||
|
|
@ -795,7 +797,7 @@ install-info: info
|
|||
[ -f "$(DESTDIR)${infodir}/dir" ] || \
|
||||
[ ! -f ${srcdir}/info/dir ] || \
|
||||
${INSTALL_DATA} ${srcdir}/info/dir "$(DESTDIR)${infodir}/dir"; \
|
||||
info_misc=`MAKEFLAGS= $(MAKE) --no-print-directory -s -C doc/misc echo-info`; \
|
||||
info_misc="$(foreach lang,$(DOCLANGS),`MAKEFLAGS= $(MAKE) --no-print-directory -s -C doc/misc DOCLANG=$(lang) echo-info`)"; \
|
||||
cd ${srcdir}/info ; \
|
||||
for elt in ${INFO_NONMISC} $${info_misc}; do \
|
||||
for f in `ls $$elt $$elt-[1-9] $$elt-[1-9][0-9] 2>/dev/null`; do \
|
||||
|
|
@ -945,7 +947,7 @@ uninstall: uninstall-$(NTDIR) uninstall-doc uninstall-gsettings-schemas
|
|||
done
|
||||
-rm -rf "$(DESTDIR)${libexecdir}/emacs/${version}"
|
||||
thisdir=`pwd -P`; \
|
||||
(info_misc=`MAKEFLAGS= $(MAKE) --no-print-directory -s -C doc/misc echo-info`; \
|
||||
(info_misc="$(foreach lang,$(DOCLANGS),`MAKEFLAGS= $(MAKE) --no-print-directory -s -C doc/misc DOCLANG=$(lang) echo-info`)"; \
|
||||
if cd "$(DESTDIR)${infodir}"; then \
|
||||
for elt in ${INFO_NONMISC} $${info_misc}; do \
|
||||
(cd "$${thisdir}"; \
|
||||
|
|
@ -1123,7 +1125,7 @@ TAGS tags: lib lib-src # src
|
|||
$(MAKE) -C doc/emacs tags
|
||||
$(MAKE) -C doc/lispintro tags
|
||||
$(MAKE) -C doc/lispref tags
|
||||
$(MAKE) -C doc/misc tags
|
||||
$(foreach DOCLANG,$(DOCLANGS),$(MAKE) -C doc/misc DOCLANG=$(DOCLANG) tags;)
|
||||
|
||||
CHECK_TARGETS = check check-maybe check-expensive check-all check-byte-compile
|
||||
.PHONY: $(CHECK_TARGETS)
|
||||
|
|
@ -1144,8 +1146,21 @@ PDFS = lispref-pdf lispintro-pdf emacs-pdf misc-pdf
|
|||
PSS = lispref-ps lispintro-ps emacs-ps misc-ps
|
||||
|
||||
DOCS = $(DVIS) $(HTMLS) $(INFOS) $(PDFS) $(PSS)
|
||||
$(DOCS):
|
||||
$(MAKE) -C doc/$(subst -, ,$@)
|
||||
|
||||
define MAKE_DOC_FOR_DOCLANG
|
||||
$(1)-DOCLANG-$(2): $(1)-common
|
||||
$$(MAKE) -C doc/$$(subst -, DOCLANG=$(2) ,$(1))
|
||||
|
||||
endef
|
||||
define MAKE_DOC
|
||||
# Define a target to which dependencies common to all of the doc files
|
||||
# in this directory may be assigned.
|
||||
$(1)-common:
|
||||
$(1): $$(addprefix $(1)-DOCLANG-,$(DOCLANGS))
|
||||
|
||||
$$(foreach lang,$(DOCLANGS),$$(eval $$(call MAKE_DOC_FOR_DOCLANG,$(1),$$(lang))))
|
||||
endef
|
||||
$(foreach doc,$(DOCS),$(eval $(call MAKE_DOC,$(doc))))
|
||||
|
||||
.PHONY: $(DOCS) docs pdf ps
|
||||
.PHONY: info dvi dist html info-dir check-info
|
||||
|
|
@ -1162,20 +1177,25 @@ ps: $(PSS)
|
|||
# Depending on src is sufficient, but ends up being slow, since the
|
||||
# uncompiled lisp/org/*.el files are used to build the .texi files
|
||||
# (which can be slow even with the elc files).
|
||||
misc-info: lisp
|
||||
misc-info-common: lisp
|
||||
# Using src rather than lisp because one is less likely to get unnecessary
|
||||
# rebuilds of stuff that is not strictly necessary for generating manuals.
|
||||
misc-dvi misc-html misc-pdf misc-ps: src
|
||||
misc-dvi-common misc-html-common misc-pdf-common misc-ps-common: src
|
||||
|
||||
info-dir: ${srcdir}/info/dir
|
||||
|
||||
texi_misc = $(shell MAKEFLAGS= ${MAKE} --no-print-directory -s -C doc/misc echo-sources)
|
||||
define set_texi_misc
|
||||
texi_misc_$(1) = $$(shell MAKEFLAGS= $${MAKE} --no-print-directory -s -C doc/misc LANG=$(1) echo-sources)
|
||||
|
||||
endef
|
||||
|
||||
$(foreach lang,$(DOCLANGS),$(eval $(call set_texi_misc,$(lang))))
|
||||
|
||||
srcdir_doc_info_dir_inputs = \
|
||||
${srcdir}/doc/emacs/emacs.texi \
|
||||
${srcdir}/doc/lispintro/emacs-lisp-intro.texi \
|
||||
${srcdir}/doc/lispref/elisp.texi \
|
||||
$(addprefix ${srcdir}/doc/misc/,${texi_misc})
|
||||
$(foreach lang,$(DOCLANGS),$(addprefix ${srcdir}/doc/misc/$(filter-out ../translations/default/misc/,../translations/$(lang)/misc/),$(texi_misc_$(lang)) ))
|
||||
info_dir_inputs = \
|
||||
../build-aux/dir_top \
|
||||
$(subst ${srcdir}/doc/,,${srcdir_doc_info_dir_inputs})
|
||||
|
|
|
|||
|
|
@ -13,29 +13,22 @@ Preparations:
|
|||
|
||||
Steps to take before starting on the first pretest in any release sequence:
|
||||
|
||||
0. The release branch (e.g. emacs-28) should already have been made
|
||||
0. The release branch (e.g. emacs-31) should already have been made
|
||||
and you should use it for all that follows. Diffs from this
|
||||
branch should be going to the emacs-diffs mailing list.
|
||||
|
||||
1. Decide on versions of m4 and autoconf, and ensure you will
|
||||
have them available for the duration of the release process.
|
||||
|
||||
2. Consider increasing the value of the variable
|
||||
'customize-changed-options-previous-release' in cus-edit.el to
|
||||
refer to a newer version of Emacs. (This is now done when cutting
|
||||
the release branch, see admin/release-branch.txt, but it can't
|
||||
hurt to double check its value.) Commit cus-edit.el if changed.
|
||||
|
||||
3. Remove any old pretests from <https://alpha.gnu.org/gnu/emacs/pretest>.
|
||||
2. Remove any old pretests from <https://alpha.gnu.org/gnu/emacs/pretest>.
|
||||
You can use 'gnupload --delete' (see below for more gnupload details).
|
||||
(We currently don't bother with this.)
|
||||
|
||||
4. Check that all new Lisp libraries belong to sensible packages.
|
||||
3. Check that all new Lisp libraries belong to sensible packages.
|
||||
Run "make -C lisp finder-data" and check the diff of the generated
|
||||
file against the previously released Emacs version to see what has
|
||||
changed.
|
||||
|
||||
5. If this is an emergency release without a prior pretest, inform the
|
||||
4. If this is an emergency release without a prior pretest, inform the
|
||||
maintainers of the bundled packages which are developed separately
|
||||
to make sure they install adjustments required for an official
|
||||
release. Currently, these packages include:
|
||||
|
|
@ -70,7 +63,7 @@ General steps (for each step, check for possible errors):
|
|||
"M-x emacs-news-delete-temporary-markers" command to delete any
|
||||
left-over "---" and "+++" markers from etc/NEWS, as well as the
|
||||
"Temporary note" section at the beginning of that file, and commit
|
||||
etc/NEWS if it was modified. For a bug fix release (e.g. 28.2),
|
||||
etc/NEWS if it was modified. For a bug fix release (e.g. 31.2),
|
||||
delete any empty headlines too.
|
||||
|
||||
2. Regenerate the versioned ChangeLog.N and etc/AUTHORS files.
|
||||
|
|
@ -268,30 +261,33 @@ General steps (for each step, check for possible errors):
|
|||
9. You can now tag the release/pretest and push it together with the
|
||||
last commit:
|
||||
|
||||
cd EMACS_ROOT_DIR && git tag -a TAG -m "Emacs TAG"
|
||||
cd EMACS_ROOT_DIR && git tag -s TAG -m "Emacs STR"
|
||||
git push
|
||||
git push --tags
|
||||
|
||||
Here TAG is emacs-XX.Y.ZZ for a pretest, emacs-XX.Y for a release.
|
||||
For a release, if you are producing a release candidate first, use
|
||||
emacs-XX.Y-rcN (N = 1, 2, ...) when you tar the RC, and add the
|
||||
actual release tag later, when the official release tarball is
|
||||
uploaded to ftp.gnu.org. When adding a tag later, it is safer to
|
||||
use the SHA1 of the last commit which went into the release
|
||||
For STR see below. For a release, if you are producing a release
|
||||
candidate first, use emacs-XX.Y-rcN (N = 1, 2, ...) when you tar the
|
||||
RC, and add the actual release tag later, when the official release
|
||||
tarball is uploaded to ftp.gnu.org. When adding a tag later, it is
|
||||
safer to use the SHA1 of the last commit which went into the release
|
||||
tarball, in case there were some intervening commits since then:
|
||||
|
||||
git tag -a TAG -m "Emacs TAG" SHA1
|
||||
git tag -s TAG -m "Emacs TAG STR" SHA1
|
||||
git push --tags
|
||||
|
||||
In the past, we were not always consistent with the annotation
|
||||
(i.e. -m "Emacs TAG"). The preferred format is like this for a
|
||||
pretest, release candidate and final release:
|
||||
|
||||
git tag -a emacs-28.0.90 -m "Emacs 28.0.90 pretest"
|
||||
git tag -a emacs-28.1-rc1 -m "Emacs 28.1 RC1"
|
||||
git tag -a emacs-28.1 -m "Emacs 28.1 release"
|
||||
git tag -s emacs-31.0.90 -m "Emacs 31.0.90 pretest"
|
||||
git tag -s emacs-31.1-rc1 -m "Emacs 31.1 RC1"
|
||||
git tag -s emacs-31.1 -m "Emacs 31.1 release"
|
||||
|
||||
10. Decide what compression schemes to offer.
|
||||
10. Merge the release branch to master, checking you skip the right
|
||||
commits.
|
||||
|
||||
11. Decide what compression schemes to offer.
|
||||
For a release, at least gz and xz:
|
||||
gzip --best --no-name -c emacs-NEW.tar > emacs-NEW.tar.gz
|
||||
xz -c emacs-NEW.tar > emacs-NEW.tar.xz
|
||||
|
|
@ -300,7 +296,9 @@ General steps (for each step, check for possible errors):
|
|||
Now you should upload the files to the GNU FTP server; your
|
||||
GPG key must already be accepted as described above.
|
||||
The simplest method of uploading is with the gnulib
|
||||
<https://www.gnu.org/s/gnulib/> script "build-aux/gnupload":
|
||||
<https://www.gnu.org/s/gnulib/> script "build-aux/gnupload"
|
||||
(/usr/share/gnulib/build-aux/gnupload on Debian and its derivatives
|
||||
with the 'gnulib' and 'ncftp' packages installed):
|
||||
|
||||
For a pretest or release candidate:
|
||||
gnupload [--user your@gpg.key.email] --to alpha.gnu.org:emacs/pretest \
|
||||
|
|
@ -333,14 +331,14 @@ General steps (for each step, check for possible errors):
|
|||
For a pretest, place the files in /incoming/alpha instead, so that
|
||||
they appear on <https://alpha.gnu.org/>.
|
||||
|
||||
11. After five minutes, verify that the files are visible at
|
||||
12. After five minutes, verify that the files are visible at
|
||||
<https://alpha.gnu.org/gnu/emacs/pretest/> for a pretest, or
|
||||
<https://ftp.gnu.org/gnu/emacs/> for a release.
|
||||
|
||||
Download them and check the signatures and SHA1/SHA256 checksums.
|
||||
Check they build (./configure --with-native-compilation).
|
||||
|
||||
12. Send an announcement to: emacs-devel, and bcc: info-gnu-emacs@gnu.org.
|
||||
13. Send an announcement to: emacs-devel, and bcc: info-gnu-emacs@gnu.org.
|
||||
For a pretest, also bcc: platform-testers@gnu.org.
|
||||
For a release, also bcc: info-gnu@gnu.org.
|
||||
(The reason for using bcc: is to make it less likely that people
|
||||
|
|
@ -354,19 +352,19 @@ General steps (for each step, check for possible errors):
|
|||
because replies that invariably are not announcements also get
|
||||
sent out as if they were.)
|
||||
|
||||
To create the included SHA1 and SHA256 checksums, run:
|
||||
To create the included SHA256 and SHA512 checksums, run:
|
||||
|
||||
sha1sum emacs-NEW.tar.xz
|
||||
sha256sum emacs-NEW.tar.xz
|
||||
sha512sum emacs-NEW.tar.xz
|
||||
|
||||
You can optionally sign the announcement email using
|
||||
the same PGP key that you used for signing the tarball.
|
||||
(Use e.g. `M-x mml-secure-message-sign' in `message-mode' to sign
|
||||
an email.)
|
||||
|
||||
13. After a release, update the Emacs pages as described below.
|
||||
14. After a release, update the Emacs pages as described below.
|
||||
|
||||
14. After a release, bump the Emacs version on the release branch.
|
||||
15. After a release, bump the Emacs version on the release branch.
|
||||
There is no need to bump the version after a pretest; the version
|
||||
is bumped before the next pretest or release instead.
|
||||
|
||||
|
|
@ -396,7 +394,7 @@ like this:
|
|||
|
||||
<div class="release-banner">
|
||||
<div class="container">
|
||||
<h2><em>Emacs 28.1 is out</em>, download it <a href="download.html">here</a>!</h2>
|
||||
<h2><em>Emacs 31.1 is out</em>, download it <a href="download.html">here</a>!</h2>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -106,7 +106,7 @@ For instance, this
|
|||
anywhere in sight is too confusing.
|
||||
|
||||
may not need mentioning, because --daemon will give an error message
|
||||
saying it is not implemented, and other cases aren't affected.
|
||||
saying it's not implemented, and other cases aren't affected.
|
||||
|
||||
The kind of change for which the user really needs help from Antinews
|
||||
is where a feature works _differently_ in the previous version.
|
||||
|
|
@ -164,5 +164,3 @@ like subr.el, which are not quoted.
|
|||
Call 'emacs-news-view-mode'. Lisp symbols and Info manual links shall
|
||||
be decorated, and clicking on them shall lead to the respective Help
|
||||
buffer or Info node.
|
||||
|
||||
*** Do not use "it's", "you're" and alike.
|
||||
|
|
|
|||
95
configure.ac
95
configure.ac
|
|
@ -2127,44 +2127,7 @@ if test $opsys = darwin; then
|
|||
AC_PATH_PROG([HAVE_MACPORTS], [port])
|
||||
fi
|
||||
|
||||
## Require makeinfo >= 4.13 (last of the 4.x series) to build the manuals.
|
||||
: ${MAKEINFO:=makeinfo}
|
||||
case `($MAKEINFO --version) 2>/dev/null` in
|
||||
*' (GNU texinfo) '4.1[[3-9]]* | \
|
||||
*' (GNU texinfo) '[[5-9]]* | \
|
||||
*' (GNU texinfo) '[[1-9][0-9]]* ) ;;
|
||||
*) MAKEINFO=no;;
|
||||
esac
|
||||
|
||||
## Makeinfo is unusual. For a released Emacs, the manuals are
|
||||
## pre-built, and not deleted by the normal clean rules. makeinfo is
|
||||
## therefore in the category of "special tools" not normally required, which
|
||||
## configure does not have to check for (eg autoconf itself).
|
||||
## In a repository checkout on the other hand, the manuals are not included.
|
||||
## So makeinfo is a requirement to build from the repository, and configure
|
||||
## should test for it as it does for any other build requirement.
|
||||
## We use the presence of $srcdir/info/emacs to distinguish a release,
|
||||
## with pre-built manuals, from a repository checkout.
|
||||
if test "$MAKEINFO" = "no"; then
|
||||
MAKEINFO=makeinfo
|
||||
if test ! -e "$srcdir/info/emacs" && test ! -e "$srcdir/info/emacs.info"; then
|
||||
AC_MSG_ERROR( [You do not seem to have makeinfo >= 4.13, and your
|
||||
source tree does not seem to have pre-built manuals in the 'info' directory.
|
||||
Please install a suitable version of makeinfo.] )
|
||||
else
|
||||
AC_MSG_WARN( [You do not seem to have makeinfo >= 4.13.
|
||||
You will not be able to rebuild the manuals if you delete them or change
|
||||
their sources.] )
|
||||
fi
|
||||
fi
|
||||
AC_SUBST([MAKEINFO])
|
||||
|
||||
if test $opsys = mingw32; then
|
||||
DOCMISC_W32=efaq-w32
|
||||
else
|
||||
DOCMISC_W32=
|
||||
fi
|
||||
AC_SUBST([DOCMISC_W32])
|
||||
gl_TEXINFO
|
||||
|
||||
dnl Add our options to ac_link now, after it is set up.
|
||||
|
||||
|
|
@ -5253,25 +5216,7 @@ if test "$with_features" = "no" \
|
|||
with_native_compilation=no
|
||||
fi
|
||||
|
||||
if test "${with_native_compilation}" = "default"; then
|
||||
# Check if libgccjit is available.
|
||||
AC_CHECK_LIB([gccjit], [gcc_jit_context_acquire],
|
||||
[], [libgccjit_not_found])
|
||||
AC_CHECK_HEADERS([libgccjit.h], [], [libgccjit_dev_not_found])
|
||||
if test "${with_native_compilation}" != "no"; then
|
||||
# Check if libgccjit really works.
|
||||
AC_RUN_IFELSE([libgccjit_smoke_test], [], [libgccjit_broken])
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "${with_native_compilation}" != "no"; then
|
||||
if test "${HAVE_ZLIB}" = no; then
|
||||
AC_MSG_ERROR(['--with-native-compilation' requires zlib])
|
||||
fi
|
||||
|
||||
SAVE_CFLAGS=$CFLAGS
|
||||
SAVE_LIBS=$LIBS
|
||||
|
||||
if test "${opsys}" = "darwin"; then
|
||||
# Ensure libgccjit installed by Homebrew or macports can be found.
|
||||
if test -n "$BREW"; then
|
||||
|
|
@ -5308,15 +5253,39 @@ if test "${with_native_compilation}" != "no"; then
|
|||
fi
|
||||
fi
|
||||
|
||||
# In the default case we already checked
|
||||
if test "${with_native_compilation}" != "default"; then
|
||||
# Check if libgccjit is available.
|
||||
AC_CHECK_LIB([gccjit], [gcc_jit_context_acquire],
|
||||
[], [libgccjit_not_found_err])
|
||||
AC_CHECK_HEADERS([libgccjit.h], [], [libgccjit_dev_not_found_err])
|
||||
# Check if libgccjit is available.
|
||||
AC_CHECK_LIB([gccjit], [gcc_jit_context_acquire], [],
|
||||
[if test "${with_native_compilation}" = "default"; then
|
||||
libgccjit_not_found
|
||||
else
|
||||
libgccjit_not_found_err
|
||||
fi])
|
||||
# `libgcc_not_found' may set `with_native_compilation' to `no'.
|
||||
AS_IF([test "$with_native_compilation" != "no"],
|
||||
[AC_CHECK_HEADERS([libgccjit.h], [],
|
||||
[if test "${with_native_compilation}" = "default"; then
|
||||
libgccjit_dev_not_found
|
||||
else
|
||||
libgccjit_dev_not_found_err
|
||||
fi])])
|
||||
if test "${with_native_compilation}" != "no"; then
|
||||
# Check if libgccjit really works.
|
||||
AC_RUN_IFELSE([libgccjit_smoke_test], [], [libgccjit_broken_err])
|
||||
AC_RUN_IFELSE([libgccjit_smoke_test], [],
|
||||
[if test "${with_native_compilation}" = "default"; then
|
||||
libgccjit_broken
|
||||
else
|
||||
libgccjit_broken_err
|
||||
fi])
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "${with_native_compilation}" != "no"; then
|
||||
if test "${HAVE_ZLIB}" = no; then
|
||||
AC_MSG_ERROR(['--with-native-compilation' requires zlib])
|
||||
fi
|
||||
|
||||
SAVE_CFLAGS=$CFLAGS
|
||||
SAVE_LIBS=$LIBS
|
||||
HAVE_NATIVE_COMP=yes
|
||||
case "${opsys}" in
|
||||
# mingw32 loads the library dynamically.
|
||||
|
|
|
|||
|
|
@ -1523,10 +1523,11 @@ on the current line if no files are marked.
|
|||
and their version control statuses. It lists files in the current
|
||||
directory (the one specified when you called @kbd{C-x v d}) and its
|
||||
subdirectories, but only those with a noteworthy status. Files
|
||||
that are up-to-date (i.e., the same as in the repository) are
|
||||
omitted. If all the files in a subdirectory are up-to-date, the
|
||||
that are up-to-date (i.e., the same as in the repository) or ignored
|
||||
are omitted. If all the files in a subdirectory are up-to-date, the
|
||||
subdirectory is not listed either. As an exception, if a file has
|
||||
become up-to-date as a direct result of a VC command, it is listed.
|
||||
become up-to-date as a direct result of a VC command, it is listed by
|
||||
default.
|
||||
|
||||
Here is an example of a VC Directory buffer listing:
|
||||
|
||||
|
|
@ -1565,6 +1566,16 @@ systems can show other statuses. For instance, CVS shows the
|
|||
been applied to the work file. RCS and SCCS show the name of the user
|
||||
locking a file as its status.
|
||||
|
||||
@vindex vc-dir-auto-hide-up-to-date
|
||||
As mentioned above, by default files and directories which become
|
||||
up-to-date or ignored after the VC Directory buffer is first displayed
|
||||
stay displayed. To automatically remove such files from display,
|
||||
customize the variable @code{vc-dir-auto-hide-up-to-date} to the value
|
||||
@code{t}. You can also customize it to the value @code{revert}, in
|
||||
which case such files will be removed only when you refresh the VC
|
||||
Directory display, e.g., by typing @kbd{g} (@pxref{VC Directory
|
||||
Commands}).
|
||||
|
||||
@ifnottex
|
||||
On CVS, the @code{vc-dir} command normally contacts the repository,
|
||||
which may be on a remote machine, to check for updates. If you change
|
||||
|
|
@ -1595,7 +1606,7 @@ cases Emacs must occasionally fetch from the remote repository in order
|
|||
to determine the count. If your connection to the remote repository is
|
||||
slow then this may cause unacceptable slowdowns in refreshing the VC
|
||||
Directory buffer. If this affects you, you can customize
|
||||
@code{vc-dir-show-outgoing-count} to nil to disable the unpushed
|
||||
@code{vc-dir-show-outgoing-count} to @code{nil} to disable the unpushed
|
||||
revisions count altogether. You can also set this on a per-repository
|
||||
basis using directory local variables (@pxref{Directory Variables}).
|
||||
|
||||
|
|
@ -1674,9 +1685,6 @@ the VC Directory buffer (@code{vc-dir-root-next-action}). This is like
|
|||
@w{@kbd{C-x v v}} (@pxref{Basic VC Editing}) except that it ignores any
|
||||
marks and the position of point.
|
||||
|
||||
@item q
|
||||
Quit the VC Directory buffer, and bury it (@code{quit-window}).
|
||||
|
||||
@item u
|
||||
Unmark the file or directory on the current line. If the region is
|
||||
active, unmark all the files in the region (@code{vc-dir-unmark}).
|
||||
|
|
@ -1691,6 +1699,12 @@ files and directories.
|
|||
Hide files with @samp{up-to-date} or @samp{ignored} status
|
||||
(@code{vc-dir-hide-up-to-date}). With a prefix argument, hide items
|
||||
whose state is that of the item at point.
|
||||
|
||||
@item g
|
||||
Refresh the VC Directory buffer display (@code{revert-buffer}).
|
||||
|
||||
@item q
|
||||
Quit the VC Directory buffer, and bury it (@code{quit-window}).
|
||||
@end table
|
||||
|
||||
@findex vc-dir-mark
|
||||
|
|
|
|||
|
|
@ -52,15 +52,15 @@ Here is an example:
|
|||
@group
|
||||
(defun silly-loop (n)
|
||||
"Return the time, in seconds, to run N iterations of a loop."
|
||||
(let ((t1 (float-time)))
|
||||
(let ((t1 (current-time)))
|
||||
(while (> (setq n (1- n)) 0))
|
||||
(- (float-time) t1)))
|
||||
(float-time (time-since t1))))
|
||||
@result{} silly-loop
|
||||
@end group
|
||||
|
||||
@group
|
||||
(silly-loop 50000000)
|
||||
@result{} 5.200886011123657
|
||||
(silly-loop 100000000)
|
||||
@result{} 2.236908583
|
||||
@end group
|
||||
|
||||
@group
|
||||
|
|
@ -69,13 +69,13 @@ Here is an example:
|
|||
@end group
|
||||
|
||||
@group
|
||||
(silly-loop 50000000)
|
||||
@result{} 0.6239290237426758
|
||||
(silly-loop 100000000)
|
||||
@result{} 0.374873305
|
||||
@end group
|
||||
@end example
|
||||
|
||||
In this example, the interpreted code required more than 5 seconds to run,
|
||||
whereas the byte-compiled code required less than 1 second. These
|
||||
In this example, the interpreted code was about six times slower
|
||||
than the byte-compiled code. These
|
||||
results are representative, but actual results may vary.
|
||||
|
||||
@node Compilation Functions
|
||||
|
|
|
|||
|
|
@ -638,11 +638,9 @@ debugger, etc.), and fills it with information about the stack of Lisp
|
|||
function calls. It then enters a recursive edit, showing the
|
||||
backtrace buffer in Debugger mode. In batch mode (more generally,
|
||||
when @code{noninteractive} is non-@code{nil}, @pxref{Batch Mode}),
|
||||
this function shows the Lisp backtrace on the standard error stream,
|
||||
and then kills Emacs, causing it to exit with a non-zero exit code
|
||||
(@pxref{Killing Emacs}). Binding
|
||||
@code{backtrace-on-error-noninteractive} to @code{nil} suppresses the
|
||||
backtrace in batch mode, see below.
|
||||
this function shows the Lisp backtrace on the standard error stream.
|
||||
Binding @code{backtrace-on-error-noninteractive} to @code{nil}
|
||||
suppresses the backtrace in batch mode, see below.
|
||||
|
||||
The Debugger mode @kbd{c}, @kbd{d}, @kbd{j}, and @kbd{r} commands exit
|
||||
the recursive edit; then @code{debug} switches back to the previous
|
||||
|
|
|
|||
|
|
@ -3527,6 +3527,7 @@ non-selected window, Emacs applies the @code{mode-line-inactive} face.
|
|||
For a header line, Emacs applies the @code{header-line} face.
|
||||
For a tab line, Emacs applies the @code{tab-line} face.
|
||||
|
||||
@cindex @code{margin} face, and face merging
|
||||
@item
|
||||
If the text comes from an overlay string via @code{before-string} or
|
||||
@code{after-string} properties (@pxref{Overlay Properties}), or from a
|
||||
|
|
@ -3535,13 +3536,14 @@ contain a @code{face} or @code{mouse-face} property, or these
|
|||
properties leave some face attributes undefined, but the buffer text
|
||||
affected by the overlay/display property does define a face or those
|
||||
attributes, Emacs applies the face attributes of the ``underlying''
|
||||
buffer text. Note that this is so even if the overlay or display
|
||||
string is displayed in the display margins (@pxref{Display Margins}).
|
||||
buffer text. However, this does not apply to strings displayed in the
|
||||
display margins, which use the @code{margin} face as the base instead
|
||||
(@pxref{Display Margins}).
|
||||
|
||||
@item
|
||||
If the text is to be shown in the display margins, and any given
|
||||
attribute has not been specified during the preceding steps, Emacs
|
||||
applies the attribute of the @code{margin} face.
|
||||
If the text is to be shown in the display margins, Emacs uses the
|
||||
@code{margin} face as the base, so any attribute not specified by the
|
||||
string's own face is taken from the @code{margin} face.
|
||||
|
||||
@item
|
||||
If any given attribute has not been specified during the preceding
|
||||
|
|
@ -3804,29 +3806,42 @@ The default face, whose attributes are all specified. All other faces
|
|||
implicitly inherit from it: any unspecified attribute defaults to the
|
||||
attribute on this face (@pxref{Face Attributes}).
|
||||
|
||||
@vindex mode-line @r{faces}
|
||||
@item mode-line-active
|
||||
@itemx mode-line-inactive
|
||||
@itemx header-line
|
||||
@itemx tab-line
|
||||
Basic faces used for the mode line, header line, and tab line.
|
||||
|
||||
@vindex tool-bar @r{face}
|
||||
@item tool-bar
|
||||
@vindex tab-bar @r{face}
|
||||
@itemx tab-bar
|
||||
@vindex fringe @r{face}
|
||||
@itemx fringe
|
||||
@vindex scroll-bar @r{face}
|
||||
@itemx scroll-bar
|
||||
@vindex window-divider @r{face}
|
||||
@itemx window-divider
|
||||
@vindex border @r{face}
|
||||
@itemx border
|
||||
@vindex child-frame-border @r{face}
|
||||
@itemx child-frame-border
|
||||
Basic faces used for the corresponding decorations of GUI frames.
|
||||
|
||||
@vindex cursor @r{face}
|
||||
@item cursor
|
||||
The basic face used for the text cursor.
|
||||
|
||||
@vindex margin @r{face}
|
||||
@item margin
|
||||
The basic face used for window margins, both on the left and on the
|
||||
right. It is commonly used to customize the background of the empty
|
||||
areas of the margins. It inherits from the @code{default} face.
|
||||
areas of the margins, and it also provides the base attributes for
|
||||
strings displayed in the margins (@pxref{Display Margins}). It
|
||||
inherits from the @code{default} face.
|
||||
|
||||
@vindex mouse @r{face}
|
||||
@item mouse
|
||||
The basic face used for displaying mouse-sensitive text when the mouse
|
||||
pointer is on that text.
|
||||
|
|
@ -3842,6 +3857,7 @@ These have the attributes indicated by their names (e.g., @code{bold}
|
|||
has a bold @code{:weight} attribute), with all other attributes
|
||||
unspecified (and so given by @code{default}).
|
||||
|
||||
@vindex shadow @r{face}
|
||||
@item shadow
|
||||
For dimmed-out text. For example, it is used for the ignored
|
||||
part of a filename in the minibuffer (@pxref{Minibuffer File,,
|
||||
|
|
@ -3857,15 +3873,21 @@ For stretches of text that should temporarily stand out. For example,
|
|||
it is commonly assigned to the @code{mouse-face} property for cursor
|
||||
highlighting (@pxref{Special Properties}).
|
||||
|
||||
@vindex match @r{face}
|
||||
@item match
|
||||
@vindex isearch @r{face}
|
||||
@itemx isearch
|
||||
@vindex lazy-highlight @r{face}
|
||||
@itemx lazy-highlight
|
||||
For text matching (respectively) permanent search matches, interactive
|
||||
search matches, and lazy highlighting other matches than the current
|
||||
interactive one.
|
||||
|
||||
@vindex error @r{face}
|
||||
@item error
|
||||
@vindex warning @r{face}
|
||||
@itemx warning
|
||||
@vindex success @r{face}
|
||||
@itemx success
|
||||
For text concerning errors, warnings, or successes. For example,
|
||||
these are used for messages in @file{*Compilation*} buffers.
|
||||
|
|
@ -5921,12 +5943,9 @@ the before-string.
|
|||
|
||||
Note that if the string to be displayed in the margin doesn't fully
|
||||
specify its face, the nonspecified attributes are inherited from the
|
||||
@code{margin} face (@pxref{Basic Faces}). The face merging mechanism
|
||||
ensures that the margin background remains consistent when margin
|
||||
annotations specify only a foreground color. If you want a margin
|
||||
string to have a specific appearance independent of the @code{margin}
|
||||
face, make sure the string has a face specifying all required
|
||||
attributes.
|
||||
@code{margin} face (@pxref{Basic Faces}). If you want a margin string
|
||||
to have a specific appearance independent of the @code{margin} face,
|
||||
make sure the string has a face specifying all required attributes.
|
||||
|
||||
Before the display margins can display anything, you must give
|
||||
them a nonzero width. The usual way to do that is to set these
|
||||
|
|
|
|||
|
|
@ -2694,10 +2694,9 @@ The color to use for the background of characters. It is equivalent to
|
|||
the @code{:background} attribute of the @code{default} face.
|
||||
|
||||
@vindex mouse-color@r{, a frame parameter}
|
||||
@vindex mouse@r{, a face}
|
||||
@item mouse-color
|
||||
The color for the mouse pointer. It is equivalent to the @code{:background}
|
||||
attribute of the @code{mouse} face.
|
||||
attribute of the @code{mouse} face (@pxref{Basic Faces}).
|
||||
|
||||
@vindex cursor-color@r{, a frame parameter}
|
||||
@item cursor-color
|
||||
|
|
|
|||
|
|
@ -2040,6 +2040,7 @@ system.
|
|||
@defun format-seconds format-string seconds
|
||||
This function converts its argument @var{seconds} into a string of
|
||||
years, days, hours, etc., according to @var{format-string}. The
|
||||
argument @var{seconds} is a time value (@pxref{Time of Day}). The
|
||||
argument @var{format-string} may contain @samp{%}-sequences which
|
||||
control the conversion. Here is a table of what the
|
||||
@samp{%}-sequences mean:
|
||||
|
|
|
|||
|
|
@ -2625,7 +2625,8 @@ avoid calling @code{widen} in their indentation code and obey
|
|||
@defvar prog-indentation-context
|
||||
This variable, when non-@code{nil}, holds the indentation context for
|
||||
the sub-mode's indentation engine provided by the superior major mode.
|
||||
The value should be a list of the form @code{(@var{first-column} . @var{rest}}.
|
||||
The value should be a list of the form @w{@code{(@var{first-column}
|
||||
. @var{rest})}}.
|
||||
The members of the list have the following meaning:
|
||||
|
||||
@table @var
|
||||
|
|
@ -4870,6 +4871,24 @@ Therefore, all else being equal, it is preferable to pass a buffer than
|
|||
a string as @var{source} argument.
|
||||
@end defun
|
||||
|
||||
Sometimes @code{replace-region-contents} is unable to understand the
|
||||
nature of the change in which case information such as overlays and
|
||||
markers will not be preserved as well as we would like. If this is
|
||||
important and you have enough knowledge about the change, you can
|
||||
preserve this information manually. For example, when sorting the lines
|
||||
of a region, you can start by collecting all the overlays and markers in
|
||||
the affected region using @code{overlays-in} and @code{markers-in} as
|
||||
well as recording a description of the line on which they were found.
|
||||
After inserting the sorted lines, you can then move the objects back to
|
||||
their rightful position.
|
||||
|
||||
@defun markers-in &optional beg end
|
||||
Return a list of all the markers found between @var{beg} and @var{end}
|
||||
in the current buffer. @var{beg} defaults the @code{point-min} and
|
||||
@var{end} defaults to @code{point-max}. Do not rely on the order of the
|
||||
markers in the list, because it is unspecified.
|
||||
@end defun
|
||||
|
||||
@node Decompression
|
||||
@section Dealing With Compressed Data
|
||||
|
||||
|
|
|
|||
|
|
@ -63,18 +63,22 @@ INSTALL_DATA = @INSTALL_DATA@
|
|||
MAKEINFO = @MAKEINFO@
|
||||
MAKEINFO_OPTS = --force -I$(emacsdir)
|
||||
|
||||
ifeq ($(DOCLANG),)
|
||||
DOCLANG:=default
|
||||
else ifeq ($(wildcard $(srcdir)/../translations/$(DOCLANG)/info_common.mk),)
|
||||
$(error No manual language $(DOCLANG) found)
|
||||
DOCLANG:=default
|
||||
endif
|
||||
|
||||
lang_suffix:=$(filter-out -default,-$(DOCLANG))
|
||||
lang_subdir:=$(filter-out ../translations/default/misc/,../translations/$(DOCLANG)/misc/)
|
||||
|
||||
## On MS Windows, efaq-w32; otherwise blank.
|
||||
DOCMISC_W32 = @DOCMISC_W32@
|
||||
DOCMISC_W32_TARGET = efaq-w32
|
||||
|
||||
## Info files to build and install on all platforms.
|
||||
INFO_COMMON = auth autotype bovine calc ccmode cl dbus dired-x \
|
||||
ebrowse ede ediff edt efaq eglot eieio emacs-gnutls \
|
||||
emacs-mime epa erc ert eshell eudc eww flymake forms gnus \
|
||||
htmlfontify idlwave ido info.info mairix-el message mh-e \
|
||||
modus-themes newsticker nxml-mode octave-mode org pcl-cvs pgg \
|
||||
rcirc reftex remember sasl sc semantic ses sieve smtpmail \
|
||||
speedbar srecode todo-mode tramp transient url use-package \
|
||||
vhdl-mode viper vtable widget wisent woman
|
||||
include $(srcdir)/../translations/$(DOCLANG)/info_common.mk
|
||||
|
||||
## Info files to install on current platform.
|
||||
INFO_INSTALL = $(INFO_COMMON) $(DOCMISC_W32)
|
||||
|
|
@ -82,29 +86,31 @@ INFO_INSTALL = $(INFO_COMMON) $(DOCMISC_W32)
|
|||
## Info files to build on current platform.
|
||||
## This is all of them, even though they might not all get installed,
|
||||
## because the info files are pre-built in release tarfiles.
|
||||
INFO_TARGETS = $(INFO_COMMON) efaq-w32
|
||||
INFO_TARGETS = $(INFO_COMMON) $(DOCMISC_W32_TARGET)
|
||||
|
||||
## Some manuals have their source in .org format.
|
||||
## This is discouraged because the .texi files it generates
|
||||
## are not as well formatted as handwritten ones.
|
||||
ORG_SETUP = $(wildcard ${srcdir}/*-setup.org)
|
||||
ORG_SRC = $(filter-out ${ORG_SETUP},$(wildcard ${srcdir}/*.org))
|
||||
ORG_SETUP = $(wildcard ${srcdir}/$(lang_subdir)*-setup.org)
|
||||
ORG_SRC = $(filter-out ${ORG_SETUP},$(wildcard ${srcdir}/$(lang_subdir)*.org))
|
||||
TEXI_FROM_ORG = ${ORG_SRC:.org=.texi}
|
||||
|
||||
# There are some naming differences between the info targets and the other
|
||||
# targets, so let's resolve them here.
|
||||
TARGETS_1 = $(INFO_INSTALL:ccmode=cc-mode)
|
||||
TARGETS = $(TARGETS_1:info.info=info)
|
||||
TARGETS = $(INFO_INSTALL:ccmode=cc-mode)
|
||||
|
||||
texi_sources = $(addsuffix .texi,${TARGETS})
|
||||
# Sources are also suffixed, this is useless as they are in different
|
||||
# directories, but some people argued that there should not be
|
||||
# different files with same name in the repo.
|
||||
texi_sources = $(addsuffix $(lang_suffix).texi,${TARGETS})
|
||||
texi_notgen = $(filter-out $(notdir ${TEXI_FROM_ORG}),${texi_sources})
|
||||
texi_and_org = $(notdir ${ORG_SRC}) ${texi_notgen}
|
||||
SOURCES = $(sort ${texi_and_org})
|
||||
|
||||
DVI_TARGETS = $(TARGETS:=.dvi)
|
||||
HTML_TARGETS = $(TARGETS:=.html)
|
||||
PDF_TARGETS = $(TARGETS:=.pdf)
|
||||
PS_TARGETS = $(TARGETS:=.ps)
|
||||
DVI_TARGETS = $(TARGETS:=$(lang_suffix).dvi)
|
||||
HTML_TARGETS = $(TARGETS:=$(lang_suffix).html)
|
||||
PDF_TARGETS = $(TARGETS:=$(lang_suffix).pdf)
|
||||
PS_TARGETS = $(TARGETS:=$(lang_suffix).ps)
|
||||
|
||||
TEXI2DVI = texi2dvi
|
||||
TEXI2PDF = texi2pdf
|
||||
|
|
@ -118,21 +124,21 @@ ENVADD = $(AM_V_GEN)TEXINPUTS="$(srcdir):$(emacsdir):$(TEXINPUTS)" \
|
|||
gfdl = ${srcdir}/doclicense.texi
|
||||
style = ${emacsdir}/docstyle.texi
|
||||
|
||||
.PHONY: info dvi html pdf ps echo-info echo-sources $(INFO_TARGETS)
|
||||
.PHONY: info dvi html pdf ps echo-info echo-sources $(patsubst info, info-doc, $(INFO_TARGETS))
|
||||
## Prevent implicit rule triggering for foo.info.
|
||||
.SUFFIXES:
|
||||
|
||||
## Disable implicit rules.
|
||||
%.texi: ;
|
||||
|
||||
# Default.
|
||||
info: $(INFO_TARGETS)
|
||||
# Default. patsubst as "info" is already taken.
|
||||
info: $(patsubst info, info-doc,$(INFO_TARGETS))
|
||||
|
||||
## Used by top-level Makefile.
|
||||
## Base file names of output info files.
|
||||
INFO_BASES = $(patsubst %.info,%,$(notdir $(INFO_INSTALL)))
|
||||
echo-info:
|
||||
@: $(info $(addsuffix .info,$(INFO_BASES)))
|
||||
@: $(info $(addsuffix $(lang_suffix).info,$(INFO_BASES)))
|
||||
|
||||
echo-sources:
|
||||
@: $(info $(SOURCES))
|
||||
|
|
@ -152,32 +158,30 @@ ${buildinfodir}:
|
|||
|
||||
EXTRA_OPTS =
|
||||
|
||||
${buildinfodir}/%.info: ${srcdir}/%.texi ${gfdl} ${style} | ${buildinfodir}
|
||||
${buildinfodir}/%$(lang_suffix).info: ${srcdir}/$(lang_subdir)%$(lang_suffix).texi ${gfdl} ${style} | ${buildinfodir}
|
||||
$(AM_V_GEN)$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) $(EXTRA_OPTS) \
|
||||
-o $@ $<
|
||||
|
||||
## The short aliases, eg efaq = $(buildinfodir)/efaq.info.
|
||||
define info_template
|
||||
$(1): $$(buildinfodir)/$(1).info
|
||||
## patsubst as "info" is already taken.
|
||||
$$(patsubst info, info-doc, $(1)): $$(buildinfodir)/$(1)$$(lang_suffix).info
|
||||
endef
|
||||
|
||||
## "info" is already taken.
|
||||
info.info: $(buildinfodir)/info.info
|
||||
|
||||
$(foreach ifile,$(filter-out info.info,$(INFO_TARGETS)),$(eval $(call info_template,$(ifile))))
|
||||
$(foreach ifile,$(INFO_TARGETS),$(eval $(call info_template,$(ifile))))
|
||||
|
||||
|
||||
%.dvi: ${srcdir}/%.texi ${gfdl} ${style}
|
||||
%$(lang_suffix).dvi: ${srcdir}/$(lang_subdir)%$(lang_suffix).texi ${gfdl} ${style}
|
||||
$(ENVADD) $(TEXI2DVI) $<
|
||||
|
||||
%.pdf: ${srcdir}/%.texi ${gfdl} ${style}
|
||||
%$(lang_suffix).pdf: ${srcdir}/$(lang_subdir)%$(lang_suffix).texi ${gfdl} ${style}
|
||||
$(ENVADD) $(TEXI2PDF) $<
|
||||
|
||||
%.html: ${srcdir}/%.texi ${gfdl} ${style}
|
||||
%$(lang_suffix).html: ${srcdir}/$(lang_subdir)%$(lang_suffix).texi ${gfdl} ${style}
|
||||
$(AM_V_GEN)$(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) $(EXTRA_OPTS) \
|
||||
-o $@ $<
|
||||
|
||||
%.ps: %.dvi
|
||||
%$(lang_suffix).ps: %$(lang_suffix).dvi
|
||||
$(DVIPS) -o $@ $<
|
||||
|
||||
|
||||
|
|
@ -204,16 +208,16 @@ ${buildinfodir}/ccmode.info: \
|
|||
|
||||
## efaq, efaq_w32 do not depend on gfdl.
|
||||
## Maybe we can use .SECONDEXPANSION for this.
|
||||
${buildinfodir}/efaq%.info: ${srcdir}/efaq%.texi ${style} | ${buildinfodir}
|
||||
${buildinfodir}/efaq%$(lang_suffix).info: ${srcdir}/efaq%$(lang_suffix).texi ${style} | ${buildinfodir}
|
||||
$(AM_V_GEN)$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ $<
|
||||
|
||||
efaq%.dvi: ${srcdir}/efaq%.texi
|
||||
efaq%$(lang_suffix).dvi: ${srcdir}/efaq%$(lang_suffix).texi
|
||||
$(ENVADD) $(TEXI2DVI) $<
|
||||
|
||||
efaq%.pdf: ${srcdir}/efaq%.texi
|
||||
efaq%$(lang_suffix).pdf: ${srcdir}/efaq%$(lang_suffix).texi
|
||||
$(ENVADD) $(TEXI2PDF) $<
|
||||
|
||||
efaq%.html: ${srcdir}/efaq%.texi
|
||||
efaq%$(lang_suffix).html: ${srcdir}/efaq%$(lang_suffix).texi
|
||||
$(AM_V_GEN)$(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ $<
|
||||
|
||||
${buildinfodir}/emacs-mime.info emacs-mime.html: EXTRA_OPTS = --enable-encoding
|
||||
|
|
@ -248,7 +252,10 @@ emacs = "${EMACS}" -batch --no-site-file --no-site-lisp --eval '(setq load-prefe
|
|||
# things like org-setup's "version" macro work. Sigh.
|
||||
define org_template
|
||||
$(1:.org=.texi): $(1) ${top_srcdir}/lisp/org/ox-texinfo.el
|
||||
$${AM_V_GEN}cd "$${srcdir}" && $${emacs} -l ox-texinfo \
|
||||
$${AM_V_GEN}cd "$${srcdir}" && $${emacs} \
|
||||
--eval '(add-to-list (quote load-path) "$(abspath ${top_srcdir}/lisp/org)")' \
|
||||
--eval '(setq org--inhibit-version-check t)' \
|
||||
-l ox-texinfo \
|
||||
--eval '(setq gc-cons-threshold 50000000)' \
|
||||
--eval '(setq org-confirm-babel-evaluate nil)' \
|
||||
--eval '(setq org-id-track-globally nil)' \
|
||||
|
|
|
|||
|
|
@ -1340,9 +1340,20 @@ keyword @code{:session}.
|
|||
D-Bus object path, @var{service} is registered at. @var{interface} is
|
||||
an interface offered by @var{service}. It must provide @var{method}.
|
||||
|
||||
@var{handler} is a Lisp function, which is called when the
|
||||
corresponding return message arrives. If @var{handler} is @code{nil},
|
||||
no return message will be expected.
|
||||
@var{handler} is a Lisp function, which is called when the corresponding
|
||||
return message has arrived. It uses the returned values from the
|
||||
@var{method} call as arguments. These are the same arguments which are
|
||||
returned when @code{dbus-call-method} is invoked instead,
|
||||
@pxref{Synchronous Methods}. If @var{handler} is @code{nil}, no return
|
||||
message will be expected.
|
||||
|
||||
@var{handler} can also be the cons cell @code{(@var{handler}
|
||||
. @var{error-handler})}. In this case, @var{error-handler} will be
|
||||
called in case an error is returned from D-Bus. It uses the returned
|
||||
D-Bus error as argument.
|
||||
|
||||
Neither the return value of @var{handler} nor the return value of
|
||||
@var{error-handler} is used.
|
||||
|
||||
If the parameter @code{:timeout} is given, the following integer
|
||||
@var{timeout} specifies the maximum number of milliseconds before a
|
||||
|
|
@ -1366,19 +1377,40 @@ arguments. They are converted into D-Bus types as described in
|
|||
If @var{handler} is a Lisp function, the function returns a key into
|
||||
the hash table @code{dbus-registered-objects-table}. The
|
||||
corresponding entry in the hash table is removed, when the return
|
||||
message arrives, and @var{handler} is called. Example:
|
||||
message arrives, and @var{handler} is called. Examples:
|
||||
|
||||
The return value of @samp{org.freedesktop.portal.Settings.ReadOne} is a variant.
|
||||
|
||||
@lisp
|
||||
(dbus-call-method-asynchronously
|
||||
:system "org.freedesktop.Hal"
|
||||
"/org/freedesktop/Hal/devices/computer"
|
||||
"org.freedesktop.Hal.Device" "GetPropertyString"
|
||||
(lambda (msg) (message "%s" msg))
|
||||
"system.kernel.machine")
|
||||
:session "org.freedesktop.portal.Desktop"
|
||||
"/org/freedesktop/portal/desktop"
|
||||
"org.freedesktop.portal.Settings" "ReadOne"
|
||||
'((lambda (msg) (message "Method handler %s" msg)) .
|
||||
(lambda (err) (message "Error handler %s" err)))
|
||||
"org.freedesktop.appearance" "color-scheme")
|
||||
|
||||
@print{} i686
|
||||
@print{} Method handler (0)
|
||||
|
||||
@result{} (:serial :system 2)
|
||||
@result{} (:serial :session 4)
|
||||
@end lisp
|
||||
|
||||
There does not exist a method @samp{org.freedesktop.portal.Settings.ReadTwo}.
|
||||
|
||||
@lisp
|
||||
(dbus-call-method-asynchronously
|
||||
:session "org.freedesktop.portal.Desktop"
|
||||
"/org/freedesktop/portal/desktop"
|
||||
"org.freedesktop.portal.Settings" "ReadTwo"
|
||||
'((lambda (msg) (message "Method handler %s" msg)) .
|
||||
(lambda (err) (message "Error handler %s" err)))
|
||||
"org.freedesktop.appearance" "color-scheme")
|
||||
|
||||
@print{} Error handler
|
||||
(dbus-error "org.freedesktop.DBus.Error.UnknownMethod
|
||||
No such method "ReadTwo")
|
||||
|
||||
@result{} (:serial :session 5)
|
||||
@end lisp
|
||||
@end defun
|
||||
|
||||
|
|
|
|||
|
|
@ -996,6 +996,17 @@ same language server. That file is still outside your project
|
|||
will consider it to be part of the workspace. The default is
|
||||
@code{nil}.
|
||||
|
||||
@cindex markdown renderer
|
||||
@item eglot-documentation-renderer
|
||||
This variable controls how Eglot renders at-point documentation imported
|
||||
from the server (@pxref{Eglot Features}). The default value is
|
||||
@code{nil}, meaning Eglot selects a suitable Markdown renderer on each
|
||||
use---for example, @code{gfm-view-mode} from @code{markdown-mode} on
|
||||
NonGNU ELPA, which enhances documentation through fontification and
|
||||
other formatting. If you set it to @code{t}, plain text is requested
|
||||
from the server and no rendering is attempted. See docstring for more
|
||||
options.
|
||||
|
||||
@item eglot-mode-map
|
||||
This variable is the keymap for binding Eglot-related command. It is in
|
||||
effect only as long as the buffer is managed by Eglot. By default, it
|
||||
|
|
|
|||
|
|
@ -933,8 +933,8 @@ that start with a space are part of the value).
|
|||
|
||||
@example
|
||||
Name: foo
|
||||
Code: (indent-region
|
||||
(point-min) (point-max))
|
||||
Code: (lambda ()
|
||||
(indent-region (point-min) (point-max)))
|
||||
@end example
|
||||
|
||||
@table @samp
|
||||
|
|
|
|||
|
|
@ -9,6 +9,13 @@
|
|||
@syncodeindex vr cp
|
||||
@syncodeindex ky cp
|
||||
@c %**end of header
|
||||
@c compile info with
|
||||
@c make -C doc/misc ../../info/ses.info
|
||||
@c or just
|
||||
@c make -C doc/misc ses
|
||||
@c compile pdf with
|
||||
@c make -C doc/misc ses.pdf
|
||||
|
||||
|
||||
@copying
|
||||
This file documents @acronym{SES}: the Simple Emacs Spreadsheet.
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
@c In the Tramp GIT, the version number and the bug report address
|
||||
@c are auto-frobbed from configure.ac.
|
||||
@set trampver 2.8.2-pre
|
||||
@set trampver 2.8.2
|
||||
@set trampurl https://www.gnu.org/software/tramp/
|
||||
@set tramp-bug-report-address tramp-devel@@gnu.org
|
||||
@set emacsver 28.1
|
||||
|
|
|
|||
|
|
@ -1,3 +1,19 @@
|
|||
* Translated Emacs manuals
|
||||
** Translations available
|
||||
|
||||
Translations for language _doclang_ can be found under directory
|
||||
doc/translations/_doclang_.
|
||||
|
||||
** Compiling a manual translation
|
||||
|
||||
For the info output, and, say, SES manual in French:
|
||||
|
||||
make -C doc/misc ses DOCLANG=fr
|
||||
|
||||
For the pdf output:
|
||||
|
||||
make -C doc/misc ses-fr.pdf DOCLANG=fr
|
||||
|
||||
* Translating the Emacs manuals
|
||||
|
||||
** Copyright assignment
|
||||
|
|
|
|||
9
doc/translations/default/info_common.mk
Normal file
9
doc/translations/default/info_common.mk
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
## Info files to build and install on all platforms.
|
||||
INFO_COMMON = auth autotype bovine calc ccmode cl dbus dired-x \
|
||||
ebrowse ede ediff edt efaq eglot eieio emacs-gnutls \
|
||||
emacs-mime epa erc ert eshell eudc eww flymake forms gnus \
|
||||
htmlfontify idlwave ido info mairix-el message mh-e \
|
||||
modus-themes newsticker nxml-mode octave-mode org pcl-cvs pgg \
|
||||
rcirc reftex remember sasl sc semantic ses sieve smtpmail \
|
||||
speedbar srecode todo-mode tramp transient url use-package \
|
||||
vhdl-mode viper vtable widget wisent woman
|
||||
8
doc/translations/fr/info_common.mk
Normal file
8
doc/translations/fr/info_common.mk
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
## Info files to build and install on all platforms (only ses has been
|
||||
## translated to French)
|
||||
INFO_COMMON = ses
|
||||
|
||||
## efaq-w32 has not been translated to French
|
||||
DOCMISC_W32:=#
|
||||
|
||||
DOCMISC_W32_TARGET:=#
|
||||
|
|
@ -10,6 +10,12 @@
|
|||
@syncodeindex vr cp
|
||||
@syncodeindex ky cp
|
||||
@c %**end of header
|
||||
@c compiler info avec
|
||||
@c make -C doc/misc ../../info/ses-fr.info DOCLANG=fr
|
||||
@c ou juste
|
||||
@c make -C doc/misc ses DOCLANG=fr
|
||||
@c compiler pdf avec
|
||||
@c make -C doc/misc ses-fr.pdf DOCLANG=fr
|
||||
|
||||
@copying
|
||||
Ce fichier documente @acronym{SES} : le tableur simple d’Emacs (Simple
|
||||
|
|
|
|||
93
etc/AUTHORS
93
etc/AUTHORS
|
|
@ -87,6 +87,8 @@ Agustín Martín: changed ispell.el flyspell.el fixit.texi
|
|||
Ahmed Khanzada: changed gtkutil.c battery.el frame.c frame.el gtkutil.h
|
||||
nsterm.m w32fns.c w32term.c w32term.h xsettings.c xsettings.h
|
||||
|
||||
Aidan Coyle: changed eww.el
|
||||
|
||||
Aidan Gauland: wrote em-tramp.el
|
||||
and changed eshell.texi em-term.el em-unix.el erc-match.el em-cmpl.el
|
||||
em-dirs.el em-ls.el em-script.el esh-proc.el eshell-tests.el
|
||||
|
|
@ -157,7 +159,7 @@ Aleksey Kladov: changed eglot.el
|
|||
Alexander Adolf: wrote eudc-capf.el eudcb-ecomplete.el
|
||||
eudcb-macos-contacts.el eudcb-mailabbrev.el
|
||||
and changed eudc.texi message.el eudc-vars.el ecompleterc eudc-tests.el
|
||||
eudc.el mailrc
|
||||
eudc.el mailrc vc.el
|
||||
|
||||
Alexander Becher: changed vc-annotate.el
|
||||
|
||||
|
|
@ -288,7 +290,7 @@ Amin Bandali: changed erc.el erc.texi erc-backend.el erc-button.el
|
|||
erc-compat.el erc-track.el erc-dcc.el erc-desktop-notifications.el
|
||||
erc-match.el erc-services.el erc-speedbar.el erc-status-sidebar.el
|
||||
erc-autoaway.el erc-fill.el erc-goodies.el erc-ibuffer.el erc-imenu.el
|
||||
erc-join.el erc-lang.el erc-list.el erc-log.el and 13 other files
|
||||
erc-join.el erc-lang.el erc-list.el erc-log.el and 15 other files
|
||||
|
||||
Amos Bird: changed xfns.c
|
||||
|
||||
|
|
@ -309,7 +311,7 @@ and changed nsterm.m nsfns.m nsmenu.m nsterm.h font-lock.el nsimage.m
|
|||
|
||||
Anders Waldenborg: changed emacsclient.c
|
||||
|
||||
Andrea Alberti: changed dispextern.h faces.el xdisp.c xfaces.c
|
||||
Andrea Alberti: changed xdisp.c dispextern.h faces.el xfaces.c
|
||||
|
||||
Andrea Corallo: wrote [native compilation of Emacs Lisp] comp-common.el
|
||||
comp-cstr-tests.el comp-cstr.el comp-run.el comp-tests.el comp.c
|
||||
|
|
@ -583,7 +585,7 @@ and changed progmodes/python.el eglot.el isearch.el comint.el eldoc.el
|
|||
progmodes/compile.el project.el README.md bookmark.el dired.el
|
||||
dockerfile-ts-mode.el files.el font-lock.el glasses.el gnutls.el man.el
|
||||
message.el message.texi misc.texi modes.texi outline.el
|
||||
and 16 other files
|
||||
and 17 other files
|
||||
|
||||
Aurélien Aptel: changed alloc.c emacs-module.h lisp.h Makefile
|
||||
configure.ac cus-face.el data.c dispextern.h display.texi dynlib.c
|
||||
|
|
@ -1542,7 +1544,7 @@ David Ponce: wrote bovine/grammar.el cedet.el comp.el java-tags.el
|
|||
semantic/java.el semantic/wisent.el senator.el tree-widget.el
|
||||
wisent/grammar.el wisent/wisent.el
|
||||
and co-wrote util-modes.el
|
||||
and changed subr-x.el wid-edit.el image.el w32menu.c w32term.c
|
||||
and changed wid-edit.el subr-x.el image.el w32menu.c w32term.c
|
||||
cl-extra.el cl-types.el close.png close.xpm cus-edit.el empty.png
|
||||
empty.xpm end-guide.png end-guide.xpm files.el guide.png guide.xpm
|
||||
handle.png handle.xpm keyboard.c leaf.png and 36 other files
|
||||
|
|
@ -1670,7 +1672,8 @@ Dionisio E Alonso: changed eglot.el
|
|||
|
||||
Dirk Herrmann: co-wrote bibtex.el
|
||||
|
||||
Dirk-Jan C. Binnema: changed configure.ac org-agenda.el xwidget.c
|
||||
Dirk-Jan C. Binnema: changed xwidget.c configure.ac org-agenda.el
|
||||
process.c process.h
|
||||
|
||||
Dirk Ullrich: changed ispell.el
|
||||
|
||||
|
|
@ -1809,9 +1812,9 @@ Eli Zaretskii: wrote [bidirectional display in xdisp.c]
|
|||
chartab-tests.el coding-tests.el etags-tests.el rxvt.el tty-colors.el
|
||||
and co-wrote help-tests.el
|
||||
and changed xdisp.c display.texi w32.c msdos.c simple.el w32fns.c
|
||||
files.el fileio.c keyboard.c configure.ac emacs.c text.texi w32term.c
|
||||
dispnew.c frames.texi files.texi w32proc.c xfaces.c process.c window.c
|
||||
dispextern.h and 1451 other files
|
||||
files.el fileio.c keyboard.c configure.ac emacs.c text.texi dispnew.c
|
||||
w32term.c frames.texi files.texi w32proc.c xfaces.c process.c window.c
|
||||
dispextern.h and 1453 other files
|
||||
|
||||
Eliza Velasquez: changed server.el simple.el
|
||||
|
||||
|
|
@ -2093,8 +2096,8 @@ Filipp Gunbin: changed ldap.el compilation.txt progmodes/compile.el
|
|||
|
||||
Filippo Argiolas: changed eglot.el eglot.texi c-ts-common.el
|
||||
|
||||
F. Jason Park: changed erc.el erc-tests.el erc-backend.el erc-common.el
|
||||
erc-stamp.el erc-fill.el erc.texi erc-goodies.el erc-button.el
|
||||
F. Jason Park: changed erc.el erc-tests.el erc-backend.el erc-stamp.el
|
||||
erc-common.el erc-fill.el erc.texi erc-goodies.el erc-button.el
|
||||
erc-fill-tests.el erc-networks.el foonet.eld erc-compat.el erc-match.el
|
||||
erc-speedbar.el erc-dcc.el erc-scenarios-common.el erc-sasl.el
|
||||
erc-networks-tests.el erc-track.el erc-goodies-tests.el
|
||||
|
|
@ -2648,6 +2651,8 @@ Iwamuro Motonori: changed gnus-kill.el
|
|||
|
||||
Jaap-Henk Hoepman: changed mm-decode.el
|
||||
|
||||
Jacek Migacz: changed gnus-msg.el
|
||||
|
||||
Jacek Świerk: changed compilation.txt compile-tests.el
|
||||
progmodes/compile.el
|
||||
|
||||
|
|
@ -2849,9 +2854,9 @@ Jay Sachs: changed gnus-score.el gnus-win.el
|
|||
|
||||
J.D. Smith: co-wrote idlw-help.el idlw-shell.el idlwave.el
|
||||
and changed idlw-rinfo.el comint.el idlwave.texi loaddefs-gen.el vc.el
|
||||
bibtex.el byte-run.el cl-generic.el easy-mmode.el eglot.el files.texi
|
||||
functions.texi hideshow.el inline.el loading.texi misc.texi mouse.el
|
||||
os.texi pcase.el repeat.el shr.el and 9 other files
|
||||
bibtex.el byte-run.el cl-generic.el configure.ac easy-mmode.el eglot.el
|
||||
files.texi functions.texi hideshow.el inline.el loading.texi misc.texi
|
||||
mouse.el os.texi pcase.el repeat.el and 10 other files
|
||||
|
||||
Jean Abou Samra: changed scheme.el
|
||||
|
||||
|
|
@ -3054,11 +3059,11 @@ João P. L. De Carvalho: changed sh-script.el
|
|||
João Távora: wrote eglot-tests.el eglot.el elec-pair.el electric-tests.el
|
||||
flymake-cc.el jsonrpc-tests.el jsonrpc.el message-tests.el
|
||||
shorthands.el
|
||||
and changed flymake.el icomplete.el EGLOT-NEWS README.md eldoc.el
|
||||
and changed flymake.el EGLOT-NEWS icomplete.el README.md eldoc.el
|
||||
eglot.texi minibuffer.el flymake-proc.el flymake.texi elisp-mode.el
|
||||
flymake-tests.el flymake-elisp.el electric.el elisp-mode-tests.el
|
||||
lread.c text.texi Makefile flymake-ui.el progmodes/python.el project.el
|
||||
xref.el and 74 other files
|
||||
xref.el and 77 other files
|
||||
|
||||
Jochen Hein: changed gnus-art.el
|
||||
|
||||
|
|
@ -3314,6 +3319,8 @@ Josh Huber: changed mml-sec.el mml.el message.el gnus-msg.el mml2015.el
|
|||
|
||||
Joshua Datko: changed fortune.el
|
||||
|
||||
Joshua Murphy: changed newst-treeview.el
|
||||
|
||||
Joshua Varner: changed intro.texi
|
||||
|
||||
Jostein Kjønigsen: changed csharp-mode.el typescript-ts-mode.el eglot.el
|
||||
|
|
@ -3391,7 +3398,7 @@ Juri Linkov: wrote compose.el emoji.el files-x.el misearch.el
|
|||
and changed isearch.el simple.el replace.el info.el dired.el treesit.el
|
||||
minibuffer.el dired-aux.el window.el outline.el progmodes/grep.el
|
||||
subr.el diff-mode.el repeat.el vc.el mouse.el files.el image-mode.el
|
||||
menu-bar.el project.el display.texi and 526 other files
|
||||
menu-bar.el project.el display.texi and 528 other files
|
||||
|
||||
Jussi Lahdenniemi: changed w32fns.c ms-w32.h msdos.texi w32.c w32.h
|
||||
w32console.c w32heap.c w32inevt.c w32term.h
|
||||
|
|
@ -3877,9 +3884,9 @@ Lin Jian: changed Makefile.in subr.el
|
|||
|
||||
Lin Sun: changed python-tests.el cedet/semantic.el ediff-util.el
|
||||
package.el progmodes/python.el autorevert-tests.el autorevert.el
|
||||
bovine/make.el calc.el esh-mode.el eww.el find-func.el html.el
|
||||
java-tags.el javascript.el lread.c ls-lisp-tests.el ls-lisp.el
|
||||
master.el package-test-server.py package-tests.el and 5 other files
|
||||
bovine/make.el calc.el esh-mode.el eww.el find-func.el hideshow.el
|
||||
html.el java-tags.el javascript.el lread.c ls-lisp-tests.el ls-lisp.el
|
||||
master.el package-test-server.py and 6 other files
|
||||
|
||||
Lin Zhou: changed w32fns.c w32term.h
|
||||
|
||||
|
|
@ -3972,7 +3979,7 @@ Manuel Giraud: changed image-dired.el xdisp.c tmm.el calendar.el
|
|||
doc-view.el image.c vc.el ox-html.el bookmark.el diary-lib.el
|
||||
find-dired.el gnus.el image-dired-util.el keyboard.c longlines.el
|
||||
midnight.el ox-publish.el simple.el smtpmail.el buff-menu.el
|
||||
cal-hebrew.el and 68 other files
|
||||
cal-hebrew.el and 69 other files
|
||||
|
||||
Manuel Gómez: changed speedbar.el
|
||||
|
||||
|
|
@ -4583,9 +4590,10 @@ Mohsin Kaleem: changed cus-face.el dispextern.h eglot.el term.c
|
|||
|
||||
Mon Key: changed animate.el imap.el syntax.el
|
||||
|
||||
Morgan Smith: changed doc-view.el image-dired.el window.el battery.el
|
||||
dbus.texi esh-var-tests.el esh-var.el eshell.texi gnus-group-tests.el
|
||||
minibuffer-tests.el minibuffer.el url-vars.el vc-git.el
|
||||
Morgan Smith: changed doc-view.el gnus-dbus.el image-dired.el window.el
|
||||
battery.el dbus.texi esh-var-tests.el esh-var.el eshell.texi
|
||||
gnus-group-tests.el gnus-start.el gnus.texi minibuffer-tests.el
|
||||
minibuffer.el url-vars.el vc-git.el
|
||||
|
||||
Morgan Willcock: changed tempo.el electric.el ert-font-lock.el imenu.el
|
||||
modes.texi progmodes/python.el smie.el speedbar-tests.el speedbar.el
|
||||
|
|
@ -5140,7 +5148,7 @@ Philip Kaludercic: wrote epa-ks.el newcomers-presets-theme.el
|
|||
and co-wrote compat.el
|
||||
and changed package.el rcirc.el package.texi rcirc.texi vc.el
|
||||
sgml-mode.el vc-git.el project.el which-key.el package-autosuggest.eld
|
||||
package-activate.el message.el startup.el subr.el custom.texi eglot.el
|
||||
package-activate.el startup.el message.el subr.el custom.texi eglot.el
|
||||
simple.el bytecomp.el cus-edit.el custom.el help.el and 94 other files
|
||||
|
||||
Philippe Altherr: changed sh-script.el sh-script-tests.el shell.sh
|
||||
|
|
@ -5232,7 +5240,7 @@ Pip Cet: wrote image-circular-tests.el
|
|||
and changed pdumper.c comp.c lisp.h xdisp.c alloc.c xterm.c fns.c
|
||||
configure.ac emacs.c eval.c image.c comp.el frame.c print.c
|
||||
src/Makefile.in byte-opt.el conf_post.h data.c doc.c ftcrfont.c
|
||||
gtkutil.c and 116 other files
|
||||
gtkutil.c and 119 other files
|
||||
|
||||
Platon Pronko: changed tramp.el
|
||||
|
||||
|
|
@ -5299,8 +5307,8 @@ Raffael Mancini: changed misc.el
|
|||
|
||||
Raffael Stocker: changed w32.c w32console.c w32fns.c w32term.h w32xfns.c
|
||||
|
||||
Rahul Martim Juliato: changed markdown-ts-mode.el icomplete.el
|
||||
markdown-ts-mode-x.el newst-backend.el
|
||||
Rahul Martim Juliato: changed markdown-ts-mode.el markdown-ts-mode-x.el
|
||||
icomplete.el newst-backend.el
|
||||
|
||||
Raimon Grau: changed thingatpt.el calc-fin.el eww.el replace.el
|
||||
thingatpt-tests.el
|
||||
|
|
@ -5430,11 +5438,11 @@ Richard Lawrence: wrote calendar-tests.el diary-icalendar.el
|
|||
icalendar-ast.el icalendar-macs.el icalendar-mode.el
|
||||
icalendar-parser.el icalendar-recur.el icalendar-shortdoc.el
|
||||
icalendar-utils.el
|
||||
and changed calendar.el icalendar.el calendar.texi
|
||||
diary-icalendar-tests.el icalendar-recur-tests.el diary-lib.el
|
||||
icalendar-tests.el .gitattributes cal-dst.el cal-move.el cond-star.el
|
||||
diary-icalendar-resources emacs.texi gnus-icalendar-tests.el
|
||||
gnus-icalendar.el icalendar-ast-tests.el icalendar-parser-tests.el
|
||||
and changed calendar.el diary-icalendar-tests.el icalendar-recur-tests.el
|
||||
icalendar.el calendar.texi diary-lib.el gnus-icalendar.el
|
||||
icalendar-parser-tests.el icalendar-tests.el .gitattributes cal-dst.el
|
||||
cal-move.el cond-star.el diary-icalendar-resources emacs.texi
|
||||
gnus-icalendar-tests.el icalendar-ast-tests.el
|
||||
import-legacy-function.ics import-legacy-vars.ics
|
||||
import-non-recurring-all-day.ics import-rrule-anniversary.ics
|
||||
and 8 other files
|
||||
|
|
@ -5761,7 +5769,7 @@ and co-wrote vc-tests.el
|
|||
and changed vc.el vc-git.el vc-dispatcher.el vc-hg.el vc-dir.el
|
||||
diff-mode.el vc-hooks.el vc1-xtra.texi log-view.el maintaining.texi
|
||||
subr.el project.el log-edit.el files.texi server.el simple.el window.el
|
||||
cond-star.el dired-aux.el keyboard.c vc/vc-bzr.el and 329 other files
|
||||
cond-star.el dired-aux.el keyboard.c vc/vc-bzr.el and 333 other files
|
||||
|
||||
Sebastian Fieber: changed gnus-art.el mm-decode.el mm-view.el
|
||||
|
||||
|
|
@ -6007,7 +6015,7 @@ and co-wrote font-lock.el gitmerge.el pcvs.el visual-wrap.el
|
|||
and changed subr.el simple.el cl-macs.el bytecomp.el files.el keyboard.c
|
||||
lisp.h vc.el eval.c xdisp.c alloc.c help-fns.el buffer.c sh-script.el
|
||||
package.el tex-mode.el progmodes/compile.el lread.c keymap.c window.c
|
||||
easy-mmode.el and 1744 other files
|
||||
easy-mmode.el and 1745 other files
|
||||
|
||||
Stefano Facchini: changed gtkutil.c
|
||||
|
||||
|
|
@ -6035,9 +6043,9 @@ Stéphane Boucher: changed replace.el
|
|||
|
||||
Stephane Marks: wrote savehist-tests.el system-sleep.el system-taskbar.el
|
||||
and changed frame.el frames.texi nsfns.m tab-bar.el bookmark.el frame.c
|
||||
nsterm.m project.el recentf.el savehist.el subr.el vtable.el w32fns.c
|
||||
display.texi ibuf-macs.el os.texi saveplace.el shell.el vtable-tests.el
|
||||
androidfns.c ansi-osc.el and 32 other files
|
||||
nsterm.m markdown-ts-mode.el project.el recentf.el savehist.el subr.el
|
||||
vtable.el w32fns.c display.texi ibuf-macs.el os.texi saveplace.el
|
||||
shell.el treesit.el vtable-tests.el and 32 other files
|
||||
|
||||
Stephane Zermatten: changed term-tests.el term.el ansi-osc.el
|
||||
|
||||
|
|
@ -6330,6 +6338,8 @@ Thomas Link: wrote filesets.el
|
|||
|
||||
Thomas Morgan: changed org-habit.el forms.el select.el
|
||||
|
||||
Thomas Mühlbacher: changed progmodes/compile.el
|
||||
|
||||
Thomas Neumann: co-wrote make-mode.el
|
||||
and changed makefile.el
|
||||
|
||||
|
|
@ -6929,8 +6939,8 @@ Your Name: changed configure.ac
|
|||
Yuan Fu: changed treesit.el treesit.c c-ts-mode.el parsing.texi
|
||||
treesit-tests.el progmodes/python.el modes.texi js.el c-ts-common.el
|
||||
typescript-ts-mode.el indent.erts treesit.h java-ts-mode.el
|
||||
rust-ts-mode.el css-mode.el go-ts-mode.el sh-script.el configure.ac
|
||||
csharp-mode.el treesit-admin.el cmake-ts-mode.el and 88 other files
|
||||
rust-ts-mode.el css-mode.el go-ts-mode.el sh-script.el cmake-ts-mode.el
|
||||
configure.ac csharp-mode.el treesit-admin.el and 89 other files
|
||||
|
||||
Yuanle Song: changed rng-xsd.el
|
||||
|
||||
|
|
@ -6997,7 +7007,8 @@ Zhang Weize: wrote ob-plantuml.el
|
|||
|
||||
Zhehao Lin: changed xfaces.c
|
||||
|
||||
Zhengyi Fu: changed bookmark.el executable.el
|
||||
Zhengyi Fu: changed bookmark.el executable.el progmodes/grep.el
|
||||
replace.el
|
||||
|
||||
Zhiwei Chen: changed hideif.el
|
||||
|
||||
|
|
|
|||
|
|
@ -32,11 +32,13 @@ New key bindings: 'k' shuts down, 'r' reconnects, 'e' visits the events
|
|||
buffer, 'w' shows workspace configuration, and 'RET' invokes
|
||||
'eglot-describe-connection'.
|
||||
|
||||
** Eglot uses new built-in 'markdown-ts-mode' of Emacs 31 (bug#80127)
|
||||
** New variable 'eglot-documentation-renderer' (bug#80127)
|
||||
|
||||
This means that on newer versions of Emacs the external
|
||||
'markdown-mode.el' package does not need to be installed to render
|
||||
Markdown content.
|
||||
The variable 'eglot-documentation-renderer' replaces the now-obsolete
|
||||
'eglot-prefer-plaintext' and offers more control over what major mode is
|
||||
used to render markdown snippets. By default, the variable is nil and
|
||||
'gfm-view-mode' from NonGNU ELPA's markdown-mode package is used if
|
||||
found. See docstring for more details.
|
||||
|
||||
|
||||
* Changes in Eglot 1.23 (2/4/2026)
|
||||
|
|
|
|||
39
etc/NEWS
39
etc/NEWS
|
|
@ -37,6 +37,18 @@ exit status to 256 if sending input to that process returned EPIPE.
|
|||
Now when this happens, Emacs closes the file descriptor to write to the
|
||||
child process, but allows it to continue execution as normal.
|
||||
|
||||
---
|
||||
** New variable 'tty-cursor-movement-use-TAB'.
|
||||
If this is set to the nil value, Emacs will not use TABs to optimize
|
||||
cursor motion on text-mode terminals. This is for the rare cases where
|
||||
the hardware tabs of the terminal were set to a non-default value by the
|
||||
'tabs' command or similar, or if using TABs for cursor movement has any
|
||||
other undesired effects. The default is t, which preserves past
|
||||
behavior.
|
||||
|
||||
If this variable is nil, 'tty-cursor-movement-use-TAB-BS' has no effect,
|
||||
and Emacs will never use TABs for any cursor-movement sequences.
|
||||
|
||||
|
||||
* Editing Changes in Emacs 32.1
|
||||
|
||||
|
|
@ -53,15 +65,34 @@ package with the same version. This is useful if you have started
|
|||
making local changes to your tarball installation, and then decided to
|
||||
check out the repository to prepare a patch for the package maintainer.
|
||||
|
||||
** Compilation mode
|
||||
|
||||
---
|
||||
*** Messages from Ansible are now recognized.
|
||||
|
||||
|
||||
* New Modes and Packages in Emacs 32.1
|
||||
|
||||
** New major modes based on the tree-sitter library
|
||||
|
||||
*** New major mode 'markdown-ts-mode'.
|
||||
A major mode based on the tree-sitter library for editing Markdown
|
||||
files. Markdown files are visited using this mode when the required
|
||||
tree-sitter grammars ('markdown' and 'markdown-inline') are available,
|
||||
or when the user has opted in via 'treesit-enabled-modes'. Otherwise,
|
||||
Markdown files fall back to 'text-mode'.
|
||||
|
||||
To install the grammars, use 'M-x markdown-ts-mode-install-parsers'.
|
||||
|
||||
|
||||
* Incompatible Lisp Changes in Emacs 32.1
|
||||
|
||||
|
||||
* Lisp Changes in Emacs 32.1
|
||||
|
||||
+++
|
||||
** The new function 'markers-in' returns the set of markers in a region.
|
||||
|
||||
---
|
||||
** New variable 'completion-frontend-properties'.
|
||||
This variable generalizes the 'completion-lazy-hilit' variable added in
|
||||
|
|
@ -69,6 +100,14 @@ Emacs 30. It allows Lisp programs that present completion candidates
|
|||
("completion frontends") to provide additional information which can be
|
||||
used to adjust or optimize completion candidates computation.
|
||||
|
||||
** D-Bus
|
||||
|
||||
+++
|
||||
*** Support error handler in asynchronous method calls.
|
||||
The HANDLER argument of 'dbus-call-method-asynchronously' can be a cons
|
||||
cell '(HANDLER . ERROR-HANDLER)'. ERROR-HANDLER is invoked if the
|
||||
method call returns with a D-Bus error; the error is passed as argument.
|
||||
|
||||
|
||||
* Changes in Emacs 32.1 on Non-Free Operating Systems
|
||||
|
||||
|
|
|
|||
34
etc/NEWS.31
34
etc/NEWS.31
|
|
@ -93,7 +93,15 @@ below the line, which allows for vertically centering text.
|
|||
A new basic face 'margin' is used by default for text displayed in the
|
||||
left and right margin areas, which are used by various packages for
|
||||
per-line annotations. Its background defaults to the frame default, so
|
||||
existing behavior is unchanged for users who do not customize it.
|
||||
existing behavior is unchanged for users who do not customize this new
|
||||
face.
|
||||
|
||||
Display strings shown in the margins now inherit the unspecified face
|
||||
attributes from the 'margin' face, if the string itself does not fully
|
||||
specify its face. If your code relied on the face of the underlying
|
||||
buffer text to serve as default for the unspecified face attributes of
|
||||
strings displayed in the margin, you must now set those face attributes
|
||||
in the margin string itself via 'propertize'.
|
||||
|
||||
+++
|
||||
** 'prettify-symbols-mode' attempts to ignore undisplayable characters.
|
||||
|
|
@ -572,6 +580,14 @@ ID. When called interactively, both functions prompt for an ID.
|
|||
|
||||
** Mode Line
|
||||
|
||||
---
|
||||
*** New definitions for mode-line faces under dark background mode.
|
||||
The faces 'mode-line' and 'mode-line-highlight' now have separate
|
||||
definitions for the dark background mode. Previously, these two faces
|
||||
looked the same in both the light and dark background modes. To get the
|
||||
previous visuals for these two faces, customize them to have the colors
|
||||
"grey75" and "grey40", respectively, regardless of the background mode.
|
||||
|
||||
+++
|
||||
*** New user option 'mode-line-collapse-minor-modes'.
|
||||
If non-nil, minor mode lighters on the mode line are collapsed into a
|
||||
|
|
@ -2997,7 +3013,7 @@ In addition, the Git backend has been fixed to display missing files as
|
|||
There is still some further work to do to rationalize VC's handling of
|
||||
file removal.
|
||||
|
||||
---
|
||||
+++
|
||||
*** New user option 'vc-dir-auto-hide-up-to-date'.
|
||||
If you customize this option to 'revert', the 'g' command to refresh
|
||||
the VC Directory buffer also has the effect of the 'x' command.
|
||||
|
|
@ -3936,15 +3952,6 @@ A major mode based on 'conf-mode' for editing ".npmrc" files.
|
|||
|
||||
** New major modes based on the tree-sitter library
|
||||
|
||||
*** New major mode 'markdown-ts-mode'.
|
||||
A major mode based on the tree-sitter library for editing Markdown
|
||||
files. Markdown files are visited using this mode when the required
|
||||
tree-sitter grammars ('markdown' and 'markdown-inline') are available,
|
||||
or when the user has opted in via 'treesit-enabled-modes'. Otherwise,
|
||||
Markdown files fall back to 'text-mode'.
|
||||
|
||||
To install the grammars, use 'M-x markdown-ts-mode-install-parsers'.
|
||||
|
||||
*** New major mode 'mhtml-ts-mode'.
|
||||
An optional major mode based on the tree-sitter library for editing HTML
|
||||
files. This mode handles indentation, fontification, and commenting for
|
||||
|
|
@ -4214,6 +4221,11 @@ suggestions. So the 'M-?' command now works without a tags table. And
|
|||
the 'M-.' will show a message describing the several built-in options
|
||||
that will provide an Xref backend when used.
|
||||
|
||||
+++
|
||||
** Calling 'debug' in batch sessions no longer kills Emacs.
|
||||
If you want Emacs to exit, your program will now have to call
|
||||
'kill-emacs' explicitly.
|
||||
|
||||
|
||||
* Lisp Changes in Emacs 31.1
|
||||
|
||||
|
|
|
|||
38
etc/PROBLEMS
38
etc/PROBLEMS
|
|
@ -136,6 +136,9 @@ result in an endless loop.
|
|||
If you need Emacs to be able to recover from closing displays, compile
|
||||
it with the Lucid toolkit instead of GTK.
|
||||
|
||||
One possible mitigation for the problem is described in
|
||||
https://debbugs.gnu.org/81124
|
||||
|
||||
** Emacs compiled with GTK+ 3 crashes when run under some X servers.
|
||||
This happens when the X server does not provide certain display
|
||||
features that the underlying GTK+ 3 toolkit assumes. For example, this
|
||||
|
|
@ -3643,6 +3646,41 @@ file; for example:
|
|||
"/usr/local/opt/libgccjit/lib/gcc/11"
|
||||
"/usr/local/opt/gcc/lib/gcc/11/gcc/x86_64-apple-darwin20/11.2.0") ":"))
|
||||
|
||||
** Stuttering and missed keypresses during Native Compilation on macOS
|
||||
|
||||
Natively compiled modules are validated by macOS the first time that
|
||||
they are loaded. On some machines, this can cause Emacs to be
|
||||
temporarily less responsive while a large number of '*.eln' files are
|
||||
being compiled and loaded.
|
||||
|
||||
One can force the first load of the module to happen in the async
|
||||
compilation worker by adding this to their early-init.el:
|
||||
|
||||
(setq native-comp-async-env-modifier-form
|
||||
'(progn
|
||||
(defun c/native-comp--preload-eln-after-compile
|
||||
(compile function-or-file &optional with-late-load output)
|
||||
"Preload async native-comp output in the compiler child."
|
||||
(prog1 (funcall compile function-or-file with-late-load output)
|
||||
(when (and (stringp function-or-file) with-late-load)
|
||||
(with-demoted-errors "Async native .eln preload: %S"
|
||||
(let ((eln-file (comp-el-to-eln-filename function-or-file)))
|
||||
(when (file-exists-p eln-file)
|
||||
(native-elisp-load eln-file t)))))))
|
||||
|
||||
(advice-add 'comp--native-compile
|
||||
:around #'c/native-comp--preload-eln-after-compile)))
|
||||
|
||||
Alternatively, if one is willing to accept the associated security
|
||||
risks, one could disable library validation on their Emacs binary:
|
||||
|
||||
codesign --force --sign - \
|
||||
--entitlements macos-disable-library-validation.entitlements \
|
||||
src/emacs
|
||||
|
||||
Disabling validation might expose you to security risks, so please
|
||||
consider that before using this recipe.
|
||||
|
||||
** Text dictation doesn't work on macOS
|
||||
|
||||
The indication is that the macOS keyboard shortcut for dictation is ignored.
|
||||
|
|
|
|||
|
|
@ -41,6 +41,24 @@ symbol: aix
|
|||
****** Error number 140 in line 8 of file errors.c ******
|
||||
|
||||
|
||||
* Ansible
|
||||
|
||||
symbols: ansible-error ansible-fatal ansible-warning
|
||||
ansible-included ansible-origin
|
||||
|
||||
[ERROR]: couldn't resolve module/action 'shelll'. This often indicates a misspelling, missing collection, or incorrect module path.
|
||||
Origin: /home/albinus/src/tramp-tests/roles/test/tasks/adb.yml:19:3
|
||||
[WARNING]: Deprecation warnings can be disabled by setting `deprecation_warnings=False` in ansible.cfg.
|
||||
[DEPRECATION WARNING]: Importing 'to_bytes' from 'ansible.module_utils._text' is deprecated. This feature will be removed from ansible-core version 2.24. Use ansible.module_utils.common.text.converters instead.
|
||||
included: /home/albinus/src/tramp-tests/roles/test/tasks/adb.yml for localhost => (item={'name': 'adb', 'start': '04157df41d46b840'})
|
||||
fatal: [localhost]: FAILED! => {
|
||||
"assertion": "message == []",
|
||||
"changed": false,
|
||||
"evaluated_to": false,
|
||||
"msg": "Assertion failed"
|
||||
}
|
||||
|
||||
|
||||
* Ant Java: works at least for jikes and javac
|
||||
|
||||
symbol: ant
|
||||
|
|
@ -161,7 +179,7 @@ cucumber foo/cucumber.feature:15 # Scenario: deep backtrace in step definition
|
|||
|
||||
* EDG C/C++
|
||||
|
||||
symbol: edg-1 edg-2
|
||||
symbols: edg-1 edg-2
|
||||
|
||||
build/intel/debug/../../../struct.cpp(42): error: identifier "foo" is undefined
|
||||
build/intel/debug/../../../struct.cpp(44): warning #1011: missing return statement at end of ...
|
||||
|
|
@ -178,7 +196,7 @@ Error 24 at (2:progran.f90) : syntax error
|
|||
|
||||
* Fortran checker
|
||||
|
||||
symbols: ftnchek
|
||||
symbol: ftnchek
|
||||
|
||||
Dummy arg W in module SUBA line 8 file arrayclash.f is array
|
||||
L4 used at line 55 file test/assign.f; never set
|
||||
|
|
@ -336,7 +354,7 @@ boost/container/detail/flat_tree.hpp:589:25: [ skipping 5 instantiation contex
|
|||
|
||||
* Guile backtrace, 2.0.11
|
||||
|
||||
symbols: guile-file, guile-line
|
||||
symbols: guile-file guile-line
|
||||
|
||||
Backtrace:
|
||||
In ice-9/boot-9.scm:
|
||||
|
|
@ -356,6 +374,8 @@ In /home/janneke/vc/guile/examples/gud-break.scm:
|
|||
|
||||
* Lua 5.1, 5.2, 5.3, 5.4, and LuaJIT 2.1
|
||||
|
||||
symbols: lua lua-stack
|
||||
|
||||
/usr/bin/lua: database.lua:31: assertion failed!
|
||||
stack traceback:
|
||||
[C]: in function 'assert'
|
||||
|
|
@ -490,7 +510,7 @@ Fatal error: Call to undefined function: mysql_pconnect() in db.inc on line 66
|
|||
|
||||
* Rust
|
||||
|
||||
symbol: rust rust-panic
|
||||
symbols: rust rust-panic
|
||||
|
||||
error[E0277]: `Foo` is not an iterator
|
||||
--> src/main.rs:4:16
|
||||
|
|
@ -612,7 +632,7 @@ bloofle defined( /users/wolfgang/foo.c(4) ), but never used
|
|||
|
||||
* GCOV (test coverage program)
|
||||
|
||||
symbol: gcov-file gcov-bb-file gcov-never-called-line gcov-called-line
|
||||
symbols: gcov-file gcov-bb-file gcov-never-called-line gcov-called-line
|
||||
|
||||
-: 0:Source:foo.c
|
||||
-: 0:Object:foo.bb
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
% Reference Card for Org Mode
|
||||
\def\orgversionnumber{9.8.3}
|
||||
\def\orgversionnumber{9.8.5}
|
||||
\def\versionyear{2026} % latest update
|
||||
\input emacsver.tex
|
||||
|
||||
|
|
|
|||
|
|
@ -74,6 +74,7 @@ char *w32_getenv (const char *);
|
|||
#include <pwd.h>
|
||||
#include <signal.h>
|
||||
#include <stdarg.h>
|
||||
#include <stdckdint.h>
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
#include <stdlib.h>
|
||||
|
|
@ -146,8 +147,9 @@ static char const *socket_name;
|
|||
/* If non-NULL, the filename of the authentication file. */
|
||||
static char const *server_file;
|
||||
|
||||
/* Seconds to wait before timing out (0 means wait forever). */
|
||||
static uintmax_t timeout;
|
||||
/* Seconds to wait before timing out. Negative means no --timeout so
|
||||
use DEFAULT_TIMEOUT, 0 means wait forever. */
|
||||
static intmax_t timeout = -1;
|
||||
|
||||
/* If non-NULL, the tramp prefix emacs must use to find the files. */
|
||||
static char const *tramp_prefix;
|
||||
|
|
@ -539,10 +541,8 @@ decode_options (int argc, char **argv)
|
|||
break;
|
||||
|
||||
case 'w':
|
||||
timeout = strtoumax (optarg, &endptr, 10);
|
||||
if (timeout <= 0 ||
|
||||
((timeout == INTMAX_MAX || timeout == INTMAX_MIN)
|
||||
&& errno == ERANGE))
|
||||
timeout = strtoimax (optarg, &endptr, 10);
|
||||
if (timeout < 0 || endptr == optarg || *endptr)
|
||||
{
|
||||
fprintf (stderr, "Invalid timeout: \"%s\"\n", optarg);
|
||||
exit (EXIT_FAILURE);
|
||||
|
|
@ -902,7 +902,7 @@ quote_argument_len (HSOCKET s, const char *str, ptrdiff_t len)
|
|||
static void
|
||||
quote_argument (HSOCKET s, const char *str)
|
||||
{
|
||||
return quote_argument_len (s, str, strlen (str));
|
||||
quote_argument_len (s, str, strlen (str));
|
||||
}
|
||||
|
||||
/* The inverse of quote_argument. Remove quoting in string STR by
|
||||
|
|
@ -1952,28 +1952,30 @@ start_daemon_and_retry_set_socket (void)
|
|||
return emacs_socket;
|
||||
}
|
||||
|
||||
/* Set SOCKET's timeout to SECONDS.
|
||||
If SECONDS is zero or out of range, do not set the timeout.
|
||||
Silently ignore errors, as POSIX says it is implementation-defined as
|
||||
to whether SO_RCVTIMEO works. Although we could fall back on
|
||||
non-blocking I/O if setsockopt fails, it's not worth the trouble. */
|
||||
static void
|
||||
set_socket_timeout (HSOCKET socket, int seconds)
|
||||
set_socket_timeout (HSOCKET socket, intmax_t seconds)
|
||||
{
|
||||
int ret;
|
||||
if (seconds <= 0)
|
||||
return;
|
||||
|
||||
#ifndef WINDOWSNT
|
||||
struct timeval timeout;
|
||||
timeout.tv_sec = seconds;
|
||||
if (ckd_add (&timeout.tv_sec, seconds, 0))
|
||||
return;
|
||||
timeout.tv_usec = 0;
|
||||
ret = setsockopt (socket, SOL_SOCKET, SO_RCVTIMEO, &timeout, sizeof timeout);
|
||||
setsockopt (socket, SOL_SOCKET, SO_RCVTIMEO, &timeout, sizeof timeout);
|
||||
#else
|
||||
DWORD timeout;
|
||||
|
||||
if (seconds > INT_MAX / 1000)
|
||||
timeout = INT_MAX;
|
||||
else
|
||||
timeout = seconds * 1000;
|
||||
ret = setsockopt (socket, SOL_SOCKET, SO_RCVTIMEO, (char *) &timeout, sizeof timeout);
|
||||
if (ckd_mul (&timeout, seconds, 1000))
|
||||
return;
|
||||
setsockopt (socket, SOL_SOCKET, SO_RCVTIMEO, (char *) &timeout, sizeof timeout);
|
||||
#endif
|
||||
|
||||
if (ret < 0)
|
||||
sock_err_message ("setsockopt");
|
||||
}
|
||||
|
||||
static bool
|
||||
|
|
@ -2210,7 +2212,7 @@ main (int argc, char **argv)
|
|||
}
|
||||
fflush (stdout);
|
||||
|
||||
set_socket_timeout (emacs_socket, timeout > 0 ? timeout : DEFAULT_TIMEOUT);
|
||||
set_socket_timeout (emacs_socket, timeout < 0 ? DEFAULT_TIMEOUT : timeout);
|
||||
bool saw_response = false;
|
||||
ptrdiff_t nrecv = 0;
|
||||
|
||||
|
|
@ -2236,7 +2238,7 @@ main (int argc, char **argv)
|
|||
if (timeout > 0)
|
||||
{
|
||||
/* Don't retry if we were given a --timeout flag. */
|
||||
fprintf (stderr, "\nServer not responding; timed out after %ju seconds",
|
||||
fprintf (stderr, "\nServer not responding; timed out after %jd seconds",
|
||||
timeout);
|
||||
retry = false;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -267,7 +267,7 @@ If DATE is malformed, return a time value of zero."
|
|||
|
||||
;;;###autoload
|
||||
(defun format-seconds (string seconds)
|
||||
"Use format control STRING to format the number SECONDS.
|
||||
"Use format control STRING to format the time value SECONDS.
|
||||
The valid format specifiers are:
|
||||
%y is the number of (365-day) years.
|
||||
%d is the number of days.
|
||||
|
|
@ -325,13 +325,14 @@ right of \"%x\", trailing zero units are not output."
|
|||
(push match usedunits)))
|
||||
(when (and zeroflag larger)
|
||||
(error "Units are not in decreasing order of size"))
|
||||
(unless (numberp seconds)
|
||||
(setq seconds (float-time seconds)))
|
||||
(setq minus (when (< seconds 0) "-") ; Treat -0.0 like 0.0.
|
||||
seconds (abs seconds)
|
||||
seconds (let ((s (floor seconds)))
|
||||
(setq fraction (- seconds s))
|
||||
s))
|
||||
(unless seconds
|
||||
(setq seconds (current-time)))
|
||||
(let ((negative (time-less-p seconds 0)))
|
||||
(setq minus (when negative "-") ; Treat -0.0 like 0.0.
|
||||
seconds (if negative (time-subtract 0 seconds) seconds)
|
||||
seconds (let ((s (time-convert seconds 'integer)))
|
||||
(setq fraction (time-subtract seconds s))
|
||||
s)))
|
||||
(dolist (u units)
|
||||
(setq spec (car u)
|
||||
name (cadr u)
|
||||
|
|
@ -352,9 +353,8 @@ right of \"%x\", trailing zero units are not output."
|
|||
;; Cf article-make-date-line in gnus-art.
|
||||
(setq num (floor seconds unit)
|
||||
seconds (- seconds (* num unit)))
|
||||
(let ((is-zero (zerop (if (= unit 1)
|
||||
(+ num fraction)
|
||||
num))))
|
||||
(let ((is-zero (and (zerop num)
|
||||
(or (/= unit 1) (time-equal-p 0 fraction)))))
|
||||
;; Start position of the first non-zero unit.
|
||||
(when (and (not leading-zeropos)
|
||||
(not is-zero))
|
||||
|
|
@ -379,7 +379,9 @@ right of \"%x\", trailing zero units are not output."
|
|||
"f%s")
|
||||
(concat "%" (match-string 1 string) "d%s"))
|
||||
(if (= unit 1)
|
||||
(+ num fraction)
|
||||
;; 'float-time' rounds, then 'format' rounds.
|
||||
;; Oh well.
|
||||
(float-time (time-add num fraction))
|
||||
num)
|
||||
(if (string-equal (match-string 3 string) spec)
|
||||
"" ; lower-case, no unit-name
|
||||
|
|
|
|||
|
|
@ -203,9 +203,10 @@ LOAD and SELECTOR work as described in `native--compile-async'."
|
|||
;; because power users often configure their batteries
|
||||
;; to stop charging at less than 100% as a way to
|
||||
;; extend the lifetime of their battery hardware.
|
||||
(string= (cdr (assq ?b res)) "+")
|
||||
(member (cdr (assq ?B res)) '("charging" "pending-charge"))
|
||||
(not (string= (cdr (assq ?B res)) "discharging")))))))
|
||||
;; Further discussion in bug#80922.
|
||||
(and (not (equal (cdr (assq ?b res)) "+"))
|
||||
(not (member (cdr (assq ?B res))
|
||||
'("charging" "pending-charge")))))))))
|
||||
|
||||
(defvar comp-files-queue ()
|
||||
"List of Emacs Lisp files to be compiled.")
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
;;; elisp-scope.el --- Semantic analysis for Elisp symbols -*- lexical-binding: t; -*-
|
||||
;;; elisp-scope.el --- Semantic analysis for Emacs Lisp symbols -*- lexical-binding: t; -*-
|
||||
|
||||
;; Copyright (C) 2025-2026 Free Software Foundation, Inc.
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
;;; timeout.el --- Throttle or debounce Elisp functions -*- lexical-binding: t; -*-
|
||||
;;; timeout.el --- Throttle or debounce Emacs Lisp functions -*- lexical-binding: t; -*-
|
||||
|
||||
;; Copyright (C) 2023-2026 Free Software Foundation, Inc.
|
||||
|
||||
|
|
|
|||
|
|
@ -49,10 +49,9 @@
|
|||
(let ((time (timer--time timer)))
|
||||
(format "%12s"
|
||||
(format-seconds "%dd %hh %mm %z%,1ss"
|
||||
(float-time
|
||||
(if (timer--idle-delay timer)
|
||||
time
|
||||
(time-subtract time nil))))))
|
||||
(if (timer--idle-delay timer)
|
||||
time
|
||||
(time-subtract time nil)))))
|
||||
'help-echo "Time until next invocation")
|
||||
;; Repeat.
|
||||
,(let ((repeat (timer--repeat-delay timer)))
|
||||
|
|
|
|||
|
|
@ -194,7 +194,7 @@ KEYS is a list of `epa-ks-key' structures, as parsed by
|
|||
(if (epa-ks-key-expires key)
|
||||
(let* ((date (epa-ks-key-expires key))
|
||||
(str (format-time-string "%F" date)))
|
||||
(when (< 0 (time-to-seconds (time-since date)))
|
||||
(when (time-less-p date nil)
|
||||
(setq str (propertize str 'face
|
||||
'font-lock-warning-face)))
|
||||
str)
|
||||
|
|
|
|||
|
|
@ -399,16 +399,18 @@ This module is local to individual buffers."
|
|||
(progn
|
||||
(erc--restore-initialize-priors erc-keep-place-indicator-mode
|
||||
erc--keep-place-indicator-overlay (make-overlay 0 0))
|
||||
(when-let* (((memq erc-keep-place-indicator-style '(t arrow)))
|
||||
(ov-property (if (zerop (fringe-columns 'left))
|
||||
'after-string
|
||||
'before-string))
|
||||
(display (if (zerop (fringe-columns 'left))
|
||||
`((margin left-margin) ,overlay-arrow-string)
|
||||
'(left-fringe right-triangle
|
||||
erc-keep-place-indicator-arrow)))
|
||||
(bef (propertize " " 'display display)))
|
||||
(overlay-put erc--keep-place-indicator-overlay ov-property bef))
|
||||
(when (memq erc-keep-place-indicator-style '(t arrow))
|
||||
(overlay-put
|
||||
erc--keep-place-indicator-overlay
|
||||
(if (zerop (fringe-columns 'left)) 'after-string 'before-string)
|
||||
(propertize " " 'display
|
||||
(if (zerop (fringe-columns 'left))
|
||||
`((margin left-margin)
|
||||
,(propertize overlay-arrow-string
|
||||
'font-lock-face
|
||||
'erc-keep-place-indicator-arrow))
|
||||
'(left-fringe right-triangle
|
||||
erc-keep-place-indicator-arrow)))))
|
||||
(when (memq erc-keep-place-indicator-style '(t face))
|
||||
(overlay-put erc--keep-place-indicator-overlay 'face
|
||||
'erc-keep-place-indicator-line)))
|
||||
|
|
|
|||
|
|
@ -478,7 +478,7 @@ and `erc-stamp--margin-left-p', before activating the mode."
|
|||
|
||||
(defun erc-stamp--display-prompt-in-left-margin ()
|
||||
"Show prompt in the left margin with padding."
|
||||
(when (or (not erc-stamp--last-prompt) (functionp erc-prompt)
|
||||
(when (or (null erc-stamp--last-prompt) (functionp erc-prompt)
|
||||
(> (string-width erc-stamp--last-prompt) left-margin-width))
|
||||
(let ((s (buffer-substring erc-insert-marker (1- erc-input-marker))))
|
||||
;; Prevent #("abc" n m (display ((...) #("abc" p q (display...))))
|
||||
|
|
@ -489,7 +489,9 @@ and `erc-stamp--margin-left-p', before activating the mode."
|
|||
;; This papers over a subtle off-by-1 bug here.
|
||||
(unless (equal sm s)
|
||||
(setq s (concat sm (substring s -1))))))
|
||||
(setq erc-stamp--last-prompt (string-pad s left-margin-width nil t))))
|
||||
(setq erc-stamp--last-prompt
|
||||
(propertize (string-pad s left-margin-width nil t)
|
||||
'font-lock-face 'erc-prompt-face))))
|
||||
(put-text-property erc-insert-marker (1- erc-input-marker)
|
||||
'display `((margin left-margin) ,erc-stamp--last-prompt))
|
||||
erc-stamp--last-prompt)
|
||||
|
|
@ -505,12 +507,15 @@ and `erc-stamp--margin-left-p', before activating the mode."
|
|||
(&context (erc-stamp--display-margin-mode (eql t))
|
||||
(erc-stamp--margin-left-p (eql t))
|
||||
(erc-stamp--skip-left-margin-prompt-p null))
|
||||
(when-let* (((null erc--hidden-prompt-overlay))
|
||||
(prompt (string-pad erc-prompt-hidden left-margin-width nil 'start))
|
||||
(ov (make-overlay erc-insert-marker (1- erc-input-marker)
|
||||
nil 'front-advance)))
|
||||
(overlay-put ov 'display `((margin left-margin) ,prompt))
|
||||
(setq erc--hidden-prompt-overlay ov)))
|
||||
(unless erc--hidden-prompt-overlay
|
||||
(let ((ov (make-overlay erc-insert-marker (1- erc-input-marker)
|
||||
nil 'front-advance)))
|
||||
(overlay-put ov 'display
|
||||
`((margin left-margin)
|
||||
,(propertize (string-pad erc-prompt-hidden
|
||||
left-margin-width nil 'start)
|
||||
'font-lock-face 'erc-prompt-face)))
|
||||
(setq erc--hidden-prompt-overlay ov))))
|
||||
|
||||
(defun erc-insert-timestamp-left (string)
|
||||
"Insert timestamps at the beginning of the line."
|
||||
|
|
|
|||
|
|
@ -257,10 +257,8 @@ If it is down, start it up (again)."
|
|||
(goto-char (point-max))
|
||||
(insert (format-time-string "%H:%M:%S")
|
||||
(format " %.2fs %s %S\n"
|
||||
(if (numberp gnus-backend-trace-elapsed)
|
||||
(float-time
|
||||
(time-since gnus-backend-trace-elapsed))
|
||||
0)
|
||||
(float-time
|
||||
(time-since gnus-backend-trace-elapsed))
|
||||
type form))
|
||||
(setq gnus-backend-trace-elapsed (float-time)))))
|
||||
|
||||
|
|
|
|||
|
|
@ -2217,6 +2217,8 @@ see `message-narrow-to-headers-or-head'."
|
|||
(beginning-of-line)
|
||||
(while (looking-at "[ \t]")
|
||||
(forward-line -1))
|
||||
;; `syntax-propertize' can't widen so make sure it won't need to (bug#81035).
|
||||
(syntax-propertize (point))
|
||||
(narrow-to-region
|
||||
(point)
|
||||
(progn
|
||||
|
|
@ -8659,6 +8661,9 @@ From headers in the original article."
|
|||
(save-excursion
|
||||
(goto-char end-of-headers)
|
||||
(insert-before-markers header))))))))
|
||||
;; `syntax-propertize' can't widen so make sure it won't need to
|
||||
;; (bug#81035).
|
||||
(syntax-propertize end-of-headers)
|
||||
(narrow-to-region end-of-headers (point-max)))))
|
||||
|
||||
(defun message-hide-header-p (regexps)
|
||||
|
|
|
|||
|
|
@ -157,7 +157,8 @@ coding system names is determined from `latex-inputenc-coding-alist'."
|
|||
nil t)
|
||||
(match-string 2)
|
||||
(or (and (bound-and-true-p TeX-master)
|
||||
(stringp TeX-master))
|
||||
(stringp TeX-master)
|
||||
TeX-master)
|
||||
(bound-and-true-p tex-main-file)))))
|
||||
(dolist (ext `("" ,(if (boundp 'TeX-default-extension)
|
||||
(concat "." TeX-default-extension)
|
||||
|
|
|
|||
|
|
@ -473,6 +473,7 @@ and send the mail again%s."
|
|||
;; questions about From header validity if the user is going to
|
||||
;; use mailclient, anyway.
|
||||
(when (or (and (derived-mode-p 'message-mode)
|
||||
(not message-server-alist)
|
||||
(eq (message-default-send-mail-function) 'sendmail-query-once))
|
||||
(and (not (derived-mode-p 'message-mode))
|
||||
(eq send-mail-function 'sendmail-query-once)))
|
||||
|
|
|
|||
|
|
@ -843,8 +843,11 @@ directly."
|
|||
((string-match "text/" content-type)
|
||||
(setq type 'text))
|
||||
((string-match "image/\\(.*\\)" content-type)
|
||||
(setq type (image-supported-file-p
|
||||
(concat "." (match-string 1 content-type))))
|
||||
(let ((fnext (match-string 1 content-type)))
|
||||
;; Ask about SVG support when Content-type is image/svg+xml.
|
||||
(if (equal fnext "svg+xml")
|
||||
(setq fnext "svg"))
|
||||
(setq type (image-supported-file-p (concat "." fnext))))
|
||||
(when (and type
|
||||
rmail-mime-show-images
|
||||
(not (eq rmail-mime-show-images 'button))
|
||||
|
|
|
|||
|
|
@ -5005,11 +5005,6 @@ usual. Returns (ALL PAT PREFIX SUFFIX)."
|
|||
(prefix (substring beforepoint 0 (car bounds)))
|
||||
(suffix (substring afterpoint (cdr bounds)))
|
||||
(pat2 (substring pat (car bounds) (+ point (cdr bounds))))
|
||||
(completion-regexp-list
|
||||
(cons (mapconcat (lambda (c) (regexp-quote (char-to-string c)))
|
||||
pat2
|
||||
".*")
|
||||
completion-regexp-list))
|
||||
(all (all-completions prefix table pred))
|
||||
(all
|
||||
(if (zerop (length pat2)) all
|
||||
|
|
|
|||
|
|
@ -539,6 +539,7 @@ Some context functions add menu items below the separator."
|
|||
(cdr mode))))
|
||||
menu)
|
||||
|
||||
(autoload 'send-to--resolve-handler "send-to")
|
||||
(defun context-menu-send-to (menu _click)
|
||||
"Add a \"Send to...\" context MENU entry on supported platforms."
|
||||
(run-hooks 'activate-menubar-hook 'menu-bar-update-hook)
|
||||
|
|
|
|||
|
|
@ -2570,6 +2570,9 @@ If stopped, start playback."
|
|||
(t (mpc-proc-cmd "previous")))
|
||||
(mpc-status-refresh)))
|
||||
|
||||
;; FIXME - mpc-last-seek-time and mpc--faster are no longer used;
|
||||
;; remove them?
|
||||
|
||||
(defvar mpc-last-seek-time '(0 . 0))
|
||||
|
||||
(defun mpc--faster (event speedup step)
|
||||
|
|
|
|||
|
|
@ -317,7 +317,8 @@ Defaults to the value of `browse-url-mozilla-arguments' at the time
|
|||
"zen")
|
||||
"firefox")
|
||||
"The name by which to invoke Firefox or a variant of it."
|
||||
:type 'string)
|
||||
:type 'string
|
||||
:version "31.1")
|
||||
|
||||
(defcustom browse-url-firefox-arguments nil
|
||||
"A list of strings to pass to Firefox (or variant) as arguments."
|
||||
|
|
@ -1214,8 +1215,9 @@ used instead of `browse-url-new-window-flag'."
|
|||
;;;###autoload
|
||||
(defun browse-url-firefox (url &optional new-window)
|
||||
"Ask the Firefox WWW browser to load URL.
|
||||
Defaults to the URL around or before point. Passes the strings
|
||||
in the variable `browse-url-firefox-arguments' to Firefox.
|
||||
Defaults to the URL around or before point. Invokes the program
|
||||
specified by `browse-url-firefox-program'. Passes the strings
|
||||
in the variable `browse-url-firefox-arguments' to that program.
|
||||
|
||||
Interactively, if the variable `browse-url-new-window-flag' is non-nil,
|
||||
loads the document in a new Firefox window. A non-nil prefix argument
|
||||
|
|
@ -1246,9 +1248,9 @@ instead of `browse-url-new-window-flag'."
|
|||
;;;###autoload
|
||||
(defun browse-url-chromium (url &optional _new-window)
|
||||
"Ask the Chromium WWW browser to load URL.
|
||||
Default to the URL around or before point. The strings in
|
||||
variable `browse-url-chromium-arguments' are also passed to
|
||||
Chromium.
|
||||
Default to the URL around or before point. Invokes the program
|
||||
specified by `browse-url-chromium-program'. Passes the strings in
|
||||
variable `browse-url-chromium-arguments' to that program.
|
||||
The optional argument NEW-WINDOW is not used."
|
||||
(interactive (browse-url-interactive-arg "URL: "))
|
||||
(setq url (browse-url-encode-url url))
|
||||
|
|
@ -1264,9 +1266,9 @@ The optional argument NEW-WINDOW is not used."
|
|||
|
||||
(defun browse-url-chrome (url &optional _new-window)
|
||||
"Ask the Google Chrome WWW browser to load URL.
|
||||
Default to the URL around or before point. The strings in
|
||||
variable `browse-url-chrome-arguments' are also passed to
|
||||
Google Chrome.
|
||||
Default to the URL around or before point. Invokes the program
|
||||
specified by `browse-url-chrome-program'. Passes to that program
|
||||
the strings in variable `browse-url-chrome-arguments'.
|
||||
The optional argument NEW-WINDOW is not used."
|
||||
(interactive (browse-url-interactive-arg "URL: "))
|
||||
(setq url (browse-url-encode-url url))
|
||||
|
|
@ -1282,8 +1284,9 @@ The optional argument NEW-WINDOW is not used."
|
|||
|
||||
(defun browse-url-epiphany (url &optional new-window)
|
||||
"Ask the GNOME Web (Epiphany) WWW browser to load URL.
|
||||
Default to the URL around or before point. The strings in variable
|
||||
`browse-url-epiphany-arguments' are also passed to GNOME Web.
|
||||
Default to the URL around or before point. Invokes the program
|
||||
specified by `browse-url-epiphany-program'. Passes the strings
|
||||
in variable `browse-url-epiphany-arguments' to that program.
|
||||
|
||||
When called interactively, if variable `browse-url-new-window-flag' is
|
||||
non-nil, load the document in a new GNOME Web window, otherwise use a
|
||||
|
|
@ -1353,7 +1356,9 @@ used instead of `browse-url-new-window-flag'."
|
|||
|
||||
(defun browse-url-qutebrowser (url &optional new-window)
|
||||
"Ask the Qutebrowser WWW browser to load URL.
|
||||
Default to the URL around or before point.
|
||||
Default to the URL around or before point. Invokes the program
|
||||
specified by `browse-url-qutebrowser-program'. Passes the strings
|
||||
in the variable `browse-url-qutebrowser-arguments' to that program.
|
||||
|
||||
When called interactively, if variable `browse-url-new-window-flag' is
|
||||
non-nil, load the document in a new Qutebrowser window, otherwise use a
|
||||
|
|
|
|||
|
|
@ -445,8 +445,17 @@ object path SERVICE is registered at. INTERFACE is an interface
|
|||
offered by SERVICE. It must provide METHOD.
|
||||
|
||||
HANDLER is a Lisp function, which is called when the corresponding
|
||||
return message has arrived. If HANDLER is nil, no return message
|
||||
will be expected.
|
||||
return message has arrived. It uses the returned values from the METHOD
|
||||
call as arguments. These are the same arguments which are returned when
|
||||
`dbus-call-method' is invoked instead. If HANDLER is nil, no return
|
||||
message will be expected.
|
||||
|
||||
HANDLER can also be the cons cell `(HANDLER . ERROR-HANDLER)'. In this
|
||||
case, ERROR-HANDLER will be called in case an error is returned from
|
||||
D-Bus. It uses the returned D-Bus error as argument.
|
||||
|
||||
Neither the return value of HANDLER nor the return value of
|
||||
ERROR-HANDLER is used.
|
||||
|
||||
If the parameter `:timeout' is given, the following integer
|
||||
TIMEOUT specifies the maximum number of milliseconds before the
|
||||
|
|
@ -477,18 +486,37 @@ about type keywords, see Info node `(dbus)Type Conversion'.
|
|||
If HANDLER is a Lisp function, the function returns a key into the
|
||||
hash table `dbus-registered-objects-table'. The corresponding entry
|
||||
in the hash table is removed, when the return message arrives,
|
||||
and HANDLER is called.
|
||||
and HANDLER is called. Examples:
|
||||
|
||||
Example:
|
||||
The return value of \"org.freedesktop.portal.Settings.ReadOne\" is a variant.
|
||||
|
||||
\(dbus-call-method-asynchronously
|
||||
:system \"org.freedesktop.Hal\" \"/org/freedesktop/Hal/devices/computer\"
|
||||
\"org.freedesktop.Hal.Device\" \"GetPropertyString\" #\\='message
|
||||
\"system.kernel.machine\")
|
||||
:session \"org.freedesktop.portal.Desktop\"
|
||||
\"/org/freedesktop/portal/desktop\"
|
||||
\"org.freedesktop.portal.Settings\" \"ReadOne\"
|
||||
\\='((lambda (msg) (message \"Method handler %s\" msg)) .
|
||||
(lambda (err) (message \"Error handler %s\" err)))
|
||||
\"org.freedesktop.appearance\" \"color-scheme\")
|
||||
|
||||
-| i686
|
||||
-| Method handler (0)
|
||||
|
||||
=> (:serial :system 2)"
|
||||
=> (:serial :session 4)
|
||||
|
||||
There does not exist a method \"org.freedesktop.portal.Settings.ReadTwo\".
|
||||
|
||||
\(dbus-call-method-asynchronously
|
||||
:session \"org.freedesktop.portal.Desktop\"
|
||||
\"/org/freedesktop/portal/desktop\"
|
||||
\"org.freedesktop.portal.Settings\" \"ReadTwo\"
|
||||
\\='((lambda (msg) (message \"Method handler %s\" msg)) .
|
||||
(lambda (err) (message \"Error handler %s\" err)))
|
||||
\"org.freedesktop.appearance\" \"color-scheme\")
|
||||
|
||||
-| Error handler
|
||||
(dbus-error org.freedesktop.DBus.Error.UnknownMethod
|
||||
No such method \"ReadTwo\")
|
||||
|
||||
=> (:serial :session 5)"
|
||||
|
||||
(or (featurep 'dbusbind)
|
||||
(signal 'dbus-error (list "Emacs not compiled with dbus support")))
|
||||
|
|
@ -504,6 +532,7 @@ Example:
|
|||
(or (stringp method)
|
||||
(signal 'wrong-type-argument (list 'stringp method)))
|
||||
(or (null handler) (functionp handler)
|
||||
(and (listp handler) (functionp (car handler)) (functionp (cdr handler)))
|
||||
(signal 'wrong-type-argument (list 'functionp handler)))
|
||||
|
||||
(apply #'dbus-message-internal dbus-message-type-method-call
|
||||
|
|
@ -1111,9 +1140,11 @@ INTERFACE and MEMBER denote the message which has been sent.
|
|||
When TYPE is `dbus-message-type-error', MEMBER is the error name.
|
||||
|
||||
HANDLER is the function which has been registered for this
|
||||
message. ARGS are the typed arguments as returned from the
|
||||
message. They are passed to HANDLER without type information,
|
||||
when it is called during event handling in `dbus-handle-event'.
|
||||
message. It can also be a cons cell (HANDLER . ERROR-HANDLER).
|
||||
|
||||
ARGS are the typed arguments as returned from the message. They are
|
||||
passed to HANDLER without type information, when it is called during
|
||||
event handling in `dbus-handle-event'.
|
||||
|
||||
This function signals a `dbus-error' if the event is not well
|
||||
formed."
|
||||
|
|
@ -1150,7 +1181,10 @@ formed."
|
|||
(or (= dbus-message-type-method-return (nth 2 event))
|
||||
(stringp (nth 8 event)))
|
||||
;; Handler.
|
||||
(functionp (nth 9 event))
|
||||
(or (functionp (nth 9 event))
|
||||
(and (consp (nth 9 event))
|
||||
(functionp (car (nth 9 event)))
|
||||
(functionp (cdr (nth 9 event)))))
|
||||
;; Arguments.
|
||||
(listp (nthcdr 10 event)))
|
||||
(signal 'dbus-error (list "Not a valid D-Bus event" event))))
|
||||
|
|
@ -1207,10 +1241,17 @@ If the HANDLER returns a `dbus-error', it is propagated as return message."
|
|||
(setq result (dbus-ignore-errors (apply (nth 9 event) args)))
|
||||
;; Error messages must be propagated. The error name is in
|
||||
;; the member slot.
|
||||
(when (= dbus-message-type-error (nth 2 event))
|
||||
(signal 'dbus-error (cons (nth 8 event) args)))
|
||||
;; Apply the handler.
|
||||
(setq result (apply (nth 9 event) args))
|
||||
(let* ((handler (nth 9 event))
|
||||
(error-handler (if (functionp handler) #'signal
|
||||
(prog1 (cdr handler)
|
||||
(setq handler (car handler))))))
|
||||
(setq result
|
||||
(if (= dbus-message-type-error (nth 2 event))
|
||||
(funcall
|
||||
error-handler
|
||||
(cons 'dbus-error (cons (nth 8 event) args)))
|
||||
;; Apply the handler.
|
||||
(apply handler args))))
|
||||
;; Return an (error) message when it is a message call.
|
||||
(when (= dbus-message-type-method-call (nth 2 event))
|
||||
(dbus-ignore-errors
|
||||
|
|
|
|||
|
|
@ -1771,7 +1771,10 @@ just re-display the HTML already fetched."
|
|||
(put-text-property start (point) 'keymap eww-submit-map)
|
||||
;; Pretend to touch-screen.el that this is a button.
|
||||
(put-text-property start (point) 'button t)
|
||||
(insert " ")))
|
||||
(insert " ")
|
||||
(put-text-property start (1+ start) 'help-echo "Button")
|
||||
;; Mark this as an element we can TAB to.
|
||||
(put-text-property start (1+ start) 'shr-tab-stop t)))
|
||||
|
||||
(defun eww-form-checkbox (dom)
|
||||
(let ((start (point)))
|
||||
|
|
@ -1991,7 +1994,8 @@ See URL `https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Input'.")
|
|||
:value (or (dom-attr dom 'value) "")))))))
|
||||
(t
|
||||
(eww-form-text dom)))
|
||||
(unless (= start (point))
|
||||
(unless (or (= start (point))
|
||||
(equal type "submit"))
|
||||
(put-text-property start (1+ start) 'help-echo "Input field")
|
||||
;; Mark this as an element we can TAB to.
|
||||
(put-text-property start (1+ start) 'shr-tab-stop t))))
|
||||
|
|
|
|||
|
|
@ -3081,7 +3081,7 @@ will be used."
|
|||
;; We discard hops, if existing, that's why we cannot use
|
||||
;; `file-remote-p'.
|
||||
(prompt (format "PS1=%s %s"
|
||||
(tramp-make-tramp-file-name v)
|
||||
(tramp-make-tramp-file-name v 'noloc)
|
||||
tramp-initial-end-of-output))
|
||||
;; We use as environment the difference to toplevel
|
||||
;; `process-environment'.
|
||||
|
|
|
|||
|
|
@ -801,19 +801,23 @@ The regexp should match at end of buffer."
|
|||
(? "/[fingerprint]") ")?"
|
||||
(* blank))
|
||||
"Regular expression matching all yes/no queries which need to be confirmed.
|
||||
The confirmation should be done with yes or no.
|
||||
The confirmation should be done with \"yes\" or \"no\".
|
||||
The regexp should match at end of buffer.
|
||||
See also `tramp-yn-prompt-regexp'."
|
||||
:type 'regexp)
|
||||
|
||||
(defcustom tramp-yn-prompt-regexp
|
||||
(rx (| (: "Store key in cache? (y/n" (* nonl) ")")
|
||||
"Update cached key? (y/n, Return cancels connection)")
|
||||
"Update cached key? (y/n, Return cancels connection)"
|
||||
;; distrobox.
|
||||
(: "Error: no such container \"" (+ nonl) "\"\n"
|
||||
"Create it now, out of image " (+ nonl) "? [Y/n]:"))
|
||||
(* blank))
|
||||
"Regular expression matching all y/n queries which need to be confirmed.
|
||||
The confirmation should be done with y or n.
|
||||
The confirmation should be done with \"y\" or \"n\".
|
||||
The regexp should match at end of buffer.
|
||||
See also `tramp-yesno-prompt-regexp'."
|
||||
:version "31.1"
|
||||
:type 'regexp)
|
||||
|
||||
;;;###tramp-autoload
|
||||
|
|
@ -5474,7 +5478,9 @@ should be set connection-local.")
|
|||
"Return non-nil if ARG exists in default `process-environment'.
|
||||
Tramp does not propagate local environment variables in remote
|
||||
processes."
|
||||
(member arg (default-toplevel-value 'process-environment)))
|
||||
(or (ignore-error void-variable
|
||||
(member arg (buffer-local-toplevel-value 'process-environment)))
|
||||
(member arg (default-toplevel-value 'process-environment))))
|
||||
|
||||
(defun tramp-handle-make-process (&rest args)
|
||||
"An alternative `make-process' implementation for Tramp files."
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
;; Maintainer: Michael Albinus <michael.albinus@gmx.de>
|
||||
;; Keywords: comm, processes
|
||||
;; Package: tramp
|
||||
;; Version: 2.8.2-pre
|
||||
;; Version: 2.8.2
|
||||
;; Package-Requires: ((emacs "28.1"))
|
||||
;; Package-Type: multi
|
||||
;; URL: https://www.gnu.org/software/tramp/
|
||||
|
|
@ -40,7 +40,7 @@
|
|||
;; ./configure" to change them.
|
||||
|
||||
;;;###tramp-autoload
|
||||
(defconst tramp-version "2.8.2-pre"
|
||||
(defconst tramp-version "2.8.2"
|
||||
"This version of Tramp.")
|
||||
|
||||
;;;###tramp-autoload
|
||||
|
|
@ -76,7 +76,7 @@
|
|||
;; Check for Emacs version.
|
||||
(let ((x (if (not (string-version-lessp emacs-version "28.1"))
|
||||
"ok"
|
||||
(format "Tramp 2.8.2-pre is not fit for %s"
|
||||
(format "Tramp 2.8.2 is not fit for %s"
|
||||
(replace-regexp-in-string "\n" "" (emacs-version))))))
|
||||
(unless (string-equal "ok" x) (error "%s" x)))
|
||||
|
||||
|
|
@ -109,7 +109,8 @@
|
|||
("2.5.2.28.1" . "28.1") ("2.5.3.28.2" . "28.2") ("2.5.4" . "28.3")
|
||||
("2.6.0.29.1" . "29.1") ("2.6.2.29.2" . "29.2") ("2.6.3-pre" . "29.3")
|
||||
("2.6.3" . "29.4")
|
||||
("2.7.1.30.1" . "30.1") ("2.7.3.30.2" . "30.2")))
|
||||
("2.7.1.30.1" . "30.1") ("2.7.3.30.2" . "30.2")
|
||||
("2.8.2" . "31.1")))
|
||||
|
||||
(add-hook 'tramp-unload-hook
|
||||
(lambda ()
|
||||
|
|
|
|||
|
|
@ -7875,7 +7875,7 @@ in the agenda."
|
|||
"Rebuild possibly ALL agenda view(s) in the current buffer."
|
||||
(interactive "P")
|
||||
(defvar org-agenda-tag-filter-while-redo) ;FIXME: Where is this var used?
|
||||
(let* ((p (or (and (looking-at "\\'") (1- (point))) (point)))
|
||||
(let* ((p (or (and (/= 1 (point)) (looking-at "\\'") (1- (point))) (point)))
|
||||
(cpa (unless (eq all t) current-prefix-arg))
|
||||
(org-agenda-doing-sticky-redo org-agenda-sticky)
|
||||
(org-agenda-sticky nil)
|
||||
|
|
|
|||
|
|
@ -1207,9 +1207,9 @@ to be CLOCKED OUT."))))
|
|||
(read-number "Keep how many minutes: " default))
|
||||
(and (memq ch '(?t ?T))
|
||||
(floor
|
||||
(/ (float-time
|
||||
(time-subtract (org-read-date t t) last-valid))
|
||||
60)))))
|
||||
(float-time
|
||||
(time-subtract (org-read-date t t) last-valid))
|
||||
60))))
|
||||
(gotback
|
||||
(and (memq ch '(?g ?G))
|
||||
(read-number "Got back how many minutes ago: " default)))
|
||||
|
|
@ -1991,13 +1991,15 @@ Optional argument N tells to change by that many units."
|
|||
(user-error "No active clock"))
|
||||
(save-excursion ; Do not replace this with `with-current-buffer'.
|
||||
(with-no-warnings (set-buffer (org-clocking-buffer)))
|
||||
(goto-char org-clock-marker)
|
||||
(if (looking-back (concat "^[ \t]*" org-clock-string ".*")
|
||||
(line-beginning-position))
|
||||
(progn (delete-region (1- (line-beginning-position)) (line-end-position))
|
||||
(org-remove-empty-drawer-at (point)))
|
||||
(message "Clock gone, cancel the timer anyway")
|
||||
(sit-for 2)))
|
||||
(save-restriction
|
||||
(widen)
|
||||
(goto-char org-clock-marker)
|
||||
(if (looking-back (concat "^[ \t]*" org-clock-string ".*")
|
||||
(line-beginning-position))
|
||||
(progn (delete-region (1- (line-beginning-position)) (line-end-position))
|
||||
(org-remove-empty-drawer-at (point)))
|
||||
(message "Clock gone, cancel the timer anyway")
|
||||
(sit-for 2))))
|
||||
(move-marker org-clock-marker nil)
|
||||
(move-marker org-clock-hd-marker nil)
|
||||
(setq org-clock-current-task nil)
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
;; Copyright (C) 2004-2026 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Carsten Dominik <carsten.dominik@gmail.com>
|
||||
;; Maintainer: Slawomir Grochowski <slawomir.grochowski@gmail.com>
|
||||
;; Keywords: outlines, hypermedia, calendar, text
|
||||
;; URL: https://orgmode.org
|
||||
;;
|
||||
|
|
|
|||
|
|
@ -2953,6 +2953,8 @@ known that the table will be realigned a little later anyway."
|
|||
(log-first-time (current-time))
|
||||
(log-last-time log-first-time)
|
||||
(cnt 0)
|
||||
(table-beg org-table-current-begin-pos)
|
||||
(table-end (org-table-end))
|
||||
beg end eqlcol eqlfield)
|
||||
;; Insert constants in all formulas.
|
||||
(when eqlist
|
||||
|
|
@ -2989,8 +2991,8 @@ existing formula for column %s"
|
|||
;; Get the correct line range to process.
|
||||
(if all
|
||||
(progn
|
||||
(setq end (copy-marker (org-table-end)))
|
||||
(goto-char (setq beg org-table-current-begin-pos))
|
||||
(setq end (copy-marker table-end))
|
||||
(goto-char (setq beg table-beg))
|
||||
(cond
|
||||
((re-search-forward org-table-calculate-mark-regexp end t)
|
||||
;; This is a table with marked lines, compute selected
|
||||
|
|
@ -3005,7 +3007,7 @@ existing formula for column %s"
|
|||
(t nil)))
|
||||
(setq beg (line-beginning-position)
|
||||
end (copy-marker (line-beginning-position 2))))
|
||||
(org-combine-change-calls beg end
|
||||
(org-combine-change-calls table-beg table-end
|
||||
(goto-char beg)
|
||||
;; Mark named fields untouchable. Also check if several
|
||||
;; field/range formulas try to set the same field.
|
||||
|
|
|
|||
|
|
@ -388,10 +388,7 @@ VALUE can be `on', `off', or `paused'."
|
|||
"No timer set"
|
||||
(format-seconds
|
||||
"%m minute(s) %s seconds left before next time out"
|
||||
;; Note: Once our minimal require is Emacs 27, we can drop this
|
||||
;; org-time-convert-to-integer call.
|
||||
(org-time-convert-to-integer
|
||||
(time-subtract (timer--time org-timer-countdown-timer) nil))))))
|
||||
(time-subtract (timer--time org-timer-countdown-timer) nil)))))
|
||||
|
||||
;;;###autoload
|
||||
(defun org-timer-set-timer (&optional opt)
|
||||
|
|
@ -436,7 +433,7 @@ using three \\[universal-argument] prefix arguments."
|
|||
(and (not (equal opt '(64)))
|
||||
effort-minutes
|
||||
(number-to-string effort-minutes))
|
||||
(and (consp opt) default-timer)
|
||||
(and (consp opt) (not (equal opt '(64))) default-timer)
|
||||
(and (stringp opt) opt)
|
||||
(read-from-minibuffer
|
||||
"How much time left? (minutes or h:mm:ss) "
|
||||
|
|
|
|||
|
|
@ -5,13 +5,13 @@
|
|||
(defun org-release ()
|
||||
"The release version of Org.
|
||||
Inserted by installing Org mode or when a release is made."
|
||||
(let ((org-release "9.8.3"))
|
||||
(let ((org-release "9.8.5"))
|
||||
org-release))
|
||||
;;;###autoload
|
||||
(defun org-git-version ()
|
||||
"The Git version of Org mode.
|
||||
Inserted by installing Org or when a release is made."
|
||||
(let ((org-git-version "release_9.8.3"))
|
||||
(let ((org-git-version "release_9.8.5"))
|
||||
org-git-version))
|
||||
|
||||
(provide 'org-version)
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
;; URL: https://orgmode.org
|
||||
;; Package-Requires: ((emacs "28.2"))
|
||||
|
||||
;; Version: 9.8.3
|
||||
;; Version: 9.8.5
|
||||
|
||||
;; This file is part of GNU Emacs.
|
||||
;;
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@
|
|||
;; Alan Schmitt <alan.schmitt AT polytechnique DOT org>
|
||||
;; Viktor Rosenfeld <listuser36 AT gmail DOT com>
|
||||
;; Rasmus Pank Roulund <emacs AT pank DOT eu>
|
||||
;; Maintainer: Marco Wahl <marcowahlsoft@gmail.com>
|
||||
;; Keywords: org, text, tex
|
||||
|
||||
;; This file is part of GNU Emacs.
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
;; Copyright (C) 2011-2026 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Nicolas Goaziou <n.goaziou at gmail dot com>
|
||||
;; Maintainer: Daniel Fleischer <danflscr@gmail.com>
|
||||
;; Maintainer: Pedro A. Aranda<paaguti aT gmail DoT com>
|
||||
;; Keywords: outlines, hypermedia, calendar, text
|
||||
|
||||
;; This file is part of GNU Emacs.
|
||||
|
|
|
|||
|
|
@ -2869,7 +2869,7 @@ Style is a symbol among `quoted', `centered' and nil."
|
|||
(org-element-lineage
|
||||
paragraph
|
||||
'(center-block quote-block section)))
|
||||
(center-block 'center)
|
||||
(center-block 'centered)
|
||||
(quote-block 'quoted)))
|
||||
|
||||
(defun org-odt--format-paragraph (paragraph contents info default center quote)
|
||||
|
|
|
|||
|
|
@ -7137,7 +7137,7 @@ appropriate for `tabulated-list-print'."
|
|||
;; Age.
|
||||
(let ((info (nth 2 entry)))
|
||||
(if (processp info) (symbol-name (process-status info))
|
||||
(format-seconds "%h:%.2m" (float-time (time-since info)))))
|
||||
(format-seconds "%h:%.2m" (time-since info))))
|
||||
;; Source.
|
||||
(if (stringp source) source (buffer-name source))))))
|
||||
org-export-stack-contents)))
|
||||
|
|
|
|||
|
|
@ -272,9 +272,14 @@ It is the default value of `show-paren-data-function'."
|
|||
(save-restriction
|
||||
;; Determine the range within which to look for a match.
|
||||
(when blink-matching-paren-distance
|
||||
(narrow-to-region
|
||||
(max (point-min) (- (point) blink-matching-paren-distance))
|
||||
(min (point-max) (+ (point) blink-matching-paren-distance))))
|
||||
(let ((beg (max (point-min)
|
||||
(- (point) blink-matching-paren-distance))))
|
||||
;; `syntax-propertize' can't widen so make sure it won't
|
||||
;; need to (bug#81035).
|
||||
(syntax-propertize beg)
|
||||
(narrow-to-region
|
||||
beg
|
||||
(min (point-max) (+ (point) blink-matching-paren-distance)))))
|
||||
;; Scan across one sexp within that range.
|
||||
;; Errors or nil mean there is a mismatch.
|
||||
(condition-case ()
|
||||
|
|
|
|||
|
|
@ -1606,7 +1606,7 @@ Hack on previous word, setting global variable DOCTOR-OWNER to correct result."
|
|||
(setq doctor--suicide-flag t)
|
||||
(doctor-type '( If you are really suicidal\, you might
|
||||
want to contact the Samaritans via
|
||||
e-mail: jo@samaritans.org \.
|
||||
https://www.samaritans.org/how-we-can-help/contact-samaritan/ \.
|
||||
or find a Befrienders crisis center at
|
||||
https://www.befrienders.org/\ \.
|
||||
you can also find other suicide crisis lines at
|
||||
|
|
|
|||
|
|
@ -478,7 +478,7 @@ perform a match."
|
|||
(when match
|
||||
(setq plist (cdr entry))
|
||||
(while plist
|
||||
(if (string-match "\\`:secret-" (symbol-name (car plist)))
|
||||
(if (plstore--has-secret-keys plist)
|
||||
(setq decrypt t
|
||||
plist nil))
|
||||
(setq plist (nthcdr 2 plist)))
|
||||
|
|
@ -503,7 +503,7 @@ Return nil if there is none."
|
|||
plist)
|
||||
(setq plist (cdr entry))
|
||||
(while plist
|
||||
(if (string-match "\\`:secret-" (symbol-name (car plist)))
|
||||
(if (plstore--has-secret-keys plist)
|
||||
(progn
|
||||
(plstore--decrypt plstore)
|
||||
(setq entry (assoc name (plstore--get-merged-alist plstore))
|
||||
|
|
@ -550,23 +550,36 @@ SECRET-KEYS is a plist containing secret data."
|
|||
(cons (cons name secret-plist) (plstore--get-secret-alist plstore)))))
|
||||
(plstore--merge-secret plstore)))
|
||||
|
||||
(defun plstore--has-secret-keys (plist)
|
||||
"Return t if PLIST of a plstore entry has secret keys."
|
||||
(string-match-p "\\`:secret-" (symbol-name (car plist))))
|
||||
|
||||
(defun plstore-delete (plstore name)
|
||||
"Delete the first entry named NAME from PLSTORE."
|
||||
(let ((entry (assoc name (plstore--get-alist plstore))))
|
||||
(if entry
|
||||
(plstore--set-alist
|
||||
plstore
|
||||
(delq entry (plstore--get-alist plstore))))
|
||||
(setq entry (assoc name (plstore--get-secret-alist plstore)))
|
||||
(if entry
|
||||
(plstore--set-secret-alist
|
||||
plstore
|
||||
(delq entry (plstore--get-secret-alist plstore))))
|
||||
(setq entry (assoc name (plstore--get-merged-alist plstore)))
|
||||
(if entry
|
||||
(plstore--set-merged-alist
|
||||
plstore
|
||||
(delq entry (plstore--get-merged-alist plstore))))))
|
||||
(when-let* ((entry (assoc name (plstore--get-alist plstore)))
|
||||
(plist (cdr entry)))
|
||||
(when (plstore--has-secret-keys plist)
|
||||
(plstore--decrypt plstore)
|
||||
(setq entry (assoc name (plstore--get-alist plstore))))
|
||||
(plstore--set-alist
|
||||
plstore
|
||||
(delq entry (plstore--get-alist plstore))))
|
||||
(when-let* ((entry (assoc name (plstore--get-secret-alist plstore)))
|
||||
(plist (cdr entry)))
|
||||
(when (plstore--has-secret-keys plist)
|
||||
(plstore--decrypt plstore)
|
||||
(setq entry (assoc name (plstore--get-secret-alist plstore))))
|
||||
(plstore--set-secret-alist
|
||||
plstore
|
||||
(delq entry (plstore--get-secret-alist plstore))))
|
||||
(when-let* ((entry (assoc name (plstore--get-merged-alist plstore)))
|
||||
(plist (cdr entry)))
|
||||
(when (plstore--has-secret-keys plist)
|
||||
(plstore--decrypt plstore)
|
||||
(setq entry (assoc name (plstore--get-merged-alist plstore))))
|
||||
(plstore--set-merged-alist
|
||||
plstore
|
||||
(delq entry (plstore--get-merged-alist plstore)))))
|
||||
|
||||
(defvar pp-escape-newlines)
|
||||
(defun plstore--insert-buffer (plstore)
|
||||
|
|
@ -650,7 +663,7 @@ GnuPG key, silently save with symmetric encryption." ; (FIXME)
|
|||
(let ((merged-plist (cdr (assoc (car entry) merged-alist)))
|
||||
(plist (cdr entry)))
|
||||
(while plist
|
||||
(if (string-match "\\`:secret-" (symbol-name (car plist)))
|
||||
(if (plstore--has-secret-keys plist)
|
||||
(setcar (cdr plist)
|
||||
(plist-get
|
||||
merged-plist
|
||||
|
|
@ -678,7 +691,7 @@ some plstore."
|
|||
(error "Invalid plstore format %s" string))
|
||||
(setq plist (cdr (car pointer)))
|
||||
(while plist
|
||||
(when (string-match "\\`:secret-" (symbol-name (car plist)))
|
||||
(when (plstore--has-secret-keys plist)
|
||||
(setq entry (assoc (car (car pointer)) secret-alist))
|
||||
(unless entry
|
||||
(setq entry (list (car (car pointer)))
|
||||
|
|
|
|||
|
|
@ -1475,7 +1475,9 @@ in your init files, or customize `treesit-enabled-modes'."
|
|||
:group 'c
|
||||
:after-hook (c-ts-mode-set-modeline)
|
||||
|
||||
(when (treesit-ensure-installed 'c)
|
||||
;; `treesit-ready-p' also checks for buffer size.
|
||||
(when (and (treesit-ensure-installed 'c)
|
||||
(treesit-ready-p 'c))
|
||||
;; Create an "for-each" parser, see `c-ts-mode--emacs-set-ranges'
|
||||
;; for more.
|
||||
(when c-ts-mode-emacs-sources-support
|
||||
|
|
@ -1554,7 +1556,9 @@ recommended to enable `electric-pair-mode' with this mode."
|
|||
:group 'c++
|
||||
:after-hook (c-ts-mode-set-modeline)
|
||||
|
||||
(when (treesit-ensure-installed 'cpp)
|
||||
;; `treesit-ready-p' also checks for buffer size.
|
||||
(when (and (treesit-ensure-installed 'cpp)
|
||||
(treesit-ready-p 'cpp))
|
||||
(let ((primary-parser (treesit-parser-create 'cpp)))
|
||||
|
||||
;; Syntax.
|
||||
|
|
|
|||
|
|
@ -11687,34 +11687,37 @@ This function might do hidden buffer changes."
|
|||
(forward-char)
|
||||
(c-forward-syntactic-ws)
|
||||
(setq cast-end (point))
|
||||
(and (looking-at c-primary-expr-regexp)
|
||||
(progn
|
||||
(setq pos (match-end 0))
|
||||
(or
|
||||
;; Check if the expression begins with a prefix keyword.
|
||||
(match-beginning 2)
|
||||
(if (match-beginning 1)
|
||||
;; Expression begins with an ambiguous operator.
|
||||
(cond
|
||||
((match-beginning c-per-&*+--match)
|
||||
(memq at-type '(t known found)))
|
||||
((match-beginning c-per-++---match)
|
||||
t)
|
||||
((match-beginning c-per-\(-match)
|
||||
(or
|
||||
(memq at-type '(t known found))
|
||||
(not inside-macro)))
|
||||
(t nil))
|
||||
;; Unless it's a keyword, it's the beginning of a primary
|
||||
;; expression.
|
||||
(not (looking-at c-keywords-regexp)))))
|
||||
;; If `c-primary-expr-regexp' matched a nonsymbol token, check
|
||||
;; that it matched a whole one so that we don't e.g. confuse
|
||||
;; the operator '-' with '->'. It's ok if it matches further,
|
||||
;; though, since it e.g. can match the float '.5' while the
|
||||
;; operator regexp only matches '.'.
|
||||
(or (not (looking-at c-nonsymbol-token-regexp))
|
||||
(<= (match-end 0) pos))))
|
||||
(or
|
||||
(and (looking-at c-primary-expr-regexp)
|
||||
(progn
|
||||
(setq pos (match-end 0))
|
||||
(or
|
||||
;; Check if the expression begins with a prefix keyword.
|
||||
(match-beginning 2)
|
||||
(if (match-beginning 1)
|
||||
;; Expression begins with an ambiguous operator.
|
||||
(cond
|
||||
((match-beginning c-per-&*+--match)
|
||||
(memq at-type '(t known found)))
|
||||
((match-beginning c-per-++---match)
|
||||
t)
|
||||
((match-beginning c-per-\(-match)
|
||||
(or
|
||||
(memq at-type '(t known found))
|
||||
(not inside-macro)))
|
||||
(t nil))
|
||||
;; Unless it's a keyword, it's the beginning of a primary
|
||||
;; expression.
|
||||
(not (looking-at c-keywords-regexp)))))
|
||||
;; If `c-primary-expr-regexp' matched a nonsymbol token,
|
||||
;; check that it matched a whole one so that we don't
|
||||
;; e.g. confuse the operator '-' with '->'. It's ok if it
|
||||
;; matches further, though, since it e.g. can match the float
|
||||
;; '.5' while the operator regexp only matches '.'.
|
||||
(or (not (looking-at c-nonsymbol-token-regexp))
|
||||
(<= (match-end 0) pos)))
|
||||
(and (eq (char-after) ?\{)
|
||||
(not (eq (c-looking-at-statement-block-1) t)))))
|
||||
|
||||
;; There should either be a cast before it or something that isn't an
|
||||
;; identifier or close paren.
|
||||
|
|
|
|||
|
|
@ -220,7 +220,9 @@ Return nil if there is no name or if NODE is not a defun node."
|
|||
:group 'cmake
|
||||
:syntax-table cmake-ts-mode--syntax-table
|
||||
|
||||
(when (treesit-ensure-installed 'cmake)
|
||||
;; `treesit-ready-p' also checks for buffer size.
|
||||
(when (and (treesit-ensure-installed 'cmake)
|
||||
(treesit-ready-p 'cmake))
|
||||
(setq treesit-primary-parser (treesit-parser-create 'cmake))
|
||||
|
||||
;; Comments.
|
||||
|
|
|
|||
|
|
@ -229,6 +229,19 @@ of[ \t]+\"?\\([a-zA-Z]?:?[^\":\n]+\\)\"?:" 3 2 nil (1))
|
|||
(aix
|
||||
" in line \\([0-9]+\\) of file \\([^ \n]+[^. \n]\\)\\.? " 2 1)
|
||||
|
||||
(ansible-fatal
|
||||
"^fatal: .*: FAILED!" nil nil nil 2 0 (0 compilation-error-face))
|
||||
(ansible-error
|
||||
"^\\[ERROR\\]:"
|
||||
nil nil nil 2 0 (0 compilation-error-face))
|
||||
(ansible-warning
|
||||
"^\\[\\(?:DEPRECATION \\)?WARNING\\]:"
|
||||
nil nil nil 1 0 (0 compilation-warning-face))
|
||||
(ansible-included "^included: \\([^[:space:]]+\\)" 1 nil nil 0 1)
|
||||
(ansible-origin
|
||||
"^Origin: \\([^[:space:]]+\\):\\([[:digit:]]+\\):\\([[:digit:]]+\\)"
|
||||
1 2 3 0 1)
|
||||
|
||||
;; Checkstyle task may report its own severity level: "[checkstyle] [ERROR] ..."
|
||||
;; (see AuditEventDefaultFormatter.java in checkstyle sources).
|
||||
(ant
|
||||
|
|
@ -421,6 +434,20 @@ of[ \t]+\"?\\([a-zA-Z]?:?[^\":\n]+\\)\"?:" 3 2 nil (1))
|
|||
nil
|
||||
(1 compilation-error-face))
|
||||
|
||||
;; This must precede the `gnu' rule or the latter would match instead.
|
||||
(rust
|
||||
,(rx bol (or (group-n 1 "error") (group-n 2 "warning") (group-n 3 "note"))
|
||||
(? "[" (+ (in "A-Z" "0-9")) "]") ":" (* nonl)
|
||||
"\n" (+ " ") "-->"
|
||||
" " (group-n 4 (+ nonl)) ; file
|
||||
":" (group-n 5 (+ (in "0-9"))) ; line
|
||||
":" (group-n 6 (+ (in "0-9")))) ; column
|
||||
4 5 6 (2 . 3)
|
||||
nil
|
||||
(1 compilation-error-face)
|
||||
(2 compilation-warning-face)
|
||||
(3 compilation-info-face))
|
||||
|
||||
;; Tested with Lua 5.1, 5.2, 5.3, 5.4, and LuaJIT 2.1.
|
||||
(lua
|
||||
,(rx bol
|
||||
|
|
@ -582,19 +609,6 @@ during global destruction\\.$\\)" 1 2)
|
|||
"\\(?:Parse\\|Fatal\\) error: \\(.*\\) in \\(.*\\) on line \\([0-9]+\\)"
|
||||
2 3 nil nil)
|
||||
|
||||
(rust
|
||||
,(rx bol (or (group-n 1 "error") (group-n 2 "warning") (group-n 3 "note"))
|
||||
(? "[" (+ (in "A-Z" "0-9")) "]") ":" (* nonl)
|
||||
"\n" (+ " ") "-->"
|
||||
" " (group-n 4 (+ nonl)) ; file
|
||||
":" (group-n 5 (+ (in "0-9"))) ; line
|
||||
":" (group-n 6 (+ (in "0-9")))) ; column
|
||||
4 5 6 (2 . 3)
|
||||
nil
|
||||
(1 compilation-error-face)
|
||||
(2 compilation-warning-face)
|
||||
(3 compilation-info-face))
|
||||
|
||||
(rxp
|
||||
"^\\(?:Error\\|Warnin\\(g\\)\\):.*\n.* line \\([0-9]+\\) char\
|
||||
\\([0-9]+\\) of file://\\(.+\\)"
|
||||
|
|
|
|||
|
|
@ -167,7 +167,9 @@ Return nil if there is no name or if NODE is not a stage node."
|
|||
:group 'dockerfile
|
||||
:syntax-table dockerfile-ts-mode--syntax-table
|
||||
|
||||
(when (treesit-ensure-installed 'dockerfile)
|
||||
;; `treesit-ready-p' also checks for buffer size.
|
||||
(when (and (treesit-ensure-installed 'dockerfile)
|
||||
(treesit-ready-p 'dockerfile))
|
||||
(setq treesit-primary-parser (treesit-parser-create 'dockerfile))
|
||||
|
||||
;; Comments.
|
||||
|
|
|
|||
|
|
@ -149,6 +149,8 @@
|
|||
'eglot-managed-mode-hook "1.6")
|
||||
(define-obsolete-variable-alias 'eglot-confirm-server-initiated-edits
|
||||
'eglot-confirm-server-edits "1.16")
|
||||
(define-obsolete-variable-alias 'eglot-prefer-plaintext
|
||||
'eglot-documentation-renderer "1.24")
|
||||
(make-obsolete-variable 'eglot-events-buffer-size
|
||||
'eglot-events-buffer-config "1.16")
|
||||
(define-obsolete-function-alias 'eglot--uri-to-path #'eglot-uri-to-path "1.16")
|
||||
|
|
@ -535,10 +537,16 @@ or file operation kinds not in the alist."
|
|||
"If non-nil, activate Eglot in cross-referenced non-project files."
|
||||
:type 'boolean)
|
||||
|
||||
(defcustom eglot-prefer-plaintext nil
|
||||
"If non-nil, always request plaintext responses to hover requests."
|
||||
:type 'boolean
|
||||
:package-version '(Eglot . "1.17.30"))
|
||||
(defcustom eglot-documentation-renderer nil
|
||||
"Controls rendering of LSP documentation fragments.
|
||||
If set to a major mode symbol like `gfm-view-mode', or the experimental
|
||||
`markdown-ts-view-mode', request markdown snippets and use that mode to
|
||||
render them. If t, request and render plain text instead. If nil,
|
||||
request markdown snippets and select a renderer dynamically."
|
||||
:type '(choice (const :tag "Plain text" t)
|
||||
(const :tag "Auto-detect" nil)
|
||||
(function :tag "Renderer"))
|
||||
:package-version '(Eglot . "1.24"))
|
||||
|
||||
(defcustom eglot-report-progress t
|
||||
"If non-nil, show progress of long running LSP server work.
|
||||
|
|
@ -727,16 +735,11 @@ This can be useful when using docker to run a language server.")
|
|||
|
||||
(declare-function treesit-grammar-location "treesit.c")
|
||||
|
||||
(defun eglot--builtin-mdown-p ()
|
||||
(and (fboundp 'markdown-ts-view-mode)
|
||||
(fboundp 'treesit-grammar-location)
|
||||
(treesit-grammar-location 'markdown)))
|
||||
|
||||
(defun eglot--accepted-formats ()
|
||||
(if (and (not eglot-prefer-plaintext)
|
||||
(or (fboundp 'gfm-view-mode) (eglot--builtin-mdown-p)))
|
||||
["markdown" "plaintext"]
|
||||
["plaintext"]))
|
||||
(if (or (eq t eglot-documentation-renderer)
|
||||
(not (or eglot-documentation-renderer (fboundp 'gfm-view-mode))))
|
||||
["plaintext"]
|
||||
["markdown" "plaintext"]))
|
||||
|
||||
(defconst eglot--uri-path-allowed-chars
|
||||
(let ((vec (copy-sequence url-path-allowed-chars)))
|
||||
|
|
@ -2263,12 +2266,13 @@ If MODE, force MODE to be used for fontifying MARKUP."
|
|||
finally return (buffer-string)))
|
||||
(calc2 (forced-mode)
|
||||
(cond
|
||||
(forced-mode `(,forced-mode))
|
||||
((eglot--builtin-mdown-p) `(,#'markdown-ts-view-mode))
|
||||
((fboundp 'gfm-view-mode) `(,#'gfm-view-mode ,#'gfm-extract))
|
||||
(t `(#'text-mode))))
|
||||
(forced-mode forced-mode)
|
||||
((fboundp eglot-documentation-renderer) eglot-documentation-renderer)
|
||||
((fboundp 'gfm-view-mode) #'gfm-view-mode)
|
||||
(t #'text-mode)))
|
||||
(calc (s &optional (forced-mode mode) &aux (x (calc2 forced-mode)))
|
||||
(setq string s render (car x) extract (or (cadr x) #'buffer-string))))
|
||||
(setq string s render x
|
||||
extract (if (eq x 'gfm-view-mode) #'gfm-extract #'buffer-string))))
|
||||
(cond ((stringp markup) (calc markup)) ; plain string
|
||||
((setq lang (plist-get markup :language)) ; deprecated MarkedString
|
||||
(calc (format "```%s\n%s\n```" lang (plist-get markup :value))))
|
||||
|
|
|
|||
|
|
@ -737,7 +737,9 @@ Return nil if NODE is not a defun node or doesn't have a name."
|
|||
(add-hook 'post-self-insert-hook
|
||||
#'elixir-ts--electric-pair-string-delimiter 'append t)
|
||||
|
||||
(when (treesit-ensure-installed 'elixir)
|
||||
;; `treesit-ready-p' also checks for buffer size.
|
||||
(when (and (treesit-ensure-installed 'elixir)
|
||||
(treesit-ready-p 'elixir))
|
||||
(setq-local treesit-primary-parser
|
||||
(treesit-parser-create 'elixir))
|
||||
|
||||
|
|
@ -762,7 +764,9 @@ Return nil if NODE is not a defun node or doesn't have a name."
|
|||
(setq-local treesit-defun-name-function #'elixir-ts--defun-name)
|
||||
|
||||
;; Embedded Heex.
|
||||
(when (treesit-ensure-installed 'heex)
|
||||
;; `treesit-ready-p' also checks for buffer size.
|
||||
(when (and (treesit-ensure-installed 'heex)
|
||||
(treesit-ready-p 'heex))
|
||||
(require 'heex-ts-mode)
|
||||
(treesit-parser-create 'heex)
|
||||
|
||||
|
|
|
|||
|
|
@ -287,7 +287,9 @@
|
|||
:group 'go
|
||||
:syntax-table go-ts-mode--syntax-table
|
||||
|
||||
(when (treesit-ensure-installed 'go)
|
||||
;; `treesit-ready-p' also checks for buffer size.
|
||||
(when (and (treesit-ensure-installed 'go)
|
||||
(treesit-ready-p 'go))
|
||||
(setq treesit-primary-parser (treesit-parser-create 'go))
|
||||
|
||||
;; Comments.
|
||||
|
|
@ -608,7 +610,9 @@ what the parent of the node would be if it were a node."
|
|||
:group 'go
|
||||
:syntax-table go-mod-ts-mode--syntax-table
|
||||
|
||||
(when (treesit-ensure-installed 'gomod)
|
||||
;; `treesit-ready-p' also checks for buffer size.
|
||||
(when (and (treesit-ensure-installed 'gomod)
|
||||
(treesit-ready-p 'gomod))
|
||||
(setq treesit-primary-parser (treesit-parser-create 'gomod))
|
||||
|
||||
;; Comments.
|
||||
|
|
@ -712,7 +716,9 @@ what the parent of the node would be if it were a node."
|
|||
"Major mode for editing go.work files, powered by tree-sitter."
|
||||
:group 'go
|
||||
|
||||
(when (treesit-ensure-installed 'gowork)
|
||||
;; `treesit-ready-p' also checks for buffer size.
|
||||
(when (and (treesit-ensure-installed 'gowork)
|
||||
(treesit-ready-p 'gowork))
|
||||
(setq treesit-primary-parser (treesit-parser-create 'gowork))
|
||||
|
||||
;; Comments.
|
||||
|
|
|
|||
|
|
@ -1120,6 +1120,8 @@ list is empty)."
|
|||
(defvar grep-edit-mode-hook nil
|
||||
"Hooks run when changing to Grep-Edit mode.")
|
||||
|
||||
(defvar grep-edit-original-mode-map nil)
|
||||
|
||||
(defun grep-edit-mode ()
|
||||
"Major mode for editing *grep* buffers.
|
||||
In this mode, changes to the *grep* buffer are applied to the
|
||||
|
|
@ -1140,6 +1142,7 @@ The only editable texts in a Grep-Edit buffer are the match results."
|
|||
(error "Not a Grep buffer"))
|
||||
(when (get-buffer-process (current-buffer))
|
||||
(error "Cannot switch when grep is running"))
|
||||
(setq-local grep-edit-original-mode-map (current-local-map))
|
||||
(use-local-map grep-edit-mode-map)
|
||||
(grep-edit--prepare-buffer)
|
||||
(setq buffer-read-only nil)
|
||||
|
|
@ -1159,7 +1162,7 @@ The only editable texts in a Grep-Edit buffer are the match results."
|
|||
(unless (derived-mode-p 'grep-edit-mode)
|
||||
(error "Not a Grep-Edit buffer"))
|
||||
(remove-hook 'after-change-functions #'occur-after-change-function t)
|
||||
(use-local-map grep-mode-map)
|
||||
(use-local-map grep-edit-original-mode-map)
|
||||
(setq buffer-read-only t)
|
||||
(setq major-mode 'grep-mode)
|
||||
(setq mode-name "Grep")
|
||||
|
|
|
|||
|
|
@ -201,7 +201,9 @@ Return nil if NODE is not a defun node or doesn't have a name."
|
|||
"Major mode for editing HEEx, powered by tree-sitter."
|
||||
:group 'heex-ts
|
||||
|
||||
(when (treesit-ensure-installed 'heex)
|
||||
;; `treesit-ready-p' also checks for buffer size.
|
||||
(when (and (treesit-ensure-installed 'heex)
|
||||
(treesit-ready-p 'heex))
|
||||
(setq treesit-primary-parser (treesit-parser-create 'heex))
|
||||
|
||||
;; Comments
|
||||
|
|
@ -236,7 +238,9 @@ Return nil if NODE is not a defun node or doesn't have a name."
|
|||
(setq-local treesit-font-lock-feature-list
|
||||
heex-ts--font-lock-feature-list)
|
||||
|
||||
(when (treesit-ensure-installed 'elixir)
|
||||
;; `treesit-ready-p' also checks for buffer size.
|
||||
(when (and (treesit-ensure-installed 'elixir)
|
||||
(treesit-ready-p 'elixir))
|
||||
(require 'elixir-ts-mode)
|
||||
(treesit-parser-create 'elixir)
|
||||
|
||||
|
|
|
|||
|
|
@ -4041,7 +4041,9 @@ See `treesit-thing-settings' for more information.")
|
|||
\\<js-ts-mode-map>"
|
||||
:group 'js
|
||||
:syntax-table js-mode-syntax-table
|
||||
(when (treesit-ensure-installed 'javascript)
|
||||
;; `treesit-ready-p' also checks for buffer size.
|
||||
(when (and (treesit-ensure-installed 'javascript)
|
||||
(treesit-ready-p 'javascript))
|
||||
;; Borrowed from `js-mode'.
|
||||
(setq-local prettify-symbols-alist js--prettify-symbols-alist)
|
||||
(setq-local parse-sexp-ignore-comments t)
|
||||
|
|
@ -4073,7 +4075,9 @@ See `treesit-thing-settings' for more information.")
|
|||
(setq-local treesit-font-lock-settings (js--treesit-font-lock-settings))
|
||||
(setq-local treesit-font-lock-feature-list js--treesit-font-lock-feature-list)
|
||||
|
||||
(when (treesit-ensure-installed 'jsdoc)
|
||||
;; `treesit-ready-p' also checks for buffer size.
|
||||
(when (and (treesit-ensure-installed 'jsdoc)
|
||||
(treesit-ready-p 'jsdoc))
|
||||
(setq-local treesit-range-settings
|
||||
(treesit-range-rules
|
||||
:embed 'jsdoc
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
;;; lua-mode.el --- Major-mode for editing Lua files -*- lexical-binding: t -*-
|
||||
;;; lua-mode.el --- Major mode for editing Lua files -*- lexical-binding: t -*-
|
||||
|
||||
;; Copyright (C) 2025-2026 Free Software Foundation, Inc.
|
||||
|
||||
|
|
|
|||
|
|
@ -675,7 +675,9 @@ Calls REPORT-FN directly."
|
|||
:syntax-table lua-ts--syntax-table
|
||||
(use-local-map lua-ts-mode-map)
|
||||
|
||||
(when (treesit-ensure-installed 'lua)
|
||||
;; `treesit-ready-p' also checks for buffer size.
|
||||
(when (and (treesit-ensure-installed 'lua)
|
||||
(treesit-ready-p 'lua))
|
||||
(setq treesit-primary-parser (treesit-parser-create 'lua))
|
||||
|
||||
;; Comments.
|
||||
|
|
|
|||
|
|
@ -7477,9 +7477,11 @@ implementations: `python-mode' and `python-ts-mode'."
|
|||
|
||||
\\{python-ts-mode-map}"
|
||||
:syntax-table python-mode-syntax-table
|
||||
(when (if (fboundp 'treesit-ensure-installed) ; Emacs 31
|
||||
(treesit-ensure-installed 'python)
|
||||
(treesit-ready-p 'python))
|
||||
;; `treesit-ready-p' also checks for buffer size.
|
||||
(when (and (if (fboundp 'treesit-ensure-installed) ; Emacs 31
|
||||
(treesit-ensure-installed 'python)
|
||||
t)
|
||||
(treesit-ready-p 'python))
|
||||
(setq treesit-primary-parser (treesit-parser-create 'python))
|
||||
(setq-local treesit-font-lock-feature-list
|
||||
'(( comment definition)
|
||||
|
|
|
|||
|
|
@ -557,7 +557,9 @@ See `prettify-symbols-compose-predicate'."
|
|||
:group 'rust
|
||||
:syntax-table rust-ts-mode--syntax-table
|
||||
|
||||
(when (treesit-ensure-installed 'rust)
|
||||
;; `treesit-ready-p' also checks for buffer size.
|
||||
(when (and (treesit-ensure-installed 'rust)
|
||||
(treesit-ready-p 'rust))
|
||||
(setq treesit-primary-parser (treesit-parser-create 'rust))
|
||||
|
||||
;; Syntax.
|
||||
|
|
|
|||
|
|
@ -1583,7 +1583,9 @@ with your script for an edit-interpret-debug cycle."
|
|||
This mode automatically falls back to `sh-mode' if the buffer is
|
||||
not written in Bash or sh."
|
||||
:syntax-table sh-mode-syntax-table
|
||||
(when (treesit-ensure-installed 'bash)
|
||||
;; `treesit-ready-p' also checks for buffer size.
|
||||
(when (and (treesit-ensure-installed 'bash)
|
||||
(treesit-ready-p 'bash))
|
||||
(sh-set-shell "bash" nil nil)
|
||||
(add-hook 'flymake-diagnostic-functions #'sh-shellcheck-flymake nil t)
|
||||
(add-hook 'hack-local-variables-hook
|
||||
|
|
|
|||
|
|
@ -701,7 +701,9 @@ This mode is intended to be inherited by concrete major modes."
|
|||
:group 'typescript
|
||||
:syntax-table typescript-ts-mode--syntax-table
|
||||
|
||||
(when (treesit-ensure-installed 'typescript)
|
||||
;; `treesit-ready-p' also checks for buffer size.
|
||||
(when (and (treesit-ensure-installed 'typescript)
|
||||
(treesit-ready-p 'typescript))
|
||||
(setq treesit-primary-parser (treesit-parser-create 'typescript))
|
||||
|
||||
;; Indent.
|
||||
|
|
@ -757,7 +759,9 @@ at least 3 (which is the default value)."
|
|||
:group 'typescript
|
||||
:syntax-table typescript-ts-mode--syntax-table
|
||||
|
||||
(when (treesit-ensure-installed 'tsx)
|
||||
;; `treesit-ready-p' also checks for buffer size.
|
||||
(when (and (treesit-ensure-installed 'tsx)
|
||||
(treesit-ready-p 'tsx))
|
||||
(setq treesit-primary-parser (treesit-parser-create 'tsx))
|
||||
|
||||
;; Comments.
|
||||
|
|
|
|||
|
|
@ -369,6 +369,8 @@ should a regexp."
|
|||
(replace--region-filter
|
||||
(funcall region-extract-function 'bounds)))
|
||||
:highlight (and query-replace-lazy-highlight (not no-highlight))
|
||||
:lax-whitespace (if regexp-flag replace-regexp-lax-whitespace
|
||||
replace-lax-whitespace)
|
||||
:regexp regexp-flag
|
||||
:regexp-function (or replace-regexp-function
|
||||
delimited-flag
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
;;; ring-bell-fns.el --- Collection of functions for ring-bell -*- lexical-binding: t; -*-
|
||||
;;; ring-bell-fns.el --- Collection of functions for ring-bell-function -*- lexical-binding: t; -*-
|
||||
|
||||
;; Copyright (C) 2025-2026 Free Software Foundation, Inc.
|
||||
|
||||
|
|
|
|||
|
|
@ -152,6 +152,7 @@ explicitly overridden."
|
|||
(forward-line 1))))
|
||||
filenames)))
|
||||
|
||||
;;;###autoload
|
||||
(defun send-to--resolve-handler ()
|
||||
"Return first supported handler from `send-to-handlers'."
|
||||
(seq-find (lambda (handler)
|
||||
|
|
@ -221,7 +222,7 @@ From any other buffer, either of these two, in order of preference:
|
|||
(region-beginning)
|
||||
(region-end))))
|
||||
((thing-at-point 'existing-filename)
|
||||
(thing-at-point 'existing-filename))
|
||||
(list (thing-at-point 'existing-filename)))
|
||||
((buffer-file-name)
|
||||
(list (buffer-file-name)))))
|
||||
|
||||
|
|
|
|||
|
|
@ -996,7 +996,7 @@ Make the shell buffer the current buffer, and return it.
|
|||
(lambda (proc event)
|
||||
(when sentinel
|
||||
(funcall sentinel proc event))
|
||||
(unless (buffer-live-p proc)
|
||||
(unless (process-live-p proc)
|
||||
(kill-buffer buffer))))))
|
||||
buffer)
|
||||
|
||||
|
|
|
|||
12
lisp/subr.el
12
lisp/subr.el
|
|
@ -7125,8 +7125,7 @@ REPORTER is the result of a call to `make-progress-reporter'.
|
|||
STATE can be one of:
|
||||
- A float representing the percentage complete in the range 0.0-1.0
|
||||
for a numeric reporter.
|
||||
- An integer representing the index which cycles through the range 0-3
|
||||
for a pulsing reporter.
|
||||
- A monotonically increasing integer for a pulsing reporter.
|
||||
- The symbol `done' to indicate that the progress reporter is complete.")
|
||||
|
||||
(defsubst progress-reporter-update (reporter &optional value suffix)
|
||||
|
|
@ -7141,7 +7140,7 @@ MIN-VALUE and MAX-VALUE.
|
|||
Optional argument SUFFIX is a string to be displayed after REPORTER's
|
||||
main message and progress text. If REPORTER is a non-numerical
|
||||
reporter, then VALUE should be nil, or a string to use instead of
|
||||
SUFFIX. SUFFIX is considered obsolete and may be removed in the future.
|
||||
SUFFIX.
|
||||
|
||||
See `progress-reporter-update-functions' for the list of functions
|
||||
called on each update.
|
||||
|
|
@ -7252,8 +7251,9 @@ area is busy with something else."
|
|||
(message "%s" text)))
|
||||
((pred integerp)
|
||||
(let ((message-log-max nil)
|
||||
(pulse-char (aref progress-reporter--pulse-characters
|
||||
state)))
|
||||
(pulse-char
|
||||
(aref progress-reporter--pulse-characters
|
||||
(mod state (length progress-reporter--pulse-characters)))))
|
||||
(message "%s %s" text pulse-char)))
|
||||
('done
|
||||
(message "%sdone" text))))))
|
||||
|
|
@ -7305,7 +7305,7 @@ area is busy with something else."
|
|||
(if suffix
|
||||
(aset parameters 6 suffix)
|
||||
(setq suffix (or (aref parameters 6) "")))
|
||||
(let ((index (mod (1+ (car reporter)) 4)))
|
||||
(let ((index (1+ (car reporter))))
|
||||
(setcar reporter index)
|
||||
(run-hook-with-args 'progress-reporter-update-functions
|
||||
reporter
|
||||
|
|
|
|||
|
|
@ -282,7 +282,9 @@ REPORTER and STATE are the same as in
|
|||
((pred floatp)
|
||||
(system-taskbar--progress state))
|
||||
((pred integerp)
|
||||
(system-taskbar--progress (/ (1+ state) 4.0)))
|
||||
;; This won't show 0.0 to indicate work in process until done.
|
||||
(system-taskbar--progress
|
||||
(/ (1+ (mod state 5)) 5.0)))
|
||||
('done
|
||||
(system-taskbar--progress nil)))))
|
||||
|
||||
|
|
|
|||
|
|
@ -1888,7 +1888,9 @@ can also be used to fill comments.
|
|||
|
||||
\\{css-mode-map}"
|
||||
:syntax-table css-mode-syntax-table
|
||||
(when (treesit-ensure-installed 'css)
|
||||
;; `treesit-ready-p' also checks for buffer size.
|
||||
(when (and (treesit-ensure-installed 'css)
|
||||
(treesit-ready-p 'css))
|
||||
;; Borrowed from `css-mode'.
|
||||
(setq-local syntax-propertize-function
|
||||
css-syntax-propertize-function)
|
||||
|
|
|
|||
|
|
@ -911,6 +911,7 @@ region, instead of just filling the current paragraph."
|
|||
(fill-comment-paragraph justify)))
|
||||
;; 4. If it all fails, default to the good ol' text paragraph filling.
|
||||
(let ((before (point))
|
||||
(paragraph-start-orig paragraph-start)
|
||||
(paragraph-start paragraph-start)
|
||||
;; Fill prefix used for filling the paragraph.
|
||||
fill-pfx)
|
||||
|
|
@ -933,6 +934,18 @@ region, instead of just filling the current paragraph."
|
|||
(setq fill-pfx "")
|
||||
(let ((end (point))
|
||||
(beg (progn (fill-forward-paragraph -1) (point))))
|
||||
;; If the paragraph starts with a comment line preceding point
|
||||
;; on a non-comment line, skip such comment lines, so they
|
||||
;; are not filled together (bug#80449).
|
||||
(when (and fill-paragraph-handle-comment comment-start-skip
|
||||
(< beg before))
|
||||
(save-excursion
|
||||
(goto-char beg)
|
||||
(when (looking-at paragraph-start-orig)
|
||||
(goto-char (1+ (match-end 0))))
|
||||
(when (looking-at comment-start-skip)
|
||||
(forward-line 1)
|
||||
(setq beg (point)))))
|
||||
(goto-char before)
|
||||
(setq fill-pfx
|
||||
(if use-hard-newlines
|
||||
|
|
|
|||
|
|
@ -1404,8 +1404,16 @@ If NODE is not in a list, return -1."
|
|||
"Fontify unordered list marker NODE, show a symbol when markup is hidden.
|
||||
OVERRIDE, START, and END are passed through to
|
||||
`treesit-fontify-with-override'."
|
||||
(let* ((node-start (treesit-node-start node))
|
||||
;; The tree-sitter markdown grammar includes the leading indentation
|
||||
;; in the first list_marker_minus/plus/star node of a list, so skip
|
||||
;; over any leading whitespace to avoid overwriting the indent with
|
||||
;; the replacement glyph.
|
||||
(let* ((raw-start (treesit-node-start node))
|
||||
(node-end (treesit-node-end node))
|
||||
(node-start (save-excursion
|
||||
(goto-char raw-start)
|
||||
(skip-chars-forward " \t" node-end)
|
||||
(point)))
|
||||
(face 'markdown-ts-list-marker))
|
||||
(treesit-fontify-with-override node-start node-end face
|
||||
override start end)
|
||||
|
|
|
|||
|
|
@ -511,7 +511,9 @@ Powered by tree-sitter."
|
|||
|
||||
;; jsdoc is not mandatory for js-ts-mode, so we respect this by
|
||||
;; adding jsdoc range rules only when jsdoc is available.
|
||||
(when (treesit-ensure-installed 'jsdoc)
|
||||
;; `treesit-ready-p' also checks for buffer size.
|
||||
(when (and (treesit-ensure-installed 'jsdoc)
|
||||
(treesit-ready-p 'jsdoc))
|
||||
(setq-local c-ts-common--comment-regexp
|
||||
js--treesit-jsdoc-comment-regexp))
|
||||
|
||||
|
|
|
|||
|
|
@ -440,7 +440,7 @@ Also checks if buffers visiting the files are in read-only mode."
|
|||
(t
|
||||
(setq nxt-buff
|
||||
(funcall isearch-next-buffer-function
|
||||
(current-buffer)))
|
||||
(current-buffer)))
|
||||
(if (not nxt-buff)
|
||||
(progn
|
||||
(error "Wrap backward"))
|
||||
|
|
@ -475,54 +475,43 @@ Also checks if buffers visiting the files are in read-only mode."
|
|||
|
||||
;; NB this is a global autoload - see reftex.el.
|
||||
;;;###autoload
|
||||
(defun reftex-isearch-minor-mode (&optional arg)
|
||||
(define-minor-mode reftex-isearch-minor-mode
|
||||
"When on, isearch searches the whole document, not only the current file.
|
||||
This minor mode allows isearch to search through all the files of
|
||||
the current TeX document.
|
||||
|
||||
With no argument, this command toggles
|
||||
`reftex-isearch-minor-mode'. With a prefix argument ARG, turn
|
||||
`reftex-isearch-minor-mode' on if ARG is positive, otherwise turn it off."
|
||||
(interactive "P")
|
||||
(let ((old-reftex-isearch-minor-mode reftex-isearch-minor-mode))
|
||||
(setq reftex-isearch-minor-mode
|
||||
(not (or (and (null arg) reftex-isearch-minor-mode)
|
||||
(<= (prefix-numeric-value arg) 0))))
|
||||
(unless (eq reftex-isearch-minor-mode old-reftex-isearch-minor-mode)
|
||||
(if reftex-isearch-minor-mode
|
||||
(progn
|
||||
(dolist (crt-buf (buffer-list))
|
||||
(with-current-buffer crt-buf
|
||||
(when reftex-mode
|
||||
(if (boundp 'multi-isearch-next-buffer-function)
|
||||
(setq-local multi-isearch-next-buffer-function
|
||||
#'reftex-isearch-switch-to-next-file)
|
||||
(setq-local isearch-wrap-function
|
||||
#'reftex-isearch-wrap-function)
|
||||
(setq-local isearch-search-fun-function
|
||||
(lambda () #'reftex-isearch-isearch-search))
|
||||
(setq-local isearch-push-state-function
|
||||
#'reftex-isearch-push-state-function)
|
||||
(setq-local isearch-next-buffer-function
|
||||
#'reftex-isearch-switch-to-next-file))
|
||||
(setq reftex-isearch-minor-mode t))))
|
||||
(add-hook 'reftex-mode-hook #'reftex-isearch-minor-mode))
|
||||
the current TeX document."
|
||||
:lighter "/I"
|
||||
:global t
|
||||
:group 'reftex
|
||||
(if reftex-isearch-minor-mode
|
||||
(progn
|
||||
(dolist (crt-buf (buffer-list))
|
||||
(with-current-buffer crt-buf
|
||||
(when reftex-mode
|
||||
(if (boundp 'multi-isearch-next-buffer-function)
|
||||
(kill-local-variable 'multi-isearch-next-buffer-function)
|
||||
(kill-local-variable 'isearch-wrap-function)
|
||||
(kill-local-variable 'isearch-search-fun-function)
|
||||
(kill-local-variable 'isearch-push-state-function)
|
||||
(kill-local-variable 'isearch-next-buffer-function))
|
||||
(setq reftex-isearch-minor-mode nil))))
|
||||
(remove-hook 'reftex-mode-hook #'reftex-isearch-minor-mode)))
|
||||
;; Force mode line redisplay.
|
||||
(set-buffer-modified-p (buffer-modified-p))))
|
||||
(setq-local multi-isearch-next-buffer-function
|
||||
#'reftex-isearch-switch-to-next-file)
|
||||
(setq-local isearch-wrap-function
|
||||
#'reftex-isearch-wrap-function)
|
||||
(setq-local isearch-search-fun-function
|
||||
(lambda () #'reftex-isearch-isearch-search))
|
||||
(setq-local isearch-push-state-function
|
||||
#'reftex-isearch-push-state-function)
|
||||
(setq-local isearch-next-buffer-function
|
||||
#'reftex-isearch-switch-to-next-file)))))
|
||||
(add-hook 'reftex-mode-hook #'reftex-isearch-minor-mode))
|
||||
(dolist (crt-buf (buffer-list))
|
||||
(with-current-buffer crt-buf
|
||||
(when reftex-mode
|
||||
(if (boundp 'multi-isearch-next-buffer-function)
|
||||
(kill-local-variable 'multi-isearch-next-buffer-function)
|
||||
(kill-local-variable 'isearch-wrap-function)
|
||||
(kill-local-variable 'isearch-search-fun-function)
|
||||
(kill-local-variable 'isearch-push-state-function)
|
||||
(kill-local-variable 'isearch-next-buffer-function)))))
|
||||
(remove-hook 'reftex-mode-hook #'reftex-isearch-minor-mode)))
|
||||
|
||||
|
||||
|
||||
(add-minor-mode 'reftex-isearch-minor-mode "/I" nil nil
|
||||
'reftex-isearch-minor-mode)
|
||||
|
||||
;;; reftex-global.el ends here
|
||||
|
||||
|
|
|
|||
|
|
@ -2180,8 +2180,6 @@ fonts. Currently it is only used for reftex-label-face."
|
|||
|
||||
;; Define a menu for the menu bar if Emacs is running under X
|
||||
|
||||
(defvar-local reftex-isearch-minor-mode nil)
|
||||
|
||||
(easy-menu-define reftex-mode-menu reftex-mode-map
|
||||
"Menu used in RefTeX mode."
|
||||
`("Ref"
|
||||
|
|
|
|||
|
|
@ -89,6 +89,7 @@ The command `tex-file' runs TeX on the file specified by `tex-main-file'
|
|||
if the variable is non-nil."
|
||||
:type '(choice (const :tag "None" nil)
|
||||
file)
|
||||
:safe (lambda (x) (or (stringp x) (null x)))
|
||||
:group 'tex-file)
|
||||
|
||||
;;;###autoload
|
||||
|
|
|
|||
|
|
@ -138,7 +138,9 @@ Return nil if there is no name or if NODE is not a defun node."
|
|||
:group 'toml-mode
|
||||
:syntax-table toml-ts-mode--syntax-table
|
||||
|
||||
(when (treesit-ensure-installed 'toml)
|
||||
;; `treesit-ready-p' also checks for buffer size.
|
||||
(when (and (treesit-ensure-installed 'toml)
|
||||
(treesit-ready-p 'toml))
|
||||
(setq treesit-primary-parser (treesit-parser-create 'toml))
|
||||
|
||||
;; Comments
|
||||
|
|
|
|||
|
|
@ -262,7 +262,9 @@ Calls REPORT-FN directly."
|
|||
:group 'yaml
|
||||
:syntax-table yaml-ts-mode--syntax-table
|
||||
|
||||
(when (treesit-ensure-installed 'yaml)
|
||||
;; `treesit-ready-p' also checks for buffer size.
|
||||
(when (and (treesit-ensure-installed 'yaml)
|
||||
(treesit-ready-p 'yaml))
|
||||
(setq treesit-primary-parser (treesit-parser-create 'yaml))
|
||||
|
||||
;; Comments.
|
||||
|
|
|
|||
|
|
@ -708,9 +708,7 @@ point."
|
|||
(interactive "i\nP")
|
||||
(let ((str
|
||||
(format-seconds (or format "%Y, %D, %H, %M, %z%S")
|
||||
(time-convert
|
||||
(time-since before-init-time)
|
||||
'integer))))
|
||||
(time-since before-init-time))))
|
||||
(if here
|
||||
(insert str)
|
||||
(if (called-interactively-p 'interactive)
|
||||
|
|
|
|||
|
|
@ -142,7 +142,9 @@ of `define-treesit-generic-mode'.
|
|||
;;;###autoload
|
||||
(defun treesit-generic-mode-setup (lang)
|
||||
"Go into the treesit generic mode MODE."
|
||||
(when (treesit-ensure-installed lang)
|
||||
;; `treesit-ready-p' also checks for buffer size.
|
||||
(when (and (treesit-ensure-installed lang)
|
||||
(treesit-ready-p lang))
|
||||
(setq treesit-primary-parser (treesit-parser-create lang))
|
||||
|
||||
(when-let* ((query (treesit-generic-mode-font-lock-query lang)))
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue