Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs into feature/pgtk
18
ChangeLog.3
|
@ -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
|
||||
|
|
|
@ -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'"
|
||||
|
|
|
@ -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)))
|
||||
|
||||
|
|
|
@ -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.*• \\(<a.*</a>\\)\
|
||||
:</td><td> </td><td[^>]*>\\(.*\\)" (line-end-position) t)
|
||||
:?</td><td> </td><td[^>]*>\\(.*\\)" (line-end-position) t)
|
||||
(replace-match (format "<tr><td%s>\\1</td>\n<td>\\2"
|
||||
(if table-workaround
|
||||
" bgcolor=\"white\"" "")))
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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}
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
||||
|
|
32
etc/NEWS
|
@ -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.
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
6
etc/images/checkbox-mixed.svg
Normal 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
|
@ -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
|
@ -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
|
@ -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 |
6
etc/images/radio-checked.svg
Normal 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 |
6
etc/images/radio-mixed.svg
Normal 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
|
@ -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
|
@ -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
|
@ -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
|
@ -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 |
892
etc/schema/OpenDocument-schema-v1.3+libreoffice.rnc
Normal 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 }?
|
|
@ -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>
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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];
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
135
lisp/allout.el
|
@ -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")
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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:
|
||||
|
||||
;; ----------------------------------------------------------------------
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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:
|
||||
;;
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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))))
|
||||
|
|
|
@ -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))))
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 " ")
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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)))
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
|
@ -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)))))
|
||||
|
||||
)
|
||||
|
||||
|
|
|
@ -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))
|
||||
|
||||
|
|
|
@ -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))
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -24,9 +24,6 @@
|
|||
;;; Commentary:
|
||||
;;
|
||||
|
||||
;;; History:
|
||||
;;
|
||||
|
||||
;;; Code:
|
||||
|
||||
(require 'semantic/wisent)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -34,9 +34,6 @@
|
|||
;;
|
||||
;; For more details on Wisent itself read the Wisent manual.
|
||||
|
||||
;;; History:
|
||||
;;
|
||||
|
||||
;;; Code:
|
||||
|
||||
(defgroup wisent nil
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)))
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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 ()
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -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."
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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 \"...\"."
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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))))
|
||||
|
||||
|
|