Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs into feature/pgtk

This commit is contained in:
Yuuki Harano 2021-04-06 00:11:36 +09:00
commit 8c7453632e
347 changed files with 11849 additions and 10241 deletions

View file

@ -2,6 +2,20 @@
* Version 27.2 released.
2021-03-18 Basil L. Contovounesios <contovob@tcd.ie>
Fix 'frame-inner-height' in non-GUI builds
Include tab bar in frame's inner height in non-GUI builds that
don't define 'tab-bar-height'. This is consistent with the
inclusion of the menu bar in the calculated height. It is also
consistent with TTY frames of GUI builds, for which
'tab-bar-height' is always zero anyway (bug#47234).
Fix suggested by Eli Zaretskii <eliz@gnu.org>.
* lisp/frame.el (frame-inner-height): Don't assume
'tab-bar-height' is defined in builds --without-x.
2021-03-18 Eli Zaretskii <eliz@gnu.org>
* etc/HISTORY: Update for Emacs 27.2.
@ -76935,7 +76949,7 @@
* lisp/emacs-lisp/lisp-mode.el (lisp-cl-font-lock-keywords-2):
Highlight the Common Lisp conventional names as described in
http://www.cliki.net/Naming+conventions.
https://www.cliki.net/Naming+conventions.
(lisp-el-font-lock-keywords-2): Remove the already commented out
code for `do-' and `with-' because Emacs Lisp does not have a similar
convention.
@ -122126,7 +122140,7 @@
I roughly followed the Bordeaux threads API:
http://trac.common-lisp.net/bordeaux-threads/wiki/ApiDocumentation
https://sionescu.github.io/bordeaux-threads/
... but not identically. In particular I chose not to implement
interrupt-thread or destroy-thread, but instead a thread-signaling

View file

@ -50,6 +50,8 @@ help:
@echo "make distclean -- delete all build and configuration files,"
@echo " leave only files included in source distribution"
@echo "make maintainer-clean -- delete almost everything that can be regenerated"
@echo "make extraclean -- like maintainer-clean, and also delete"
@echo " backup and autosave files"
@echo "make bootstrap -- delete all compiled files to force a new bootstrap"
@echo " from a clean slate, then build in the normal way"
@echo "make uninstall -- remove files installed by 'make install'"

View file

@ -48,8 +48,6 @@
#
# make extraclean
# Still more severe - delete backup and autosave files, too.
# Also generated files that do not normally change and can be slow
# to rebuild (eg leim/ja-dic).
#
# make bootstrap
# Removes all the compiled files to force a new bootstrap from a
@ -930,7 +928,7 @@ maintainer-clean: bootstrap-clean $(maintainer_clean_dirs:=_maintainer-clean)
### Note that we abuse this in some subdirectories (eg leim),
### to delete some generated files that are slow to rebuild.
extraclean_dirs = ${NTDIR} lib-src src leim \
admin/charsets admin/grammars admin/unidata lisp lib
admin/charsets admin/grammars admin/unidata lisp lib lwlib
$(foreach dir,$(extraclean_dirs),$(eval $(call submake_template,$(dir),extraclean)))

View file

@ -151,7 +151,7 @@ Root must be the root of an Emacs source tree."
(display-warning 'admin
"NEWS file contains empty sections - remove them?"))
(goto-char (point-min))
(if (re-search-forward "^\\(\\+\\+\\+ *$\\|--- *$\\|Temporary note:\\)" nil t)
(if (re-search-forward "^\\(\\+\\+\\+? *$\\|---? *$\\|Temporary note:\\)" nil t)
(display-warning 'admin
"NEWS file still contains temporary markup.
Documentation changes might not have been completed!"))))
@ -545,7 +545,7 @@ Leave point after the table."
(forward-line 1)
(while (not done)
(cond ((re-search-forward "<tr><td.*&bull; \\(<a.*</a>\\)\
:</td><td>&nbsp;&nbsp;</td><td[^>]*>\\(.*\\)" (line-end-position) t)
:?</td><td>&nbsp;&nbsp;</td><td[^>]*>\\(.*\\)" (line-end-position) t)
(replace-match (format "<tr><td%s>\\1</td>\n<td>\\2"
(if table-workaround
" bgcolor=\"white\"" "")))

View file

@ -297,17 +297,19 @@ ${charsetdir}/%.map: ${GLIBC_CHARMAPS}/%.gz ${mapconv} ${compact}
${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x/' GLIBC-1 ${compact} > $@
.PHONY: clean bootstrap-clean distclean maintainer-clean extraclean
.PHONY: clean bootstrap-clean distclean maintainer-clean extraclean gen-clean
clean:
## IMO this should also run gen-clean.
bootstrap-clean: clean
distclean: clean
rm -f Makefile
maintainer-clean: distclean
## Do not remove these files, even in a bootstrap. They rarely change.
extraclean:
gen-clean:
rm -f ${CHARSETS} ${SED_SCRIPT} ${TRANS_TABLE} ${srcdir}/charsets.stamp
maintainer-clean: gen-clean distclean
extraclean: maintainer-clean

View file

@ -34,7 +34,7 @@ top_builddir = @top_builddir@
unexport EMACSDATA EMACSDOC EMACSPATH
EMACS = ${top_builddir}/src/emacs
emacs = EMACSLOADPATH= "${EMACS}" -batch --no-site-file --no-site-lisp
emacs = EMACSLOADPATH= "${EMACS}" -batch --no-site-file --no-site-lisp --eval '(setq load-prefer-newer t)'
make_bovine = ${emacs} -l semantic/bovine/grammar -f bovine-batch-make-parser
make_wisent = ${emacs} -l semantic/wisent/grammar -f wisent-batch-make-parser
@ -43,6 +43,9 @@ cedetdir = ${top_srcdir}/lisp/cedet
bovinedir = ${cedetdir}/semantic/bovine
wisentdir = ${cedetdir}/semantic/wisent
grammar_bovine = ${bovinedir}/grammar.el
grammar_wisent = ${wisentdir}/grammar.el
BOVINE = \
${bovinedir}/c-by.el \
${bovinedir}/make-by.el \
@ -51,7 +54,7 @@ BOVINE = \
## FIXME Should include this one too:
## ${cedetdir}/semantic/grammar-wy.el
## but semantic/grammar.el (which is what we use to generate grammar-wy.el)
## requires it!
## requires it! https://debbugs.gnu.org/16008
WISENT = \
${wisentdir}/javat-wy.el \
${wisentdir}/js-wy.el \
@ -69,46 +72,46 @@ bovine: ${BOVINE}
wisent: ${WISENT}
## c-by.el, make-by.el.
${bovinedir}/%-by.el: ${srcdir}/%.by
${bovinedir}/%-by.el: ${srcdir}/%.by ${grammar_bovine}
$(AM_V_GEN)[ ! -f "$@" ] || chmod +w "$@"
$(AM_V_at)${make_bovine} -o "$@" $<
${bovinedir}/scm-by.el: ${srcdir}/scheme.by
${bovinedir}/scm-by.el: ${srcdir}/scheme.by ${grammar_bovine}
$(AM_V_GEN)[ ! -f "$@" ] || chmod +w "$@"
$(AM_V_at)${make_bovine} -o "$@" $<
## grammar-wy.el
${cedetdir}/semantic/%-wy.el: ${srcdir}/%.wy
${cedetdir}/semantic/%-wy.el: ${srcdir}/%.wy ${grammar_wisent}
$(AM_V_GEN)[ ! -f "$@" ] || chmod +w "$@"
$(AM_V_at)${make_wisent} -o "$@" $<
## js-wy.el, python-wy.el
${wisentdir}/%-wy.el: ${srcdir}/%.wy
${wisentdir}/%-wy.el: ${srcdir}/%.wy ${grammar_wisent}
$(AM_V_GEN)[ ! -f "$@" ] || chmod +w "$@"
$(AM_V_at)${make_wisent} -o "$@" $<
${wisentdir}/javat-wy.el: ${srcdir}/java-tags.wy
${wisentdir}/javat-wy.el: ${srcdir}/java-tags.wy ${grammar_wisent}
$(AM_V_GEN)[ ! -f "$@" ] || chmod +w "$@"
$(AM_V_at)${make_wisent} -o "$@" $<
${cedetdir}/srecode/srt-wy.el: ${srcdir}/srecode-template.wy
${cedetdir}/srecode/srt-wy.el: ${srcdir}/srecode-template.wy ${grammar_wisent}
$(AM_V_GEN)[ ! -f "$@" ] || chmod +w "$@"
$(AM_V_at)${make_wisent} -o "$@" $<
.PHONY: distclean bootstrap-clean maintainer-clean extraclean
.PHONY: distclean bootstrap-clean maintainer-clean extraclean gen-clean
distclean:
rm -f Makefile
## Perhaps this should do what extraclean (qv) does.
## IMO this should run gen-clean.
bootstrap-clean:
maintainer-clean: distclean
## We do not normally delete the generated files, even in bootstrap.
## Creating them does not take long, so we could easily change this.
extraclean:
gen-clean:
rm -f ${ALL}
maintainer-clean: gen-clean distclean
extraclean: maintainer-clean
# Makefile.in ends here

View file

@ -91,6 +91,12 @@ General steps (for each step, check for possible errors):
versioned ChangeLog.N and commit that along with etc/HISTORY.
Then you can tag that commit as the release.
Alternatively, you can commit and tag with the RC tag right away,
and delay the final tagging until you actually decide to make a
release and announce it. The "git tag" command can tag a specific
commit if you give it the SHA1 of that commit, even if additional
commits have been pushed in the meantime.
Name the tar file as emacs-XX.Y-rc1.tar. If all goes well in the
following week, you can simply rename the file and use it for the
actual release. If you need another release candidate, remember
@ -104,11 +110,11 @@ General steps (for each step, check for possible errors):
Never replace an existing tarfile! If you need to fix something,
always upload it with a different name.
4. autoreconf -i -I m4 --force
make bootstrap
4. autoreconf -i -I m4 --force
make bootstrap
make -C etc/refcards
make -C etc/refcards clean
make -C etc/refcards
make -C etc/refcards clean
If some of the etc/refcards, especially the non-English ones, fail
to build, you probably need to install some TeX/LaTeX packages, in
@ -122,13 +128,18 @@ General steps (for each step, check for possible errors):
5. Copy lisp/loaddefs.el to lisp/ldefs-boot.el.
Commit ChangeLog.N, etc/AUTHORS, lisp/ldefs-boot.el, and the
files changed by M-x set-version.
files changed by M-x set-version. The easiest way of doing that
is "C-x v d ROOT-DIR RET", then go to the first modified file,
press 'M' to mark all modified files, and finally 'v' to commit
them. Make sure the commit log message mentions all the changes
in all modified files, as by default 'v' doesn't necessarily do
so.
If someone else made a commit between step 1 and now,
you need to repeat from step 4 onwards. (You can commit the files
from step 2 and 3 earlier to reduce the chance of this.)
6. ./make-dist --snapshot --no-compress
6. ./make-dist --snapshot --no-compress
Check the contents of the new tar with admin/diff-tar-files
against the previous release (if this is the first pretest) or the
@ -136,6 +147,14 @@ General steps (for each step, check for possible errors):
yourself, find it at <https://alpha.gnu.org/gnu/emacs/pretest>.
Releases are of course at <https://ftp.gnu.org/pub/gnu/emacs/>.
./admin/diff-tar-files emacs-OLD.tar.gz emacs-NEW.tar.gz
Alternatively:
tar tJf emacs-OLD.tar.xz | sed -e 's,^[^/]*,,' | sort > old_tmp
tar tJf emacs-NEW.tar.xz | sed -e 's,^[^/]*,,' | sort > new_tmp
diff -u old_tmp new_tmp
If this is the first pretest of a major release, just comparing
with the previous release may overlook many new files. You can try
something like 'find . | sort' in a clean repository, and compare the
@ -143,6 +162,7 @@ General steps (for each step, check for possible errors):
7. tar -xf emacs-NEW.tar; cd emacs-NEW
./configure --prefix=/tmp/emacs && make check && make install
Use 'script' or M-x compile to save the compilation log in
compile-NEW.log and compare it against an old one. The easiest way
to do that is to visit the old log in Emacs, change the version
@ -150,8 +170,23 @@ General steps (for each step, check for possible errors):
M-x ediff. Especially check that Info files aren't built, and that
no autotools (autoconf etc) run.
8. cd EMACS_ROOT_DIR && git tag -a TAG && git push origin tag TAG
TAG is emacs-XX.Y.ZZ for a pretest, emacs-XX.Y for a release.
8. 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"
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
tarball, in case there were some intervening commits since then:
git tag -a TAG -m "Emacs TAG" SHA1
git push --tags
9. Decide what compression schemes to offer.
For a release, at least gz and xz:
@ -215,8 +250,12 @@ General steps (for each step, check for possible errors):
because replies that invariably are not announcements also get
sent out as if they were.)
12. After a release, update the Emacs pages as below.
12. After a release, update the Emacs pages as described below.
13. Bump the Emacs version on the release branch.
If the released version was XX.Y, use 'set-version' from
admin/admin.el to bump the version on the release branch to
XX.Y.50. Commit the changes.
UPDATING THE EMACS WEB PAGES AFTER A RELEASE
@ -236,5 +275,14 @@ page for about a month, then comment it again.
Regenerate the various manuals in manual/.
The scripts admin/make-manuals and admin/upload-manuals summarize the process.
If you have Texinfo installed locally, make-manuals might fail if it
cannot find epsf.tex. In that case define in the environment
TEXINPUTS=:/path/to/texinfo-tree/doc
where /path/to/texinfo-tree is the absolute file name of the top-level
directory where you have the Texinfo source tree. Then re-run
make-manuals.
Browsing <https://web.cvs.savannah.gnu.org/viewvc/?root=emacs> is one
way to check for any files that still need updating.

View file

@ -36,6 +36,21 @@ of the Emacs git repository to perform a bootstrap and test of Emacs.
This could happen for several jobs with changed configuration, compile
and test parameters.
There are different types of jobs: 'prep-image-base' is responsible to
prepare the environment for the following jobs. 'build-image-*' jobs
are responsible to compile Emacs in different configuration. The
corresponding 'test-*' jobs run the ert tests.
A special job is 'test-all-inotify', which runs 'make check-expensive'.
While most of the jobs run as soon as a respective file has been
committed into the Emacs git repository, this test job runs scheduled,
every 8 hours.
The log files for every test job are kept on the server for a week.
They can be downloaded from the server, visiting the URL
<https://emba.gnu.org/emacs/emacs/-/pipelines>, and selecting the job
in question.
* Emba configuration
The emba configuration files are hosted on

View file

@ -85,26 +85,26 @@ ${unidir}/charscript.el: ${srcdir}/Blocks.txt ${blocks}
$(AM_V_GEN)$(AWK) -f ${blocks} < $< > $@
.PHONY: clean bootstrap-clean distclean maintainer-clean extraclean
.PHONY: clean bootstrap-clean distclean maintainer-clean extraclean gen-clean
clean:
rm -f ${srcdir}/*.elc unidata.txt
## IMO this should also run gen-clean.
bootstrap-clean: clean
distclean: clean
rm -f Makefile
maintainer-clean: distclean
## Do not remove these files, even in a bootstrap, because they rarely
## change and it slows down bootstrap (a tiny bit).
## Cf leim/ja-dic (which is much slower).
## macuvs.h is a generated file, but it's also checked in because
## macOS builds would need to do a headless bootstrap without it,
## which is currently awkward. To avoid changing checked-in files
## from a make target, we don't delete it here.
extraclean: distclean
gen-clean:
rm -f ${unidir}/charscript.el*
rm -f ${unifiles} ${unidir}/charprop.el
## ref: https://lists.gnu.org/r/emacs-devel/2013-11/msg01029.html
maintainer-clean: gen-clean distclean
extraclean: maintainer-clean

View file

@ -861,6 +861,7 @@ Projects
* Project File Commands:: Commands for handling project files.
* Project Buffer Commands:: Commands for handling project buffers.
* Switching Projects:: Switching between projects.
* Managing Projects:: Managing the project list file.
Change Logs

View file

@ -1664,6 +1664,7 @@ the project back-end. For example, the VC back-end doesn't consider
* Project File Commands:: Commands for handling project files.
* Project Buffer Commands:: Commands for handling project buffers.
* Switching Projects:: Switching between projects.
* Managing Projects:: Managing the project list file.
@end menu
@node Project File Commands
@ -1843,6 +1844,21 @@ in the menu, and which key invokes each command.
records the list of known projects. It defaults to the file
@file{projects} in @code{user-emacs-directory} (@pxref{Find Init}).
@node Managing Projects
@subsection Managing the Project List File
@table @kbd
@item M-x project-remove-known-project
Remove a known project from the @code{project-list-file}.
@end table
@findex project-remove-known-project
Normally Emacs automatically adds and removes projects to and from the
@code{project-list-file}, but sometimes you may want to manually edit
the available projects. @kbd{M-x project-remove-known-project}
prompts you to choose one of the available projects, and then removes
it from the file.
@node Change Log
@section Change Logs

View file

@ -82,7 +82,9 @@ after a recursive minibuffer has been opened in the current command
(@pxref{Recursive Mini,,, elisp}). This option is mainly to retain
(approximately) the behavior prior to Emacs 28.1. Note that the
effect of the command, when you finally finish using the minibuffer,
always takes place in the frame where you first opened it.
always takes place in the frame where you first opened it. The sole
exception is that when that frame no longer exists, the action takes
place in the currently selected frame.
@node Minibuffer File
@section Minibuffers for File Names

View file

@ -1364,19 +1364,6 @@ C-e}:
(this is an unquoted list)
@end smallexample
@ignore
@noindent
What you see depends on which version of Emacs you are running. GNU
Emacs version 22 provides more information than version 20 and before.
First, the more recent result of generating an error; then the
earlier, version 20 result.
@need 1250
@noindent
In GNU Emacs version 22, a @file{*Backtrace*} window will open up and
you will see the following in it:
@end ignore
A @file{*Backtrace*} window will open up and you should see the
following in it:
@ -1838,19 +1825,6 @@ Debugger entered--Lisp error: (void-function fill-column)
(Remember, to quit the debugger and make the debugger window go away,
type @kbd{q} in the @file{*Backtrace*} buffer.)
@ignore
@need 800
In GNU Emacs 20 and before, you will produce an error message that says:
@smallexample
Symbol's function definition is void:@: fill-column
@end smallexample
@noindent
(The message will go away as soon as you move the cursor or type
another key.)
@end ignore
@node Void Variable
@subsection Error Message for a Symbol Without a Value
@cindex Symbol without value error
@ -1907,18 +1881,6 @@ Since @code{+} does not have a value bound to it, just the function
definition, the error message reported that the symbol's value as a
variable was void.
@ignore
@need 800
In GNU Emacs version 20 and before, your error message will say:
@example
Symbol's value as variable is void:@: +
@end example
@noindent
The meaning is the same as in GNU Emacs 22.
@end ignore
@node Arguments
@section Arguments
@cindex Arguments
@ -2197,19 +2159,6 @@ addition had been passed the correct type of object, the value passed
would have been a number, such as 37, rather than a symbol like
@code{hello}. But then you would not have got the error message.
@ignore
@need 1250
In GNU Emacs version 20 and before, the echo area displays an error
message that says:
@smallexample
Wrong type argument:@: number-or-marker-p, hello
@end smallexample
This says, in different words, the same as the top line of the
@file{*Backtrace*} buffer.
@end ignore
@node message
@subsection The @code{message} Function
@findex message
@ -6663,9 +6612,9 @@ original text of the function:
@end group
@end smallexample
(In recent versions of GNU Emacs, the @code{what-line} function has
(In modern versions of GNU Emacs, the @code{what-line} function has
been expanded to tell you your line number in a narrowed buffer as
well as your line number in a widened buffer. The recent version is
well as your line number in a widened buffer. The modern version is
more complex than the version shown here. If you feel adventurous,
you might want to look at it after figuring out how this version
works. You will probably need to use @kbd{C-h f}
@ -10392,9 +10341,8 @@ echo area: @code{^Jgazelle^J^Jgiraffe^J^Jlion^J^Jtiger^Jnil}, in which
each @samp{^J} stands for a newline.)
@need 1500
In a recent instance of GNU Emacs, you can evaluate these expressions
directly in the Info buffer, and the echo area will grow to show the
results.
You can evaluate these expressions directly in the Info buffer, and
the echo area will grow to show the results.
@smallexample
@group
@ -18104,8 +18052,7 @@ argument of 4:
@end smallexample
@noindent
In a recent GNU Emacs, you will create and enter a @file{*Backtrace*}
buffer that says:
This will create and enter a @file{*Backtrace*} buffer that says:
@noindent
@smallexample
@ -18139,25 +18086,12 @@ In practice, for a bug as simple as this, the Lisp error line will
tell you what you need to know to correct the definition. The
function @code{1=} is void.
@ignore
@need 800
In GNU Emacs 20 and before, you will see:
@smallexample
Symbol's function definition is void:@: 1=
@end smallexample
@noindent
which has the same meaning as the @file{*Backtrace*} buffer line in
version 21.
@end ignore
However, suppose you are not quite certain what is going on?
You can read the complete backtrace.
In this case, you need to run a recent GNU Emacs, which automatically
starts the debugger that puts you in the @file{*Backtrace*} buffer; or
else, you need to start the debugger manually as described below.
Emacs automatically starts the debugger that puts you in the
@file{*Backtrace*} buffer. You can also start the debugger manually
as described below.
Read the @file{*Backtrace*} buffer from the bottom up; it tells you
what Emacs did that led to the error. Emacs made an interactive call
@ -18197,14 +18131,8 @@ then run your test again.
@section @code{debug-on-entry}
@findex debug-on-entry
A recent GNU Emacs starts the debugger automatically when your
function has an error.
@ignore
GNU Emacs version 20 and before did not; it simply
presented you with an error message. You had to start the debugger
manually.
@end ignore
Emacs starts the debugger automatically when your function has an
error.
Incidentally, you can start the debugger manually for all versions of
Emacs; the advantage is that the debugger runs even if you do not have
@ -20079,8 +20007,8 @@ the tic marks themselves and their spacing:
@code{defvar}. The @code{boundp} predicate checks whether it has
already been set; @code{boundp} returns @code{nil} if it has not. If
@code{graph-blank} were unbound and we did not use this conditional
construction, in a recent GNU Emacs, we would enter the debugger and
see an error message saying @samp{@w{Debugger entered--Lisp error:}
construction, we would enter the debugger and see an error message
saying @samp{@w{Debugger entered--Lisp error:}
@w{(void-variable graph-blank)}}.)
@need 1200

View file

@ -5751,6 +5751,28 @@ Cropping is performed after scaling but before rotation.
@cindex SVG images
SVG (Scalable Vector Graphics) is an XML format for specifying images.
SVG images support the following additional image descriptor
properties:
@table @code
@item :foreground @var{foreground}
@var{foreground}, if non-@code{nil}, should be a string specifying a
color, which is used as the image's foreground color. If the value is
@code{nil}, it defaults to the faces's foreground color.
@item :background @var{background}
@var{background}, if non-@code{nil}, should be a string specifying a
color, which is used as the image's background color if the image
supports transparency. If the value is @code{nil}, it defaults to the
faces's background color.
@item :css @var{css}
@var{css}, if non-@code{nil}, should be a string specifying the CSS to
override the default CSS used when generating the image.
@end table
@subsubheading SVG library
If your Emacs build has SVG support, you can create and manipulate
these images with the following functions from the @file{svg.el}
library.

View file

@ -764,6 +764,8 @@ This function unlocks the file being visited in the current buffer,
if the buffer is modified. If the buffer is not modified, then
the file should not be locked, so this function does nothing. It also
does nothing if the current buffer is not visiting a file, or is not locked.
This function handles file system errors by calling @code{display-warning}
and otherwise ignores the error.
@end defun
@defopt create-lockfiles

View file

@ -390,6 +390,22 @@ whitespace to a single space character, as well as removing all
whitespace from the start and the end of @var{string}.
@end defun
@defun string-trim-left string &optional regexp
Remove the leading text that matches @var{regexp} from @var{string}.
@var{regexp} defaults to @samp{[ \t\n\r]+}.
@end defun
@defun string-trim-right string &optional regexp
Remove the trailing text that matches @var{regexp} from @var{string}.
@var{regexp} defaults to @samp{[ \t\n\r]+}.
@end defun
@defun string-trim string &optional trim-left trim-right
Remove the leading text that matches @var{trim-left} and trailing text
that matches @var{trim-right} from from @var{string}. Both regexps
default to @samp{[ \t\n\r]+}.
@end defun
@defun string-fill string length
Attempt to Word-wrap @var{string} so that no lines are longer than
@var{length}. Filling is done on whitespace boundaries only. If

View file

@ -22,7 +22,7 @@ SHELL = @SHELL@
# Where to find the source code. $(srcdir) will be the doc/misc subdirectory
# of the source tree. This is set by configure's '--srcdir' option.
srcdir=@srcdir@
top_srcdir = @top_srcdir@
top_builddir = @top_builddir@
## Where the output files go.
@ -100,10 +100,6 @@ texi_sources = $(addsuffix .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})
.PHONY: echo-sources
## Used by the top-level Makefile.
echo-sources:
@echo ${SOURCES}
DVI_TARGETS = $(TARGETS:=.dvi)
HTML_TARGETS = $(TARGETS:=.html)
@ -122,7 +118,7 @@ ENVADD = $(AM_V_GEN)TEXINPUTS="$(srcdir):$(emacsdir):$(TEXINPUTS)" \
gfdl = ${srcdir}/doclicense.texi
style = ${emacsdir}/docstyle.texi
.PHONY: info dvi html pdf ps echo-info $(INFO_TARGETS)
.PHONY: info dvi html pdf ps echo-info echo-sources $(INFO_TARGETS)
## Prevent implicit rule triggering for foo.info.
.SUFFIXES:
@ -138,6 +134,9 @@ echo-info:
@echo "$(INFO_INSTALL) " | \
sed -e 's|[^ ]*/||g' -e 's/\.info//g' -e "s/ */.info /g"
echo-sources:
@echo ${SOURCES}
dvi: $(DVI_TARGETS)
html: $(HTML_TARGETS)
@ -235,14 +234,14 @@ ${buildinfodir}/tramp.info tramp.html: ${srcdir}/trampver.texi
abs_top_builddir = @abs_top_builddir@
EMACS = ${abs_top_builddir}/src/emacs
emacs = "${EMACS}" -batch --no-site-file --no-site-lisp
emacs = "${EMACS}" -batch --no-site-file --no-site-lisp --eval '(setq load-prefer-newer t)'
# Generated .texi files go in srcdir so they can be included in the
# release tarfile along with the others.
# Work in srcdir (and use abs_top_builddir) so that +setupfile and
# things like org-setup's "version" macro work. Sigh.
define org_template
$(1:.org=.texi): $(1)
$(1:.org=.texi): $(1) ${top_srcdir}/lisp/org/ox-texinfo.el
$${AM_V_GEN}cd "$${srcdir}" && $${emacs} -l ox-texinfo \
-f org-texinfo-export-to-texinfo-batch $$(notdir $$<) $$(notdir $$@)
endef

View file

@ -1935,13 +1935,13 @@ when you're online.
Let's talk about Unix systems first: For the news part,
the easiest solution is a small nntp server like
@uref{http://www.leafnode.org/, Leafnode} or
@uref{https://www.leafnode.org/, Leafnode} or
@uref{http://patrik.iki.fi/sn/, sn},
of course you can also install a full featured news
server like
@uref{https://www.isc.org/othersoftware/, inn}.
Then you want to fetch your Mail, popular choices
are @uref{http://www.fetchmail.info/, fetchmail}
are @uref{https://www.fetchmail.info/, fetchmail}
and @uref{http://pyropus.ca/software/getmail/, getmail}.
You should tell those to write the mail to your disk and
Gnus to read it from there. Last but not least the mail

View file

@ -82,7 +82,7 @@ documents.
To get validation and schema-sensitive editing, you need a RELAX NG Compact
Syntax (RNC) schema for your document (@pxref{Locating a schema}). The
@file{etc/schema} directory includes some schemas for popular document
types. See @url{http://relaxng.org/} for more information on RELAX NG@.
types. See @url{https://relaxng.org/} for more information on RELAX NG@.
You can use the @samp{Trang} program from
@url{http://www.thaiopensource.com/relaxng/trang.html} to
automatically create RNC schemas. This program can:

View file

@ -254,73 +254,6 @@ version 20.2. It has also been bundled and pre-installed with XEmacs
plug-in package which is available from the @value{XEMACSFTP}. See the
XEmacs 21.x documentation on package installation for details.
Users of earlier Emacs distributions (including Emacs 19) or people
craving for new features and bugs can get a copy of the @RefTeX{}
distribution from the maintainer's web page. @xref{Imprint}, for more
information. The following instructions will guide you through the
process of installing such a distribution.
@subsection Building and Installing
Note: Currently installation is supported for Emacs only. XEmacs users
might want to refer to the @RefTeX{} package available through the
package system of XEmacs.
@subsubheading Installation with make
In order to install RefTeX, unpack the distribution and edit the header
of the Makefile. Basically, you need to change the path specifications
for Emacs Lisp files and info files. Also, enter the name of your Emacs
executable (usually either @samp{emacs} or @samp{xemacs}).
Then, type
@example
make
make install
@end example
to compile and install the code and documentation.
Per default @RefTeX{} is installed in its own subdirectory which might
not be on your load path. In this case, add it to load path with a
command like the following, replacing the sample directory with the one
where @RefTeX{} is installed in your case.
@example
(add-to-list 'load-path "/path/to/reftex")
@end example
Put this command into your init file before other @RefTeX{}-related
settings.
@subsubheading Installation by Hand
If you want to get your hands dirty, there is also the possibility to
install by manually copying files.
@enumerate a
@item
Copy the reftex*.el lisp files to a directory on your load path. Make
sure that no old copy of @RefTeX{} shadows these files.
@item
Byte compile the files. The sequence of compiling should be:
reftex-var.el, reftex.el, and then all the others.
@item
Copy the info file reftex.info to the info directory.
@end enumerate
@subsection Loading @RefTeX{}
In order to make the most important functions for entering @RefTeX{}
mode available add the following line to your init file.
@example
(require 'reftex)
@end example
@subsection Entering @RefTeX{} Mode
@findex turn-on-reftex
@findex reftex-mode
@vindex LaTeX-mode-hook
@ -3259,9 +3192,9 @@ with the @kbd{g} key. To get this behavior, use instead
@AUCTeX{} is without doubt the best major mode for editing @TeX{} and @LaTeX{}
files with Emacs (@pxref{Top,AUCTeX,,auctex, The AUCTeX User Manual}).
If @AUCTeX{} is not part of your Emacs distribution, you can get
it@footnote{XEmacs 21.x users may want to install the corresponding
XEmacs package.} by FTP from the @value{AUCTEXSITE}.
You can get it from its home page at @value{AUCTEXSITE}, but since
it is available from GNU ELPA, you can simply install it from @kbd{M-x
list-packages}.
@menu
* AUCTeX-RefTeX Interface:: How both packages work together
@ -3610,18 +3543,6 @@ as a label of type @code{?p}. Argument count for this macro starts only
after the @samp{@{step+@}}, also when specifying how to get
context.
@item
@b{Idle timers in XEmacs}@*
@cindex Idle timer restart
@vindex reftex-use-itimer-in-xemacs
In XEmacs, idle timer restart does not work reliably after fast
keystrokes. Therefore @RefTeX{} currently uses the post command
hook to start the timer used for automatic crossref information. When
this bug gets fixed, a real idle timer can be requested with
@lisp
(setq reftex-use-itimer-in-xemacs t)
@end lisp
@item
@b{Viper mode}@*
@cindex Viper mode

View file

@ -1181,7 +1181,7 @@
% double any backslashes. Otherwise, a name like "\node" will be
% interpreted as a newline (\n), followed by o, d, e. Not good.
%
% See http://www.ntg.nl/pipermail/ntg-pdftex/2004-July/000654.html and
% See https://mailman.ntg.nl/pipermail/ntg-pdftex/2004-July/000654.html and
% related messages. The final outcome is that it is up to the TeX user
% to double the backslashes and otherwise make the string valid, so
% that's what we do. pdftex 1.30.0 (ca.2005) introduced a primitive to
@ -3539,7 +3539,7 @@
% We use the free feym* fonts from the eurosym package by Henrik
% Theiling, which support regular, slanted, bold and bold slanted (and
% "outlined" (blackboard board, sort of) versions, which we don't need).
% It is available from http://www.ctan.org/tex-archive/fonts/eurosym.
% It is available from https://www.ctan.org/tex-archive/fonts/eurosym.
%
% Although only regular is the truly official Euro symbol, we ignore
% that. The Euro is designed to be slightly taller than the regular

View file

@ -2305,6 +2305,8 @@ which support this.
This approach has also the advantage, that settings in
@code{tramp-sh-extra-args} will be applied. For @command{zsh}, the
trouble with the shell prompt due to set zle options will be avoided.
For @command{bash}, loading @file{~/.editrc} or @file{~/.inputrc} is
suppressed.
Similar problems can happen with the local shell Tramp uses to create
a process. By default, it uses the command @command{/bin/sh} for
@ -5076,6 +5078,24 @@ In case you have installed it from its Git repository, @ref{Recompilation}.
@end ifset
@item
I get an error @samp{tramp-file-name-handler: Invalid function:
tramp-compat-with-mutex}
Likely, you have a running Emacs session with loaded @value{tramp},
and you try to upgrade it to another version from GNU ELPA. Since
@value{tramp} is not forward compatible, you must unload / reload it.
Try the following steps:
@example
@kbd{M-x tramp-unload-tramp @key{RET}}
@kbd{M-x load-library @key{RET} tramp @key{RET}}
@end example
If this doesn't work, you must restart Emacs with proper
@code{load-path} for the new @value{tramp} version.
@item
I get an error @samp{Remote file error: Forbidden reentrant call of Tramp}

View file

@ -105,11 +105,9 @@ Mile End Road, London E1 4NS, UK
@chapter Introduction
@cindex introduction
This version of WoMan should run with GNU Emacs 20.3 or later on any
platform. It has not been tested, and may not run, with any other
version of Emacs. It was developed primarily on various versions of
Microsoft Windows, but has also been tested on MS-DOS, and various
versions of UNIX and GNU/Linux.
WoMan was developed primarily on various versions of Microsoft
Windows, but has also been tested on MS-DOS, and various versions of
UNIX and GNU/Linux.
WoMan is distributed with GNU Emacs.

View file

@ -562,7 +562,9 @@ It also supports a negative argument.
*** 'C-x t G' assigns a group name to the tab.
'tab-close-group' can close all tabs that belong to the selected group.
The user option 'tab-bar-new-tab-group' defines the default group of a
new tab.
new tab. After customizing 'tab-bar-tab-post-change-group-functions'
to 'tab-bar-move-tab-to-group', changing the tab group will also move it
closer to other tabs in the same group.
---
*** New user option 'tab-bar-tab-name-format-function'.
@ -1054,6 +1056,10 @@ the commands 'customize', 'customize-group', 'customize-apropos' and
To customize obsolete user options, use 'customize-option' or
'customize-saved'.
*** New SVG icons for checkboxes and arrows.
They will be used automatically instead of the old icons. If Emacs is
built without SVG support, the old icons will be used instead.
** Edebug
*** Obsoletions
@ -1509,6 +1515,15 @@ This controls whether to use smoothing or not for an image. Values
include nil (no smoothing), t (do smoothing) or a predicate function
that's called with the image object and should return nil/t.
+++
*** SVG images now support user stylesheets.
The ':css' image attribute can be used to override the default CSS
stylesheet for an image. The default sets 'font-family' and
'font-size' to match the current face, so an image with 'height="1em"'
will match the font size in use where it is embedded.
This feature relies on librsvg 2.48 or above being available.
** EWW
+++
@ -1573,6 +1588,11 @@ project's root directory, respectively.
+++
*** New user option 'project-list-file'.
+++
*** New command 'project-remove-known-project'.
This command lets you interactively remove an entry from the list of projects
in 'project-list-file'.
** xref
---
@ -2300,6 +2320,10 @@ since the latter uses 'M-s' as a prefix key of the search prefix map.
** 'vc-print-branch-log' shows the change log for BRANCH from its root
directory instead of the default directory.
---
** 'project-shell' and 'shell' now use 'pop-to-buffer-same-window'.
This is to keep the same behavior as Eshell.
* Incompatible Lisp Changes in Emacs 28.1
@ -2490,6 +2514,12 @@ back in Emacs 23.1. The affected functions are: 'make-obsolete',
* Lisp Changes in Emacs 28.1
+++
** 'unlock-buffer' displays warnings instead of signaling.
Instead of signaling 'file-error' conditions for file system level
errors, the function now calls 'display-warning' and continues as if
the error did not occur.
+++
** New function 'always'.
This is identical to 'ignore', but returns t instead.

View file

@ -966,7 +966,6 @@ the entire list as before. An integer value limits the list length
*** 'vc-git-stash' is now bound to 'C' in the stash headers.
--
*** Some stash keybindings are now available in the stash button.
'vc-git-stash' and 'vc-git-stash-snapshot' can now be run using 'C'
and 'S' respectively, including when there are no stashes.

View file

@ -104,3 +104,30 @@ same conditions.
The *.pbm files were generally converted from *.xpm by running GIMP or
ImageMagick's 'convert'.
* The following icons are from the Adwaita Icon Theme (made by the
GNOME project). They are not part of Emacs, but are distributed and
used by Emacs. They are licensed under either the GNU LGPL v3 or the
Creative Commons Attribution-Share Alike 3.0 United States License.
To view a copy of the CC-BY-SA licence, visit
http://creativecommons.org/licenses/by-sa/3.0/ or send a letter to Creative
Commons, 171 Second Street, Suite 300, San Francisco, California 94105, USA.
For more information see the adwaita-icon-theme repository at:
https://gitlab.gnome.org/GNOME/adwaita-icon-theme
Emacs images and their source in the Adwaita/scalable directory:
checked.svg ui/checkbox-checked-symbolic.svg
unchecked.svg ui/checkbox-symbolic.svg
checkbox-mixed.svg ui/checkbox-mixed-symbolic.svg
radio.svg ui/radio-symbolic.svg
radio-mixed.svg ui/radio-mixed-symbolic.svg
radio-checked.svg ui/radio-checked-symbolic.svg
down.svg ui/pan-down-symbolic.svg
left.svg ui/pan-start-symbolic.svg
right.svg ui/pan-end-symbolic.svg
up.svg ui/pan-up-symbolic.svg

View file

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" height="1em" viewBox="0 0 16 16">
<g>
<path d="M3.5 1A2.506 2.506 0 0 0 1 3.5v9C1 13.876 2.124 15 3.5 15h9c1.376 0 2.5-1.124 2.5-2.5v-9C15 2.124 13.876 1 12.5 1zm0 1h9c.84 0 1.5 .66 1.5 1.5v9c0 .84-.66 1.5-1.5 1.5h-9c-.84 0-1.5-.66-1.5-1.5v-9C2 2.66 2.66 2 3.5 2z" overflow="visible" />
<path d="M5 6a2 2 0 1 0 0 4h6a2 2 0 1 0 0 -4z" overflow="visible" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 420 B

6
etc/images/checked.svg Normal file
View file

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" height="1em" viewBox="0 0 16 16">
<g>
<path d="M3.5 1A2.506 2.506 0 0 0 1 3.5v9C1 13.876 2.124 15 3.5 15h9c1.376 0 2.5-1.124 2.5-2.5v-9C15 2.124 13.876 1 12.5 1zm0 1h9c.84 0 1.5 .66 1.5 1.5v9c0 .84-.66 1.5-1.5 1.5h-9c-.84 0-1.5-.66-1.5-1.5v-9C2 2.66 2.66 2 3.5 2z" overflow="visible" />
<path d="M14.5 3l-.5-.5L7.5 9 5 6.5l-2 2L7.5 13l7-7z" overflow="visible" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 427 B

40
etc/images/down.svg Normal file
View file

@ -0,0 +1,40 @@
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<svg xmlns:cc='http://creativecommons.org/ns#' xmlns:dc='http://purl.org/dc/elements/1.1/' sodipodi:docname='pan-down-symbolic.svg' inkscape:export-filename='/home/sam/source-symbolic.png' inkscape:export-xdpi='270' inkscape:export-ydpi='270' height='16' id='svg7384' xmlns:inkscape='http://www.inkscape.org/namespaces/inkscape' xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:sodipodi='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd' style='enable-background:new' xmlns:svg='http://www.w3.org/2000/svg' version='1.1' inkscape:version='1.0 (4035a4fb49, 2020-05-01)' width='16' xmlns='http://www.w3.org/2000/svg'>
<sodipodi:namedview inkscape:bbox-nodes='true' inkscape:bbox-paths='false' bordercolor='#000000' borderlayer='false' borderopacity='0.50196078' inkscape:current-layer='layer10' inkscape:cx='-8.85234' inkscape:cy='7.9624984' inkscape:document-rotation='0' gridtolerance='10' inkscape:guide-bbox='true' guidetolerance='10' id='namedview88' inkscape:measure-end='0,0' inkscape:measure-start='0,0' inkscape:object-nodes='true' inkscape:object-paths='true' objecttolerance='10' pagecolor='#e2e2e2' inkscape:pageopacity='0' inkscape:pageshadow='2' showborder='false' showgrid='true' showguides='false' inkscape:showpageshadow='false' inkscape:snap-bbox='true' inkscape:snap-bbox-edge-midpoints='false' inkscape:snap-bbox-midpoints='true' inkscape:snap-center='false' inkscape:snap-global='true' inkscape:snap-grids='true' inkscape:snap-intersection-paths='false' inkscape:snap-midpoints='true' inkscape:snap-nodes='true' inkscape:snap-object-midpoints='true' inkscape:snap-others='true' inkscape:snap-page='false' inkscape:snap-smooth-nodes='true' inkscape:snap-to-guides='true' inkscape:window-height='1205' inkscape:window-maximized='0' inkscape:window-width='1553' inkscape:window-x='26' inkscape:window-y='23' inkscape:zoom='1'>
<inkscape:grid color='#000000' dotted='false' empcolor='#0800ff' empopacity='0.4627451' empspacing='4' enabled='true' id='grid4866' opacity='0.16470588' originx='-152.00586' originy='-952' snapvisiblegridlinesonly='true' spacingx='1' spacingy='1' type='xygrid' visible='true'/>
<inkscape:grid dotted='true' empcolor='#3f3fff' empopacity='0' empspacing='4' id='grid3540' originx='-152.00586' originy='-952' spacingx='0.5' spacingy='0.5' type='xygrid'/>
</sodipodi:namedview>
<metadata id='metadata90'>
<rdf:RDF>
<cc:Work rdf:about=''>
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource='http://purl.org/dc/dcmitype/StillImage'/>
<dc:title>Gnome Symbolic Icons</dc:title>
<cc:license rdf:resource='http://creativecommons.org/licenses/by-sa/4.0/'/>
</cc:Work>
<cc:License rdf:about='http://creativecommons.org/licenses/by-sa/4.0/'>
<cc:permits rdf:resource='http://creativecommons.org/ns#Reproduction'/>
<cc:permits rdf:resource='http://creativecommons.org/ns#Distribution'/>
<cc:requires rdf:resource='http://creativecommons.org/ns#Notice'/>
<cc:requires rdf:resource='http://creativecommons.org/ns#Attribution'/>
<cc:permits rdf:resource='http://creativecommons.org/ns#DerivativeWorks'/>
<cc:requires rdf:resource='http://creativecommons.org/ns#ShareAlike'/>
</cc:License>
</rdf:RDF>
</metadata>
<title id='title8473'>Gnome Symbolic Icons</title>
<defs id='defs7386'/>
<g inkscape:groupmode='layer' id='layer10' inkscape:label='ui' transform='translate(-152.00586,-952)'>
<path inkscape:connector-curvature='0' d='m 166,957 -5.99414,5.99999 L 154,957 Z' id='path6424' sodipodi:nodetypes='cccc' style='fill:#2e3436;fill-opacity:1;stroke:none'/>
</g>
<g inkscape:groupmode='layer' id='layer1' inkscape:label='status' transform='translate(-152.00586,-888)'/>
<g inkscape:groupmode='layer' id='layer11' inkscape:label='legacy' transform='translate(-152.00586,-952)'/>
<g inkscape:groupmode='layer' id='layer7' inkscape:label='places' transform='translate(-152.00586,-888)'/>
<g inkscape:groupmode='layer' id='layer6' inkscape:label='mimetypes' transform='translate(-152.00586,-888)'/>
<g inkscape:groupmode='layer' id='layer5' inkscape:label='emotes' transform='translate(-152.00586,-888)'/>
<g inkscape:groupmode='layer' id='layer9' inkscape:label='emblems' transform='translate(-152.00586,-888)'/>
<g inkscape:groupmode='layer' id='layer2' inkscape:label='devices' transform='translate(-152.00586,-888)'/>
<g inkscape:groupmode='layer' id='layer8' inkscape:label='categories' transform='translate(-152.00586,-888)'/>
<g inkscape:groupmode='layer' id='layer3' inkscape:label='apps' transform='translate(-152.00586,-888)'/>
<g inkscape:groupmode='layer' id='layer4' inkscape:label='actions' transform='translate(-152.00586,-888)'/>
</svg>

After

Width:  |  Height:  |  Size: 4.7 KiB

40
etc/images/left.svg Normal file
View file

@ -0,0 +1,40 @@
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<svg xmlns:cc='http://creativecommons.org/ns#' xmlns:dc='http://purl.org/dc/elements/1.1/' sodipodi:docname='pan-start-symbolic.svg' inkscape:export-filename='/home/sam/source-symbolic.png' inkscape:export-xdpi='270' inkscape:export-ydpi='270' height='16' id='svg7384' xmlns:inkscape='http://www.inkscape.org/namespaces/inkscape' xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:sodipodi='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd' style='enable-background:new' xmlns:svg='http://www.w3.org/2000/svg' version='1.1' inkscape:version='1.0 (4035a4fb49, 2020-05-01)' width='16' xmlns='http://www.w3.org/2000/svg'>
<sodipodi:namedview inkscape:bbox-nodes='true' inkscape:bbox-paths='false' bordercolor='#000000' borderlayer='false' borderopacity='0.50196078' inkscape:current-layer='layer10' inkscape:cx='51.147672' inkscape:cy='7.96251' inkscape:document-rotation='0' gridtolerance='10' inkscape:guide-bbox='true' guidetolerance='10' id='namedview88' inkscape:measure-end='0,0' inkscape:measure-start='0,0' inkscape:object-nodes='true' inkscape:object-paths='true' objecttolerance='10' pagecolor='#e2e2e2' inkscape:pageopacity='0' inkscape:pageshadow='2' showborder='false' showgrid='true' showguides='false' inkscape:showpageshadow='false' inkscape:snap-bbox='true' inkscape:snap-bbox-edge-midpoints='false' inkscape:snap-bbox-midpoints='true' inkscape:snap-center='false' inkscape:snap-global='true' inkscape:snap-grids='true' inkscape:snap-intersection-paths='false' inkscape:snap-midpoints='true' inkscape:snap-nodes='true' inkscape:snap-object-midpoints='true' inkscape:snap-others='true' inkscape:snap-page='false' inkscape:snap-smooth-nodes='true' inkscape:snap-to-guides='true' inkscape:window-height='1205' inkscape:window-maximized='0' inkscape:window-width='1553' inkscape:window-x='26' inkscape:window-y='23' inkscape:zoom='1'>
<inkscape:grid color='#000000' dotted='false' empcolor='#0800ff' empopacity='0.4627451' empspacing='4' enabled='true' id='grid4866' opacity='0.16470588' originx='-92.005848' originy='-951.99999' snapvisiblegridlinesonly='true' spacingx='1' spacingy='1' type='xygrid' visible='true'/>
<inkscape:grid dotted='true' empcolor='#3f3fff' empopacity='0' empspacing='4' id='grid3540' originx='-92.005848' originy='-951.99999' spacingx='0.5' spacingy='0.5' type='xygrid'/>
</sodipodi:namedview>
<metadata id='metadata90'>
<rdf:RDF>
<cc:Work rdf:about=''>
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource='http://purl.org/dc/dcmitype/StillImage'/>
<dc:title>Gnome Symbolic Icons</dc:title>
<cc:license rdf:resource='http://creativecommons.org/licenses/by-sa/4.0/'/>
</cc:Work>
<cc:License rdf:about='http://creativecommons.org/licenses/by-sa/4.0/'>
<cc:permits rdf:resource='http://creativecommons.org/ns#Reproduction'/>
<cc:permits rdf:resource='http://creativecommons.org/ns#Distribution'/>
<cc:requires rdf:resource='http://creativecommons.org/ns#Notice'/>
<cc:requires rdf:resource='http://creativecommons.org/ns#Attribution'/>
<cc:permits rdf:resource='http://creativecommons.org/ns#DerivativeWorks'/>
<cc:requires rdf:resource='http://creativecommons.org/ns#ShareAlike'/>
</cc:License>
</rdf:RDF>
</metadata>
<title id='title8473'>Gnome Symbolic Icons</title>
<defs id='defs7386'/>
<g inkscape:groupmode='layer' id='layer10' inkscape:label='ui' transform='translate(-92.005848,-951.99999)'>
<path inkscape:connector-curvature='0' d='M 103,966 97.00585,959.99999 103,954 Z' id='path6400' sodipodi:nodetypes='cccc' style='fill:#2e3436;fill-opacity:1;stroke:none'/>
</g>
<g inkscape:groupmode='layer' id='layer1' inkscape:label='status' transform='translate(-92.005848,-887.99999)'/>
<g inkscape:groupmode='layer' id='layer11' inkscape:label='legacy' transform='translate(-92.005848,-951.99999)'/>
<g inkscape:groupmode='layer' id='layer7' inkscape:label='places' transform='translate(-92.005848,-887.99999)'/>
<g inkscape:groupmode='layer' id='layer6' inkscape:label='mimetypes' transform='translate(-92.005848,-887.99999)'/>
<g inkscape:groupmode='layer' id='layer5' inkscape:label='emotes' transform='translate(-92.005848,-887.99999)'/>
<g inkscape:groupmode='layer' id='layer9' inkscape:label='emblems' transform='translate(-92.005848,-887.99999)'/>
<g inkscape:groupmode='layer' id='layer2' inkscape:label='devices' transform='translate(-92.005848,-887.99999)'/>
<g inkscape:groupmode='layer' id='layer8' inkscape:label='categories' transform='translate(-92.005848,-887.99999)'/>
<g inkscape:groupmode='layer' id='layer3' inkscape:label='apps' transform='translate(-92.005848,-887.99999)'/>
<g inkscape:groupmode='layer' id='layer4' inkscape:label='actions' transform='translate(-92.005848,-887.99999)'/>
</svg>

After

Width:  |  Height:  |  Size: 4.8 KiB

View file

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" height="1em" viewBox="0 0 16 16">
<g>
<path d="M8 5a3.001 3.001 0 0 0 0 6 3.001 3.001 0 0 0 0 -6z" overflow="visible"/>
<path d="M8.004 1C4.144 1 1 4.144 1 8.004c0 3.86 3.144 7.006 7.004 7.006 3.86 0 7.006-3.146 7.006-7.006C15.01 4.144 11.864 1 8.004 1zm0 1a6.002 6.002 0 0 1 6.006 6.004 6.004 6.004 0 0 1 -6.006 6.006A6.002 6.002 0 0 1 2 8.004 6 6 0 0 1 8.004 2z" overflow="visible"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 450 B

View file

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" height="1em" viewBox="0 0 16 16">
<g>
<path d="M8 1C4.142 1 1 4.142 1 8s3.142 7 7 7 7-3.142 7-7-3.142-7-7-7zm0 1c3.316 0 6 2.684 6 6s-2.684 6-6 6-6-2.684-6-6 2.684-6 6-6z" overflow="visible" />
<path d="M5 6a2 2 0 1 0 0 4h6a2 2 0 1 0 0 -4z" overflow="visible" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 327 B

3
etc/images/radio.svg Normal file
View file

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" height="1em" viewBox="0 0 16 16">
<path d="M8 1C4.142 1 1 4.142 1 8s3.142 7 7 7 7-3.142 7-7-3.142-7-7-7zm0 1c3.316 0 6 2.684 6 6s-2.684 6-6 6-6-2.684-6-6 2.684-6 6-6z" overflow="visible" />
</svg>

After

Width:  |  Height:  |  Size: 239 B

40
etc/images/right.svg Normal file
View file

@ -0,0 +1,40 @@
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<svg xmlns:cc='http://creativecommons.org/ns#' xmlns:dc='http://purl.org/dc/elements/1.1/' sodipodi:docname='pan-end-symbolic.svg' inkscape:export-filename='/home/sam/source-symbolic.png' inkscape:export-xdpi='270' inkscape:export-ydpi='270' height='16' id='svg7384' xmlns:inkscape='http://www.inkscape.org/namespaces/inkscape' xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:sodipodi='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd' style='enable-background:new' xmlns:svg='http://www.w3.org/2000/svg' version='1.1' inkscape:version='1.0 (4035a4fb49, 2020-05-01)' width='16' xmlns='http://www.w3.org/2000/svg'>
<sodipodi:namedview inkscape:bbox-nodes='true' inkscape:bbox-paths='false' bordercolor='#000000' borderlayer='false' borderopacity='0.50196078' inkscape:current-layer='layer10' inkscape:cx='31.147668' inkscape:cy='7.96251' inkscape:document-rotation='0' gridtolerance='10' inkscape:guide-bbox='true' guidetolerance='10' id='namedview88' inkscape:measure-end='0,0' inkscape:measure-start='0,0' inkscape:object-nodes='true' inkscape:object-paths='true' objecttolerance='10' pagecolor='#e2e2e2' inkscape:pageopacity='0' inkscape:pageshadow='2' showborder='false' showgrid='true' showguides='false' inkscape:showpageshadow='false' inkscape:snap-bbox='true' inkscape:snap-bbox-edge-midpoints='false' inkscape:snap-bbox-midpoints='true' inkscape:snap-center='false' inkscape:snap-global='true' inkscape:snap-grids='true' inkscape:snap-intersection-paths='false' inkscape:snap-midpoints='true' inkscape:snap-nodes='true' inkscape:snap-object-midpoints='true' inkscape:snap-others='true' inkscape:snap-page='false' inkscape:snap-smooth-nodes='true' inkscape:snap-to-guides='true' inkscape:window-height='1205' inkscape:window-maximized='0' inkscape:window-width='1553' inkscape:window-x='26' inkscape:window-y='23' inkscape:zoom='1'>
<inkscape:grid color='#000000' dotted='false' empcolor='#0800ff' empopacity='0.4627451' empspacing='4' enabled='true' id='grid4866' opacity='0.16470588' originx='-112.00585' originy='-951.99999' snapvisiblegridlinesonly='true' spacingx='1' spacingy='1' type='xygrid' visible='true'/>
<inkscape:grid dotted='true' empcolor='#3f3fff' empopacity='0' empspacing='4' id='grid3540' originx='-112.00585' originy='-951.99999' spacingx='0.5' spacingy='0.5' type='xygrid'/>
</sodipodi:namedview>
<metadata id='metadata90'>
<rdf:RDF>
<cc:Work rdf:about=''>
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource='http://purl.org/dc/dcmitype/StillImage'/>
<dc:title>Gnome Symbolic Icons</dc:title>
<cc:license rdf:resource='http://creativecommons.org/licenses/by-sa/4.0/'/>
</cc:Work>
<cc:License rdf:about='http://creativecommons.org/licenses/by-sa/4.0/'>
<cc:permits rdf:resource='http://creativecommons.org/ns#Reproduction'/>
<cc:permits rdf:resource='http://creativecommons.org/ns#Distribution'/>
<cc:requires rdf:resource='http://creativecommons.org/ns#Notice'/>
<cc:requires rdf:resource='http://creativecommons.org/ns#Attribution'/>
<cc:permits rdf:resource='http://creativecommons.org/ns#DerivativeWorks'/>
<cc:requires rdf:resource='http://creativecommons.org/ns#ShareAlike'/>
</cc:License>
</rdf:RDF>
</metadata>
<title id='title8473'>Gnome Symbolic Icons</title>
<defs id='defs7386'/>
<g inkscape:groupmode='layer' id='layer10' inkscape:label='ui' transform='translate(-112.00585,-951.99999)'>
<path inkscape:connector-curvature='0' d='m 117,966 6.00585,-6.00001 L 117,954 Z' id='path6412' sodipodi:nodetypes='cccc' style='fill:#2e3436;fill-opacity:1;stroke:none'/>
</g>
<g inkscape:groupmode='layer' id='layer1' inkscape:label='status' transform='translate(-112.00585,-887.99999)'/>
<g inkscape:groupmode='layer' id='layer11' inkscape:label='legacy' transform='translate(-112.00585,-951.99999)'/>
<g inkscape:groupmode='layer' id='layer7' inkscape:label='places' transform='translate(-112.00585,-887.99999)'/>
<g inkscape:groupmode='layer' id='layer6' inkscape:label='mimetypes' transform='translate(-112.00585,-887.99999)'/>
<g inkscape:groupmode='layer' id='layer5' inkscape:label='emotes' transform='translate(-112.00585,-887.99999)'/>
<g inkscape:groupmode='layer' id='layer9' inkscape:label='emblems' transform='translate(-112.00585,-887.99999)'/>
<g inkscape:groupmode='layer' id='layer2' inkscape:label='devices' transform='translate(-112.00585,-887.99999)'/>
<g inkscape:groupmode='layer' id='layer8' inkscape:label='categories' transform='translate(-112.00585,-887.99999)'/>
<g inkscape:groupmode='layer' id='layer3' inkscape:label='apps' transform='translate(-112.00585,-887.99999)'/>
<g inkscape:groupmode='layer' id='layer4' inkscape:label='actions' transform='translate(-112.00585,-887.99999)'/>
</svg>

After

Width:  |  Height:  |  Size: 4.8 KiB

3
etc/images/unchecked.svg Normal file
View file

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" height="1em" viewBox="0 0 16 16">
<path d="M3.5 1A2.506 2.506 0 0 0 1 3.5v9C1 13.876 2.124 15 3.5 15h9c1.376 0 2.5-1.124 2.5-2.5v-9C15 2.124 13.876 1 12.5 1zm0 1h9c.84 0 1.5 .66 1.5 1.5v9c0 .84-.66 1.5-1.5 1.5h-9c-.84 0-1.5-.66-1.5-1.5v-9C2 2.66 2.66 2 3.5 2z" overflow="visible" />
</svg>

After

Width:  |  Height:  |  Size: 332 B

40
etc/images/up.svg Normal file
View file

@ -0,0 +1,40 @@
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<svg xmlns:cc='http://creativecommons.org/ns#' xmlns:dc='http://purl.org/dc/elements/1.1/' sodipodi:docname='pan-up-symbolic.svg' inkscape:export-filename='/home/sam/source-symbolic.png' inkscape:export-xdpi='270' inkscape:export-ydpi='270' height='16' id='svg7384' xmlns:inkscape='http://www.inkscape.org/namespaces/inkscape' xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:sodipodi='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd' style='enable-background:new' xmlns:svg='http://www.w3.org/2000/svg' version='1.1' inkscape:version='1.0 (4035a4fb49, 2020-05-01)' width='16' xmlns='http://www.w3.org/2000/svg'>
<sodipodi:namedview inkscape:bbox-nodes='true' inkscape:bbox-paths='false' bordercolor='#000000' borderlayer='false' borderopacity='0.50196078' inkscape:current-layer='layer10' inkscape:cx='11.14767' inkscape:cy='7.9625016' inkscape:document-rotation='0' gridtolerance='10' inkscape:guide-bbox='true' guidetolerance='10' id='namedview88' inkscape:measure-end='0,0' inkscape:measure-start='0,0' inkscape:object-nodes='true' inkscape:object-paths='true' objecttolerance='10' pagecolor='#e2e2e2' inkscape:pageopacity='0' inkscape:pageshadow='2' showborder='false' showgrid='true' showguides='false' inkscape:showpageshadow='false' inkscape:snap-bbox='true' inkscape:snap-bbox-edge-midpoints='false' inkscape:snap-bbox-midpoints='true' inkscape:snap-center='false' inkscape:snap-global='true' inkscape:snap-grids='true' inkscape:snap-intersection-paths='false' inkscape:snap-midpoints='true' inkscape:snap-nodes='true' inkscape:snap-object-midpoints='true' inkscape:snap-others='true' inkscape:snap-page='false' inkscape:snap-smooth-nodes='true' inkscape:snap-to-guides='true' inkscape:window-height='1205' inkscape:window-maximized='0' inkscape:window-width='1553' inkscape:window-x='26' inkscape:window-y='23' inkscape:zoom='1'>
<inkscape:grid color='#000000' dotted='false' empcolor='#0800ff' empopacity='0.4627451' empspacing='4' enabled='true' id='grid4866' opacity='0.16470588' originx='-132.00585' originy='-952' snapvisiblegridlinesonly='true' spacingx='1' spacingy='1' type='xygrid' visible='true'/>
<inkscape:grid dotted='true' empcolor='#3f3fff' empopacity='0' empspacing='4' id='grid3540' originx='-132.00585' originy='-952' spacingx='0.5' spacingy='0.5' type='xygrid'/>
</sodipodi:namedview>
<metadata id='metadata90'>
<rdf:RDF>
<cc:Work rdf:about=''>
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource='http://purl.org/dc/dcmitype/StillImage'/>
<dc:title>Gnome Symbolic Icons</dc:title>
<cc:license rdf:resource='http://creativecommons.org/licenses/by-sa/4.0/'/>
</cc:Work>
<cc:License rdf:about='http://creativecommons.org/licenses/by-sa/4.0/'>
<cc:permits rdf:resource='http://creativecommons.org/ns#Reproduction'/>
<cc:permits rdf:resource='http://creativecommons.org/ns#Distribution'/>
<cc:requires rdf:resource='http://creativecommons.org/ns#Notice'/>
<cc:requires rdf:resource='http://creativecommons.org/ns#Attribution'/>
<cc:permits rdf:resource='http://creativecommons.org/ns#DerivativeWorks'/>
<cc:requires rdf:resource='http://creativecommons.org/ns#ShareAlike'/>
</cc:License>
</rdf:RDF>
</metadata>
<title id='title8473'>Gnome Symbolic Icons</title>
<defs id='defs7386'/>
<g inkscape:groupmode='layer' id='layer10' inkscape:label='ui' transform='translate(-132.00585,-952)'>
<path inkscape:connector-curvature='0' d='M 146,963 140.00585,956.99999 134,963 Z' id='path6418' sodipodi:nodetypes='cccc' style='fill:#2e3436;fill-opacity:1;stroke:none'/>
</g>
<g inkscape:groupmode='layer' id='layer1' inkscape:label='status' transform='translate(-132.00585,-888)'/>
<g inkscape:groupmode='layer' id='layer11' inkscape:label='legacy' transform='translate(-132.00585,-952)'/>
<g inkscape:groupmode='layer' id='layer7' inkscape:label='places' transform='translate(-132.00585,-888)'/>
<g inkscape:groupmode='layer' id='layer6' inkscape:label='mimetypes' transform='translate(-132.00585,-888)'/>
<g inkscape:groupmode='layer' id='layer5' inkscape:label='emotes' transform='translate(-132.00585,-888)'/>
<g inkscape:groupmode='layer' id='layer9' inkscape:label='emblems' transform='translate(-132.00585,-888)'/>
<g inkscape:groupmode='layer' id='layer2' inkscape:label='devices' transform='translate(-132.00585,-888)'/>
<g inkscape:groupmode='layer' id='layer8' inkscape:label='categories' transform='translate(-132.00585,-888)'/>
<g inkscape:groupmode='layer' id='layer3' inkscape:label='apps' transform='translate(-132.00585,-888)'/>
<g inkscape:groupmode='layer' id='layer4' inkscape:label='actions' transform='translate(-132.00585,-888)'/>
</svg>

After

Width:  |  Height:  |  Size: 4.7 KiB

View file

@ -0,0 +1,892 @@
# Open Document Format for Office Applications (OpenDocument) Version 1.3
# OASIS Standard, In progress
# Relax-NG Schema
# Source: https://tools.oasis-open.org/version-control/svn/office/
# Copyright (c) OASIS Open 2002-2015. All Rights Reserved.
#
# All capitalized terms in the following text have the meanings assigned to them
# in the OASIS Intellectual Property Rights Policy (the "OASIS IPR Policy"). The
# full Policy may be found at the OASIS website.
#
# This document and translations of it may be copied and furnished to others, and
# derivative works that comment on or otherwise explain it or assist in its
# implementation may be prepared, copied, published, and distributed, in whole or
# in part, without restriction of any kind, provided that the above copyright
# notice and this section are included on all such copies and derivative works.
# However, this document itself may not be modified in any way, including by
# removing the copyright notice or references to OASIS, except as needed for the
# purpose of developing any document or deliverable produced by an OASIS
# Technical Committee (in which case the rules applicable to copyrights, as set
# forth in the OASIS IPR Policy, must be followed) or as required to translate it
# into languages other than English.
#
# The limited permissions granted above are perpetual and will not be revoked by
# OASIS or its successors or assigns.
#
# This document and the information contained herein is provided on an "AS IS"
# basis and OASIS DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT
# LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT
# INFRINGE ANY OWNERSHIP RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR
# FITNESS FOR A PARTICULAR PURPOSE.
namespace anim = "urn:oasis:names:tc:opendocument:xmlns:animation:1.0"
namespace calcext =
"urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0"
namespace chart = "urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
namespace chartooo = "http://openoffice.org/2010/chart"
namespace config = "urn:oasis:names:tc:opendocument:xmlns:config:1.0"
namespace css3t = "http://www.w3.org/TR/css3-text/"
namespace db = "urn:oasis:names:tc:opendocument:xmlns:database:1.0"
namespace dc = "http://purl.org/dc/elements/1.1/"
namespace dr3d = "urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
namespace draw = "urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
namespace drawooo = "http://openoffice.org/2010/draw"
namespace field =
"urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0"
namespace fo =
"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
namespace form = "urn:oasis:names:tc:opendocument:xmlns:form:1.0"
namespace grddl = "http://www.w3.org/2003/g/data-view#"
namespace loext =
"urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0"
namespace math = "http://www.w3.org/1998/Math/MathML"
namespace meta = "urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
namespace number = "urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
namespace office = "urn:oasis:names:tc:opendocument:xmlns:office:1.0"
namespace officeooo = "http://openoffice.org/2009/office"
namespace presentation =
"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0"
namespace rng = "http://relaxng.org/ns/structure/1.0"
namespace script = "urn:oasis:names:tc:opendocument:xmlns:script:1.0"
namespace smil =
"urn:oasis:names:tc:opendocument:xmlns:smil-compatible:1.0"
namespace style = "urn:oasis:names:tc:opendocument:xmlns:style:1.0"
namespace svg =
"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
namespace table = "urn:oasis:names:tc:opendocument:xmlns:table:1.0"
namespace tableooo = "http://openoffice.org/2009/table"
namespace text = "urn:oasis:names:tc:opendocument:xmlns:text:1.0"
namespace xforms = "http://www.w3.org/2002/xforms"
namespace xhtml = "http://www.w3.org/1999/xhtml"
namespace xlink = "http://www.w3.org/1999/xlink"
include "OpenDocument-schema-v1.3.rnc" {
office-document-common-attrs =
attribute office:version {
# FIXME remove this hack once we write 1.3
"1.3" | "1.2"
}
& attribute grddl:transformation {
list { anyIRI* }
}?
style-graphic-properties-attlist =
attribute draw:stroke { "none" | "dash" | "solid" }?
& attribute draw:stroke-dash { styleNameRef }?
& attribute draw:stroke-dash-names { styleNameRefs }?
& attribute svg:stroke-width { length }?
& attribute svg:stroke-color { color }?
& attribute draw:marker-start { styleNameRef }?
& attribute draw:marker-end { styleNameRef }?
& attribute draw:marker-start-width { length }?
& attribute draw:marker-end-width { length }?
& attribute draw:marker-start-center { boolean }?
& attribute draw:marker-end-center { boolean }?
& attribute svg:stroke-opacity {
xsd:double { minInclusive = "0" maxInclusive = "1" }
| zeroToHundredPercent
}?
& attribute draw:stroke-linejoin {
"miter" | "round" | "bevel" | "middle" | "none"
}?
& attribute svg:stroke-linecap { "butt" | "square" | "round" }?
& attribute draw:symbol-color { color }?
& attribute text:animation {
"none" | "scroll" | "alternate" | "slide"
}?
& attribute text:animation-direction {
"left" | "right" | "up" | "down"
}?
& attribute text:animation-start-inside { boolean }?
& attribute text:animation-stop-inside { boolean }?
& attribute text:animation-repeat { nonNegativeInteger }?
& attribute text:animation-delay { duration }?
& attribute text:animation-steps { length }?
& attribute draw:auto-grow-width { boolean }?
& attribute draw:auto-grow-height { boolean }?
& # FIXME remove this once the export bug is fixed
attribute draw:fit-to-size {
"true" | "false" | "all" | "shrink-to-fit"
}?
& attribute draw:fit-to-contour { boolean }?
& attribute draw:textarea-vertical-align {
"top" | "middle" | "bottom" | "justify"
}?
& attribute draw:textarea-horizontal-align {
"left" | "center" | "right" | "justify"
}?
& attribute fo:wrap-option { "no-wrap" | "wrap" }?
& attribute style:shrink-to-fit { boolean }?
& attribute draw:color-mode {
"greyscale" | "mono" | "watermark" | "standard"
}?
& attribute draw:color-inversion { boolean }?
& attribute draw:luminance { signedZeroToHundredPercent }
# https://issues.oasis-open.org/browse/OFFICE-3821
?
& attribute draw:contrast { percent }?
& attribute draw:gamma { percent }?
& attribute draw:red { signedZeroToHundredPercent }?
& attribute draw:green { signedZeroToHundredPercent }?
& attribute draw:blue { signedZeroToHundredPercent }?
& attribute draw:image-opacity { zeroToHundredPercent }?
& attribute draw:shadow { "visible" | "hidden" }?
& attribute draw:shadow-offset-x { length }?
& attribute draw:shadow-offset-y { length }?
& attribute draw:shadow-color { color }?
& attribute draw:shadow-opacity { zeroToHundredPercent }?
& # TODO: no proposal for loext:shadow-blur
attribute loext:shadow-blur { length }?
& attribute draw:start-line-spacing-horizontal { distance }?
& attribute draw:start-line-spacing-vertical { distance }?
& attribute draw:end-line-spacing-horizontal { distance }?
& attribute draw:end-line-spacing-vertical { distance }?
& attribute draw:line-distance { distance }?
& attribute draw:guide-overhang { length }?
& attribute draw:guide-distance { distance }?
& attribute draw:start-guide { length }?
& attribute draw:end-guide { length }?
& attribute draw:placing { "below" | "above" }?
& attribute draw:parallel { boolean }?
& attribute draw:measure-align {
"automatic" | "left-outside" | "inside" | "right-outside"
}?
& attribute draw:measure-vertical-align {
"automatic" | "above" | "below" | "center"
}?
& attribute draw:unit {
"automatic"
| "mm"
| "cm"
| "m"
| "km"
| "pt"
| "pc"
| "inch"
| "ft"
| "mi"
}?
& attribute draw:show-unit { boolean }?
& attribute draw:decimal-places { nonNegativeInteger }?
& attribute draw:caption-type {
"straight-line" | "angled-line" | "angled-connector-line"
}?
& attribute draw:caption-angle-type { "fixed" | "free" }?
& attribute draw:caption-angle { angle }?
& attribute draw:caption-gap { distance }?
& attribute draw:caption-escape-direction {
"horizontal" | "vertical" | "auto"
}?
& attribute draw:caption-escape { length | percent }?
& attribute draw:caption-line-length { length }?
& attribute draw:caption-fit-line-length { boolean }?
& attribute dr3d:horizontal-segments { nonNegativeInteger }?
& attribute dr3d:vertical-segments { nonNegativeInteger }?
& attribute dr3d:edge-rounding { percent }?
& attribute dr3d:edge-rounding-mode { "correct" | "attractive" }?
& attribute dr3d:back-scale { percent }?
& attribute dr3d:depth { length }?
& attribute dr3d:backface-culling { "enabled" | "disabled" }?
& attribute dr3d:end-angle { angle }?
& attribute dr3d:close-front { boolean }?
& attribute dr3d:close-back { boolean }?
& attribute dr3d:lighting-mode { "standard" | "double-sided" }?
& attribute dr3d:normals-kind { "object" | "flat" | "sphere" }?
& attribute dr3d:normals-direction { "normal" | "inverse" }?
& attribute dr3d:texture-generation-mode-x {
"object" | "parallel" | "sphere"
}?
& attribute dr3d:texture-generation-mode-y {
"object" | "parallel" | "sphere"
}?
& attribute dr3d:texture-kind {
"luminance" | "intensity" | "color"
}?
& attribute dr3d:texture-filter { "enabled" | "disabled" }?
& attribute dr3d:texture-mode { "replace" | "modulate" | "blend" }?
& attribute dr3d:ambient-color { color }?
& attribute dr3d:emissive-color { color }?
& attribute dr3d:specular-color { color }?
& attribute dr3d:diffuse-color { color }?
& attribute dr3d:shininess { percent }?
& attribute dr3d:shadow { "visible" | "hidden" }?
& common-draw-rel-size-attlist
& attribute fo:min-width { length | percent }?
& attribute fo:min-height { length | percent }?
& attribute fo:max-height { length | percent }?
& attribute fo:max-width { length | percent }?
& common-horizontal-margin-attlist
& common-vertical-margin-attlist
& common-margin-attlist
& attribute style:print-content { boolean }?
& attribute style:protect {
"none"
| list { ("content" | "position" | "size")+ }
}?
& attribute style:horizontal-pos {
"left"
| "center"
| "right"
| "from-left"
| "inside"
| "outside"
| "from-inside"
}?
& attribute svg:x { coordinate }?
& attribute style:horizontal-rel {
"page"
| "page-content"
| "page-start-margin"
| "page-end-margin"
| "frame"
| "frame-content"
| "frame-start-margin"
| "frame-end-margin"
| "paragraph"
| "paragraph-content"
| "paragraph-start-margin"
| "paragraph-end-margin"
| "char"
}?
& common-vertical-pos-attlist
& common-vertical-rel-attlist
& common-text-anchor-attlist
& common-border-attlist
& common-border-line-width-attlist
& common-padding-attlist
& common-shadow-attlist
& common-background-color-attlist
& common-background-transparency-attlist
& common-editable-attlist
& attribute style:wrap {
"none"
| "left"
| "right"
| "parallel"
| "dynamic"
| "run-through"
| "biggest"
}?
& attribute style:wrap-dynamic-threshold { nonNegativeLength }?
& attribute style:number-wrapped-paragraphs {
"no-limit" | positiveInteger
}?
& attribute style:wrap-contour { boolean }?
& attribute style:wrap-contour-mode { "full" | "outside" }?
& attribute style:run-through { "foreground" | "background" }?
& attribute style:flow-with-text { boolean }?
& attribute style:overflow-behavior {
"clip" | "auto-create-new-frame"
}?
& attribute style:mirror {
"none"
| "vertical"
| horizontal-mirror
| list { "vertical", horizontal-mirror }
| list { horizontal-mirror, "vertical" }
}?
& attribute fo:clip { "auto" | clipShape }?
& attribute draw:wrap-influence-on-position {
"iterative" | "once-concurrent" | "once-successive"
}?
& common-writing-mode-attlist
& attribute draw:frame-display-scrollbar { boolean }?
& attribute draw:frame-display-border { boolean }?
& attribute draw:frame-margin-horizontal { nonNegativePixelLength }?
& attribute draw:frame-margin-vertical { nonNegativePixelLength }?
& attribute draw:visible-area-left { nonNegativeLength }?
& attribute draw:visible-area-top { nonNegativeLength }?
& attribute draw:visible-area-width { positiveLength }?
& attribute draw:visible-area-height { positiveLength }?
& attribute draw:draw-aspect {
"content" | "thumbnail" | "icon" | "print-view"
}?
& attribute draw:ole-draw-aspect { nonNegativeInteger }?
& # https://issues.oasis-open.org/browse/OFFICE-4047
attribute loext:allow-overlap { boolean }?
& # TODO: no proposal for loext:glow*
attribute loext:glow-radius { length }?
& attribute loext:glow-color { color }?
& attribute loext:glow-transparency { zeroToHundredPercent }?
& # TODO: no proposal for loext:softedge-radius
attribute loext:softedge-radius { length }?
draw-text =
(text-p
| text-list
| # https://issues.oasis-open.org/browse/OFFICE-3761
loext-table)*
office-annotation-attlist &=
attribute office:display { boolean }?
& common-office-annotation-name-attlist?
& attribute loext:resolved { boolean }?
style-style-content =
(attribute style:family { "text" },
style-text-properties?)
| (attribute style:family { "paragraph" },
# TODO no proposal
loext-graphic-properties?,
style-paragraph-properties?,
style-text-properties?)
| (attribute style:family { "section" },
style-section-properties?)
| (attribute style:family { "ruby" },
style-ruby-properties?)
| (attribute style:family { "table" },
style-table-properties?)
| (attribute style:family { "table-column" },
style-table-column-properties?)
| (attribute style:family { "table-row" },
style-table-row-properties?)
| (attribute style:family { "table-cell" },
# TODO no proposal
loext-graphic-properties?,
style-table-cell-properties?,
style-paragraph-properties?,
style-text-properties?)
| (attribute style:family { "graphic" | "presentation" },
style-graphic-properties?,
style-paragraph-properties?,
style-text-properties?)
| (attribute style:family { "drawing-page" },
style-drawing-page-properties?)
| (attribute style:family { "chart" },
style-chart-properties?,
style-graphic-properties?,
style-paragraph-properties?,
style-text-properties?)
table-table-template =
element table:table-template {
table-table-template-attlist,
table-first-row?,
table-last-row?,
table-first-column?,
table-last-column?,
table-body,
table-even-rows?,
table-odd-rows?,
table-even-columns?,
table-odd-columns?,
table-background?,
# TODO no proposal
table-first-row-even-column?,
table-last-row-even-column?,
table-first-row-end-column?,
table-first-row-start-column?,
table-last-row-end-column?,
table-last-row-start-column?
}
draw-frame =
element draw:frame {
common-draw-shape-with-text-and-styles-attlist,
common-draw-position-attlist,
common-draw-rel-size-attlist,
common-draw-caption-id-attlist,
presentation-shape-attlist,
draw-frame-attlist,
(draw-text-box
| draw-image
| draw-object
| draw-object-ole
| draw-applet
| draw-floating-frame
| draw-plugin
| table-table)*,
office-event-listeners?,
draw-glue-point*,
draw-image-map?,
svg-title?,
svg-desc?,
(draw-contour-polygon | draw-contour-path)?,
# TODO no proposal
loext-signatureline?,
loext-qrcode?
}
common-value-and-type-attlist =
(attribute office:value-type { "float" },
attribute calcext:value-type { "float" }?,
attribute office:value { double })
| (attribute office:value-type { "percentage" },
attribute calcext:value-type { "percentage" }?,
attribute office:value { double })
| (attribute office:value-type { "currency" },
attribute calcext:value-type { "currency" }?,
attribute office:value { double },
attribute office:currency { \string }?)
| (attribute office:value-type { "date" },
attribute calcext:value-type { "date" }?,
attribute office:date-value { dateOrDateTime })
| (attribute office:value-type { "time" },
attribute calcext:value-type { "time" }?,
attribute office:time-value { duration })
| (attribute office:value-type { "boolean" },
attribute calcext:value-type { "boolean" }?,
attribute office:boolean-value { boolean })
| (attribute office:value-type { "string" },
# OFFICE-3759
attribute calcext:value-type { "string" | "error" }?,
attribute office:string-value { \string }?)
chart-axis =
element chart:axis {
chart-axis-attlist,
# OFFICE-2119
((attribute chartooo:axis-type { "auto" },
chartooo-date-scale?)
| (attribute chartooo:axis-type { "date" },
chartooo-date-scale)
| attribute chartooo:axis-type { "text" })?,
chart-title?,
chart-categories?,
chart-grid*
}
table-table =
element table:table {
table-table-attlist,
table-title?,
table-desc?,
# TODO add to proposal, OFFICE-2112
table-table-protection?,
table-table-source?,
office-dde-source?,
table-scenario?,
office-forms?,
table-shapes?,
table-columns-and-groups,
table-rows-and-groups,
table-named-expressions?,
# TODO no proposal, this is wild guessing, OFFICE-3785
element calcext:conditional-formats {
element calcext:conditional-format {
attribute calcext:target-range-address { cellRangeAddress },
(element calcext:condition {
attribute calcext:apply-style-name { styleNameRef },
attribute calcext:value { \string },
attribute calcext:base-cell-address { cellAddress }
}+
| element calcext:data-bar {
attribute calcext:max-length { \string },
attribute calcext:negative-color { color },
attribute calcext:positive-color { color },
attribute calcext:axis-color { color },
attribute calcext:axis-position { "middle" }?,
element calcext:formatting-entry {
attribute calcext:value { \string },
attribute calcext:type {
"auto-minimum"
| "auto-maximum"
| "minimum"
| "maximum"
| "percent"
| "percentile"
| "number"
| "formula"
}
},
element calcext:formatting-entry {
attribute calcext:value { \string },
attribute calcext:type {
"auto-minimum"
| "auto-maximum"
| "minimum"
| "maximum"
| "percent"
| "percentile"
| "number"
| "formula"
}
}
}
| element calcext:color-scale {
element calcext:color-scale-entry {
attribute calcext:value { \string },
attribute calcext:type {
"minimum"
| "maximum"
| "percent"
| "percentile"
| "number"
| "formula"
},
attribute calcext:color { color }
},
element calcext:color-scale-entry {
attribute calcext:value { \string },
attribute calcext:type {
"minimum"
| "maximum"
| "percent"
| "percentile"
| "number"
| "formula"
},
attribute calcext:color { color }
},
element calcext:color-scale-entry {
attribute calcext:value { \string },
attribute calcext:type {
"minimum"
| "maximum"
| "percent"
| "percentile"
| "number"
| "formula"
},
attribute calcext:color { color }
}?
})
}+
}?
}
# TODO no proposal
draw-object =
element draw:object {
draw-object-attlist,
loext-text,
(common-draw-data-attlist | office-document | math-math)
}
draw-object-ole =
element draw:object-ole {
draw-object-ole-attlist,
loext-text,
(common-draw-data-attlist | office-binary-data)
}
# FIXME: one test exports 250 here, which is probably a bug
fontWeight =
"normal"
| "bold"
| "100"
| "200"
| "250"
| "300"
| "400"
| "500"
| "600"
| "700"
| "800"
| "900"
}
# TODO no proposal
loext-p =
element loext:p { paragraph-attrs, paragraph-content-or-hyperlink* }
loext-text = (loext-p | text-list | loext-table)*
# OFFICE-2119
chartooo-date-scale =
element chartooo:date-scale {
attribute chart:base-time-unit { chart-time-unit }?
& (attribute chart:major-interval-value { positiveInteger },
attribute chart:major-interval-unit { chart-time-unit })?
& (attribute chart:minor-interval-value { positiveInteger },
attribute chart:minor-interval-unit { chart-time-unit })?
}
chart-time-unit = "days" | "months" | "years"
# TODO no proposal
loext-signatureline =
element loext:signatureline {
attribute loext:id { \string },
attribute loext:suggested-signer-name { \string },
attribute loext:suggested-signer-title { \string },
attribute loext:suggested-signer-email { \string },
attribute loext:signing-instructions { \string },
attribute loext:show-sign-date { boolean },
attribute loext:can-add-comment { boolean }
}
loext-qrcode =
element loext:qrcode {
attribute office:string-value { \string },
attribute loext:qrcode-errorcorrection {
"low" | "medium" | "quartile" | "high"
},
attribute loext:qrcode-border { nonNegativeInteger }
}
# https://issues.oasis-open.org/browse/OFFICE-3761
loext-table =
element loext:table {
table-table-attlist,
table-title?,
table-desc?,
table-table-source?,
office-dde-source?,
table-scenario?,
office-forms?,
table-shapes?,
loext-columns-and-groups,
loext-rows-and-groups,
table-named-expressions?
}
loext-rows-and-groups = (table-table-row-group | loext-rows-no-group)+
loext-rows-no-group =
(loext-rows, (table-table-header-rows, loext-rows?)?)
| (table-table-header-rows, loext-rows?)
loext-rows =
table-table-rows | (text-soft-page-break?, loext-table-row)+
loext-table-row =
element loext:table-row {
table-table-row-attlist,
(loext-table-cell | loext-covered-table-cell)+
}
loext-table-cell =
element loext:table-cell {
table-table-cell-attlist,
table-table-cell-attlist-extra,
table-table-cell-content
}
loext-covered-table-cell =
element loext:covered-table-cell {
table-table-cell-attlist, table-table-cell-content
}
loext-columns-and-groups =
(table-table-column-group | loext-columns-no-group)+
loext-columns-no-group =
(loext-columns, (table-table-header-columns, loext-columns?)?)
| (table-table-header-columns, loext-columns?)
loext-columns = loext-table-columns | loext-table-column+
loext-table-columns =
element loext:table-columns { loext-table-column+ }
loext-table-column =
element loext:table-column { table-table-column-attlist, empty }
loext-graphic-properties =
element loext:graphic-properties {
style-graphic-properties-content-strict
}
table-first-row-even-column =
element loext:first-row-even-column {
common-table-template-attlist, empty
}
table-last-row-even-column =
element loext:last-row-even-column {
common-table-template-attlist, empty
}
table-first-row-end-column =
element loext:first-row-end-column {
common-table-template-attlist, empty
}
table-first-row-start-column =
element loext:first-row-start-column {
common-table-template-attlist, empty
}
table-last-row-end-column =
element loext:last-row-end-column {
common-table-template-attlist, empty
}
table-last-row-start-column =
element loext:last-row-start-column {
common-table-template-attlist, empty
}
common-draw-rel-size-attlist &=
# OFFICE-3854
attribute loext:rel-width-rel {
"page"
| [
# TODO layout-environment ?
]
"paragraph"
}?,
attribute loext:rel-height-rel { "page" | "paragraph" }?
common-svg-font-face-xlink-attlist &=
# TODO no proposal
attribute loext:font-style { fontStyle }?,
attribute loext:font-weight { fontWeight }?
# TODO no proposal
# there's no ref-attrs so add it here
text-common-ref-content &=
attribute loext:reference-language { language }?
style-list-level-label-alignment-attlist &=
# TODO no proposal
attribute loext:label-followed-by {
"listtab" | "space" | "nothing" | "newline"
}?
style-ruby-properties-attlist &=
# TODO proposal, OFFICE-3944
attribute loext:ruby-position {
"above" | "below" | "inter-character"
}?
style-text-properties-attlist &=
# TODO no proposal
attribute officeooo:rsid { \string }?,
attribute officeooo:paragraph-rsid { \string }?,
# https://issues.oasis-open.org/browse/OFFICE-4049
attribute loext:opacity { zeroToHundredPercent }?
style-text-properties-attlist &=
# OFFICE-3843
attribute loext:padding { nonNegativeLength }?,
attribute loext:padding-left { nonNegativeLength }?,
attribute loext:padding-right { nonNegativeLength }?,
attribute loext:padding-top { nonNegativeLength }?,
attribute loext:padding-bottom { nonNegativeLength }?,
attribute loext:border { \string }?,
attribute loext:border-left { \string }?,
attribute loext:border-right { \string }?,
attribute loext:border-top { \string }?,
attribute loext:border-bottom { \string }?,
attribute loext:shadow { shadowType }?
# TODO no proposal
style-chart-properties-attlist &=
attribute loext:try-staggering-first { boolean }?
# TODO no proposal
style-chart-properties-attlist &=
attribute loext:std-weight { \string }?
# TODO no proposal
chart-series-attlist &= attribute loext:label-string { \string }?
# OFFICE-1148
style-chart-properties-attlist &=
attribute loext:regression-max-degree { positiveInteger }?,
attribute loext:regression-force-intercept { boolean }?,
attribute loext:regression-intercept-value { double }?,
attribute loext:regression-name { \string }?,
attribute loext:regression-period { \string }?,
attribute loext:regression-extrapolate-forward { \string }?,
attribute loext:regression-extrapolate-backward { \string }?
# TODO no proposal
table-data-pilot-field-attlist &=
attribute tableooo:display-name { \string }?
# TODO no proposal, 9009663d
chart-chart-attlist &= attribute loext:data-pilot-source { \string }?
# OFFICE-2112, TODO half of this missing in proposal
table-table-protection =
element loext:table-protection {
attribute loext:select-protected-cells { boolean }?,
attribute loext:select-unprotected-cells { boolean }?,
attribute loext:insert-columns { boolean }?,
attribute loext:insert-rows { boolean }?,
attribute loext:delete-columns { boolean }?,
attribute loext:delete-rows { boolean }?
}
office-spreadsheet-attlist &=
attribute loext:protection-key-digest-algorithm-2 { anyURI }?
table-table-attlist &=
attribute loext:protection-key-digest-algorithm-2 { anyURI }?
# https://issues.oasis-open.org/browse/OFFICE-2317
vertJustifyValues = "auto" | "distribute"
common-text-justify =
attribute css3t:text-justify { vertJustifyValues }?
style-vertical-justify =
attribute loext:vertical-justify { vertJustifyValues }?,
attribute style:vertical-justify { vertJustifyValues }?
style-paragraph-properties-attlist &=
(common-text-justify, style-vertical-justify)?
style-table-cell-properties-attlist &=
(common-text-justify, style-vertical-justify)?
number-fraction-attlist &=
# OFFICE-3695
# TODO no proposal, 1544a26ac9f7dd60605dd21e9cbe29d490aafdce
attribute loext:max-numerator-digits { positiveInteger }?
# TODO no proposal
table-data-pilot-level-attlist &=
attribute calcext:repeat-item-labels { boolean }?
# TODO no proposal
draw-enhanced-geometry-attlist &=
attribute drawooo:sub-view-size { \string }?,
attribute drawooo:enhanced-path { \string }?
# TODO no proposal
draw-custom-shape-attlist &= common-draw-rel-size-attlist
# TODO no proposal
style-page-layout-properties-attlist &=
style-graphic-fill-properties-attlist
style-header-footer-properties-attlist &=
style-graphic-fill-properties-attlist
# TODO no proposal
text-index-entry-tab-stop-attrs &= attribute style:with-tab { boolean }?
# TODO no proposal
style-text-properties-attlist &=
attribute loext:char-shading-value { \string }?
# TODO no proposal
text-bookmark-start-attlist &=
(attribute loext:hidden { boolean },
attribute loext:condition { \string }?)?
# TODO no proposal; see 7a5d79f2297a43d0a854e304b0792164272edfe0
# FIXME this is almost certainly incomplete: need to figure out which elements can have this and which named pattern can be extended with it to get exactly these elements
form-checkbox-attlist &= attribute form:input-required { boolean }?
# https://issues.oasis-open.org/browse/OFFICE-4030
common-writing-mode-attlist &= attribute loext:writing-mode { "bt-lr" }?
# https://issues.oasis-open.org/browse/OFFICE-4073
common-vertical-rel-attlist &=
attribute loext:vertical-rel {
"page-content-top" | "page-content-bottom"
}?
# https://issues.oasis-open.org/browse/OFFICE-4105
style-page-layout-properties-attlist &=
attribute loext:margin-gutter { length }?
# just a test-case for user-defined attributes, move along, nothing to see here...
style-table-cell-properties-attlist &= attribute proName { \string }?
# TODO no proposal
chart-data-point-attlist &=
attribute loext:custom-label-field { \string }?
# TODO no proposal
style-text-properties-attlist &=
attribute loext:hyphenation-no-caps { boolean }?
# TODO no proposal
chart-data-point-attlist &=
(attribute loext:custom-label-pos-x { double },
attribute loext:custom-label-pos-y { double })?
# TODO no proposal
chart-legend-attlist &= attribute loext:overlay { boolean }?
# https://issues.oasis-open.org/browse/OFFICE-3936
style-chart-properties-attlist &=
attribute loext:major-origin { double }?
# TODO no proposal
text-index-entry-chapter-attrs &=
attribute loext:outline-content-visible { boolean }?
# https://issues.oasis-open.org/browse/OFFICE-2096
paragraph-content |=
element field:fieldmark-start {
attribute text:name { \string },
attribute field:type {
# TODO <rng:ref name="namespacedToken"/>
\string
},
element field:param {
attribute field:name { \string },
attribute field:value { \string }
}*
}
paragraph-content |= element field:fieldmark-end { empty }
paragraph-content |=
element field:fieldmark {
attribute text:name { \string },
attribute field:type {
# TODO <rng:ref name="namespacedToken"/>
\string
},
element field:param {
attribute field:name { \string },
attribute field:value { \string }
}*
}
# TODO no proposal
animation-element |=
element loext:animatePhysics {
common-anim-target-attlist,
common-timing-attlist,
animate-physics-attlist
}
animate-physics-attlist =
# default value: 0
attribute loext:velocity-x { double }?,
# default value: 0
attribute loext:velocity-y { double }?,
# default value: 0.1
attribute loext:bounciness {
xsd:double { minInclusive = "0" maxInclusive = "1" }
}?,
# default value: 1
attribute loext:density {
xsd:double { minInclusive = "0" }
}?
# TODO no proposal
style-chart-properties-attlist &=
attribute loext:custom-leader-lines { boolean }?
# TODO no proposal
style-chart-properties-attlist &=
attribute loext:external-data { \string }?

View file

@ -31,6 +31,10 @@
<namespace ns="http://relaxng.org/ns/structure/1.0" typeId="RELAX NG"/>
<namespace ns="http://thaiopensource.com/ns/locating-rules/1.0"
uri="locate.rnc"/>
<namespace ns="urn:oasis:names:tc:opendocument:xmlns:office:1.0" typeId="LibreOffice"/>
<namespace ns="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" typeId="LibreOffice"/>
<namespace ns="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" typeId="LibreOffice"/>
<namespace ns="urn:oasis:names:tc:opendocument:xmlns:manifest:1.0" typeId="OpenDocument Manifest"/>
<documentElement localName="stylesheet" typeId="XSLT"/>
<documentElement prefix="xsl" localName="transform" typeId="XSLT"/>
@ -59,7 +63,7 @@
<documentElement prefix="office" typeId="OpenDocument"/>
<documentElement prefix="manifest" localName="manifest" typeId="OpenDocument Manifest"/>
<typeId id="OpenDocument" uri="od-schema-v1.2-os.rnc"/>
<typeId id="LibreOffice" uri="OpenDocument-schema-v1.3+libreoffice.rnc"/>
<typeId id="OpenDocument Manifest" uri="od-manifest-schema-v1.2-os.rnc"/>
</locatingRules>

View file

@ -137,19 +137,23 @@ ${srcdir}/../lisp/language/pinyin.el: ${srcdir}/MISC-DIC/pinyin.map
$(AM_V_GEN)${RUN_EMACS} -l titdic-cnv -f pinyin-convert $< $@
.PHONY: bootstrap-clean distclean maintainer-clean extraclean
.PHONY: bootstrap-clean distclean maintainer-clean extraclean gen-clean
## Perhaps this should run gen-clean.
bootstrap-clean:
rm -f ${TIT_MISC} ${leimdir}/leim-list.el
distclean:
rm -f Makefile
maintainer-clean: distclean bootstrap-clean
maintainer-clean: gen-clean distclean
## We do not delete ja-dic, even in a bootstrap, because it rarely
## changes and is slow to regenerate.
extraclean: bootstrap-clean
## ja-dic rarely changes and is slow to regenerate, and tends to be a
## bottleneck in parallel builds.
gen-clean:
rm -f ${TIT_MISC} ${leimdir}/leim-list.el
rm -rf ${leimdir}/ja-dic
extraclean: maintainer-clean
### Makefile.in ends here

View file

@ -41,7 +41,7 @@ pipe2 (int fd[2], int flags)
{
/* Mingw _pipe() corrupts fd on failure; also, if we succeed at
creating the pipe but later fail at changing fcntl, we want
to leave fd unchanged: http://austingroupbugs.net/view.php?id=467 */
to leave fd unchanged: https://austingroupbugs.net/view.php?id=467 */
int tmp[2];
tmp[0] = fd[0];
tmp[1] = fd[1];

View file

@ -449,8 +449,10 @@ maintainer-clean: distclean bootstrap-clean
rm -f TAGS
extraclean: bootstrap-clean distclean
-for file in $(LOADDEFS); do rm -f $${file}~; done
-for file in $(loaddefs); do rm -f $${file}~; done
-rm -f $(lisp)/loaddefs.el~
-find $(lisp) -name '*~' $(FIND_DELETE)
-find $(lisp) -name '#*' $(FIND_DELETE)
.PHONY: check-declare

View file

@ -1,4 +1,4 @@
;; allout-widgets.el --- Visually highlight allout outline structure.
;; allout-widgets.el --- Visually highlight allout outline structure. -*- lexical-binding: t; -*-
;; Copyright (C) 2005-2021 Free Software Foundation, Inc.
@ -6,7 +6,7 @@
;; Version: 1.0
;; Created: Dec 2005
;; Keywords: outlines
;; Website: http://myriadicity.net/software-and-systems/craft/emacs-allout
;; Website: https://myriadicity.net/software-and-systems/craft/emacs-allout
;; This file is part of GNU Emacs.
@ -38,7 +38,7 @@
;; See the `allout-widgets-mode' docstring for more details.
;;
;; Info about allout and allout-widgets development are available at
;; http://myriadicity.net/Sundry/EmacsAllout
;; https://myriadicity.net/software-and-systems/craft/emacs-allout
;;
;; The graphics include:
;;
@ -72,11 +72,11 @@
(eval-when-compile (require 'cl-lib))
;;;_ : internal variables needed before user-customization variables
;;; In order to enable activation of allout-widgets-mode via customization,
;;; allout-widgets-auto-activation uses a setting function. That function
;;; is invoked when the customization variable definition is evaluated,
;;; during file load, so the involved code must reside above that
;;; definition in the file.
;; In order to enable activation of allout-widgets-mode via customization,
;; allout-widgets-auto-activation uses a setting function. That function
;; is invoked when the customization variable definition is evaluated,
;; during file load, so the involved code must reside above that
;; definition in the file.
;;;_ = allout-widgets-mode
(defvar-local allout-widgets-mode nil
"Allout mode enhanced with graphical widgets.")
@ -100,8 +100,8 @@ with allout-mode."
See `allout-widgets-mode-inhibit' for per-file/per-buffer
inhibition of allout-widgets-mode."
(add-hook 'allout-mode-off-hook 'allout-widgets-mode-off)
(add-hook 'allout-mode-on-hook 'allout-widgets-mode-on)
(add-hook 'allout-mode-off-hook #'allout-widgets-mode-off)
(add-hook 'allout-mode-on-hook #'allout-widgets-mode-on)
t)
;;;_ > allout-widgets-mode-disable
(defun allout-widgets-mode-disable ()
@ -109,8 +109,8 @@ inhibition of allout-widgets-mode."
See `allout-widgets-mode-inhibit' for per-file/per-buffer
inhibition of allout-widgets-mode."
(remove-hook 'allout-mode-off-hook 'allout-widgets-mode-off)
(remove-hook 'allout-mode-on-hook 'allout-widgets-mode-on)
(remove-hook 'allout-mode-off-hook #'allout-widgets-mode-off)
(remove-hook 'allout-mode-on-hook #'allout-widgets-mode-on)
t)
;;;_ > allout-widgets-setup (varname value)
;;;###autoload
@ -141,7 +141,7 @@ See `allout-widgets-mode' for allout widgets mode features."
:version "24.1"
:type 'boolean
:group 'allout-widgets
:set 'allout-widgets-setup
:set #'allout-widgets-setup
)
;; ;;;_ = allout-widgets-allow-unruly-edits
;; (defcustom allout-widgets-allow-unruly-edits nil
@ -307,7 +307,7 @@ In addition, you can invoked `allout-widgets-mode' allout-mode
buffers where this is set to enable and disable widget
enhancements, directly.")
;;;###autoload
(put 'allout-widgets-mode-inhibit 'safe-local-variable 'booleanp)
(put 'allout-widgets-mode-inhibit 'safe-local-variable #'booleanp)
;;;_ = allout-inhibit-body-modification-hook
(defvar-local allout-inhibit-body-modification-hook nil
"Override de-escaping of text-prefixes in item bodies during specific changes.
@ -402,14 +402,14 @@ not altered with an escape sequence.")
(set-keymap-parent km as-parent)
(dolist (digit '("0" "1" "2" "3"
"4" "5" "6" "7" "8" "9"))
(define-key km digit 'digit-argument))
(define-key km "-" 'negative-argument)
(define-key km digit #'digit-argument))
(define-key km "-" #'negative-argument)
;; Override underlying mouse-1 and mouse-2 bindings in icon territory:
(define-key km [(mouse-1)] (lambda () (interactive) nil))
(define-key km [(mouse-2)] (lambda () (interactive) nil))
(define-key km [(mouse-1)] #'ignore)
(define-key km [(mouse-2)] #'ignore)
;; Catchall, handles actual keybindings, dynamically doing keymap lookups:
(define-key km [t] 'allout-item-icon-key-handler)
(define-key km [t] #'allout-item-icon-key-handler)
km)
"General tree-node key bindings.")
@ -535,7 +535,7 @@ outline hot-spot navigation (see `allout-mode')."
"\\1\\3"))
)
(add-hook 'after-change-functions 'allout-widgets-after-change-handler
(add-hook 'after-change-functions #'allout-widgets-after-change-handler
nil t)
(allout-setup-text-properties)
@ -551,23 +551,23 @@ outline hot-spot navigation (see `allout-mode')."
(set-keymap-parent allout-item-icon-keymap as-parent))
(add-hook 'allout-exposure-change-functions
'allout-widgets-exposure-change-recorder nil 'local)
#'allout-widgets-exposure-change-recorder nil 'local)
(add-hook 'allout-structure-added-functions
'allout-widgets-additions-recorder nil 'local)
#'allout-widgets-additions-recorder nil 'local)
(add-hook 'allout-structure-deleted-functions
'allout-widgets-deletions-recorder nil 'local)
#'allout-widgets-deletions-recorder nil 'local)
(add-hook 'allout-structure-shifted-functions
'allout-widgets-shifts-recorder nil 'local)
#'allout-widgets-shifts-recorder nil 'local)
(add-hook 'allout-after-copy-or-kill-hook
'allout-widgets-after-copy-or-kill-function nil 'local)
#'allout-widgets-after-copy-or-kill-function nil 'local)
(add-hook 'allout-post-undo-hook
'allout-widgets-after-undo-function nil 'local)
#'allout-widgets-after-undo-function nil 'local)
(add-hook 'before-change-functions 'allout-widgets-before-change-handler
(add-hook 'before-change-functions
#'allout-widgets-before-change-handler nil 'local)
(add-hook 'post-command-hook #'allout-widgets-post-command-business
nil 'local)
(add-hook 'post-command-hook 'allout-widgets-post-command-business
nil 'local)
(add-hook 'pre-command-hook 'allout-widgets-pre-command-business
(add-hook 'pre-command-hook #'allout-widgets-pre-command-business
nil 'local)
;; init the widgets tally for debugging:
@ -596,23 +596,23 @@ outline hot-spot navigation (see `allout-mode')."
(remove-from-invisibility-spec 'allout-escapes)
(remove-hook 'after-change-functions
'allout-widgets-after-change-handler 'local)
#'allout-widgets-after-change-handler 'local)
(remove-hook 'allout-exposure-change-functions
'allout-widgets-exposure-change-recorder 'local)
#'allout-widgets-exposure-change-recorder 'local)
(remove-hook 'allout-structure-added-functions
'allout-widgets-additions-recorder 'local)
#'allout-widgets-additions-recorder 'local)
(remove-hook 'allout-structure-deleted-functions
'allout-widgets-deletions-recorder 'local)
#'allout-widgets-deletions-recorder 'local)
(remove-hook 'allout-structure-shifted-functions
'allout-widgets-shifts-recorder 'local)
#'allout-widgets-shifts-recorder 'local)
(remove-hook 'allout-after-copy-or-kill-hook
'allout-widgets-after-copy-or-kill-function 'local)
#'allout-widgets-after-copy-or-kill-function 'local)
(remove-hook 'before-change-functions
'allout-widgets-before-change-handler 'local)
#'allout-widgets-before-change-handler 'local)
(remove-hook 'post-command-hook
'allout-widgets-post-command-business 'local)
#'allout-widgets-post-command-business 'local)
(remove-hook 'pre-command-hook
'allout-widgets-pre-command-business 'local)
#'allout-widgets-pre-command-business 'local)
(assq-delete-all 'allout-widgets-mode-inhibit minor-mode-alist)
(set-buffer-modified-p was-modified))))
;;;_ > allout-widgets-mode-off
@ -710,7 +710,7 @@ Optional RECURSING is for internal use, to limit recursion."
(when allout-widgets-reenable-before-change-handler
(add-hook 'before-change-functions
'allout-widgets-before-change-handler
#'allout-widgets-before-change-handler
nil 'local)
(setq allout-widgets-reenable-before-change-handler nil))
@ -879,7 +879,7 @@ encompassing condition-case."
(message header) (sit-for allout-widgets-hook-error-post-time)
;; reraise the error, or one concerning this function if unexpected:
(if (equal mode 'error)
(apply 'signal args)
(apply #'signal args)
(error "%s: unexpected mode, %s %s" this mode args))))
;;;_ > allout-widgets-changes-exceed-threshold-p ()
(defun allout-widgets-adjusting-message (message)
@ -973,9 +973,8 @@ Generally invoked via `allout-exposure-change-functions'."
deactivate-mark)
(dolist (change changes)
(let (handling
(from (cadr change))
bucket got
(let ((from (cadr change))
bucket
(to (caddr change))
(flag (cadddr change))
parent)
@ -986,10 +985,11 @@ Generally invoked via `allout-exposure-change-functions'."
from bucket))
;; have we already handled exposure changes in this region?
(setq handling (if flag 'handled-conceal 'handled-expose)
got (allout-range-overlaps from to (symbol-value handling))
covered (car got))
(set handling (cadr got))
(cl-callf (lambda (x)
(let ((got (allout-range-overlaps from to x)))
(setq covered (car got))
(cadr got)))
(if flag handled-conceal handled-expose))
(when (not covered)
(save-excursion
@ -1825,7 +1825,7 @@ reapplying this method will rectify the glyphs."
(if (> increment 1) (setq increment 1))
(when extenders
;; paint extenders after a connector, else leave spaces.
(dotimes (i extenders)
(dotimes (_ extenders)
(put-text-property
position (setq position (1+ position))
'display (allout-fetch-icon-image

View file

@ -1,12 +1,12 @@
;;; allout.el --- extensive outline mode for use alone and with other modes
;;; allout.el --- extensive outline mode for use alone and with other modes -*- lexical-binding: t; -*-
;; Copyright (C) 1992-1994, 2001-2021 Free Software Foundation, Inc.
;; Copyright (C) 1992-2021 Free Software Foundation, Inc.
;; Author: Ken Manheimer <ken dot manheimer at gmail...>
;; Created: Dec 1991 -- first release to usenet
;; Version: 2.3
;; Keywords: outlines, wp, languages, PGP, GnuPG
;; Website: http://myriadicity.net/software-and-systems/craft/emacs-allout
;; Website: https://myriadicity.net/software-and-systems/craft/emacs-allout
;; This file is part of GNU Emacs.
@ -57,7 +57,7 @@
;; mode.
;;
;; Directions to the latest development version and helpful notes are
;; available at http://myriadicity.net/Sundry/EmacsAllout .
;; available at https://myriadicity.net/software-and-systems/craft/emacs-allout .
;;
;; The outline menubar additions provide quick reference to many of the
;; features. See the docstring of the variables `allout-layout' and
@ -133,13 +133,14 @@ respective allout-mode keybinding variables, `allout-command-prefix',
(when (boundp 'allout-unprefixed-keybindings)
(dolist (entry allout-unprefixed-keybindings)
(define-key map (car (read-from-string (car entry))) (cadr entry))))
(substitute-key-definition 'beginning-of-line 'allout-beginning-of-line
(substitute-key-definition #'beginning-of-line #'allout-beginning-of-line
map global-map)
(substitute-key-definition 'move-beginning-of-line 'allout-beginning-of-line
(substitute-key-definition #'move-beginning-of-line
#'allout-beginning-of-line
map global-map)
(substitute-key-definition 'end-of-line 'allout-end-of-line
(substitute-key-definition #'end-of-line #'allout-end-of-line
map global-map)
(substitute-key-definition 'move-end-of-line 'allout-end-of-line
(substitute-key-definition #'move-end-of-line #'allout-end-of-line
map global-map)
(allout-institute-keymap map)))
;;;_ > allout-institute-keymap (map)
@ -169,7 +170,7 @@ Default is `\C-c<space>'; just `\C-c' is more short-and-sweet, if you're
willing to let allout use a bunch of \C-c keybindings."
:type 'string
:group 'allout-keybindings
:set 'allout-compose-and-institute-keymap)
:set #'allout-compose-and-institute-keymap)
;;;_ = allout-keybindings-binding
(define-widget 'allout-keybindings-binding 'lazy
"Structure of allout keybindings customization items."
@ -230,7 +231,7 @@ prevails."
:version "24.1"
:type 'allout-keybindings-binding
:group 'allout-keybindings
:set 'allout-compose-and-institute-keymap
:set #'allout-compose-and-institute-keymap
)
;;;_ = allout-unprefixed-keybindings
(defcustom allout-unprefixed-keybindings
@ -254,7 +255,7 @@ See the existing keys for examples."
:version "24.1"
:type 'allout-keybindings-binding
:group 'allout-keybindings
:set 'allout-compose-and-institute-keymap
:set #'allout-compose-and-institute-keymap
)
;;;_ > allout-auto-activation-helper (var value)
@ -276,8 +277,8 @@ Establishes allout processing as part of visiting a file if
The proper way to use this is through customizing the setting of
`allout-auto-activation'."
(if (not allout-auto-activation)
(remove-hook 'find-file-hook 'allout-find-file-hook)
(add-hook 'find-file-hook 'allout-find-file-hook)))
(remove-hook 'find-file-hook #'allout-find-file-hook)
(add-hook 'find-file-hook #'allout-find-file-hook)))
;;;_ = allout-auto-activation
;;;###autoload
(defcustom allout-auto-activation nil
@ -298,7 +299,7 @@ With value \"activate\", only auto-mode-activation is enabled.
Auto-layout is not.
With value nil, inhibit any automatic allout-mode activation."
:set 'allout-auto-activation-helper
:set #'allout-auto-activation-helper
;; FIXME: Using strings here is unusual and less efficient than symbols.
:type '(choice (const :tag "On" t)
(const :tag "Ask about layout" "ask")
@ -405,7 +406,7 @@ where auto-fill occurs."
:group 'allout)
(make-variable-buffer-local 'allout-use-hanging-indents)
;;;###autoload
(put 'allout-use-hanging-indents 'safe-local-variable 'booleanp)
(put 'allout-use-hanging-indents 'safe-local-variable #'booleanp)
;;;_ = allout-reindent-bodies
(defcustom allout-reindent-bodies (if allout-use-hanging-indents
'text)
@ -434,7 +435,7 @@ just the header."
:group 'allout)
(make-variable-buffer-local 'allout-show-bodies)
;;;###autoload
(put 'allout-show-bodies 'safe-local-variable 'booleanp)
(put 'allout-show-bodies 'safe-local-variable #'booleanp)
;;;_ = allout-beginning-of-line-cycles
(defcustom allout-beginning-of-line-cycles t
@ -507,7 +508,7 @@ character, which is typically set to the `allout-primary-bullet'."
:group 'allout)
(make-variable-buffer-local 'allout-header-prefix)
;;;###autoload
(put 'allout-header-prefix 'safe-local-variable 'stringp)
(put 'allout-header-prefix 'safe-local-variable #'stringp)
;;;_ = allout-primary-bullet
(defcustom allout-primary-bullet "*"
"Bullet used for top-level outline topics.
@ -524,7 +525,7 @@ bullets."
:group 'allout)
(make-variable-buffer-local 'allout-primary-bullet)
;;;###autoload
(put 'allout-primary-bullet 'safe-local-variable 'stringp)
(put 'allout-primary-bullet 'safe-local-variable #'stringp)
;;;_ = allout-plain-bullets-string
(defcustom allout-plain-bullets-string ".,"
"The bullets normally used in outline topic prefixes.
@ -540,7 +541,7 @@ of this var to take effect."
:group 'allout)
(make-variable-buffer-local 'allout-plain-bullets-string)
;;;###autoload
(put 'allout-plain-bullets-string 'safe-local-variable 'stringp)
(put 'allout-plain-bullets-string 'safe-local-variable #'stringp)
;;;_ = allout-distinctive-bullets-string
(defcustom allout-distinctive-bullets-string "*+-=>()[{}&!?#%\"X@$~_\\:;^"
"Persistent outline header bullets used to distinguish special topics.
@ -588,7 +589,7 @@ strings."
:group 'allout)
(make-variable-buffer-local 'allout-distinctive-bullets-string)
;;;###autoload
(put 'allout-distinctive-bullets-string 'safe-local-variable 'stringp)
(put 'allout-distinctive-bullets-string 'safe-local-variable #'stringp)
;;;_ = allout-use-mode-specific-leader
(defcustom allout-use-mode-specific-leader t
@ -655,7 +656,7 @@ are always respected by the topic maneuvering functions."
:group 'allout)
(make-variable-buffer-local 'allout-old-style-prefixes)
;;;###autoload
(put 'allout-old-style-prefixes 'safe-local-variable 'booleanp)
(put 'allout-old-style-prefixes 'safe-local-variable #'booleanp)
;;;_ = allout-stylish-prefixes -- alternating bullets
(defcustom allout-stylish-prefixes t
"Do fancy stuff with topic prefix bullets according to level, etc.
@ -703,7 +704,7 @@ is non-nil."
:group 'allout)
(make-variable-buffer-local 'allout-stylish-prefixes)
;;;###autoload
(put 'allout-stylish-prefixes 'safe-local-variable 'booleanp)
(put 'allout-stylish-prefixes 'safe-local-variable #'booleanp)
;;;_ = allout-numbered-bullet
(defcustom allout-numbered-bullet "#"
@ -717,7 +718,7 @@ disables numbering maintenance."
:group 'allout)
(make-variable-buffer-local 'allout-numbered-bullet)
;;;###autoload
(put 'allout-numbered-bullet 'safe-local-variable 'string-or-null-p)
(put 'allout-numbered-bullet 'safe-local-variable #'string-or-null-p)
;;;_ = allout-file-xref-bullet
(defcustom allout-file-xref-bullet "@"
"Bullet signifying file cross-references, for `allout-resolve-xref'.
@ -726,7 +727,7 @@ Set this var to the bullet you want to use for file cross-references."
:type '(choice (const nil) string)
:group 'allout)
;;;###autoload
(put 'allout-file-xref-bullet 'safe-local-variable 'string-or-null-p)
(put 'allout-file-xref-bullet 'safe-local-variable #'string-or-null-p)
;;;_ = allout-presentation-padding
(defcustom allout-presentation-padding 2
"Presentation-format white-space padding factor, for greater indent."
@ -735,7 +736,7 @@ Set this var to the bullet you want to use for file cross-references."
(make-variable-buffer-local 'allout-presentation-padding)
;;;###autoload
(put 'allout-presentation-padding 'safe-local-variable 'integerp)
(put 'allout-presentation-padding 'safe-local-variable #'integerp)
;;;_ = allout-flattened-numbering-abbreviation
(define-obsolete-variable-alias 'allout-abbreviate-flattened-numbering
@ -1056,7 +1057,7 @@ invoking it directly."
(setq allout-primary-bullet leader))
allout-header-prefix)))
(defalias 'allout-infer-header-lead
'allout-infer-header-lead-and-primary-bullet)
#'allout-infer-header-lead-and-primary-bullet)
;;;_ > allout-infer-body-reindent ()
(defun allout-infer-body-reindent ()
"Determine proper setting for `allout-reindent-bodies'.
@ -1196,7 +1197,7 @@ Also refresh various data structures that hinge on the regexp."
"[^" allout-primary-bullet "]"))
"\\)"
))))
(define-obsolete-function-alias 'set-allout-regexp 'allout-set-regexp "26.1")
(define-obsolete-function-alias 'set-allout-regexp #'allout-set-regexp "26.1")
;;;_ : Menu bar
(defvar allout-mode-exposure-menu)
(defvar allout-mode-editing-menu)
@ -1589,17 +1590,6 @@ non-nil in a lasting way.")
(defvar-local allout-explicitly-deactivated nil
"If t, `allout-mode's last deactivation was deliberate.
So `allout-post-command-business' should not reactivate it...")
;;;_ > allout-setup-menubar ()
(defun allout-setup-menubar ()
"Populate the current buffer's menubar with `allout-mode' stuff."
(let ((menus (list allout-mode-exposure-menu
allout-mode-editing-menu
allout-mode-navigation-menu
allout-mode-misc-menu))
cur)
(while menus
(setq cur (car menus)
menus (cdr menus)))))
;;;_ > allout-overlay-preparations
(defun allout-overlay-preparations ()
"Set the properties of the allout invisible-text overlay and others."
@ -1613,7 +1603,7 @@ So `allout-post-command-business' should not reactivate it...")
;; property controls the isearch _arrival_ behavior. This is the case at
;; least in emacs 21, 22.1, and xemacs 21.4.
(put 'allout-exposure-category 'isearch-open-invisible
'allout-isearch-end-handler)
#'allout-isearch-end-handler)
(put 'allout-exposure-category 'insert-in-front-hooks
'(allout-overlay-insert-in-front-handler))
(put 'allout-exposure-category 'modification-hooks
@ -1903,12 +1893,12 @@ OPEN: A TOPIC that is not CLOSED, though its OFFSPRING or BODY may be."
(allout-do-resumptions)
(remove-from-invisibility-spec '(allout . t))
(remove-hook 'pre-command-hook 'allout-pre-command-business t)
(remove-hook 'post-command-hook 'allout-post-command-business t)
(remove-hook 'before-change-functions 'allout-before-change-handler t)
(remove-hook 'isearch-mode-end-hook 'allout-isearch-end-handler t)
(remove-hook 'pre-command-hook #'allout-pre-command-business t)
(remove-hook 'post-command-hook #'allout-post-command-business t)
(remove-hook 'before-change-functions #'allout-before-change-handler t)
(remove-hook 'isearch-mode-end-hook #'allout-isearch-end-handler t)
(remove-hook 'write-contents-functions
'allout-write-contents-hook-handler t)
#'allout-write-contents-hook-handler t)
(remove-overlays (point-min) (point-max)
'category 'allout-exposure-category))
@ -1937,11 +1927,11 @@ OPEN: A TOPIC that is not CLOSED, though its OFFSPRING or BODY may be."
(add-to-invisibility-spec '(allout . t))
(allout-add-resumptions '(line-move-ignore-invisible t))
(add-hook 'pre-command-hook 'allout-pre-command-business nil t)
(add-hook 'post-command-hook 'allout-post-command-business nil t)
(add-hook 'before-change-functions 'allout-before-change-handler nil t)
(add-hook 'isearch-mode-end-hook 'allout-isearch-end-handler nil t)
(add-hook 'write-contents-functions 'allout-write-contents-hook-handler
(add-hook 'pre-command-hook #'allout-pre-command-business nil t)
(add-hook 'post-command-hook #'allout-post-command-business nil t)
(add-hook 'before-change-functions #'allout-before-change-handler nil t)
(add-hook 'isearch-mode-end-hook #'allout-isearch-end-handler nil t)
(add-hook 'write-contents-functions #'allout-write-contents-hook-handler
nil t)
;; Stash auto-fill settings and adjust so custom allout auto-fill
@ -1966,8 +1956,6 @@ OPEN: A TOPIC that is not CLOSED, though its OFFSPRING or BODY may be."
;; allout-auto-fill will use the stashed values and so forth.
(allout-add-resumptions '(auto-fill-function allout-auto-fill)))
(allout-setup-menubar)
;; Do auto layout if warranted:
(when (and allout-layout
allout-auto-activation
@ -1987,7 +1975,7 @@ OPEN: A TOPIC that is not CLOSED, though its OFFSPRING or BODY may be."
(allout-this-or-next-heading)
(condition-case err
(progn
(apply 'allout-expose-topic (list use-layout))
(apply #'allout-expose-topic (list use-layout))
(message "Adjusting `%s' exposure... done."
(buffer-name)))
;; Problem applying exposure -- notify user, but don't
@ -1999,7 +1987,7 @@ OPEN: A TOPIC that is not CLOSED, though its OFFSPRING or BODY may be."
) ; let (())
) ; define-minor-mode
;;;_ > allout-minor-mode alias
(defalias 'allout-minor-mode 'allout-mode)
(defalias 'allout-minor-mode #'allout-mode)
;;;_ > allout-unload-function
(defun allout-unload-function ()
"Unload the allout outline library."
@ -2068,7 +2056,7 @@ internal functions use this feature cohesively bunch changes."
(error "Concealed-text change abandoned, text reconcealed"))))
(goto-char start))))
;;;_ > allout-before-change-handler (beg end)
(defun allout-before-change-handler (beg end)
(defun allout-before-change-handler (_beg _end)
"Protect against changes to invisible text.
See `allout-overlay-interior-modification-handler' for details."
@ -2232,7 +2220,7 @@ Actually, returns prefix beginning point."
(or (not (allout-do-doublecheck))
(not (allout-aberrant-container-p)))))))
;;;_ > allout-on-heading-p ()
(defalias 'allout-on-heading-p 'allout-on-current-heading-p)
(defalias 'allout-on-heading-p #'allout-on-current-heading-p)
;;;_ > allout-e-o-prefix-p ()
(defun allout-e-o-prefix-p ()
"True if point is located where current topic prefix ends, heading begins."
@ -2768,7 +2756,7 @@ of (before any) topics, in which case we return nil."
(goto-char (point-min))
nil))))
;;;_ > allout-back-to-heading ()
(defalias 'allout-back-to-heading 'allout-back-to-current-heading)
(defalias 'allout-back-to-heading #'allout-back-to-current-heading)
;;;_ > allout-pre-next-prefix ()
(defun allout-pre-next-prefix ()
"Skip forward to just before the next heading line.
@ -2850,7 +2838,7 @@ collapsed."
(allout-beginning-of-current-entry)
(search-forward "\n" nil t)
(forward-char -1))
(defalias 'allout-end-of-heading 'allout-end-of-current-heading)
(defalias 'allout-end-of-heading #'allout-end-of-current-heading)
;;;_ > allout-get-body-text ()
(defun allout-get-body-text ()
"Return the unmangled body text of the topic immediately containing point."
@ -3289,10 +3277,6 @@ Returns the qualifying command, if any, else nil."
(interactive)
(let* ((modified (event-modifiers last-command-event))
(key-num (cond ((numberp last-command-event) last-command-event)
;; for XEmacs character type:
((and (fboundp 'characterp)
(apply 'characterp (list last-command-event)))
(apply 'char-to-int (list last-command-event)))
(t 0)))
mapped-binding)
@ -5137,7 +5121,7 @@ Optional FOLLOWERS arguments dictate exposure for succeeding siblings."
(if (and spec
(allout-descend-to-depth new-depth)
(not (allout-hidden-p)))
(progn (setq got (apply 'allout-old-expose-topic spec))
(progn (setq got (apply #'allout-old-expose-topic spec))
(if (and got (or (not max-pos) (> got max-pos)))
(setq max-pos got)))))))
(while (and followers
@ -5215,7 +5199,7 @@ Optional arg CONTEXT indicates interior levels to include."
(setq flat-index (cdr flat-index)))
;; Dispose of single extra delim:
(setq result (cdr result))))
(apply 'concat result)))
(apply #'concat result)))
;;;_ > allout-stringify-flat-index-plain (flat-index)
(defun allout-stringify-flat-index-plain (flat-index)
"Convert list representing section/subsection/... to document string."
@ -5226,7 +5210,7 @@ Optional arg CONTEXT indicates interior levels to include."
(if result
(cons delim result))))
(setq flat-index (cdr flat-index)))
(apply 'concat result)))
(apply #'concat result)))
;;;_ > allout-stringify-flat-index-indented (flat-index)
(defun allout-stringify-flat-index-indented (flat-index)
"Convert list representing section/subsection/... to document string."
@ -5255,7 +5239,7 @@ Optional arg CONTEXT indicates interior levels to include."
(setq flat-index (cdr flat-index)))
;; Dispose of single extra delim:
(setq result (cdr result))))
(apply 'concat result)))
(apply #'concat result)))
;;;_ > allout-listify-exposed (&optional start end format)
(defun allout-listify-exposed (&optional start end format)
@ -5381,7 +5365,7 @@ header and body. The elements of that list are:
;; Put the list with first at front, to last at back:
(nreverse result))))
(define-obsolete-function-alias 'allout-region-active-p 'region-active-p "28.1")
(define-obsolete-function-alias 'allout-region-active-p #'region-active-p "28.1")
;;_ > allout-process-exposed (&optional func from to frombuf
;;; tobuf format)
@ -5498,7 +5482,7 @@ alternate presentation format for the outline:
(beg (if arg (allout-back-to-current-heading) (point-min)))
(end (if arg (allout-end-of-current-subtree) (point-max)))
(buf (current-buffer))
(start-list ()))
) ;; (start-list ())
(if (eq format 'flat)
(setq format (if arg (save-excursion
(goto-char beg)
@ -5510,7 +5494,7 @@ alternate presentation format for the outline:
end
(current-buffer)
tobuf
format start-list)
format nil) ;; start-list
(goto-char (point-min))
(pop-to-buffer buf)
(goto-char start-pt)))
@ -5622,11 +5606,12 @@ environment. Leaves point at the end of the line."
(begindoc "\\begin{document}\n\\begin{center}\n")
(title (format "%s%s%s%s"
"\\titlecmd{"
(allout-latex-verb-quote (if allout-title
(condition-case nil
(eval allout-title)
(error "<unnamed buffer>"))
"Unnamed Outline"))
(allout-latex-verb-quote
(if allout-title
(condition-case nil
(eval allout-title t)
(error "<unnamed buffer>"))
"Unnamed Outline"))
"}\n"
"\\end{center}\n\n"))
(hsize "\\hsize = 7.5 true in\n")
@ -6219,7 +6204,7 @@ save. See `allout-encrypt-unencrypted-on-saves' for more info."
;;;_ > outlineify-sticky ()
;; outlinify-sticky is correct spelling; provide this alias for sticklers:
;;;###autoload
(defalias 'outlinify-sticky 'outlineify-sticky)
(defalias 'outlinify-sticky #'outlineify-sticky)
;;;###autoload
(defun outlineify-sticky (&optional _arg)
"Activate outline mode and establish file var so it is started subsequently.
@ -6441,7 +6426,7 @@ If BEG is bigger than END we return 0."
;;;_ > allout-format-quote (string)
(defun allout-format-quote (string)
"Return a copy of string with all \"%\" characters doubled."
(apply 'concat
(apply #'concat
(mapcar (lambda (char) (if (= char ?%) "%%" (char-to-string char)))
string)))
(define-obsolete-function-alias 'allout-flatten #'flatten-tree "27.1")

View file

@ -27,16 +27,18 @@
;;; Commentary:
;; Integrates password-store (http://passwordstore.org/) within
;; Integrates password-store (https://passwordstore.org/) within
;; auth-source.
;;; Code:
(require 'seq)
(eval-when-compile (require 'subr-x))
(require 'cl-lib)
(require 'auth-source)
(require 'url-parse)
;; Use `eval-when-compile' after the other `require's to avoid spurious
;; "might not be defined at runtime" warnings.
(eval-when-compile (require 'subr-x))
(defgroup auth-source-pass nil
"password-store integration within auth-source."
@ -123,7 +125,7 @@ ENTRY is the name of a password-store entry.
The key used to retrieve the password is the symbol `secret'.
The convention used as the format for a password-store file is
the following (see http://www.passwordstore.org/#organization):
the following (see https://www.passwordstore.org/#organization):
secret
key1: value1

View file

@ -1,4 +1,4 @@
;;; avoid.el --- make mouse pointer stay out of the way of editing
;;; avoid.el --- make mouse pointer stay out of the way of editing -*- lexical-binding: t -*-
;; Copyright (C) 1993-1994, 2000-2021 Free Software Foundation, Inc.
@ -80,7 +80,6 @@ use either \\[customize] or \\[mouse-avoidance-mode]."
:initialize 'custom-initialize-default
:type '(choice (const :tag "none" nil) (const banish) (const jump)
(const animate) (const exile) (const proteus))
:group 'avoid
:require 'avoid
:version "20.3")
@ -89,25 +88,21 @@ use either \\[customize] or \\[mouse-avoidance-mode]."
"Average distance that mouse will be moved when approached by cursor.
Only applies in Mouse Avoidance mode `jump' and its derivatives.
For best results make this larger than `mouse-avoidance-threshold'."
:type 'integer
:group 'avoid)
:type 'integer)
(defcustom mouse-avoidance-nudge-var 10
"Variability of `mouse-avoidance-nudge-dist' (which see)."
:type 'integer
:group 'avoid)
:type 'integer)
(defcustom mouse-avoidance-animation-delay .01
"Delay between animation steps, in seconds."
:type 'number
:group 'avoid)
:type 'number)
(defcustom mouse-avoidance-threshold 5
"Mouse-pointer's flight distance.
If the cursor gets closer than this, the mouse pointer will move away.
Only applies in Mouse Avoidance modes `animate' and `jump'."
:type 'integer
:group 'avoid)
:type 'integer)
(defcustom mouse-avoidance-banish-position '((frame-or-window . frame)
(side . right)
@ -380,7 +375,7 @@ redefine this function to suit your own tastes."
(mouse-avoidance-nudge-mouse)
(if (not (eq (selected-frame) (car old-pos)))
;; This should never happen.
(apply 'set-mouse-position old-pos)))))
(apply #'set-mouse-position old-pos)))))
;;;###autoload
(defun mouse-avoidance-mode (&optional mode)

View file

@ -120,8 +120,6 @@
;; can cycle through all file buffers and *scratch* although your current
;; configuration perhaps is "files" which ignores buffer *scratch*.
;;; History:
;;; Code:
;; ----------------------------------------------------------------------

View file

@ -27,7 +27,7 @@
;; This collection of functions implements the features of calendar.el
;; and diary-lib.el that deal with the Baháí calendar.
;; The Baháí (http://www.bahai.org) calendar system is based on a
;; The Baháí (https://www.bahai.org) calendar system is based on a
;; solar cycle of 19 months with 19 days each. The four remaining
;; "intercalary" days are called the Ayyám-i-Há (days of Há), and are
;; placed between the 18th and 19th months. They are meant as a time

View file

@ -66,7 +66,7 @@
;; 0.02:
;; - Should work in XEmacs now. Thanks to Len Trigg for the XEmacs patches!
;; - Added exporting from Emacs diary to ical.
;; - Some bugfixes, after testing with calendars from http://icalshare.com.
;; - Some bugfixes, after testing with calendars from https://icalshare.com.
;; - Tested with Emacs 21.3.2 and XEmacs 21.4.12
;; 0.01: (2003-03-21)
@ -105,10 +105,6 @@
;;; Code:
(defconst icalendar-version "0.19"
"Version number of icalendar.el.")
(make-obsolete-variable 'icalendar-version nil "28.1")
;; ======================================================================
;; Customizables
;; ======================================================================
@ -2557,6 +2553,11 @@ the entry."
(or (icalendar--get-event-property event 'URL) "")
(or (icalendar--get-event-property event 'CLASS) "")))
;; Obsolete
(defconst icalendar-version "0.19" "Version number of icalendar.el.")
(make-obsolete-variable 'icalendar-version 'emacs-version "28.1")
(provide 'icalendar)
;;; icalendar.el ends here

View file

@ -41,7 +41,7 @@
;;
;; The standard can be found at:
;;
;; http://www.loc.gov/standards/datetime/iso-tc154-wg5_n0038_iso_wd_8601-1_2016-02-16.pdf
;; https://www.loc.gov/standards/datetime/iso-tc154-wg5_n0038_iso_wd_8601-1_2016-02-16.pdf
;;
;; The Wikipedia page on the standard is also informative:
;;

View file

@ -69,8 +69,6 @@
;; your average working time, and will make sure that the various
;; display functions return the correct value.
;;; History:
;;; Code:
(require 'cl-lib)

View file

@ -91,13 +91,13 @@ MODES can be a symbol or a list of symbols.
FUNCTION does not have arguments."
(or (listp modes) (setq modes (list modes)))
(mode-local-map-file-buffers
function #'(lambda ()
(let ((mm (mode-local-equivalent-mode-p major-mode))
(ans nil))
(while (and (not ans) mm)
(setq ans (memq (car mm) modes)
mm (cdr mm)) )
ans))))
function (lambda ()
(let ((mm (mode-local-equivalent-mode-p major-mode))
(ans nil))
(while (and (not ans) mm)
(setq ans (memq (car mm) modes)
mm (cdr mm)) )
ans))))
;;; Hook machinery
;;
@ -323,14 +323,14 @@ Elements are (SYMBOL . PREVIOUS-VALUE), describing one variable."
(dolist (mode modes)
(when (setq table (get mode 'mode-local-symbol-table))
(mapatoms
#'(lambda (var)
(when (get var 'mode-variable-flag)
(let ((v (intern (symbol-name var))))
;; Save the current buffer-local value of the
;; mode-local variable.
(and (local-variable-p v (current-buffer))
(push (cons v (symbol-value v)) old-locals))
(set (make-local-variable v) (symbol-value var)))))
(lambda (var)
(when (get var 'mode-variable-flag)
(let ((v (intern (symbol-name var))))
;; Save the current buffer-local value of the
;; mode-local variable.
(and (local-variable-p v (current-buffer))
(push (cons v (symbol-value v)) old-locals))
(set (make-local-variable v) (symbol-value var)))))
table)))
old-locals)))
@ -348,9 +348,9 @@ If MODE is not specified it defaults to current `major-mode'."
(while mode
(when (setq table (get mode 'mode-local-symbol-table))
(mapatoms
#'(lambda (var)
(when (get var 'mode-variable-flag)
(kill-local-variable (intern (symbol-name var)))))
(lambda (var)
(when (get var 'mode-variable-flag)
(kill-local-variable (intern (symbol-name var)))))
table))
(setq mode (get-mode-local-parent mode)))))
@ -428,7 +428,7 @@ Return the value of the last VAL."
;; Save mode bindings
(mode-local-bind (list ,@bl) '(mode-variable-flag t) ',mode)
;; Assign to local variables in all existing buffers in MODE
(mode-local-map-mode-buffers #'(lambda () ,@sl) ',mode)
(mode-local-map-mode-buffers (lambda () ,@sl) ',mode)
;; Return the last value
,tmp)
)))
@ -893,7 +893,7 @@ invoked interactively."
(interactive
(list (completing-read
"Mode: " obarray
#'(lambda (s) (get s 'mode-local-symbol-table))
(lambda (s) (get s 'mode-local-symbol-table))
t (symbol-name major-mode))))
(when (setq mode (intern-soft mode))
(mode-local-describe-bindings-1 mode (called-interactively-p 'any))))

View file

@ -153,7 +153,8 @@ Optional argument FACE specifies the face to do the highlighting."
;; with a reference face needed for the color.
(pulse-reset-face face)
(let* ((start (color-name-to-rgb
(face-background 'pulse-highlight-start-face)))
(face-background 'pulse-highlight-start-face
nil 'default)))
(stop (color-name-to-rgb (face-background 'default)))
(colors (mapcar (apply-partially 'apply 'color-rgb-to-hex)
(color-gradient start stop pulse-iterations))))

View file

@ -678,15 +678,15 @@ This function returns semantic tags without overlays."
(if tag
(if (car tag)
(setq tag (mapcar
#'(lambda (tag)
;; Set the 'reparse-symbol property to
;; NONTERM unless it was already setup
;; by a tag expander
(or (semantic--tag-get-property
tag 'reparse-symbol)
(semantic--tag-put-property
tag 'reparse-symbol nonterm))
tag)
(lambda (tag)
;; Set the 'reparse-symbol property to
;; NONTERM unless it was already setup
;; by a tag expander
(or (semantic--tag-get-property
tag 'reparse-symbol)
(semantic--tag-put-property
tag 'reparse-symbol nonterm))
tag)
(semantic--tag-expand tag))
result (append result tag))
;; No error in this case, a purposeful nil means don't

View file

@ -2244,8 +2244,8 @@ actually in their parent which is not accessible.")
(if (obarrayp semantic-lex-spp-project-macro-symbol-obarray)
(let ((macros nil))
(mapatoms
#'(lambda (symbol)
(setq macros (cons symbol macros)))
(lambda (symbol)
(setq macros (cons symbol macros)))
semantic-lex-spp-project-macro-symbol-obarray)
(dolist (S macros)
(princ " ")

View file

@ -25,9 +25,8 @@
;;
;; Major mode for editing Bovine's input grammar (.by) files.
;;; History:
;;; Code:
(require 'semantic)
(require 'semantic/grammar)
(require 'semantic/find)
@ -476,7 +475,7 @@ Menu items are appended to the common grammar menu.")
(with-current-buffer (find-file-noselect infile)
(setq infile buffer-file-name)
(if outdir (setq default-directory outdir))
(semantic-grammar-create-package nil t))
(semantic-grammar-create-package t t))
(error (message "%s" (error-message-string err)) nil)))
lang filename copyright-end)
(when (and packagename

View file

@ -274,7 +274,7 @@ For instance: /home/<username>/.semanticdb/!usr!include!BROWSE"
(insert-file-contents B)
(let ((ans nil)
(efcn (symbol-function 'ebrowse-show-progress)))
(fset 'ebrowse-show-progress #'(lambda (&rest _junk) nil))
(fset 'ebrowse-show-progress (lambda (&rest _junk) nil))
(unwind-protect ;; Protect against errors w/ ebrowse
(setq ans (list B (ebrowse-read)))
;; These items must always happen

View file

@ -56,7 +56,7 @@ values."
(interactive
(list (completing-read
"Enable in Mode: " obarray
#'(lambda (s) (get s 'mode-local-symbol-table))
(lambda (s) (get s 'mode-local-symbol-table))
t (symbol-name major-mode))))
;; First, make sure the version is ok.

View file

@ -154,8 +154,8 @@ Optional argument BUFFER is the buffer to search for changes in."
(when (overlay-get (car ol) 'semantic-change)
(setq ret (cons (car ol) ret)))
(setq ol (cdr ol)))
(sort ret #'(lambda (a b) (< (overlay-start a)
(overlay-start b)))))))
(sort ret (lambda (a b) (< (overlay-start a)
(overlay-start b)))))))
(defun semantic-edits-change-function-handle-changes (start end _length)
"Run whenever a buffer controlled by `semantic-mode' change.

View file

@ -270,11 +270,11 @@ later installation should be done in MODE hook."
(mode-local-bind
;; Add the semantic- prefix to OVERLOAD short names.
(mapcar
#'(lambda (e)
(let ((name (symbol-name (car e))))
(if (string-match "^semantic-" name)
e
(cons (intern (format "semantic-%s" name)) (cdr e)))))
(lambda (e)
(let ((name (symbol-name (car e))))
(if (string-match "^semantic-" name)
e
(cons (intern (format "semantic-%s" name)) (cdr e)))))
overrides)
(list 'constant-flag (not transient)
'override-flag t)))

View file

@ -23,9 +23,6 @@
;;
;; Major mode framework for editing Semantic's input grammar files.
;;; History:
;;
;;; Code:
(require 'semantic)
@ -143,12 +140,12 @@ It ignores whitespaces, newlines and comments."
ARGS are ASSOC's key value list."
(let ((key t))
`(semantic-tag-make-plist
,@(mapcar #'(lambda (i)
(prog1
(if key
(list 'quote i)
i)
(setq key (not key))))
,@(mapcar (lambda (i)
(prog1
(if key
(list 'quote i)
i)
(setq key (not key))))
args))))
(defsubst semantic-grammar-quote-p (sym)
@ -193,11 +190,11 @@ That is tag names plus names defined in tag attribute `:rest'."
class (current-buffer))))
(apply #'append
(mapcar
#'(lambda (tag)
(mapcar
#'intern
(cons (semantic-tag-name tag)
(semantic-tag-get-attribute tag :rest))))
(lambda (tag)
(mapcar
#'intern
(cons (semantic-tag-name tag)
(semantic-tag-get-attribute tag :rest))))
tags))))
(defsubst semantic-grammar-item-text (item)
@ -298,9 +295,9 @@ foo.by it is foo-by."
That is an alist of (VALUE . TOKEN) where VALUE is the string value of
the keyword and TOKEN is the terminal symbol identifying the keyword."
(mapcar
#'(lambda (key)
(cons (semantic-tag-get-attribute key :value)
(intern (semantic-tag-name key))))
(lambda (key)
(cons (semantic-tag-get-attribute key :value)
(intern (semantic-tag-name key))))
(semantic-find-tags-by-class 'keyword (current-buffer))))
(defun semantic-grammar-keyword-properties (keywords)
@ -600,9 +597,6 @@ Typically a DEFINE expression should look like this:
;; PLEASE DO NOT MANUALLY EDIT THIS FILE! It is automatically
;; generated from the grammar file " gram ".
;;; History:
;;
;;; Code:
(require 'semantic/lex)
@ -1069,7 +1063,7 @@ See also the variable `semantic-grammar-file-regexp'."
(setq semantic--grammar-macros-regexp-1
(concat "(\\s-*"
(regexp-opt
(mapcar #'(lambda (e) (symbol-name (car e)))
(mapcar (lambda (e) (symbol-name (car e)))
semantic-grammar-macros)
t)
"\\>"))
@ -1862,11 +1856,11 @@ Optional argument COLOR determines if color is added to the text."
(setq label "Keyword: ")
(let (summary)
(semantic--find-tags-by-function
#'(lambda (put)
(unless summary
(setq summary (cdr (assoc "summary"
(semantic-tag-get-attribute
put :value))))))
(lambda (put)
(unless summary
(setq summary (cdr (assoc "summary"
(semantic-tag-get-attribute
put :value))))))
;; Get `put' tag with TAG name.
(semantic-find-tags-by-name-regexp
(regexp-quote (semantic-tag-name tag))

View file

@ -216,9 +216,9 @@ And also manages services that depend on tag values."
(let* ((inhibit-quit nil)
(buffers (delq (current-buffer)
(delq nil
(mapcar #'(lambda (b)
(and (buffer-file-name b)
b))
(mapcar (lambda (b)
(and (buffer-file-name b)
b))
(buffer-list)))))
;; safe ;; This safe is not used, but could be.
others
@ -356,9 +356,9 @@ Uses `semantic-idle-work-for-on-buffer' to do the work."
(cb (current-buffer))
(buffers (delq (current-buffer)
(delq nil
(mapcar #'(lambda (b)
(and (buffer-file-name b)
b))
(mapcar (lambda (b)
(and (buffer-file-name b)
b))
(buffer-list)))))
safe) ;; errbuf
;; First, handle long tasks in the current buffer.

View file

@ -429,12 +429,12 @@ Optional argument PARENT is a tag parent of STREAM."
Clears all imenu menus that may be depending on the database."
(require 'semantic/db-mode)
(semantic-map-buffers
#'(lambda ()
;; Set up semanticdb environment if enabled.
(if (semanticdb-minor-mode-p)
(semanticdb-semantic-init-hook-fcn))
;; Clear imenu cache to redraw the imenu.
(semantic-imenu-flush-fcn))))
(lambda ()
;; Set up semanticdb environment if enabled.
(if (semanticdb-minor-mode-p)
(semanticdb-semantic-init-hook-fcn))
;; Clear imenu cache to redraw the imenu.
(semantic-imenu-flush-fcn))))
(add-hook 'semanticdb-mode-hook #'semantic-imenu-semanticdb-hook)

View file

@ -395,11 +395,11 @@ receives two arguments: the javadoc keyword and its associated
removed from the result list."
(delq nil
(mapcar
#'(lambda (k)
(let* ((tag (semantic-java-doc-tag k))
(plist (semantic-lex-keyword-get tag 'javadoc)))
(if (or (not property) (plist-get plist property))
(funcall fun k plist))))
(lambda (k)
(let* ((tag (semantic-java-doc-tag k))
(plist (semantic-lex-keyword-get tag 'javadoc)))
(if (or (not property) (plist-get plist property))
(funcall fun k plist))))
semantic-java-doc-line-tags)))
@ -417,59 +417,59 @@ removed from the result list."
(or semantic-java-doc-with-name-tags
(setq semantic-java-doc-with-name-tags
(semantic-java-doc-keywords-map
#'(lambda (k _p) k)
(lambda (k _p) k)
'with-name)))
(or semantic-java-doc-with-ref-tags
(setq semantic-java-doc-with-ref-tags
(semantic-java-doc-keywords-map
#'(lambda (k _p) k)
(lambda (k _p) k)
'with-ref)))
(or semantic-java-doc-extra-type-tags
(setq semantic-java-doc-extra-type-tags
(semantic-java-doc-keywords-map
#'(lambda (k p)
(if (memq 'type (plist-get p 'usage))
k))
(lambda (k p)
(if (memq 'type (plist-get p 'usage))
k))
'opt)))
(or semantic-java-doc-extra-function-tags
(setq semantic-java-doc-extra-function-tags
(semantic-java-doc-keywords-map
#'(lambda (k p)
(if (memq 'function (plist-get p 'usage))
k))
(lambda (k p)
(if (memq 'function (plist-get p 'usage))
k))
'opt)))
(or semantic-java-doc-extra-variable-tags
(setq semantic-java-doc-extra-variable-tags
(semantic-java-doc-keywords-map
#'(lambda (k p)
(if (memq 'variable (plist-get p 'usage))
k))
(lambda (k p)
(if (memq 'variable (plist-get p 'usage))
k))
'opt)))
(or semantic-java-doc-type-tags
(setq semantic-java-doc-type-tags
(semantic-java-doc-keywords-map
#'(lambda (k p)
(if (memq 'type (plist-get p 'usage))
k)))))
(lambda (k p)
(if (memq 'type (plist-get p 'usage))
k)))))
(or semantic-java-doc-function-tags
(setq semantic-java-doc-function-tags
(semantic-java-doc-keywords-map
#'(lambda (k p)
(if (memq 'function (plist-get p 'usage))
k)))))
(lambda (k p)
(if (memq 'function (plist-get p 'usage))
k)))))
(or semantic-java-doc-variable-tags
(setq semantic-java-doc-variable-tags
(semantic-java-doc-keywords-map
#'(lambda (k p)
(if (memq 'variable (plist-get p 'usage))
k)))))
(lambda (k p)
(if (memq 'variable (plist-get p 'usage))
k)))))
)

View file

@ -278,10 +278,10 @@ The return list is meant to be saved in a semanticdb table."
(let (macros)
(when (obarrayp semantic-lex-spp-dynamic-macro-symbol-obarray)
(mapatoms
#'(lambda (symbol)
(setq macros (cons (cons (symbol-name symbol)
(symbol-value symbol))
macros)))
(lambda (symbol)
(setq macros (cons (cons (symbol-name symbol)
(symbol-value symbol))
macros)))
semantic-lex-spp-dynamic-macro-symbol-obarray))
macros))
@ -291,18 +291,18 @@ The value of each symbol is the replacement stream."
(let (macros)
(when (obarrayp semantic-lex-spp-macro-symbol-obarray)
(mapatoms
#'(lambda (symbol)
(setq macros (cons symbol macros)))
(lambda (symbol)
(setq macros (cons symbol macros)))
semantic-lex-spp-macro-symbol-obarray))
(when (obarrayp semantic-lex-spp-project-macro-symbol-obarray)
(mapatoms
#'(lambda (symbol)
(setq macros (cons symbol macros)))
(lambda (symbol)
(setq macros (cons symbol macros)))
semantic-lex-spp-project-macro-symbol-obarray))
(when (obarrayp semantic-lex-spp-dynamic-macro-symbol-obarray)
(mapatoms
#'(lambda (symbol)
(setq macros (cons symbol macros)))
(lambda (symbol)
(setq macros (cons symbol macros)))
semantic-lex-spp-dynamic-macro-symbol-obarray))
macros))

View file

@ -192,9 +192,9 @@ If optional PROPERTY is non-nil, call FUN only on every symbol which
as a PROPERTY value. FUN receives a symbol as argument."
(if (obarrayp table)
(mapatoms
#'(lambda (symbol)
(if (or (null property) (get symbol property))
(funcall fun symbol)))
(lambda (symbol)
(if (or (null property) (get symbol property))
(funcall fun symbol)))
table)))
;;; Lexical keyword table handling.
@ -286,7 +286,7 @@ If optional PROPERTY is non-nil, return only keywords which have a
PROPERTY set."
(let (keywords)
(semantic-lex-map-keywords
#'(lambda (symbol) (setq keywords (cons symbol keywords)))
(lambda (symbol) (setq keywords (cons symbol keywords)))
property)
keywords))
@ -462,7 +462,7 @@ If optional PROPERTY is non-nil, return only type symbols which have
PROPERTY set."
(let (types)
(semantic-lex-map-types
#'(lambda (symbol) (setq types (cons symbol types)))
(lambda (symbol) (setq types (cons symbol types)))
property)
types))

View file

@ -162,7 +162,7 @@ too an interactive function used to toggle the mode."
;; Update the minor mode format.
(semantic-mode-line-update)
;; Then turn MODE on or off in every Semantic enabled buffer.
(semantic-map-buffers #'(lambda () (funcall mode arg))))
(semantic-map-buffers (lambda () (funcall mode arg))))
;;;;
;;;; Minor mode to highlight areas that a user edits.

View file

@ -22,13 +22,10 @@
;; along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
;;; Commentary:
;;
;; Here are functions necessary to use the Wisent LALR parser from
;; Semantic environment.
;;; History:
;;
;;; Code:
(require 'semantic)

View file

@ -35,9 +35,6 @@
;;
;; For more details on Wisent itself read the Wisent manual.
;;; History:
;;
;;; Code:
(require 'semantic/wisent)
(eval-when-compile (require 'cl-lib))
@ -69,7 +66,7 @@
"Define a context NAME that will bind variables VARS."
(declare (indent 1))
(let* ((context (wisent-context-name name))
(declarations (mapcar #'(lambda (v) (list 'defvar v)) vars)))
(declarations (mapcar (lambda (v) (list 'defvar v)) vars)))
`(progn
,@declarations
(eval-when-compile
@ -3488,11 +3485,11 @@ See also `wisent-compile-grammar' for more details on AUTOMATON."
;; in local variable OBN.
,@(let (obcode)
(mapatoms
#'(lambda (s)
(setq obcode
(cons `(fset (intern ,(symbol-name s) ,obn)
#',(symbol-function s))
obcode)))
(lambda (s)
(setq obcode
(cons `(fset (intern ,(symbol-name s) ,obn)
#',(symbol-function s))
obcode)))
obv)
obcode)
;; Generate code to create the automaton.
@ -3504,18 +3501,18 @@ See also `wisent-compile-grammar' for more details on AUTOMATON."
,@(mapcar
;; Use name `st' rather than `state' since `state' is
;; defined as dynbound in `semantic-actions' context above :-( !
#'(lambda (st) ;; for each state
`(list
,@(mapcar
#'(lambda (tr) ;; for each transition
(let ((k (car tr)) ; token
(a (cdr tr))) ; action
(if (and (symbolp a)
(intern-soft (symbol-name a) obv))
`(cons ,(if (symbolp k) `(quote ,k) k)
(intern-soft ,(symbol-name a) ,obn))
`(quote ,tr))))
st)))
(lambda (st) ;; for each state
`(list
,@(mapcar
(lambda (tr) ;; for each transition
(let ((k (car tr)) ; token
(a (cdr tr))) ; action
(if (and (symbolp a)
(intern-soft (symbol-name a) obv))
`(cons ,(if (symbolp k) `(quote ,k) k)
(intern-soft ,(symbol-name a) ,obn))
`(quote ,tr))))
st)))
(aref automaton 0)))
;; The code of the goto table is unchanged.
,(aref automaton 1)

View file

@ -198,10 +198,10 @@ See also the function `wisent-skip-token'."
(defun wisent-grammar-assocs ()
"Return associativity and precedence level definitions."
(mapcar
#'(lambda (tag)
(cons (intern (semantic-tag-name tag))
(mapcar #'semantic-grammar-item-value
(semantic-tag-get-attribute tag :value))))
(lambda (tag)
(cons (intern (semantic-tag-name tag))
(mapcar #'semantic-grammar-item-value
(semantic-tag-get-attribute tag :value))))
(semantic-find-tags-by-class 'assoc (current-buffer))))
(defun wisent-grammar-terminals ()
@ -209,14 +209,14 @@ See also the function `wisent-skip-token'."
Keep order of declaration in the WY file without duplicates."
(let (terms)
(mapc
#'(lambda (tag)
(mapcar #'(lambda (name)
(add-to-list 'terms (intern name)))
(cons (semantic-tag-name tag)
(semantic-tag-get-attribute tag :rest))))
(lambda (tag)
(mapcar (lambda (name)
(add-to-list 'terms (intern name)))
(cons (semantic-tag-name tag)
(semantic-tag-get-attribute tag :rest))))
(semantic--find-tags-by-function
#'(lambda (tag)
(memq (semantic-tag-class tag) '(token keyword)))
(lambda (tag)
(memq (semantic-tag-class tag) '(token keyword)))
(current-buffer)))
(nreverse terms)))
@ -477,7 +477,7 @@ Menu items are appended to the common grammar menu.")
(condition-case err
(with-current-buffer (find-file-noselect infile)
(if outdir (setq default-directory outdir))
(semantic-grammar-create-package nil t))
(semantic-grammar-create-package t t))
(error (message "%s" (error-message-string err)) nil)))
output-data)
(when (setq output-data (assoc packagename wisent-make-parsers--parser-file-name))

View file

@ -24,9 +24,6 @@
;;; Commentary:
;;
;;; History:
;;
;;; Code:
(require 'semantic/wisent)

View file

@ -27,8 +27,6 @@
;;; Code:
(require 'rx)
;; Try to load python support, but fail silently since it is only used
;; for optional functionality
(require 'python nil t)

View file

@ -34,9 +34,6 @@
;;
;; For more details on Wisent itself read the Wisent manual.
;;; History:
;;
;;; Code:
(defgroup wisent nil

View file

@ -1,4 +1,4 @@
;;; chistory.el --- list command history
;;; chistory.el --- list command history -*- lexical-binding: t -*-
;; Copyright (C) 1985, 2001-2021 Free Software Foundation, Inc.
@ -71,8 +71,7 @@ If that function is given a list whose car is an element of this list,
then it will return non-nil (indicating the list should be discarded from
the history).
Initially, all commands related to the command history are discarded."
:type '(repeat symbol)
:group 'chistory)
:type '(repeat symbol))
(defvar list-command-history-filter 'default-command-history-filter
"Predicate to test which commands should be excluded from the history listing.
@ -90,8 +89,7 @@ from the command history."
(defcustom list-command-history-max 32
"If non-nil, maximum length of the listing produced by `list-command-history'."
:type '(choice integer (const nil))
:group 'chistory)
:type '(choice integer (const nil)))
;;;###autoload
(defun list-command-history ()
@ -127,10 +125,10 @@ The buffer is left in Command History mode."
(let ((map (make-sparse-keymap)))
(set-keymap-parent map (make-composed-keymap lisp-mode-shared-map
special-mode-map))
(define-key map "x" 'command-history-repeat)
(define-key map "\n" 'next-line)
(define-key map "\r" 'next-line)
(define-key map "\177" 'previous-line)
(define-key map "x" #'command-history-repeat)
(define-key map "\n" #'next-line)
(define-key map "\r" #'next-line)
(define-key map "\177" #'previous-line)
map)
"Keymap for `command-history-mode'.")
@ -145,8 +143,7 @@ Keybindings:
(defcustom command-history-hook nil
"If non-nil, its value is called on entry to `command-history-mode'."
:type 'hook
:group 'chistory)
:type 'hook)
(defun command-history-revert (_ignore-auto _noconfirm)
(list-command-history))
@ -165,7 +162,7 @@ The buffer for that command is the previous current buffer."
;;;###autoload
(defun command-history ()
"Examine commands from `command-history' in a buffer.
"Examine commands from variable `command-history' in a buffer.
The number of commands listed is controlled by `list-command-history-max'.
The command history is filtered by `list-command-history-filter' if non-nil.
Use \\<command-history-map>\\[command-history-repeat] to repeat the command on the current line.

View file

@ -421,7 +421,7 @@ in the next one.")
(defun scheme-load-file (file-name)
"Load a Scheme file FILE-NAME into the inferior Scheme process."
(interactive (comint-get-source "Load Scheme file: " scheme-prev-l/c-dir/file
(interactive (comint-get-source "Load Scheme file" scheme-prev-l/c-dir/file
scheme-source-modes t)) ; t because `load'
; needs an exact name
(comint-check-source file-name) ; Check to see if buffer needs saved.
@ -433,7 +433,7 @@ in the next one.")
(defun scheme-compile-file (file-name)
"Compile a Scheme file FILE-NAME in the inferior Scheme process."
(interactive (comint-get-source "Compile Scheme file: "
(interactive (comint-get-source "Compile Scheme file"
scheme-prev-l/c-dir/file
scheme-source-modes
nil)) ; nil because COMPILE doesn't

View file

@ -2946,7 +2946,7 @@ two arguments are used for determining defaults.) If MUSTMATCH-P is true,
then the filename reader will only accept a file that exists.
A typical use:
(interactive (comint-get-source \"Compile file: \" prev-lisp-dir/file
(interactive (comint-get-source \"Compile file\" prev-lisp-dir/file
\\='(lisp-mode) t))"
(let* ((def (comint-source-default prev-dir/file source-modes))
(stringfile (comint-extract-string))
@ -2959,9 +2959,7 @@ A typical use:
(car def)))
(deffile (if sfile-p (file-name-nondirectory stringfile)
(cdr def)))
(ans (read-file-name (if deffile (format "%s(default %s) "
prompt deffile)
prompt)
(ans (read-file-name (format-prompt prompt deffile)
defdir
(concat defdir deffile)
mustmatch-p)))

View file

@ -1,7 +1,6 @@
;;; completion.el --- dynamic word-completion code
;;; completion.el --- dynamic word-completion code -*- lexical-binding: t; -*-
;; Copyright (C) 1990, 1993, 1995, 1997, 2001-2021 Free Software
;; Foundation, Inc.
;; Copyright (C) 1990-2021 Free Software Foundation, Inc.
;; Maintainer: emacs-devel@gnu.org
;; Keywords: abbrev convenience
@ -286,62 +285,52 @@
(defcustom enable-completion t
"Non-nil means enable recording and saving of completions.
If nil, no new words are added to the database or saved to the init file."
:type 'boolean
:group 'completion)
:type 'boolean)
(defcustom save-completions-flag t
"Non-nil means save most-used completions when exiting Emacs.
See also `save-completions-retention-time'."
:type 'boolean
:group 'completion)
:type 'boolean)
(defcustom save-completions-file-name
(locate-user-emacs-file "completions" ".completions")
"The filename to save completions to."
:type 'file
:group 'completion)
:type 'file)
(defcustom save-completions-retention-time 336
"Discard a completion if unused for this many hours.
\(1 day = 24, 1 week = 168). If this is 0, non-permanent completions
will not be saved unless these are used. Default is two weeks."
:type 'integer
:group 'completion)
:type 'integer)
(defcustom completion-on-separator-character nil
"Non-nil means separator characters mark previous word as used.
This means the word will be saved as a completion."
:type 'boolean
:group 'completion)
:type 'boolean)
(defcustom completions-file-versions-kept kept-new-versions
"Number of versions to keep for the saved completions file."
:type 'integer
:group 'completion)
:type 'integer)
(defcustom completion-prompt-speed-threshold 4800
"Minimum output speed at which to display next potential completion."
:type 'integer
:group 'completion)
:type 'integer)
(defcustom completion-cdabbrev-prompt-flag nil
"If non-nil, the next completion prompt does a cdabbrev search.
This can be time consuming."
:type 'boolean
:group 'completion)
:type 'boolean)
(defcustom completion-search-distance 15000
"How far to search in the buffer when looking for completions.
In number of characters. If nil, search the whole buffer."
:type 'integer
:group 'completion)
:type 'integer)
(defcustom completions-merging-modes '(lisp c)
"List of modes {`c' or `lisp'} for automatic completions merging.
Definitions from visited files which have these modes
are automatically added to the completion database."
:type '(set (const lisp) (const c))
:group 'completion)
:type '(set (const lisp) (const c)))
;;(defvar *completion-auto-save-period* 1800
;; "The period in seconds to wait for emacs to be idle before autosaving
@ -950,9 +939,9 @@ Each symbol is bound to a single completion entry.")
;; READER Macros
(defalias 'cmpl-prefix-entry-head 'car)
(defalias 'cmpl-prefix-entry-head #'car)
(defalias 'cmpl-prefix-entry-tail 'cdr)
(defalias 'cmpl-prefix-entry-tail #'cdr)
;; WRITER Macros
@ -978,31 +967,27 @@ Each symbol is bound to a single completion entry.")
(setq cmpl-prefix-obarray (make-vector cmpl-obarray-length 0))
(setq cmpl-obarray (make-vector cmpl-obarray-length 0)))
(defvar completions-list-return-value)
(defun list-all-completions ()
"Return a list of all the known completion entries."
(let ((completions-list-return-value nil))
(mapatoms 'list-all-completions-1 cmpl-prefix-obarray)
completions-list-return-value))
(let ((return-value nil))
(mapatoms (lambda (prefix-symbol)
(if (boundp prefix-symbol)
(setq return-value
(append (cmpl-prefix-entry-head
(symbol-value prefix-symbol))
return-value))))
cmpl-prefix-obarray)
return-value))
(defun list-all-completions-1 (prefix-symbol)
(if (boundp prefix-symbol)
(setq completions-list-return-value
(append (cmpl-prefix-entry-head (symbol-value prefix-symbol))
completions-list-return-value))))
(defun list-all-completions-by-hash-bucket ()
(defun list-all-completions-by-hash-bucket () ;FIXME: Unused!
"Return list of lists of known completion entries, organized by hash bucket."
(let ((completions-list-return-value nil))
(mapatoms 'list-all-completions-by-hash-bucket-1 cmpl-prefix-obarray)
completions-list-return-value))
(defun list-all-completions-by-hash-bucket-1 (prefix-symbol)
(if (boundp prefix-symbol)
(setq completions-list-return-value
(cons (cmpl-prefix-entry-head (symbol-value prefix-symbol))
completions-list-return-value))))
(let ((return-value nil))
(mapatoms (lambda (prefix-symbol)
(if (boundp prefix-symbol)
(push (cmpl-prefix-entry-head (symbol-value prefix-symbol))
return-value)))
cmpl-prefix-obarray)
return-value))
;;-----------------------------------------------
@ -2155,7 +2140,6 @@ TYPE is the type of the wrapper to be added. Can be :before or :under."
(define-minor-mode dynamic-completion-mode
"Toggle dynamic word-completion on or off."
:global t
:group 'completion
;; This is always good, not specific to dynamic-completion-mode.
(define-key function-key-map [C-return] [?\C-\r])
@ -2239,7 +2223,7 @@ TYPE is the type of the wrapper to be added. Can be :before or :under."
(completion-def-wrapper 'delete-backward-char-untabify :backward)
;; Old name, non-namespace-clean.
(defalias 'initialize-completions 'completion-initialize)
(defalias 'initialize-completions #'completion-initialize)
(provide 'completion)

View file

@ -828,7 +828,7 @@ the mode-line."
(defvar dframe-version "1.3"
"The current version of the dedicated frame library.")
(make-obsolete-variable 'dframe-version nil "28.1")
(make-obsolete-variable 'dframe-version 'emacs-version "28.1")
(provide 'dframe)

View file

@ -1,4 +1,4 @@
;;; dirtrack.el --- Directory Tracking by watching the prompt
;;; dirtrack.el --- Directory Tracking by watching the prompt -*- lexical-binding: t -*-
;; Copyright (C) 1996, 2001-2021 Free Software Foundation, Inc.
@ -77,7 +77,7 @@
;; Running under tcsh:
;; (setq-default dirtrack-list '("^%E \\([^ ]+\\)" 1))
;;
;; It might be worth mentioning in your file that emacs sources start up
;; It might be worth mentioning in your file that Emacs sources start up
;; files of the form: ~/.emacs_<SHELL> where <SHELL> is the name of the
;; shell. So for example, I have the following in ~/.emacs_tcsh:
;;
@ -123,7 +123,6 @@
"List for directory tracking.
First item is a regexp that describes where to find the path in a prompt.
Second is a number, the regexp group to match."
:group 'dirtrack
:type '(sexp (regexp :tag "Prompt Expression")
(integer :tag "Regexp Group"))
:version "24.1")
@ -132,12 +131,10 @@ Second is a number, the regexp group to match."
(defcustom dirtrack-debug nil
"If non-nil, the function `dirtrack' will report debugging info."
:group 'dirtrack
:type 'boolean)
(defcustom dirtrack-debug-buffer "*Directory Tracking Log*"
"Buffer in which to write directory tracking debug information."
:group 'dirtrack
:type 'string)
(defcustom dirtrack-directory-function
@ -145,19 +142,16 @@ Second is a number, the regexp group to match."
'dirtrack-windows-directory-function
'file-name-as-directory)
"Function to apply to the prompt directory for comparison purposes."
:group 'dirtrack
:type 'function)
(defcustom dirtrack-canonicalize-function
(if (memq system-type '(ms-dos windows-nt cygwin))
'downcase 'identity)
"Function to apply to the default directory for comparison purposes."
:group 'dirtrack
:type 'function)
(defcustom dirtrack-directory-change-hook nil
"Hook that is called when a directory change is made."
:group 'dirtrack
:type 'hook)

View file

@ -1802,11 +1802,6 @@ If BACKWARD is non-nil, jump to the previous match."
(remove-overlays (point-min) (point-max) 'doc-view t)
(if (consp image-mode-winprops-alist) (setq image-mode-winprops-alist nil)))
(defun doc-view-intersection (l1 l2)
(let ((l ()))
(dolist (x l1) (if (memq x l2) (push x l)))
l))
(defun doc-view-set-doc-type ()
"Figure out the current document type (`doc-view-doc-type')."
(let ((name-types
@ -1841,7 +1836,7 @@ If BACKWARD is non-nil, jump to the previous match."
((looking-at "AT&TFORM") '(djvu))))))
(setq-local
doc-view-doc-type
(car (or (doc-view-intersection name-types content-types)
(car (or (nreverse (seq-intersection name-types content-types #'eq))
(when (and name-types content-types)
(error "Conflicting types: name says %s but content says %s"
name-types content-types))
@ -2146,6 +2141,12 @@ See the command `doc-view-mode' for more information on this mode."
(add-hook 'bookmark-after-jump-hook show-fn-sym)
(bookmark-default-handler bmk)))
;; Obsolete.
(defun doc-view-intersection (l1 l2)
(declare (obsolete seq-intersection "28.1"))
(nreverse (seq-intersection l1 l2 #'eq)))
(provide 'doc-view)
;; Local Variables:

View file

@ -1,4 +1,4 @@
;;; double.el --- support for keyboard remapping with double clicking
;;; double.el --- support for keyboard remapping with double clicking -*- lexical-binding: t -*-
;; Copyright (C) 1994, 1997-1998, 2001-2021 Free Software Foundation,
;; Inc.
@ -67,7 +67,6 @@ Each entry is a list with three elements:
1. The key activating the translation.
2. The string to be inserted when the key is pressed once.
3. The string to be inserted when the key is pressed twice."
:group 'double
:type '(repeat (list (character :tag "Key")
(string :tag "Once")
(string :tag "Twice"))))
@ -76,7 +75,6 @@ Each entry is a list with three elements:
"Non-nil means that Double mode mapping only works for prefix keys.
That is, for any key `X' in `double-map', `X' alone will be mapped
but not `C-u X' or `ESC X' since the X is not the prefix key."
:group 'double
:type 'boolean)
;;; Read Event

View file

@ -1,4 +1,4 @@
;;; dynamic-setting.el --- Support dynamic changes
;;; dynamic-setting.el --- Support dynamic changes -*- lexical-binding: t -*-
;; Copyright (C) 2009-2021 Free Software Foundation, Inc.
@ -91,4 +91,4 @@ Changes can be
((eq type 'tool-bar-style) (force-mode-line-update t)))))
(define-key special-event-map [config-changed-event]
'dynamic-setting-handle-config-changed-event)
#'dynamic-setting-handle-config-changed-event)

View file

@ -1,4 +1,4 @@
;;; ebuff-menu.el --- electric-buffer-list mode
;;; ebuff-menu.el --- electric-buffer-list mode -*- lexical-binding: t -*-
;; Copyright (C) 1985-1986, 1994, 2001-2021 Free Software Foundation,
;; Inc.
@ -34,55 +34,53 @@
(defvar electric-buffer-menu-mode-map
(let ((map (make-keymap)))
(fillarray (car (cdr map)) 'Electric-buffer-menu-undefined)
(fillarray (car (cdr map)) #'Electric-buffer-menu-undefined)
(define-key map "\e" nil)
(define-key map "\C-z" 'suspend-frame)
(define-key map "v" 'Electric-buffer-menu-mode-view-buffer)
(define-key map (char-to-string help-char) 'Helper-help)
(define-key map "?" 'Helper-describe-bindings)
(define-key map "\C-z" #'suspend-frame)
(define-key map "v" #'Electric-buffer-menu-mode-view-buffer)
(define-key map (char-to-string help-char) #'Helper-help)
(define-key map "?" #'Helper-describe-bindings)
(define-key map "\C-c" nil)
(define-key map "\C-c\C-c" 'Electric-buffer-menu-quit)
(define-key map "\C-]" 'Electric-buffer-menu-quit)
(define-key map "q" 'Electric-buffer-menu-quit)
(define-key map " " 'Electric-buffer-menu-select)
(define-key map "\C-m" 'Electric-buffer-menu-select)
(define-key map "\C-l" 'recenter)
(define-key map "s" 'Buffer-menu-save)
(define-key map "d" 'Buffer-menu-delete)
(define-key map "k" 'Buffer-menu-delete)
(define-key map "\C-d" 'Buffer-menu-delete-backwards)
;; (define-key map "\C-k" 'Buffer-menu-delete)
(define-key map "\177" 'Buffer-menu-backup-unmark)
(define-key map "~" 'Buffer-menu-not-modified)
(define-key map "u" 'Buffer-menu-unmark)
(define-key map "\M-\177" 'Buffer-menu-unmark-all-buffers)
(define-key map "U" 'Buffer-menu-unmark-all)
(let ((i ?0))
(while (<= i ?9)
(define-key map (char-to-string i) 'digit-argument)
(define-key map (concat "\e" (char-to-string i)) 'digit-argument)
(setq i (1+ i))))
(define-key map "-" 'negative-argument)
(define-key map "\e-" 'negative-argument)
(define-key map "m" 'Buffer-menu-mark)
(define-key map "\C-u" 'universal-argument)
(define-key map "\C-p" 'previous-line)
(define-key map "\C-n" 'next-line)
(define-key map "p" 'previous-line)
(define-key map "n" 'next-line)
(define-key map "\C-v" 'scroll-up-command)
(define-key map "\ev" 'scroll-down-command)
(define-key map ">" 'scroll-right)
(define-key map "<" 'scroll-left)
(define-key map "\e\C-v" 'scroll-other-window)
(define-key map "\e>" 'end-of-buffer)
(define-key map "\e<" 'beginning-of-buffer)
(define-key map "\C-c\C-c" #'Electric-buffer-menu-quit)
(define-key map "\C-]" #'Electric-buffer-menu-quit)
(define-key map "q" #'Electric-buffer-menu-quit)
(define-key map " " #'Electric-buffer-menu-select)
(define-key map "\C-m" #'Electric-buffer-menu-select)
(define-key map "\C-l" #'recenter)
(define-key map "s" #'Buffer-menu-save)
(define-key map "d" #'Buffer-menu-delete)
(define-key map "k" #'Buffer-menu-delete)
(define-key map "\C-d" #'Buffer-menu-delete-backwards)
;; (define-key map "\C-k" #'Buffer-menu-delete)
(define-key map "\177" #'Buffer-menu-backup-unmark)
(define-key map "~" #'Buffer-menu-not-modified)
(define-key map "u" #'Buffer-menu-unmark)
(define-key map "\M-\177" #'Buffer-menu-unmark-all-buffers)
(define-key map "U" #'Buffer-menu-unmark-all)
(dotimes (i 10)
(define-key map (char-to-string i) #'digit-argument)
(define-key map (concat "\e" (char-to-string i)) #'digit-argument))
(define-key map "-" #'negative-argument)
(define-key map "\e-" #'negative-argument)
(define-key map "m" #'Buffer-menu-mark)
(define-key map "\C-u" #'universal-argument)
(define-key map "\C-p" #'previous-line)
(define-key map "\C-n" #'next-line)
(define-key map "p" #'previous-line)
(define-key map "n" #'next-line)
(define-key map "\C-v" #'scroll-up-command)
(define-key map "\ev" #'scroll-down-command)
(define-key map ">" #'scroll-right)
(define-key map "<" #'scroll-left)
(define-key map "\e\C-v" #'scroll-other-window)
(define-key map "\e>" #'end-of-buffer)
(define-key map "\e<" #'beginning-of-buffer)
(define-key map "\e\e" nil)
(define-key map "\e\e\e" 'Electric-buffer-menu-quit)
(define-key map "\e\e\e" #'Electric-buffer-menu-quit)
;; This binding prevents the "escape => ESC" function-key-map mapping from
;; kicking in!
;; (define-key map [escape escape escape] 'Electric-buffer-menu-quit)
(define-key map [mouse-2] 'Electric-buffer-menu-mouse-select)
;; (define-key map [escape escape escape] #'Electric-buffer-menu-quit)
(define-key map [mouse-2] #'Electric-buffer-menu-mouse-select)
map))
(put 'Electric-buffer-menu-quit :advertised-binding "\C-c\C-c")
@ -205,7 +203,7 @@ See the documentation of `electric-buffer-list' for details."
(setq-local Helper-return-blurb "return to buffer editing"))
(define-obsolete-function-alias 'Electric-buffer-menu-mode
'electric-buffer-menu-mode "24.3")
#'electric-buffer-menu-mode "24.3")
;; generally the same as Buffer-menu-mode-map
;; (except we don't indirect to global-map)

View file

@ -1,4 +1,4 @@
;;; echistory.el --- Electric Command History Mode
;;; echistory.el --- Electric Command History Mode -*- lexical-binding: t -*-
;; Copyright (C) 1985, 2001-2021 Free Software Foundation, Inc.
@ -44,44 +44,43 @@ With prefix arg NOCONFIRM, execute current line as-is without editing."
(defvar electric-history-map
(let ((map (make-sparse-keymap)))
(define-key map [t] 'Electric-history-undefined)
(define-key map [t] #'Electric-history-undefined)
(define-key map "\e" (make-sparse-keymap))
(define-key map [?\e t] 'Electric-history-undefined)
(define-key map "\C-u" 'universal-argument)
(define-key map " " 'Electric-command-history-redo-expression)
(define-key map "!" 'Electric-command-history-redo-expression)
(define-key map "\e\C-x" 'eval-sexp)
(define-key map "\e\C-d" 'down-list)
(define-key map "\e\C-u" 'backward-up-list)
(define-key map "\e\C-b" 'backward-sexp)
(define-key map "\e\C-f" 'forward-sexp)
(define-key map "\e\C-a" 'beginning-of-defun)
(define-key map "\e\C-e" 'end-of-defun)
(define-key map "\e\C-n" 'forward-list)
(define-key map "\e\C-p" 'backward-list)
(define-key map "q" 'Electric-history-quit)
(define-key map [?\e t] #'Electric-history-undefined)
(define-key map "\C-u" #'universal-argument)
(define-key map " " #'Electric-command-history-redo-expression)
(define-key map "!" #'Electric-command-history-redo-expression)
(define-key map "\e\C-d" #'down-list)
(define-key map "\e\C-u" #'backward-up-list)
(define-key map "\e\C-b" #'backward-sexp)
(define-key map "\e\C-f" #'forward-sexp)
(define-key map "\e\C-a" #'beginning-of-defun)
(define-key map "\e\C-e" #'end-of-defun)
(define-key map "\e\C-n" #'forward-list)
(define-key map "\e\C-p" #'backward-list)
(define-key map "q" #'Electric-history-quit)
(define-key map "\C-c" nil)
(define-key map "\C-c\C-c" 'Electric-history-quit)
(define-key map "\C-]" 'Electric-history-quit)
(define-key map "\C-z" 'suspend-frame)
(define-key map (char-to-string help-char) 'Helper-help)
(define-key map "?" 'Helper-describe-bindings)
(define-key map "\e>" 'end-of-buffer)
(define-key map "\e<" 'beginning-of-buffer)
(define-key map "\n" 'next-line)
(define-key map "\r" 'next-line)
(define-key map "\177" 'previous-line)
(define-key map "\C-n" 'next-line)
(define-key map "\C-p" 'previous-line)
(define-key map "\ev" 'scroll-down)
(define-key map "\C-v" 'scroll-up)
(define-key map [home] 'beginning-of-buffer)
(define-key map [down] 'next-line)
(define-key map [up] 'previous-line)
(define-key map [prior] 'scroll-down)
(define-key map [next] 'scroll-up)
(define-key map "\C-l" 'recenter)
(define-key map "\e\C-v" 'scroll-other-window)
(define-key map "\C-c\C-c" #'Electric-history-quit)
(define-key map "\C-]" #'Electric-history-quit)
(define-key map "\C-z" #'suspend-frame)
(define-key map (char-to-string help-char) #'Helper-help)
(define-key map "?" #'Helper-describe-bindings)
(define-key map "\e>" #'end-of-buffer)
(define-key map "\e<" #'beginning-of-buffer)
(define-key map "\n" #'next-line)
(define-key map "\r" #'next-line)
(define-key map "\177" #'previous-line)
(define-key map "\C-n" #'next-line)
(define-key map "\C-p" #'previous-line)
(define-key map "\ev" #'scroll-down)
(define-key map "\C-v" #'scroll-up)
(define-key map [home] #'beginning-of-buffer)
(define-key map [down] #'next-line)
(define-key map [up] #'previous-line)
(define-key map [prior] #'scroll-down)
(define-key map [next] #'scroll-up)
(define-key map "\C-l" #'recenter)
(define-key map "\e\C-v" #'scroll-other-window)
map)
"Keymap for Electric Command History mode.")
@ -141,7 +140,9 @@ The Command History listing is recomputed each time this mode is invoked."
(defun Electric-history-undefined ()
(interactive)
(ding)
(message "%s" (substitute-command-keys "Type \\[Helper-help] for help, ? for commands, C-c C-c to quit, Space to execute"))
(message "%s" (substitute-command-keys "Type \\[Helper-help] for help, \
\\[Helper-describe-bindings] for commands, \\[Electric-history-quit] to quit, \
\\[Electric-command-history-redo-expression] to execute"))
(sit-for 4))
(defun Electric-history-quit ()

View file

@ -160,9 +160,6 @@
;; not specifically docstring related. Would this even be useful?
;;; Code:
(defvar checkdoc-version "0.6.2"
"Release version of checkdoc you are currently running.")
(make-obsolete-variable 'checkdoc-version nil "28.1")
(require 'cl-lib)
(require 'help-mode) ;; for help-xref-info-regexp
@ -2709,6 +2706,12 @@ function called to create the messages."
(custom-add-option 'emacs-lisp-mode-hook 'checkdoc-minor-mode)
;; Obsolete
(defvar checkdoc-version "0.6.2"
"Release version of checkdoc you are currently running.")
(make-obsolete-variable 'checkdoc-version 'emacs-version "28.1")
(provide 'checkdoc)
;;; checkdoc.el ends here

View file

@ -527,7 +527,7 @@ This will generate compile-time constants from BINDINGS."
;; This is too general -- rms.
;; A user complained that he has functions whose names start with `do'
;; and that they get the wrong color.
;; That user has violated the http://www.cliki.net/Naming+conventions:
;; That user has violated the https://www.cliki.net/Naming+conventions:
;; CL (but not EL!) `with-' (context) and `do-' (iteration)
(,(concat "(\\(\\(do-\\|with-\\)" lisp-mode-symbol-regexp "\\)")
(1 font-lock-keyword-face))

View file

@ -147,6 +147,7 @@ the sequence, and its index within the sequence."
"Return a shallow copy of SEQUENCE."
(copy-sequence sequence))
;;;###autoload
(cl-defgeneric seq-subseq (sequence start &optional end)
"Return the sequence of elements of SEQUENCE from START to END.
END is exclusive.
@ -430,6 +431,7 @@ Equality is defined by TESTFN if non-nil or by `equal' if nil."
(setq index (1+ index)))
nil)))
;;;###autoload
(cl-defgeneric seq-uniq (sequence &optional testfn)
"Return a list of the elements of SEQUENCE with duplicates removed.
TESTFN is used to compare elements, or `equal' if TESTFN is nil."
@ -467,6 +469,7 @@ Equality is defined by TESTFN if non-nil or by `equal' if nil."
(seq-reverse sequence1)
'()))
;;;###autoload
(cl-defgeneric seq-difference (sequence1 sequence2 &optional testfn)
"Return a list of the elements that appear in SEQUENCE1 but not in SEQUENCE2.
Equality is defined by TESTFN if non-nil or by `equal' if nil."

View file

@ -168,15 +168,12 @@ There can be any number of :example/:result elements."
(replace-regexp-in-string
:eval (replace-regexp-in-string "[a-z]+" "_" "*foo*"))
(string-trim
:no-manual t
:args (string)
:doc "Trim STRING of leading and trailing white space."
:eval (string-trim " foo "))
(string-trim-left
:no-manual t
:eval (string-trim-left "oofoo" "o+"))
(string-trim-right
:no-manual t
:eval (string-trim-right "barkss" "s+"))
(string-truncate-left
:no-manual t

View file

@ -63,7 +63,7 @@
;; building the 2D precedence tables and then computing the precedence levels
;; from it) can be found in pages 187-194 of "Parsing techniques" by Dick Grune
;; and Ceriel Jacobs (BookBody.pdf available at
;; http://dickgrune.com/Books/PTAPG_1st_Edition/).
;; https://dickgrune.com/Books/PTAPG_1st_Edition/).
;;
;; OTOH we had to kill many chickens, read many coffee grounds, and practice
;; untold numbers of black magic spells, to come up with the indentation code.

View file

@ -215,28 +215,6 @@ The variable list SPEC is the same as in `if-let'."
(define-obsolete-function-alias 'string-reverse 'reverse "25.1")
(defsubst string-trim-left (string &optional regexp)
"Trim STRING of leading string matching REGEXP.
REGEXP defaults to \"[ \\t\\n\\r]+\"."
(if (string-match (concat "\\`\\(?:" (or regexp "[ \t\n\r]+") "\\)") string)
(substring string (match-end 0))
string))
(defsubst string-trim-right (string &optional regexp)
"Trim STRING of trailing string matching REGEXP.
REGEXP defaults to \"[ \\t\\n\\r]+\"."
(let ((i (string-match-p (concat "\\(?:" (or regexp "[ \t\n\r]+") "\\)\\'")
string)))
(if i (substring string 0 i) string)))
(defsubst string-trim (string &optional trim-left trim-right)
"Trim STRING of leading and trailing strings matching TRIM-LEFT and TRIM-RIGHT.
TRIM-LEFT and TRIM-RIGHT default to \"[ \\t\\n\\r]+\"."
(string-trim-left (string-trim-right string trim-right) trim-left))
;;;###autoload
(defun string-truncate-left (string length)
"Truncate STRING to LENGTH, replacing initial surplus with \"...\"."

View file

@ -101,6 +101,8 @@
(define-obsolete-variable-alias 'edt-window-system 'window-system "27.1")
(defconst edt-xserver (when (eq window-system 'x)
(declare-function x-server-vendor "xfns.c"
(&optional terminal))
;; The Cygwin window manager has a `/' in its
;; name, which breaks the generated file name of
;; the custom key map file. Replace `/' with a

View file

@ -178,9 +178,6 @@
(defvar edt-user-global-map)
(defvar rect-start-point)
(defconst edt-version "4.0" "EDT Emulation version number.")
(make-obsolete-variable 'edt-version nil "28.1")
;;;
;;; User Configurable Variables
;;;
@ -299,6 +296,8 @@ This means that an edt-user.el file was found in the user's `load-path'.")
;;; o edt-emulation-on o edt-load-keys
;;;
(defconst edt-xserver (when (eq window-system 'x)
(declare-function x-server-vendor "xfns.c"
(&optional terminal))
;; The Cygwin window manager has a `/' in its
;; name, which breaks the generated file name of
;; the custom key map file. Replace `/' with a
@ -2531,6 +2530,9 @@ G-C-\\: Split Window | FNDNXT | Yank | CUT |
(set-frame-width nil 132)
(message "Terminal width 132"))
(defconst edt-version "4.0" "EDT Emulation version number.")
(make-obsolete-variable 'edt-version 'emacs-version "28.1")
(provide 'edt)
;;; edt.el ends here

View file

@ -1786,7 +1786,7 @@ Undo previous insertion and inserts new."
(do-not-change-default t))
(setq quote-str
(viper-read-string-with-history
"Quote string: "
"Quote string"
nil
'viper-quote-region-history
;; FIXME: Use comment-region.
@ -1995,24 +1995,17 @@ problems."
#'viper-minibuffer-standard-hook
(if (or (not (listp old)) (eq (car old) 'lambda))
(list old) old))))
(val "")
(padding "")
temp-msg)
(val ""))
(setq keymap (or keymap minibuffer-local-map)
initial (or initial "")
viper-initial initial
temp-msg (if default
(format "(default %s) " default)
""))
viper-initial initial)
(setq viper-incomplete-ex-cmd nil)
(setq val (read-from-minibuffer prompt
(concat temp-msg initial val padding)
keymap nil history-var))
(setq minibuffer-setup-hook nil
padding (viper-array-to-string (this-command-keys))
temp-msg "")
(setq val (read-from-minibuffer (format-prompt prompt default)
nil
keymap nil history-var default))
(setq minibuffer-setup-hook nil)
;; the following tries to be smart about what to put in history
(if (not (string= val (car (symbol-value history-var))))
(push val (symbol-value history-var)))
@ -3825,7 +3818,7 @@ Null string will repeat previous search."
(let (buffer buffer-name)
(setq buffer-name
(funcall viper-read-buffer-function
(format "Kill buffer (%s): "
(format-prompt "Kill buffer"
(buffer-name (current-buffer)))))
(setq buffer
(if (null buffer-name)
@ -4171,8 +4164,8 @@ and regexp replace."
(interactive)
(let (str)
(setq str (viper-read-string-with-history
(if viper-re-query-replace "Query replace regexp: "
"Query replace: ")
(if viper-re-query-replace "Query replace regexp"
"Query replace")
nil ; no initial
'viper-replace1-history
(car viper-replace1-history) ; default
@ -4187,7 +4180,7 @@ and regexp replace."
(query-replace-regexp
str
(viper-read-string-with-history
(format-message "Query replace regexp `%s' with: " str)
(format-message "Query replace regexp `%s' with" str)
nil ; no initial
'viper-replace1-history
(car viper-replace1-history) ; default
@ -4195,7 +4188,7 @@ and regexp replace."
(query-replace
str
(viper-read-string-with-history
(format-message "Query replace `%s' with: " str)
(format-message "Query replace `%s' with" str)
nil ; no initial
'viper-replace1-history
(car viper-replace1-history) ; default

View file

@ -1,4 +1,4 @@
;;; epg-config.el --- configuration of the EasyPG Library
;;; epg-config.el --- configuration of the EasyPG Library -*- lexical-binding: t -*-
;; Copyright (C) 2006-2021 Free Software Foundation, Inc.
@ -21,6 +21,8 @@
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
;;; Commentary:
;;; Code:
;;; Prelude
@ -157,7 +159,7 @@ version requirement is met."
(setq program-alist epg-config--program-alist))
(let ((entry (assq protocol program-alist)))
(unless entry
(error "Unknown protocol %S" protocol))
(error "Unknown protocol `%S'" protocol))
(cl-destructuring-bind (symbol . alist)
(cdr entry)
(let ((constructor

View file

@ -50,9 +50,6 @@
;; After you are connected to a server, you can use C-h m or have a look at
;; the ERC menu.
;;; History:
;;
;;; Code:
(load "erc-loaddefs" nil t)

View file

@ -199,10 +199,10 @@ Thus, this does not include the current directory.")
(when eshell-cd-on-directory
(setq-local eshell-interpreter-alist
(cons (cons #'(lambda (file _args)
(eshell-lone-directory-p file))
'eshell-dirs-substitute-cd)
eshell-interpreter-alist)))
(cons (cons (lambda (file _args)
(eshell-lone-directory-p file))
'eshell-dirs-substitute-cd)
eshell-interpreter-alist)))
(add-hook 'eshell-parse-argument-hook
#'eshell-parse-user-reference nil t)

View file

@ -758,7 +758,7 @@ matched."
(setq nth (eshell-hist-word-reference nth)))
(unless (numberp mth)
(setq mth (eshell-hist-word-reference mth)))
(cons (mapconcat #'identity (eshell-sublist textargs nth mth) " ")
(cons (mapconcat #'identity (seq-subseq textargs nth (1+ mth)) " ")
end))))
(defun eshell-hist-parse-modifier (hist reference)

View file

@ -85,18 +85,18 @@ ordinary strings."
(?s . (eshell-pred-file-mode #o4000)) ; setuid
(?S . (eshell-pred-file-mode #o2000)) ; setgid
(?t . (eshell-pred-file-mode #o1000)) ; sticky bit
(?U . #'(lambda (file) ; owned by effective uid
(if (file-exists-p file)
(= (file-attribute-user-id (file-attributes file))
(user-uid)))))
;; (?G . #'(lambda (file) ; owned by effective gid
;; (if (file-exists-p file)
;; (= (file-attribute-user-id (file-attributes file))
;; (user-uid)))))
(?* . #'(lambda (file)
(and (file-regular-p file)
(not (file-symlink-p file))
(file-executable-p file))))
(?U . (lambda (file) ; owned by effective uid
(if (file-exists-p file)
(= (file-attribute-user-id (file-attributes file))
(user-uid)))))
;; (?G . (lambda (file) ; owned by effective gid
;; (if (file-exists-p file)
;; (= (file-attribute-user-id (file-attributes file))
;; (user-uid)))))
(?* . (lambda (file)
(and (file-regular-p file)
(not (file-symlink-p file))
(file-executable-p file))))
(?l . (eshell-pred-file-links))
(?u . (eshell-pred-user-or-group ?u "user" 2 'eshell-user-id))
(?g . (eshell-pred-user-or-group ?g "group" 3 'eshell-group-id))
@ -114,25 +114,25 @@ The format of each entry is
(put 'eshell-predicate-alist 'risky-local-variable t)
(defcustom eshell-modifier-alist
'((?E . #'(lambda (lst)
(mapcar
(lambda (str)
(eshell-stringify
(car (eshell-parse-argument str))))
lst)))
(?L . #'(lambda (lst) (mapcar 'downcase lst)))
(?U . #'(lambda (lst) (mapcar 'upcase lst)))
(?C . #'(lambda (lst) (mapcar 'capitalize lst)))
(?h . #'(lambda (lst) (mapcar 'file-name-directory lst)))
'((?E . (lambda (lst)
(mapcar
(lambda (str)
(eshell-stringify
(car (eshell-parse-argument str))))
lst)))
(?L . (lambda (lst) (mapcar #'downcase lst)))
(?U . (lambda (lst) (mapcar #'upcase lst)))
(?C . (lambda (lst) (mapcar #'capitalize lst)))
(?h . (lambda (lst) (mapcar #'file-name-directory lst)))
(?i . (eshell-include-members))
(?x . (eshell-include-members t))
(?r . #'(lambda (lst) (mapcar 'file-name-sans-extension lst)))
(?e . #'(lambda (lst) (mapcar 'file-name-extension lst)))
(?t . #'(lambda (lst) (mapcar 'file-name-nondirectory lst)))
(?q . #'(lambda (lst) (mapcar 'eshell-escape-arg lst)))
(?u . #'(lambda (lst) (eshell-uniquify-list lst)))
(?o . #'(lambda (lst) (sort lst 'string-lessp)))
(?O . #'(lambda (lst) (nreverse (sort lst 'string-lessp))))
(?r . (lambda (lst) (mapcar #'file-name-sans-extension lst)))
(?e . (lambda (lst) (mapcar #'file-name-extension lst)))
(?t . (lambda (lst) (mapcar #'file-name-nondirectory lst)))
(?q . (lambda (lst) (mapcar #'eshell-escape-arg lst)))
(?u . (lambda (lst) (seq-uniq lst)))
(?o . (lambda (lst) (sort lst #'string-lessp)))
(?O . (lambda (lst) (nreverse (sort lst #'string-lessp))))
(?j . (eshell-join-members))
(?S . (eshell-split-members))
(?R . 'reverse)

View file

@ -59,11 +59,11 @@ This includes when running `eshell-command'."
(defun eshell-script-initialize () ;Called from `eshell-mode' via intern-soft!
"Initialize the script parsing code."
(setq-local eshell-interpreter-alist
(cons (cons #'(lambda (file _args)
(string= (file-name-nondirectory file)
"eshell"))
'eshell/source)
eshell-interpreter-alist))
(cons (cons (lambda (file _args)
(string= (file-name-nondirectory file)
"eshell"))
'eshell/source)
eshell-interpreter-alist))
(setq-local eshell-complex-commands
(append '("source" ".") eshell-complex-commands))
;; these two variables are changed through usage, but we don't want

View file

@ -458,7 +458,7 @@ and the hook `eshell-exit-hook'."
(let ((inhibit-read-only t)
(no-default (eobp))
(find-tag-default-function 'ignore))
(setq tagname (car (find-tag-interactive "Find tag: " no-default)))
(setq tagname (car (find-tag-interactive "Find tag" no-default)))
(with-suppressed-warnings ((obsolete find-tag))
(find-tag tagname next-p regexp-p))))

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