Merge branch 'master' into feature/package+vc
This commit is contained in:
commit
01e45efcd4
160 changed files with 1800 additions and 807 deletions
|
@ -1,4 +1,4 @@
|
||||||
;;; Directory Local Variables
|
;;; Directory Local Variables -*- no-byte-compile: t; -*-
|
||||||
;;; For more information see (info "(emacs) Directory Variables")
|
;;; For more information see (info "(emacs) Directory Variables")
|
||||||
|
|
||||||
((nil . ((tab-width . 8)
|
((nil . ((tab-width . 8)
|
||||||
|
|
|
@ -5685,7 +5685,7 @@
|
||||||
(__mktime_internal): Use it systematically for all isdst comparisons.
|
(__mktime_internal): Use it systematically for all isdst comparisons.
|
||||||
This completes the fix for libc BZ #6723, and removes the need for
|
This completes the fix for libc BZ #6723, and removes the need for
|
||||||
normalizing tm_isdst.
|
normalizing tm_isdst.
|
||||||
See <http://sourceware.org/bugzilla/show_bug.cgi?id=6723>
|
See <https://sourceware.org/bugzilla/show_bug.cgi?id=6723>
|
||||||
(not_equal_tm) [DEBUG]: Use isdst_differ here, too.
|
(not_equal_tm) [DEBUG]: Use isdst_differ here, too.
|
||||||
|
|
||||||
mktime: fix some integer overflow issues and sidestep the rest
|
mktime: fix some integer overflow issues and sidestep the rest
|
||||||
|
|
|
@ -185373,7 +185373,7 @@
|
||||||
|
|
||||||
* lisp/image.el (image-type-header-regexps):
|
* lisp/image.el (image-type-header-regexps):
|
||||||
Allow two or more CRs or LFs in initial whitespace sequences. See:
|
Allow two or more CRs or LFs in initial whitespace sequences. See:
|
||||||
http://netpbm.sourceforge.net/doc/pbm.html
|
https://netpbm.sourceforge.net/doc/pbm.html
|
||||||
|
|
||||||
2017-10-16 Paul Eggert <eggert@cs.ucla.edu>
|
2017-10-16 Paul Eggert <eggert@cs.ucla.edu>
|
||||||
|
|
||||||
|
@ -197097,7 +197097,7 @@
|
||||||
Clang on macOS warns about these with -Wtautological-compare. POSIX
|
Clang on macOS warns about these with -Wtautological-compare. POSIX
|
||||||
guarantees that rlim_t is
|
guarantees that rlim_t is
|
||||||
unsigned (cf.
|
unsigned (cf.
|
||||||
http://pubs.opengroup.org/onlinepubs/009695399/basedefs/sys/resource.h.html),
|
https://pubs.opengroup.org/onlinepubs/009695399/basedefs/sys/resource.h.html),
|
||||||
so these resource limits can never be negative.
|
so these resource limits can never be negative.
|
||||||
|
|
||||||
* src/emacs.c (main): Remove tautological comparisons.
|
* src/emacs.c (main): Remove tautological comparisons.
|
||||||
|
@ -199197,7 +199197,7 @@
|
||||||
|
|
||||||
' is commonly used as an apostrophe in the prose sections of spec
|
' is commonly used as an apostrophe in the prose sections of spec
|
||||||
files, which was erroneously highlighted as strings. See for example
|
files, which was erroneously highlighted as strings. See for example
|
||||||
http://kmymoney2.sourceforge.net/phb/rpm-example.html
|
https://kmymoney2.sourceforge.net/phb/rpm-example.html
|
||||||
|
|
||||||
* lisp/progmodes/sh-script.el (sh-mode-syntax-table): Treat ' as
|
* lisp/progmodes/sh-script.el (sh-mode-syntax-table): Treat ' as
|
||||||
punctuation in RPM spec files.
|
punctuation in RPM spec files.
|
||||||
|
|
2
INSTALL
2
INSTALL
|
@ -187,7 +187,7 @@ X11 is being used.
|
||||||
libz (for PNG): https://www.zlib.net/
|
libz (for PNG): https://www.zlib.net/
|
||||||
X libjpeg for JPEG: https://www.ijg.org/
|
X libjpeg for JPEG: https://www.ijg.org/
|
||||||
X libtiff for TIFF: http://www.simplesystems.org/libtiff/
|
X libtiff for TIFF: http://www.simplesystems.org/libtiff/
|
||||||
X libgif for GIF: http://giflib.sourceforge.net/
|
X libgif for GIF: https://giflib.sourceforge.net/
|
||||||
librsvg2 for SVG: https://wiki.gnome.org/Projects/LibRsvg
|
librsvg2 for SVG: https://wiki.gnome.org/Projects/LibRsvg
|
||||||
libwebp for WebP: https://developers.google.com/speed/webp/
|
libwebp for WebP: https://developers.google.com/speed/webp/
|
||||||
|
|
||||||
|
|
|
@ -530,6 +530,11 @@ lisp: src
|
||||||
lib lib-src lisp nt: Makefile
|
lib lib-src lisp nt: Makefile
|
||||||
$(MAKE) -C $@ all
|
$(MAKE) -C $@ all
|
||||||
|
|
||||||
|
trampolines: src lisp
|
||||||
|
ifeq ($(HAVE_NATIVE_COMP),yes)
|
||||||
|
$(MAKE) -C lisp trampolines
|
||||||
|
endif
|
||||||
|
|
||||||
# Pass an unexpanded $srcdir to src's Makefile, which then
|
# Pass an unexpanded $srcdir to src's Makefile, which then
|
||||||
# expands it using its own value of srcdir (which points to the
|
# expands it using its own value of srcdir (which points to the
|
||||||
# source directory of src/).
|
# source directory of src/).
|
||||||
|
|
|
@ -54,7 +54,7 @@
|
||||||
#
|
#
|
||||||
# [v0.1, 5 May 1995] First release.
|
# [v0.1, 5 May 1995] First release.
|
||||||
#
|
#
|
||||||
# Use the Unicode reporting form <http://www.unicode.org/reporting.html>
|
# Use the Unicode reporting form <https://www.unicode.org/reporting.html>
|
||||||
# for any questions or comments or to report errors in the data.
|
# for any questions or comments or to report errors in the data.
|
||||||
#
|
#
|
||||||
0020 20 # SPACE # space
|
0020 20 # SPACE # space
|
||||||
|
|
|
@ -57,7 +57,7 @@
|
||||||
#
|
#
|
||||||
# [v0.1, 5 May 1995] First release.
|
# [v0.1, 5 May 1995] First release.
|
||||||
#
|
#
|
||||||
# Use the Unicode reporting form <http://www.unicode.org/reporting.html>
|
# Use the Unicode reporting form <https://www.unicode.org/reporting.html>
|
||||||
# for any questions or comments or to report errors in the data.
|
# for any questions or comments or to report errors in the data.
|
||||||
#
|
#
|
||||||
0020 20 # SPACE # space
|
0020 20 # SPACE # space
|
||||||
|
|
|
@ -390,7 +390,7 @@ Next, regenerate the various manuals in HTML, PDF, and PS formats:
|
||||||
|
|
||||||
Now change to the 'manual' directory and invoke upload-manuals:
|
Now change to the 'manual' directory and invoke upload-manuals:
|
||||||
|
|
||||||
../admin/updload-manuals /path/to/webpages/cvs/checkout
|
../admin/upload-manuals /path/to/webpages/cvs/checkout
|
||||||
|
|
||||||
where /path/to/webpages/cvs/checkout is the place where you have the
|
where /path/to/webpages/cvs/checkout is the place where you have the
|
||||||
CVS checkout of the Emacs Web pages, with subdirectories 'manual'
|
CVS checkout of the Emacs Web pages, with subdirectories 'manual'
|
||||||
|
|
|
@ -6,31 +6,31 @@ copyright.html.
|
||||||
The names, URLs, and dates for these files are as follows.
|
The names, URLs, and dates for these files are as follows.
|
||||||
|
|
||||||
BidiBrackets.txt
|
BidiBrackets.txt
|
||||||
http://www.unicode.org/Public/UNIDATA/BidiBrackets.txt
|
https://www.unicode.org/Public/UNIDATA/BidiBrackets.txt
|
||||||
2021-06-30
|
2021-06-30
|
||||||
|
|
||||||
BidiMirroring.txt
|
BidiMirroring.txt
|
||||||
http://www.unicode.org/Public/UNIDATA/BidiMirroring.txt
|
https://www.unicode.org/Public/UNIDATA/BidiMirroring.txt
|
||||||
2021-08-08
|
2021-08-08
|
||||||
|
|
||||||
Blocks.txt
|
Blocks.txt
|
||||||
http://www.unicode.org/Public/8.0.0/ucd/Blocks.txt
|
https://www.unicode.org/Public/8.0.0/ucd/Blocks.txt
|
||||||
2021-01-22
|
2021-01-22
|
||||||
|
|
||||||
IVD_Sequences.txt
|
IVD_Sequences.txt
|
||||||
http://www.unicode.org/ivd/
|
https://www.unicode.org/ivd/
|
||||||
2020-11-06
|
2020-11-06
|
||||||
|
|
||||||
NormalizationTest.txt
|
NormalizationTest.txt
|
||||||
http://www.unicode.org/Public/UNIDATA/NormalizationTest.txt
|
https://www.unicode.org/Public/UNIDATA/NormalizationTest.txt
|
||||||
2021-05-28
|
2021-05-28
|
||||||
|
|
||||||
SpecialCasing.txt
|
SpecialCasing.txt
|
||||||
http://unicode.org/Public/UNIDATA/SpecialCasing.txt
|
https://unicode.org/Public/UNIDATA/SpecialCasing.txt
|
||||||
2021-03-08
|
2021-03-08
|
||||||
|
|
||||||
UnicodeData.txt
|
UnicodeData.txt
|
||||||
http://www.unicode.org/Public/UNIDATA/UnicodeData.txt
|
https://www.unicode.org/Public/UNIDATA/UnicodeData.txt
|
||||||
2021-07-06
|
2021-07-06
|
||||||
|
|
||||||
emoji-data.txt
|
emoji-data.txt
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
### Commentary:
|
### Commentary:
|
||||||
|
|
||||||
## This script takes as input Unicode's Blocks.txt
|
## This script takes as input Unicode's Blocks.txt
|
||||||
## (http://www.unicode.org/Public/UNIDATA/Blocks.txt)
|
## (https://www.unicode.org/Public/UNIDATA/Blocks.txt)
|
||||||
## and produces output for Emacs's lisp/international/charscript.el.
|
## and produces output for Emacs's lisp/international/charscript.el.
|
||||||
|
|
||||||
## It lumps together all the blocks belonging to the same language.
|
## It lumps together all the blocks belonging to the same language.
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
<title>Unicode Terms of Use</title>
|
<title>Unicode Terms of Use</title>
|
||||||
<link rel="stylesheet" type="text/css"
|
<link rel="stylesheet" type="text/css"
|
||||||
|
|
||||||
href="http://www.unicode.org/webscripts/standard_styles.css">
|
href="https://www.unicode.org/webscripts/standard_styles.css">
|
||||||
|
|
||||||
<style type="text/css">
|
<style type="text/css">
|
||||||
pre {
|
pre {
|
||||||
|
@ -32,8 +32,8 @@
|
||||||
<td colspan="2">
|
<td colspan="2">
|
||||||
<table width="100%" border="0" cellpadding="0" cellspacing="0">
|
<table width="100%" border="0" cellpadding="0" cellspacing="0">
|
||||||
<tr>
|
<tr>
|
||||||
<td class="icon" style="width:38px; height:35px"><a href="http://www.unicode.org/"><img border="0"
|
<td class="icon" style="width:38px; height:35px"><a href="https://www.unicode.org/"><img border="0"
|
||||||
src="http://www.unicode.org/webscripts/logo60s2.gif" align="middle" alt="[Unicode]" width="34" height="33"></a></td>
|
src="https://www.unicode.org/webscripts/logo60s2.gif" align="middle" alt="[Unicode]" width="34" height="33"></a></td>
|
||||||
<td class="icon" style="vertical-align:middle;"> <a class="bar"
|
<td class="icon" style="vertical-align:middle;"> <a class="bar"
|
||||||
href="https://www.unicode.org/copyright.html"><font size="3">Terms of Use</font></a></td>
|
href="https://www.unicode.org/copyright.html"><font size="3">Terms of Use</font></a></td>
|
||||||
<td class="bar"><a href="https://www.unicode.org/main.html" class="bar">Tech Site</a>
|
<td class="bar"><a href="https://www.unicode.org/main.html" class="bar">Tech Site</a>
|
||||||
|
@ -112,7 +112,7 @@ <h1>Unicode® Copyright and Terms of Use</h1>
|
||||||
|
|
||||||
<p>For the general privacy policy governing access to this site, see
|
<p>For the general privacy policy governing access to this site, see
|
||||||
the
|
the
|
||||||
<a href="http://www.unicode.org/policies/privacy_policy.html">
|
<a href="https://www.unicode.org/policies/privacy_policy.html">
|
||||||
Unicode Privacy Policy</a>.</p>
|
Unicode Privacy Policy</a>.</p>
|
||||||
|
|
||||||
<ol type="A">
|
<ol type="A">
|
||||||
|
@ -158,7 +158,7 @@ <h1>Unicode® Copyright and Terms of Use</h1>
|
||||||
specifications of rights and restrictions of use. For the book
|
specifications of rights and restrictions of use. For the book
|
||||||
editions (Unicode 5.0 and earlier), these are found on the back
|
editions (Unicode 5.0 and earlier), these are found on the back
|
||||||
of the
|
of the
|
||||||
<a href="http://www.unicode.org/versions/Unicode5.0.0/Title.pdf">title page</a>.</li>
|
<a href="https://www.unicode.org/versions/Unicode5.0.0/Title.pdf">title page</a>.</li>
|
||||||
<li>
|
<li>
|
||||||
The Unicode PDF <a href="https://www.unicode.org/charts/">online code charts</a> carry specific restrictions. Those restrictions are incorporated as the
|
The Unicode PDF <a href="https://www.unicode.org/charts/">online code charts</a> carry specific restrictions. Those restrictions are incorporated as the
|
||||||
first page of each PDF code chart.</li>
|
first page of each PDF code chart.</li>
|
||||||
|
@ -224,7 +224,7 @@ <h1>Unicode® Copyright and Terms of Use</h1>
|
||||||
<li><u><a name="5"></a>Trademarks & Logos</u>
|
<li><u><a name="5"></a>Trademarks & Logos</u>
|
||||||
<ol>
|
<ol>
|
||||||
<li>The Unicode Word Mark and the Unicode Logo are trademarks of Unicode, Inc. “The Unicode Consortium” and “Unicode, Inc.” are trade names of Unicode, Inc. Use of the information and materials found on this website indicates your acknowledgement of Unicode, Inc.’s exclusive worldwide rights in the Unicode Word Mark, the Unicode Logo, and the Unicode trade names.</li>
|
<li>The Unicode Word Mark and the Unicode Logo are trademarks of Unicode, Inc. “The Unicode Consortium” and “Unicode, Inc.” are trade names of Unicode, Inc. Use of the information and materials found on this website indicates your acknowledgement of Unicode, Inc.’s exclusive worldwide rights in the Unicode Word Mark, the Unicode Logo, and the Unicode trade names.</li>
|
||||||
<li><a href="http://www.unicode.org/policies/logo_policy.html">The Unicode Consortium Name and Trademark Usage Policy</a> (“Trademark Policy”) are incorporated herein by reference and you agree to abide by the provisions of the Trademark Policy, which may be changed from time to time in the sole discretion of Unicode, Inc.</li>
|
<li><a href="https://www.unicode.org/policies/logo_policy.html">The Unicode Consortium Name and Trademark Usage Policy</a> (“Trademark Policy”) are incorporated herein by reference and you agree to abide by the provisions of the Trademark Policy, which may be changed from time to time in the sole discretion of Unicode, Inc.</li>
|
||||||
<li>All third party trademarks referenced herein are the property of their respective owners.</li>
|
<li>All third party trademarks referenced herein are the property of their respective owners.</li>
|
||||||
</ol>
|
</ol>
|
||||||
</li>
|
</li>
|
||||||
|
@ -270,15 +270,15 @@ <h1>Unicode® Copyright and Terms of Use</h1>
|
||||||
<center>
|
<center>
|
||||||
<table cellspacing="0" cellpadding="0" border="0" id="table2">
|
<table cellspacing="0" cellpadding="0" border="0" id="table2">
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="http://www.unicode.org/copyright.html">
|
<td><a href="https://www.unicode.org/copyright.html">
|
||||||
<img src="http://www.unicode.org/img/hb_notice.gif"
|
<img src="https://www.unicode.org/img/hb_notice.gif"
|
||||||
border="0" alt="Access to Copyright and terms of use"
|
border="0" alt="Access to Copyright and terms of use"
|
||||||
width="216" height="50"></a></td>
|
width="216" height="50"></a></td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<script language="Javascript" type="text/javascript"
|
<script language="Javascript" type="text/javascript"
|
||||||
src="http://www.unicode.org/webscripts/lastModified.js">
|
src="https://www.unicode.org/webscripts/lastModified.js">
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
</center>
|
</center>
|
||||||
|
|
|
@ -667,6 +667,16 @@ type @kbd{M-x disable-theme}.
|
||||||
the @file{*Custom Themes*} buffer; or type @kbd{M-x describe-theme}
|
the @file{*Custom Themes*} buffer; or type @kbd{M-x describe-theme}
|
||||||
anywhere in Emacs and enter the theme name.
|
anywhere in Emacs and enter the theme name.
|
||||||
|
|
||||||
|
@findex theme-choose-variant
|
||||||
|
Some themes have variants (most often just two: light and dark). You
|
||||||
|
can switch to another variant using @kbd{M-x theme-choose-variant}.
|
||||||
|
If the currently active theme has only one other variant, it will be
|
||||||
|
selected; if there are more variants, the command will prompt you
|
||||||
|
which one to switch to.
|
||||||
|
|
||||||
|
Note that @code{theme-choose-variant} only works if a single theme
|
||||||
|
is active.
|
||||||
|
|
||||||
@node Creating Custom Themes
|
@node Creating Custom Themes
|
||||||
@subsection Creating Custom Themes
|
@subsection Creating Custom Themes
|
||||||
@cindex custom themes, creating
|
@cindex custom themes, creating
|
||||||
|
|
|
@ -2302,7 +2302,9 @@ Display the reference on the current line in the other window
|
||||||
@item r @var{pattern} @key{RET} @var{replacement} @key{RET}
|
@item r @var{pattern} @key{RET} @var{replacement} @key{RET}
|
||||||
Perform interactive query-replace on references that match
|
Perform interactive query-replace on references that match
|
||||||
@var{pattern} (@code{xref-query-replace-in-results}), replacing
|
@var{pattern} (@code{xref-query-replace-in-results}), replacing
|
||||||
the match with @var{replacement}. @xref{Identifier Search}.
|
the match with @var{replacement}. This command can only be used in
|
||||||
|
@file{*xref*} buffers that show all the matches for an identifier in
|
||||||
|
all the relevant files. @xref{Identifier Search}.
|
||||||
|
|
||||||
@item g
|
@item g
|
||||||
@findex xref-revert-buffer
|
@findex xref-revert-buffer
|
||||||
|
@ -2336,7 +2338,8 @@ them.
|
||||||
@item M-?
|
@item M-?
|
||||||
Find all the references for the identifier at point.
|
Find all the references for the identifier at point.
|
||||||
|
|
||||||
@item M-x xref-query-replace-in-results @key{RET} @var{replacement} @key{RET}
|
@item r
|
||||||
|
@itemx M-x xref-query-replace-in-results @key{RET} @var{replacement} @key{RET}
|
||||||
@itemx C-u M-x xref-query-replace-in-results @key{RET} @var{regexp} @key{RET} @var{replacement} @key{RET}
|
@itemx C-u M-x xref-query-replace-in-results @key{RET} @var{regexp} @key{RET} @var{replacement} @key{RET}
|
||||||
Interactively replace @var{regexp} with @var{replacement} in the names
|
Interactively replace @var{regexp} with @var{replacement} in the names
|
||||||
of all the identifiers shown in the @file{*xref*} buffer.
|
of all the identifiers shown in the @file{*xref*} buffer.
|
||||||
|
@ -2382,16 +2385,18 @@ shown. The default value is @code{nil}, which just shows the results
|
||||||
in the @file{*xref*} buffer, but doesn't select any of them.
|
in the @file{*xref*} buffer, but doesn't select any of them.
|
||||||
|
|
||||||
@findex xref-query-replace-in-results
|
@findex xref-query-replace-in-results
|
||||||
@kbd{M-x xref-query-replace-in-results} reads a @var{replacement}
|
@kbd{r} (@code{xref-query-replace-in-results}) reads a @var{replacement}
|
||||||
string, just like ordinary @kbd{M-x query-replace-regexp}. It then
|
string, just like ordinary @kbd{M-x query-replace-regexp}. It then
|
||||||
renames the identifiers shown in the @file{*xref*} buffer in all the
|
renames the identifiers shown in the @file{*xref*} buffer in all the
|
||||||
places in all the files where these identifiers are referenced, such
|
places in all the files where these identifiers are referenced, such
|
||||||
that their new name is @var{replacement}. This is useful when you
|
that their new name is @var{replacement}. This is useful when you
|
||||||
rename your identifiers as part of refactoring. This command should
|
rename your identifiers as part of refactoring. This command should
|
||||||
be invoked in the @file{*xref*} buffer generated by @kbd{M-?}. With a
|
be invoked in the @file{*xref*} buffer generated by @kbd{M-?}. By
|
||||||
prefix argument, the command also prompts for a regexp to match
|
default, the command replaces the entire name of each identifier with
|
||||||
identifier names, and renames that regexp in the names of the matching
|
@var{replacement}, but if invoked with a prefix argument, the command
|
||||||
identifiers with @var{replacement}.
|
prompts for a regexp to match identifier names, and replaces only the
|
||||||
|
matches of that regexp in the names of the identifiers with
|
||||||
|
@var{replacement}.
|
||||||
|
|
||||||
@findex xref-find-references-and-replace
|
@findex xref-find-references-and-replace
|
||||||
@kbd{M-x xref-find-references-and-replace} works similarly to
|
@kbd{M-x xref-find-references-and-replace} works similarly to
|
||||||
|
|
|
@ -291,8 +291,13 @@ When collaborating on projects it is common to send patches via email,
|
||||||
to share changes. If you wish to do this using VC, you can use the
|
to share changes. If you wish to do this using VC, you can use the
|
||||||
@code{vc-prepare-patch} command. This will prompt you for the
|
@code{vc-prepare-patch} command. This will prompt you for the
|
||||||
revisions you wish to share, and which destination email address(es)
|
revisions you wish to share, and which destination email address(es)
|
||||||
to use. The command will then prepare those revisions using your
|
to use. The revisions are separated using commas (or whatever was
|
||||||
@abbr{MUA, Mail User Agent} for you to review and send.
|
configured by @var{crm-separator}). The command will then prepare
|
||||||
|
those revisions using your @abbr{MUA, Mail User Agent} for you to
|
||||||
|
review and send.
|
||||||
|
|
||||||
|
When invoked interactively in a Log View buffer with marked revisions,
|
||||||
|
these revisions will be used.
|
||||||
|
|
||||||
@vindex vc-prepare-patches-separately
|
@vindex vc-prepare-patches-separately
|
||||||
Depending on the value of the user option
|
Depending on the value of the user option
|
||||||
|
|
|
@ -427,19 +427,19 @@ It is a permanent local, unaffected by
|
||||||
@end defvar
|
@end defvar
|
||||||
|
|
||||||
@defvar buffer-file-number
|
@defvar buffer-file-number
|
||||||
This buffer-local variable holds the file number and directory device
|
This buffer-local variable holds the inode number and device
|
||||||
number of the file visited in the current buffer, or @code{nil} if no
|
identifier of the file visited in the current buffer, or @code{nil} if no
|
||||||
file or a nonexistent file is visited. It is a permanent local,
|
file or a nonexistent file is visited. It is a permanent local,
|
||||||
unaffected by @code{kill-all-local-variables}.
|
unaffected by @code{kill-all-local-variables}.
|
||||||
|
|
||||||
The value is normally a list of the form @code{(@var{filenum}
|
The value is normally a list of the form @code{(@var{inodenum}
|
||||||
@var{devnum})}. This pair of numbers uniquely identifies the file among
|
@var{device})}. This tuple uniquely identifies the file among
|
||||||
all files accessible on the system. See the function
|
all files accessible on the system. See the function
|
||||||
@code{file-attributes}, in @ref{File Attributes}, for more information
|
@code{file-attributes}, in @ref{File Attributes}, for more information
|
||||||
about them.
|
about them.
|
||||||
|
|
||||||
If @code{buffer-file-name} is the name of a symbolic link, then both
|
If @code{buffer-file-name} is the name of a symbolic link, then both
|
||||||
numbers refer to the recursive target.
|
@var{inodenum} and @var{device} refer to the recursive target of the link.
|
||||||
@end defvar
|
@end defvar
|
||||||
|
|
||||||
@defun get-file-buffer filename
|
@defun get-file-buffer filename
|
||||||
|
|
|
@ -985,7 +985,7 @@ too late.
|
||||||
While setting this variable disables automatic compilation of Lisp
|
While setting this variable disables automatic compilation of Lisp
|
||||||
files, the compiler may still be invoked to install @dfn{trampolines}
|
files, the compiler may still be invoked to install @dfn{trampolines}
|
||||||
if any built-in functions are redefined. However, these trampolines
|
if any built-in functions are redefined. However, these trampolines
|
||||||
will not get written to disk.
|
will not get written to your cache directory.
|
||||||
|
|
||||||
You can also use the @samp{EMACS_INHIBIT_AUTOMATIC_NATIVE_COMPILATION}
|
You can also use the @samp{EMACS_INHIBIT_AUTOMATIC_NATIVE_COMPILATION}
|
||||||
environment variable to disable native compilation.
|
environment variable to disable native compilation.
|
||||||
|
|
|
@ -1428,12 +1428,32 @@ emacs, The GNU Emacs Manual}.)
|
||||||
be a call to @code{deftheme}, and the last form should be a call to
|
be a call to @code{deftheme}, and the last form should be a call to
|
||||||
@code{provide-theme}.
|
@code{provide-theme}.
|
||||||
|
|
||||||
@defmac deftheme theme &optional doc
|
@defmac deftheme theme &optional doc &rest properties
|
||||||
This macro declares @var{theme} (a symbol) as the name of a Custom
|
This macro declares @var{theme} (a symbol) as the name of a Custom
|
||||||
theme. The optional argument @var{doc} should be a string describing
|
theme. The optional argument @var{doc} should be a string describing
|
||||||
the theme; this is the description shown when the user invokes the
|
the theme; this is the description shown when the user invokes the
|
||||||
@code{describe-theme} command or types @kbd{?} in the @samp{*Custom
|
@code{describe-theme} command or types @kbd{?} in the @samp{*Custom
|
||||||
Themes*} buffer.
|
Themes*} buffer. The remaining arguments @var{properties} are used
|
||||||
|
pass a property list with theme attributes.
|
||||||
|
|
||||||
|
The following attributes are supported:
|
||||||
|
|
||||||
|
@table @code
|
||||||
|
@item :family
|
||||||
|
A symbol designating what ``family'' a theme belongs to. A
|
||||||
|
@dfn{family} of themes is a set of similar themes that differ by minor
|
||||||
|
aspects, such as face colors that are meant for the light vs dark
|
||||||
|
background of the frame.
|
||||||
|
@item :kind
|
||||||
|
A symbol. If a theme is enabled and this property has the value
|
||||||
|
@code{color-scheme}, then the @code{theme-choose-variant} command will
|
||||||
|
look for other available themes that belong to the same family in
|
||||||
|
order to switch the themes. Other values are currently unspecified
|
||||||
|
and should not be used.
|
||||||
|
@item :background-mode
|
||||||
|
A symbol, either @code{light} or @code{dark}. This attribute is
|
||||||
|
currently unused, but should still be specified.
|
||||||
|
@end table
|
||||||
|
|
||||||
Two special theme names are disallowed (using them causes an error):
|
Two special theme names are disallowed (using them causes an error):
|
||||||
@code{user} is a dummy theme that stores the user's direct
|
@code{user} is a dummy theme that stores the user's direct
|
||||||
|
|
|
@ -1253,14 +1253,6 @@ the @samp{smb} method. For all other connection methods, runtime
|
||||||
tests are performed.
|
tests are performed.
|
||||||
@end defun
|
@end defun
|
||||||
|
|
||||||
@defun file-in-directory-p file dir
|
|
||||||
This function returns @code{t} if @var{file} is a file in directory
|
|
||||||
@var{dir}, or in a subdirectory of @var{dir}. It also returns
|
|
||||||
@code{t} if @var{file} and @var{dir} are the same directory. It
|
|
||||||
compares the truenames of the two directories. If @var{dir} does not
|
|
||||||
name an existing directory, the return value is @code{nil}.
|
|
||||||
@end defun
|
|
||||||
|
|
||||||
@defun vc-responsible-backend file
|
@defun vc-responsible-backend file
|
||||||
This function determines the responsible VC backend of the given
|
This function determines the responsible VC backend of the given
|
||||||
@var{file}. For example, if @file{emacs.c} is a file tracked by Git,
|
@var{file}. For example, if @file{emacs.c} is a file tracked by Git,
|
||||||
|
@ -1412,14 +1404,17 @@ The file's inode number (@code{file-attribute-inode-number}),
|
||||||
a nonnegative integer.
|
a nonnegative integer.
|
||||||
|
|
||||||
@item
|
@item
|
||||||
The filesystem number of the device that the file is on
|
The filesystem's identifier of the device that the file is on
|
||||||
@code{file-attribute-device-number}), an integer.
|
(@code{file-attribute-device-number}), an integer or a cons cell of
|
||||||
This element and the file's inode number
|
two integers. The latter is sometimes used by remote files, in order
|
||||||
together give enough information to distinguish any two files on the
|
to distinguish remote filesystems from local ones.
|
||||||
system---no two files can have the same values for both of these
|
|
||||||
numbers.
|
|
||||||
@end enumerate
|
@end enumerate
|
||||||
|
|
||||||
|
The file's inode and device together give enough information
|
||||||
|
to distinguish any two files on the system---no two files can have the
|
||||||
|
same values for both of these attributes. This tuple that uniquely
|
||||||
|
identifies the file is returned by @code{file-attribute-file-identifier}.
|
||||||
|
|
||||||
For example, here are the file attributes for @file{files.texi}:
|
For example, here are the file attributes for @file{files.texi}:
|
||||||
|
|
||||||
@example
|
@example
|
||||||
|
@ -3100,6 +3095,17 @@ is called with one argument (the file or directory) and should return
|
||||||
non-@code{nil} if that directory is the one it is looking for.
|
non-@code{nil} if that directory is the one it is looking for.
|
||||||
@end defun
|
@end defun
|
||||||
|
|
||||||
|
@cindex parent directory of file
|
||||||
|
@cindex ancestor directory of file
|
||||||
|
@cindex file, ancestor directory of
|
||||||
|
@defun file-in-directory-p file dir
|
||||||
|
This function returns @code{t} if @var{file} is a file in directory
|
||||||
|
@var{dir}, or in a subdirectory of @var{dir}. It also returns
|
||||||
|
@code{t} if @var{file} and @var{dir} are the same directory. It
|
||||||
|
compares the truenames of the two directories. If @var{dir} does not
|
||||||
|
name an existing directory, the return value is @code{nil}.
|
||||||
|
@end defun
|
||||||
|
|
||||||
@defun directory-files-and-attributes directory &optional full-name match-regexp nosort id-format count
|
@defun directory-files-and-attributes directory &optional full-name match-regexp nosort id-format count
|
||||||
This is similar to @code{directory-files} in deciding which files
|
This is similar to @code{directory-files} in deciding which files
|
||||||
to report on and how to report their names. However, instead
|
to report on and how to report their names. However, instead
|
||||||
|
|
|
@ -662,7 +662,7 @@ and @code{define-overloadable-function} (see the commentary in
|
||||||
and @code{define-global-minor-mode}.
|
and @code{define-global-minor-mode}.
|
||||||
|
|
||||||
@item Other definition types:
|
@item Other definition types:
|
||||||
@code{defcustom}, @code{defgroup}, @code{defclass}
|
@code{defcustom}, @code{defgroup}, @code{deftheme}, @code{defclass}
|
||||||
(@pxref{Top,EIEIO,,eieio,EIEIO}), and @code{define-skeleton}
|
(@pxref{Top,EIEIO,,eieio,EIEIO}), and @code{define-skeleton}
|
||||||
(@pxref{Top,Autotyping,,autotype,Autotyping}).
|
(@pxref{Top,Autotyping,,autotype,Autotyping}).
|
||||||
@end table
|
@end table
|
||||||
|
|
|
@ -5321,9 +5321,12 @@ This has exactly the same effect as the previous example, but is more
|
||||||
efficient and safer (because it doesn't involve any string parsing or
|
efficient and safer (because it doesn't involve any string parsing or
|
||||||
interpolation).
|
interpolation).
|
||||||
|
|
||||||
@code{sqlite-execute} returns the number of affected rows. For
|
@code{sqlite-execute} usually returns the number of affected rows.
|
||||||
instance, an @samp{insert} statement will return @samp{1}, whereas an
|
For instance, an @samp{insert} statement will typically return
|
||||||
@samp{update} statement may return zero or a higher number.
|
@samp{1}, whereas an @samp{update} statement may return zero or a
|
||||||
|
higher number. However, when using @acronym{SQL} statements like
|
||||||
|
@w{@samp{insert into @dots{} returning @dots{}}} and the like, the values
|
||||||
|
specified by @w{@samp{returning @dots{}}} will be returned instead.
|
||||||
|
|
||||||
Strings in SQLite are, by default, stored as @code{utf-8}, and
|
Strings in SQLite are, by default, stored as @code{utf-8}, and
|
||||||
selecting a text column will decode the string using that charset.
|
selecting a text column will decode the string using that charset.
|
||||||
|
|
|
@ -6684,32 +6684,32 @@ time window change functions were run for @var{window}'s frame. If it
|
||||||
returns @code{nil}, @var{window} has been created after that. If it
|
returns @code{nil}, @var{window} has been created after that. If it
|
||||||
returns @code{t}, @var{window} was not shown at that time but has been
|
returns @code{t}, @var{window} was not shown at that time but has been
|
||||||
restored from a previously saved window configuration afterwards.
|
restored from a previously saved window configuration afterwards.
|
||||||
Otherwise, the return value is the buffer shown by @code{window} at
|
Otherwise, the return value is the buffer shown by @var{window} at
|
||||||
that time.
|
that time.
|
||||||
@end defun
|
@end defun
|
||||||
|
|
||||||
@defun window-old-pixel-width &optional window
|
@defun window-old-pixel-width &optional window
|
||||||
This function returns the total pixel width of @var{window} the
|
This function returns the total pixel width of @var{window} the
|
||||||
last time window change functions found @code{window} live on its
|
last time window change functions found @var{window} live on its
|
||||||
frame. It is zero if @code{window} was created after that.
|
frame. It is zero if @var{window} was created after that.
|
||||||
@end defun
|
@end defun
|
||||||
|
|
||||||
@defun window-old-pixel-height &optional window
|
@defun window-old-pixel-height &optional window
|
||||||
This function returns the total pixel height of @var{window} the last
|
This function returns the total pixel height of @var{window} the last
|
||||||
time window change functions found @code{window} live on its frame.
|
time window change functions found @var{window} live on its frame.
|
||||||
It is zero if @code{window} was created after that.
|
It is zero if @var{window} was created after that.
|
||||||
@end defun
|
@end defun
|
||||||
|
|
||||||
@defun window-old-body-pixel-width &optional window
|
@defun window-old-body-pixel-width &optional window
|
||||||
This function returns the pixel width of @var{window}'s text area the
|
This function returns the pixel width of @var{window}'s text area the
|
||||||
last time window change functions found @code{window} live on its
|
last time window change functions found @var{window} live on its
|
||||||
frame. It is zero if @code{window} was created after that.
|
frame. It is zero if @var{window} was created after that.
|
||||||
@end defun
|
@end defun
|
||||||
|
|
||||||
@defun window-old-body-pixel-height &optional window
|
@defun window-old-body-pixel-height &optional window
|
||||||
This function returns the pixel height of @var{window}'s text area the
|
This function returns the pixel height of @var{window}'s text area the
|
||||||
last time window change functions found @code{window} live on its
|
last time window change functions found @var{window} live on its
|
||||||
frame. It is zero if @code{window} was created after that.
|
frame. It is zero if @var{window} was created after that.
|
||||||
@end defun
|
@end defun
|
||||||
|
|
||||||
In order to find out which window or frame was selected the last time
|
In order to find out which window or frame was selected the last time
|
||||||
|
|
|
@ -580,7 +580,7 @@ you are going to be editing AWK files, @file{README} describes how to
|
||||||
configure your (X)Emacs so that @ccmode{} will supersede the obsolete
|
configure your (X)Emacs so that @ccmode{} will supersede the obsolete
|
||||||
@code{awk-mode.el} which might have been supplied with your (X)Emacs.
|
@code{awk-mode.el} which might have been supplied with your (X)Emacs.
|
||||||
@ccmode{} might not work with older versions of Emacs or XEmacs. See
|
@ccmode{} might not work with older versions of Emacs or XEmacs. See
|
||||||
the @ccmode{} release notes at @uref{http://cc-mode.sourceforge.net}
|
the @ccmode{} release notes at @uref{https://cc-mode.sourceforge.net}
|
||||||
for the latest information on Emacs version and package compatibility
|
for the latest information on Emacs version and package compatibility
|
||||||
(@pxref{Updating CC Mode}).
|
(@pxref{Updating CC Mode}).
|
||||||
|
|
||||||
|
@ -3170,7 +3170,7 @@ E. Jones' Filladapt package@footnote{It's available from
|
||||||
lack a feature that makes it work suboptimally when
|
lack a feature that makes it work suboptimally when
|
||||||
@code{c-comment-prefix-regexp} matches the empty string (which it does
|
@code{c-comment-prefix-regexp} matches the empty string (which it does
|
||||||
by default). A patch for that is available from
|
by default). A patch for that is available from
|
||||||
@uref{http://cc-mode.sourceforge.net/,, the CC Mode web site}.},
|
@uref{https://cc-mode.sourceforge.net/,, the CC Mode web site}.},
|
||||||
@c 2005/11/22: The above is still believed to be the case.
|
@c 2005/11/22: The above is still believed to be the case.
|
||||||
which handles things like bulleted lists nicely. There's a convenience
|
which handles things like bulleted lists nicely. There's a convenience
|
||||||
function @code{c-setup-filladapt} that tunes the relevant variables in
|
function @code{c-setup-filladapt} that tunes the relevant variables in
|
||||||
|
@ -7583,7 +7583,7 @@ have old versions of @ccmode{} and so should be upgraded. Access to the
|
||||||
compatibility, etc.@: are all available on the web site:
|
compatibility, etc.@: are all available on the web site:
|
||||||
|
|
||||||
@quotation
|
@quotation
|
||||||
@uref{http://cc-mode.sourceforge.net/}
|
@uref{https://cc-mode.sourceforge.net/}
|
||||||
@end quotation
|
@end quotation
|
||||||
|
|
||||||
|
|
||||||
|
@ -7617,7 +7617,7 @@ the GNU Bug Tracker at @url{https://debbugs.gnu.org}, then sends it on
|
||||||
to @email{bug-cc-mode@@gnu.org}. You can also send reports, other
|
to @email{bug-cc-mode@@gnu.org}. You can also send reports, other
|
||||||
questions, and suggestions (kudos?@: @t{;-)} to that address. It's a
|
questions, and suggestions (kudos?@: @t{;-)} to that address. It's a
|
||||||
mailing list which you can join or browse an archive of; see the web site at
|
mailing list which you can join or browse an archive of; see the web site at
|
||||||
@uref{http://cc-mode.sourceforge.net/} for further details.
|
@uref{https://cc-mode.sourceforge.net/} for further details.
|
||||||
|
|
||||||
@cindex announcement mailing list
|
@cindex announcement mailing list
|
||||||
If you want to get announcements of new @ccmode{} releases, send the
|
If you want to get announcements of new @ccmode{} releases, send the
|
||||||
|
|
|
@ -1744,7 +1744,7 @@ date now, so no concrete pointers are available.
|
||||||
|
|
||||||
You will need an implementation of TeX for Windows.
|
You will need an implementation of TeX for Windows.
|
||||||
A number of implementations are listed on the
|
A number of implementations are listed on the
|
||||||
@uref{http://www.tug.org/interest.html#free, TeX Users Group} website.
|
@uref{https://www.tug.org/interest.html#free, TeX Users Group} website.
|
||||||
|
|
||||||
@node Spell check
|
@node Spell check
|
||||||
@section How do I perform spell checks?
|
@section How do I perform spell checks?
|
||||||
|
@ -1899,7 +1899,7 @@ Christopher Payne wrote a Visual Studio add-in that makes Emacs the
|
||||||
default text editor, this has now been taken over by Jeff Paquette.
|
default text editor, this has now been taken over by Jeff Paquette.
|
||||||
See the following two URLs for details:
|
See the following two URLs for details:
|
||||||
@itemize
|
@itemize
|
||||||
@item @uref{http://sourceforge.net/projects/visemacs/} for the latest version.
|
@item @uref{https://sourceforge.net/projects/visemacs/} for the latest version.
|
||||||
@item @uref{http://www.smathers.net/VisEmacs.htm} for notes on usage.
|
@item @uref{http://www.smathers.net/VisEmacs.htm} for notes on usage.
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
|
@ -2039,7 +2039,7 @@ this option is set. (I don't see it on VC++ 4.0.)
|
||||||
@cindex Borland C++, integration with Emacs
|
@cindex Borland C++, integration with Emacs
|
||||||
|
|
||||||
Jonathan Arnold has written an
|
Jonathan Arnold has written an
|
||||||
@uref{http://www.buddydog.org/C++Builder/c++builder.html, EmacsEdit
|
@uref{https://www.buddydog.org/C++Builder/c++builder.html, EmacsEdit
|
||||||
``expert''} for interfacing C++ Builder and Emacs.
|
``expert''} for interfacing C++ Builder and Emacs.
|
||||||
|
|
||||||
@node Version control
|
@node Version control
|
||||||
|
@ -2194,7 +2194,7 @@ to port software to Windows.
|
||||||
@cindex image libraries, gnuwin32
|
@cindex image libraries, gnuwin32
|
||||||
@cindex image libraries, development
|
@cindex image libraries, development
|
||||||
|
|
||||||
@uref{http://gnuwin32.sourceforge.net/}
|
@uref{https://gnuwin32.sourceforge.net/}
|
||||||
|
|
||||||
GnuWin32 provides precompiled native Windows ports of a wide selection
|
GnuWin32 provides precompiled native Windows ports of a wide selection
|
||||||
of Free software and libraries. Unfortunately, the ports are
|
of Free software and libraries. Unfortunately, the ports are
|
||||||
|
|
|
@ -3622,13 +3622,13 @@ To build Emacs from source for MS-DOS, see the instructions in the file
|
||||||
on plain DOS, and also on all versions of MS-Windows from version 3.X
|
on plain DOS, and also on all versions of MS-Windows from version 3.X
|
||||||
onwards, including Windows XP and Vista. Pre-built binaries may be
|
onwards, including Windows XP and Vista. Pre-built binaries may be
|
||||||
available at
|
available at
|
||||||
@uref{http://www.delorie.com/pub/djgpp/current/v2gnu/emacs.README}
|
@uref{https://www.delorie.com/pub/djgpp/current/v2gnu/emacs.README}
|
||||||
|
|
||||||
For a list of other implementations of Emacs (and Emacs
|
For a list of other implementations of Emacs (and Emacs
|
||||||
look-alikes), consult the list of ``Emacs implementations and literature,''
|
look-alikes), consult the list of ``Emacs implementations and literature,''
|
||||||
available at
|
available at
|
||||||
|
|
||||||
@uref{http://www.finseth.com/emacs.html}
|
@uref{https://www.finseth.com/emacs.html}
|
||||||
|
|
||||||
Note that while many of these programs look similar to Emacs, they often
|
Note that while many of these programs look similar to Emacs, they often
|
||||||
lack certain features, such as the Emacs Lisp extension language.
|
lack certain features, such as the Emacs Lisp extension language.
|
||||||
|
@ -3757,7 +3757,7 @@ Various spell-checkers are compatible with Emacs, including:
|
||||||
@table @b
|
@table @b
|
||||||
|
|
||||||
@item Hunspell
|
@item Hunspell
|
||||||
@uref{http://hunspell.sourceforge.net/}
|
@uref{https://hunspell.github.io/}
|
||||||
|
|
||||||
@item GNU Aspell
|
@item GNU Aspell
|
||||||
@uref{http://aspell.net/}
|
@uref{http://aspell.net/}
|
||||||
|
|
|
@ -1330,7 +1330,7 @@ details.
|
||||||
|
|
||||||
However, what you really want is the Insidious Big Brother
|
However, what you really want is the Insidious Big Brother
|
||||||
Database bbdb. Get it from
|
Database bbdb. Get it from
|
||||||
@uref{http://bbdb.sourceforge.net/, bbdb's website}.
|
@uref{https://bbdb.sourceforge.net/, bbdb's website}.
|
||||||
Now place the following in @file{~/.gnus.el}, to activate bbdb for Gnus:
|
Now place the following in @file{~/.gnus.el}, to activate bbdb for Gnus:
|
||||||
|
|
||||||
@example
|
@example
|
||||||
|
@ -1782,13 +1782,13 @@ when you're online.
|
||||||
Let's talk about Unix systems first: For the news part,
|
Let's talk about Unix systems first: For the news part,
|
||||||
the easiest solution is a small nntp server like
|
the easiest solution is a small nntp server like
|
||||||
@uref{https://www.leafnode.org/, Leafnode} or
|
@uref{https://www.leafnode.org/, Leafnode} or
|
||||||
@uref{http://patrik.iki.fi/sn/, sn},
|
@uref{https://patrik.iki.fi/sn/, sn},
|
||||||
of course you can also install a full featured news
|
of course you can also install a full featured news
|
||||||
server like
|
server like
|
||||||
@uref{https://www.isc.org/othersoftware/, inn}.
|
@uref{https://www.isc.org/othersoftware/, inn}.
|
||||||
Then you want to fetch your Mail, popular choices
|
Then you want to fetch your Mail, popular choices
|
||||||
are @uref{https://www.fetchmail.info/, fetchmail}
|
are @uref{https://www.fetchmail.info/, fetchmail}
|
||||||
and @uref{http://pyropus.ca/software/getmail/, getmail}.
|
and @uref{https://pyropus.ca/software/getmail/, getmail}.
|
||||||
You should tell those to write the mail to your disk and
|
You should tell those to write the mail to your disk and
|
||||||
Gnus to read it from there. Last but not least the mail
|
Gnus to read it from there. Last but not least the mail
|
||||||
sending part: This can be done with every MTA like
|
sending part: This can be done with every MTA like
|
||||||
|
|
|
@ -8045,7 +8045,7 @@ to a string containing the default command and options (default
|
||||||
@findex gnus-summary-muttprint
|
@findex gnus-summary-muttprint
|
||||||
@vindex gnus-summary-muttprint-program
|
@vindex gnus-summary-muttprint-program
|
||||||
Save the current article into muttprint. That is, print it using the
|
Save the current article into muttprint. That is, print it using the
|
||||||
external program @uref{http://muttprint.sourceforge.net/,
|
external program @uref{https://muttprint.sourceforge.net/,
|
||||||
Muttprint}. The program name and options to use is controlled by the
|
Muttprint}. The program name and options to use is controlled by the
|
||||||
variable @code{gnus-summary-muttprint-program}.
|
variable @code{gnus-summary-muttprint-program}.
|
||||||
(@code{gnus-summary-muttprint}).
|
(@code{gnus-summary-muttprint}).
|
||||||
|
@ -9343,7 +9343,7 @@ Use Gnus rendered based on w3m.
|
||||||
Use @uref{http://emacs-w3m.namazu.org/, emacs-w3m}.
|
Use @uref{http://emacs-w3m.namazu.org/, emacs-w3m}.
|
||||||
|
|
||||||
@item w3m-standalone
|
@item w3m-standalone
|
||||||
Use @uref{http://w3m.sourceforge.net/, w3m}.
|
Use @uref{https://w3m.sourceforge.net/, w3m}.
|
||||||
|
|
||||||
@item links
|
@item links
|
||||||
Use @uref{http://links.twibright.com/, Links}.
|
Use @uref{http://links.twibright.com/, Links}.
|
||||||
|
@ -13602,7 +13602,7 @@ Here's the method for a public spool:
|
||||||
If you are behind a firewall and only have access to the @acronym{NNTP}
|
If you are behind a firewall and only have access to the @acronym{NNTP}
|
||||||
server from the firewall machine, you can instruct Gnus to @code{rlogin}
|
server from the firewall machine, you can instruct Gnus to @code{rlogin}
|
||||||
on the firewall machine and connect with
|
on the firewall machine and connect with
|
||||||
@uref{http://netcat.sourceforge.net/, netcat} from there to the
|
@uref{https://netcat.sourceforge.net/, netcat} from there to the
|
||||||
@acronym{NNTP} server.
|
@acronym{NNTP} server.
|
||||||
Doing this can be rather fiddly, but your virtual server definition
|
Doing this can be rather fiddly, but your virtual server definition
|
||||||
should probably look something like this:
|
should probably look something like this:
|
||||||
|
@ -23794,7 +23794,7 @@ On a GNU/Linux system, the @code{display} program is included in the
|
||||||
ImageMagick package. For external conversion programs look for packages
|
ImageMagick package. For external conversion programs look for packages
|
||||||
with names like @code{netpbm}, @code{libgr-progs} and @code{compface}.
|
with names like @code{netpbm}, @code{libgr-progs} and @code{compface}.
|
||||||
On Windows, you may use the packages @code{netpbm} and @code{compface}
|
On Windows, you may use the packages @code{netpbm} and @code{compface}
|
||||||
from @url{http://gnuwin32.sourceforge.net}. You need to add the
|
from @url{https://gnuwin32.sourceforge.net}. You need to add the
|
||||||
@code{bin} directory to your @code{PATH} environment variable.
|
@code{bin} directory to your @code{PATH} environment variable.
|
||||||
@c In fact only the following DLLs and binaries seem to be required:
|
@c In fact only the following DLLs and binaries seem to be required:
|
||||||
@c compface1.dll uncompface.exe libnetpbm10.dll icontopbm.exe
|
@c compface1.dll uncompface.exe libnetpbm10.dll icontopbm.exe
|
||||||
|
|
|
@ -3082,7 +3082,7 @@ retracted---without question@footnote{In previous versions of MH-E,
|
||||||
this option suppressed the confirmation in @code{mh-kill-folder}.
|
this option suppressed the confirmation in @code{mh-kill-folder}.
|
||||||
Since this kept most users from setting this option,
|
Since this kept most users from setting this option,
|
||||||
@code{mh-kill-folder} was modified in version 6.0 to always ask for
|
@code{mh-kill-folder} was modified in version 6.0 to always ask for
|
||||||
confirmation subject to @code{mh-kill-folder-suppress-prompt-hook}.
|
confirmation subject to @code{mh-kill-folder-suppress-prompt-functions}.
|
||||||
@xref{Folders}.}.
|
@xref{Folders}.}.
|
||||||
|
|
||||||
@cindex MH-Folder mode
|
@cindex MH-Folder mode
|
||||||
|
@ -3364,7 +3364,7 @@ Hook run by q before quitting MH-E (default: @code{nil}).
|
||||||
Hook run by @code{mh-folder-mode} when visiting a new folder (default:
|
Hook run by @code{mh-folder-mode} when visiting a new folder (default:
|
||||||
@code{nil}).
|
@code{nil}).
|
||||||
@c -------------------------
|
@c -------------------------
|
||||||
@item mh-kill-folder-suppress-prompt-hook
|
@item mh-kill-folder-suppress-prompt-functions
|
||||||
Abnormal hook run at the beginning of @code{mh-kill-folder} (default:
|
Abnormal hook run at the beginning of @code{mh-kill-folder} (default:
|
||||||
@code{'mh-search-p}).
|
@code{'mh-search-p}).
|
||||||
@c -------------------------
|
@c -------------------------
|
||||||
|
@ -7540,8 +7540,8 @@ Allowlisted message face
|
||||||
@cindex spam filters, bogofilter
|
@cindex spam filters, bogofilter
|
||||||
|
|
||||||
MH-E depends on @uref{https://spamassassin.apache.org/, SpamAssassin},
|
MH-E depends on @uref{https://spamassassin.apache.org/, SpamAssassin},
|
||||||
@uref{http://bogofilter.sourceforge.net/, bogofilter}, or
|
@uref{https://bogofilter.sourceforge.net/, bogofilter}, or
|
||||||
@uref{http://spamprobe.sourceforge.net/, SpamProbe} to throw the dreck
|
@uref{https://spamprobe.sourceforge.net/, SpamProbe} to throw the dreck
|
||||||
away. This chapter describes briefly how to configure these programs
|
away. This chapter describes briefly how to configure these programs
|
||||||
to work well with MH-E and how to use MH-E's interface that provides
|
to work well with MH-E and how to use MH-E's interface that provides
|
||||||
continuing education for these programs.
|
continuing education for these programs.
|
||||||
|
@ -7721,7 +7721,7 @@ done by adding the following to your @file{crontab}:
|
||||||
|
|
||||||
Bogofilter is a Bayesian spam filtering program. Get it from your
|
Bogofilter is a Bayesian spam filtering program. Get it from your
|
||||||
local distribution or from the
|
local distribution or from the
|
||||||
@uref{http://bogofilter.sourceforge.net/, bogofilter web site}.
|
@uref{https://bogofilter.sourceforge.net/, bogofilter web site}.
|
||||||
|
|
||||||
Bogofilter is taught by running:
|
Bogofilter is taught by running:
|
||||||
|
|
||||||
|
@ -7791,7 +7791,7 @@ bogofilter.
|
||||||
@cindex spam filters, SpamProbe
|
@cindex spam filters, SpamProbe
|
||||||
|
|
||||||
SpamProbe is a Bayesian spam filtering program. Get it from your local
|
SpamProbe is a Bayesian spam filtering program. Get it from your local
|
||||||
distribution or from the @uref{http://spamprobe.sourceforge.net,
|
distribution or from the @uref{https://spamprobe.sourceforge.net,
|
||||||
SpamProbe web site}.
|
SpamProbe web site}.
|
||||||
|
|
||||||
To use SpamProbe, add the following recipes to @file{~/.procmailrc}:
|
To use SpamProbe, add the following recipes to @file{~/.procmailrc}:
|
||||||
|
@ -8633,7 +8633,7 @@ via SourceForge (@pxref{Bug Reports}).
|
||||||
@cindex FAQ
|
@cindex FAQ
|
||||||
@cindex MH FAQ
|
@cindex MH FAQ
|
||||||
|
|
||||||
The article @uref{http://www.newt.com/faq/mh.html, @cite{MH Frequently
|
The article @uref{https://www.newt.com/faq/mh.html, @cite{MH Frequently
|
||||||
Asked Questions (FAQ) with Answers}} appears monthly in the newsgroup
|
Asked Questions (FAQ) with Answers}} appears monthly in the newsgroup
|
||||||
@samp{comp.mail.mh}. While very little is there that deals with MH-E
|
@samp{comp.mail.mh}. While very little is there that deals with MH-E
|
||||||
specifically, there is an incredible wealth of material about MH
|
specifically, there is an incredible wealth of material about MH
|
||||||
|
|
|
@ -68,8 +68,8 @@ of Org, as well as additional information, frequently asked questions
|
||||||
[[https://orgmode.org]].
|
[[https://orgmode.org]].
|
||||||
|
|
||||||
#+cindex: print edition
|
#+cindex: print edition
|
||||||
An earlier version (7.3) of this manual is available as a [[http://www.network-theory.co.uk/org/manual/][paperback
|
An earlier version (7.3) of this manual was published as a paperback book by
|
||||||
book from Network Theory Ltd.]].
|
Network Theory Ltd. in 2010.
|
||||||
|
|
||||||
** Installation
|
** Installation
|
||||||
:PROPERTIES:
|
:PROPERTIES:
|
||||||
|
@ -3234,7 +3234,7 @@ options:
|
||||||
|
|
||||||
| Link Type | Example |
|
| Link Type | Example |
|
||||||
|------------+----------------------------------------------------------|
|
|------------+----------------------------------------------------------|
|
||||||
| http | =http://staff.science.uva.nl/c.dominik/= |
|
| http | =https://staff.science.uva.nl/c.dominik/= |
|
||||||
| https | =https://orgmode.org/= |
|
| https | =https://orgmode.org/= |
|
||||||
| doi | =doi:10.1000/182= |
|
| doi | =doi:10.1000/182= |
|
||||||
| file | =file:/home/dominik/images/jupiter.jpg= |
|
| file | =file:/home/dominik/images/jupiter.jpg= |
|
||||||
|
@ -3567,7 +3567,7 @@ replacement text. Here is an example:
|
||||||
'(("bugzilla" . "http://10.1.2.9/bugzilla/show_bug.cgi?id=")
|
'(("bugzilla" . "http://10.1.2.9/bugzilla/show_bug.cgi?id=")
|
||||||
("Nu Html Checker" . "https://validator.w3.org/nu/?doc=%h")
|
("Nu Html Checker" . "https://validator.w3.org/nu/?doc=%h")
|
||||||
("duckduckgo" . "https://duckduckgo.com/?q=%s")
|
("duckduckgo" . "https://duckduckgo.com/?q=%s")
|
||||||
("omap" . "http://nominatim.openstreetmap.org/search?q=%s&polygon=1")
|
("omap" . "https://nominatim.openstreetmap.org/search?q=%s&polygon=1")
|
||||||
("ads" . "https://ui.adsabs.harvard.edu/search/q=%20author%3A\"%s\"")))
|
("ads" . "https://ui.adsabs.harvard.edu/search/q=%20author%3A\"%s\"")))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
@ -3596,7 +3596,7 @@ can define them in the file with
|
||||||
|
|
||||||
#+cindex: @samp{LINK}, keyword
|
#+cindex: @samp{LINK}, keyword
|
||||||
#+begin_example
|
#+begin_example
|
||||||
,#+LINK: bugzilla http://10.1.2.9/bugzilla/show_bug.cgi?id=
|
,#+LINK: bugzilla https://10.1.2.9/bugzilla/show_bug.cgi?id=
|
||||||
,#+LINK: duckduckgo https://duckduckgo.com/?q=%s
|
,#+LINK: duckduckgo https://duckduckgo.com/?q=%s
|
||||||
#+end_example
|
#+end_example
|
||||||
|
|
||||||
|
@ -13642,7 +13642,7 @@ not have descriptions, such as these links =[[file:img.jpg]]= or
|
||||||
=[[./img.jpg]]=, as direct image insertions in the final PDF output. In
|
=[[./img.jpg]]=, as direct image insertions in the final PDF output. In
|
||||||
the PDF, they are no longer links but actual images embedded on the
|
the PDF, they are no longer links but actual images embedded on the
|
||||||
page. The LaTeX export back-end uses =\includegraphics= macro to
|
page. The LaTeX export back-end uses =\includegraphics= macro to
|
||||||
insert the image. But for TikZ (http://sourceforge.net/projects/pgf/)
|
insert the image. But for TikZ (https://sourceforge.net/projects/pgf/)
|
||||||
images, the back-end uses an ~\input~ macro wrapped within
|
images, the back-end uses an ~\input~ macro wrapped within
|
||||||
a ~tikzpicture~ environment.
|
a ~tikzpicture~ environment.
|
||||||
|
|
||||||
|
@ -13982,7 +13982,7 @@ some text in German...
|
||||||
#+cindex: Markdown export
|
#+cindex: Markdown export
|
||||||
|
|
||||||
The Markdown export back-end, "md", converts an Org file to Markdown
|
The Markdown export back-end, "md", converts an Org file to Markdown
|
||||||
format, as defined at http://daringfireball.net/projects/markdown/.
|
format, as defined at https://daringfireball.net/projects/markdown/.
|
||||||
|
|
||||||
Since it is built on top of the HTML back-end (see [[*HTML Export]]), it
|
Since it is built on top of the HTML back-end (see [[*HTML Export]]), it
|
||||||
converts every Org construct not defined in Markdown syntax, such as
|
converts every Org construct not defined in Markdown syntax, such as
|
||||||
|
@ -22053,7 +22053,7 @@ MathJax are processed. When dvipng, dvisvgm, or ImageMagick suite is
|
||||||
used to create images, any LaTeX environment is handled.
|
used to create images, any LaTeX environment is handled.
|
||||||
|
|
||||||
[fn:112] These are respectively available at
|
[fn:112] These are respectively available at
|
||||||
[[http://sourceforge.net/projects/dvipng/]], [[http://dvisvgm.bplaced.net/]]
|
[[https://sourceforge.net/projects/dvipng/]], [[http://dvisvgm.bplaced.net/]]
|
||||||
and from the ImageMagick suite. Choose the converter by setting the
|
and from the ImageMagick suite. Choose the converter by setting the
|
||||||
variable ~org-preview-latex-default-process~ accordingly.
|
variable ~org-preview-latex-default-process~ accordingly.
|
||||||
|
|
||||||
|
@ -22123,9 +22123,9 @@ semantic relevance.
|
||||||
|
|
||||||
[fn:130] Please note that exported formulas are part of an HTML
|
[fn:130] Please note that exported formulas are part of an HTML
|
||||||
document, and that signs such as =<=, =>=, or =&= have special
|
document, and that signs such as =<=, =>=, or =&= have special
|
||||||
meanings. See [[http://docs.mathjax.org/en/latest/tex.html#tex-and-latex-in-html-documents][MathJax TeX and LaTeX support]].
|
meanings. See [[https://docs.mathjax.org/en/latest/tex.html#tex-and-latex-in-html-documents][MathJax TeX and LaTeX support]].
|
||||||
|
|
||||||
[fn:131] See [[http://docs.mathjax.org/en/latest/tex.html#tex-extensions][TeX and LaTeX extensions]] in the [[http://docs.mathjax.org][MathJax manual]] to learn
|
[fn:131] See [[https://docs.mathjax.org/en/latest/tex.html#tex-extensions][TeX and LaTeX extensions]] in the [[https://docs.mathjax.org][MathJax manual]] to learn
|
||||||
about extensions.
|
about extensions.
|
||||||
|
|
||||||
[fn:132] If the classes on TODO keywords and tags lead to conflicts,
|
[fn:132] If the classes on TODO keywords and tags lead to conflicts,
|
||||||
|
@ -22140,14 +22140,14 @@ as latexmk, can select the correct bibliography compiler.
|
||||||
which requires the flag =-shell-escape= to be added to
|
which requires the flag =-shell-escape= to be added to
|
||||||
~org-latex-pdf-process~.
|
~org-latex-pdf-process~.
|
||||||
|
|
||||||
[fn:135] See [[http://docs.oasis-open.org/office/v1.2/OpenDocument-v1.2.html][Open Document Format for Office Applications
|
[fn:135] See [[https://docs.oasis-open.org/office/v1.2/OpenDocument-v1.2.html][Open Document Format for Office Applications
|
||||||
(OpenDocument) Version 1.2]].
|
(OpenDocument) Version 1.2]].
|
||||||
|
|
||||||
[fn:136] See [[http://www.mathtoweb.com/cgi-bin/mathtoweb_home.pl][MathToWeb]].
|
[fn:136] See [[http://www.mathtoweb.com/cgi-bin/mathtoweb_home.pl][MathToWeb]].
|
||||||
|
|
||||||
[fn:137] See [[http://dlmf.nist.gov/LaTeXML/]].
|
[fn:137] See [[https://dlmf.nist.gov/LaTeXML/]].
|
||||||
|
|
||||||
[fn:138] [[http://docs.oasis-open.org/office/v1.2/OpenDocument-v1.2.html][OpenDocument-v1.2 Specification]]
|
[fn:138] [[https://docs.oasis-open.org/office/v1.2/OpenDocument-v1.2.html][OpenDocument-v1.2 Specification]]
|
||||||
|
|
||||||
[fn:139] See the =<table:table-template>= element of the
|
[fn:139] See the =<table:table-template>= element of the
|
||||||
OpenDocument-v1.2 specification.
|
OpenDocument-v1.2 specification.
|
||||||
|
@ -22170,7 +22170,7 @@ are not evaluated when they appear in a keyword (see [[*Summary of
|
||||||
In-Buffer Settings]]).
|
In-Buffer Settings]]).
|
||||||
|
|
||||||
[fn:144] For noweb literate programming details, see
|
[fn:144] For noweb literate programming details, see
|
||||||
http://www.cs.tufts.edu/~nr/noweb/.
|
https://www.cs.tufts.edu/~nr/noweb/.
|
||||||
|
|
||||||
[fn:145] For more information, please refer to the commentary section
|
[fn:145] For more information, please refer to the commentary section
|
||||||
in =org-tempo.el=.
|
in =org-tempo.el=.
|
||||||
|
|
|
@ -424,13 +424,6 @@ The default priority for remembered mail messages.
|
||||||
@section Saving to an Org Mode file
|
@section Saving to an Org Mode file
|
||||||
@cindex org mode, integration
|
@cindex org mode, integration
|
||||||
|
|
||||||
@ignore
|
|
||||||
From org.texi:
|
|
||||||
Up to version 6.36 Org used a special setup
|
|
||||||
for @file{remember.el}. @file{org-remember.el} is still part of Org mode for
|
|
||||||
backward compatibility with existing setups. You can find the documentation
|
|
||||||
for org-remember at @url{http://orgmode.org/org-remember.pdf}.
|
|
||||||
@end ignore
|
|
||||||
For instructions on how to integrate Remember with Org Mode,
|
For instructions on how to integrate Remember with Org Mode,
|
||||||
consult @ref{Capture, , , org}.
|
consult @ref{Capture, , , org}.
|
||||||
|
|
||||||
|
|
|
@ -82,7 +82,7 @@ hippie-expand, and several other parts of Emacs.
|
||||||
|
|
||||||
To send bug reports, or participate in discussions about semantic,
|
To send bug reports, or participate in discussions about semantic,
|
||||||
use the mailing list cedet-semantic@@sourceforge.net via the URL:
|
use the mailing list cedet-semantic@@sourceforge.net via the URL:
|
||||||
@url{http://lists.sourceforge.net/lists/listinfo/cedet-semantic}
|
@url{https://lists.sourceforge.net/lists/listinfo/cedet-semantic}
|
||||||
|
|
||||||
@ifnottex
|
@ifnottex
|
||||||
@insertcopying
|
@insertcopying
|
||||||
|
|
|
@ -339,7 +339,7 @@ Indicate which script on the server should be active.
|
||||||
The Emacs Sieve package implements all or parts of a small but
|
The Emacs Sieve package implements all or parts of a small but
|
||||||
hopefully growing number of RFCs and drafts documents. This chapter
|
hopefully growing number of RFCs and drafts documents. This chapter
|
||||||
lists the relevant ones. They can all be fetched from
|
lists the relevant ones. They can all be fetched from
|
||||||
@uref{http://quimby.gnus.org/notes/}.
|
@uref{https://quimby.gnus.org/notes/}.
|
||||||
|
|
||||||
@table @dfn
|
@table @dfn
|
||||||
|
|
||||||
|
|
|
@ -892,7 +892,7 @@ list. Send email to the maintainer @email{reto@@gnu.org} to join
|
||||||
either of these lists.
|
either of these lists.
|
||||||
|
|
||||||
The official Emacs VHDL Mode Home Page can be found at
|
The official Emacs VHDL Mode Home Page can be found at
|
||||||
@uref{http://www.iis.ee.ethz.ch/~zimmi/emacs/vhdl-mode.html}.
|
@uref{https://www.iis.ee.ethz.ch/~zimmi/emacs/vhdl-mode.html}.
|
||||||
|
|
||||||
@node Sample Init File
|
@node Sample Init File
|
||||||
@chapter Sample Init File
|
@chapter Sample Init File
|
||||||
|
|
|
@ -1004,7 +1004,7 @@ incompatible with the --with-dumping=unexec option of 'configure'.
|
||||||
|
|
||||||
** Running Emacs under Valgrind
|
** Running Emacs under Valgrind
|
||||||
|
|
||||||
Valgrind <http://valgrind.org/> is free software that can be useful
|
Valgrind <https://valgrind.org/> is free software that can be useful
|
||||||
when debugging low-level Emacs problems. Unlike GCC sanitizers,
|
when debugging low-level Emacs problems. Unlike GCC sanitizers,
|
||||||
Valgrind does not need you to compile Emacs with special debugging
|
Valgrind does not need you to compile Emacs with special debugging
|
||||||
flags, so it can be helpful in investigating problems that vanish when
|
flags, so it can be helpful in investigating problems that vanish when
|
||||||
|
|
27
etc/NEWS
27
etc/NEWS
|
@ -1024,6 +1024,12 @@ The apropos commands will now select the apropos window if
|
||||||
If the symbol at point is a keymap, 'describe-keymap' suggests it as
|
If the symbol at point is a keymap, 'describe-keymap' suggests it as
|
||||||
the default candidate.
|
the default candidate.
|
||||||
|
|
||||||
|
---
|
||||||
|
*** New command 'help-quick' displays an overview of common commands.
|
||||||
|
The command pops up a buffer at the bottom of the screen with a few
|
||||||
|
helpful commands for various tasks. You can toggle the display using
|
||||||
|
'C-h q'.
|
||||||
|
|
||||||
** Outline Mode
|
** Outline Mode
|
||||||
|
|
||||||
+++
|
+++
|
||||||
|
@ -1376,6 +1382,11 @@ the ecomplete database.
|
||||||
*** New user option 'ecomplete-auto-select'.
|
*** New user option 'ecomplete-auto-select'.
|
||||||
If non-nil and there's only one matching option, auto-select that.
|
If non-nil and there's only one matching option, auto-select that.
|
||||||
|
|
||||||
|
---
|
||||||
|
*** New user option 'ecomplete-filter-regexp'.
|
||||||
|
If non-nil, this user option describes what entries not to add to the
|
||||||
|
database stored on disk.
|
||||||
|
|
||||||
** Dired
|
** Dired
|
||||||
|
|
||||||
+++
|
+++
|
||||||
|
@ -1897,7 +1908,7 @@ If non-nil, multiple revisions can be queried. This is done using
|
||||||
'completing-read-multiple'.
|
'completing-read-multiple'.
|
||||||
|
|
||||||
---
|
---
|
||||||
*** New function 'vc-read-multiple-revisions'
|
*** New function 'vc-read-multiple-revisions'.
|
||||||
This function invokes 'vc-read-revision' with a non-nil value for
|
This function invokes 'vc-read-revision' with a non-nil value for
|
||||||
MULTIPLE.
|
MULTIPLE.
|
||||||
|
|
||||||
|
@ -1905,7 +1916,7 @@ MULTIPLE.
|
||||||
*** New command 'vc-prepare-patch'.
|
*** New command 'vc-prepare-patch'.
|
||||||
Patches for any version control system can be prepared using VC. The
|
Patches for any version control system can be prepared using VC. The
|
||||||
command will query what commits to send and will compose messages for
|
command will query what commits to send and will compose messages for
|
||||||
your mail user agent. The behaviour of 'vc-prepare-patch' can be
|
your mail user agent. The behavior of 'vc-prepare-patch' can be
|
||||||
modified by the user options 'vc-prepare-patches-separately' and
|
modified by the user options 'vc-prepare-patches-separately' and
|
||||||
'vc-default-patch-addressee'.
|
'vc-default-patch-addressee'.
|
||||||
|
|
||||||
|
@ -2860,6 +2871,11 @@ Previously, ';;;###' specs inside a top-level form (i.e., something
|
||||||
like '(when ... ;;;### ...)' would be ignored. They are now parsed as
|
like '(when ... ;;;### ...)' would be ignored. They are now parsed as
|
||||||
normal.
|
normal.
|
||||||
|
|
||||||
|
---
|
||||||
|
** Themes have special autoload cookies.
|
||||||
|
All build-in themes are scraped for ;;;###theme-autoload cookies that
|
||||||
|
are loaded along with the regular auto-loaded code.
|
||||||
|
|
||||||
+++
|
+++
|
||||||
** 'buffer-modified-p' has been extended.
|
** 'buffer-modified-p' has been extended.
|
||||||
This function was previously documented to return only nil or t. This
|
This function was previously documented to return only nil or t. This
|
||||||
|
@ -3172,6 +3188,13 @@ The following generalized variables have been made obsolete:
|
||||||
|
|
||||||
* Lisp Changes in Emacs 29.1
|
* Lisp Changes in Emacs 29.1
|
||||||
|
|
||||||
|
+++
|
||||||
|
** New accessor function 'file-attribute-file-identifier'.
|
||||||
|
It returns the list of the inode number and device identifier
|
||||||
|
retrieved by 'file-attributes'. This value can be used to identify a
|
||||||
|
file uniquely. The device identifier can be a single number or (for
|
||||||
|
remote files) a cons of 2 numbers.
|
||||||
|
|
||||||
+++
|
+++
|
||||||
** New macro 'while-let'.
|
** New macro 'while-let'.
|
||||||
This is like 'when-let', but repeats until a binding form is nil.
|
This is like 'when-let', but repeats until a binding form is nil.
|
||||||
|
|
|
@ -217,7 +217,7 @@ Default is 'grow-only'.
|
||||||
** LessTif support.
|
** LessTif support.
|
||||||
|
|
||||||
Emacs now runs with the LessTif toolkit (see
|
Emacs now runs with the LessTif toolkit (see
|
||||||
<http://lesstif.sourceforge.net>). You will need version 0.92.26, or later.
|
<https://lesstif.sourceforge.net>). You will need version 0.92.26, or later.
|
||||||
|
|
||||||
** LessTif/Motif file selection dialog.
|
** LessTif/Motif file selection dialog.
|
||||||
|
|
||||||
|
|
|
@ -3540,7 +3540,7 @@ read-only on computers that are administered by someone else.
|
||||||
PBM and XBM images are supported out of the box. Other image formats
|
PBM and XBM images are supported out of the box. Other image formats
|
||||||
depend on external libraries. All of these libraries have been ported
|
depend on external libraries. All of these libraries have been ported
|
||||||
to Windows, and can be found in both source and binary form at
|
to Windows, and can be found in both source and binary form at
|
||||||
http://gnuwin32.sourceforge.net/. Note that libpng also depends on
|
https://gnuwin32.sourceforge.net/. Note that libpng also depends on
|
||||||
zlib, and tiff depends on the version of jpeg that it was compiled
|
zlib, and tiff depends on the version of jpeg that it was compiled
|
||||||
against. For additional information, see nt/INSTALL.
|
against. For additional information, see nt/INSTALL.
|
||||||
|
|
||||||
|
|
|
@ -72,7 +72,7 @@ using large fonts, at the price of a larger memory footprint.
|
||||||
** The version number of CC Mode has been changed from 5.33 to
|
** The version number of CC Mode has been changed from 5.33 to
|
||||||
5.32.99, although the software itself hasn't changed. This aims to
|
5.32.99, although the software itself hasn't changed. This aims to
|
||||||
reduce confusion with the standalone CC Mode 5.33 (available from
|
reduce confusion with the standalone CC Mode 5.33 (available from
|
||||||
http://cc-mode.sourceforge.net), which is a more mature version than
|
https://cc-mode.sourceforge.net), which is a more mature version than
|
||||||
the one included in Emacs 25.2.
|
the one included in Emacs 25.2.
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1223,7 +1223,7 @@ specialized for editing freedesktop.org desktop entries.
|
||||||
editing Less files.
|
editing Less files.
|
||||||
|
|
||||||
** New package 'auth-source-pass' integrates 'auth-source' with the
|
** New package 'auth-source-pass' integrates 'auth-source' with the
|
||||||
password manager password-store (http://passwordstore.org).
|
password manager password-store (https://passwordstore.org).
|
||||||
|
|
||||||
|
|
||||||
* Incompatible Lisp Changes in Emacs 26.1
|
* Incompatible Lisp Changes in Emacs 26.1
|
||||||
|
|
10
etc/TODO
10
etc/TODO
|
@ -509,7 +509,7 @@ Also for listing fonts, displaying a font as a sample, etc.
|
||||||
|
|
||||||
** Program Enriched mode to read and save in RTF
|
** Program Enriched mode to read and save in RTF
|
||||||
Is there actually a decent single definition of RTF? Maybe see info at
|
Is there actually a decent single definition of RTF? Maybe see info at
|
||||||
http://latex2rtf.sourceforge.net/.
|
https://latex2rtf.sourceforge.net/.
|
||||||
|
|
||||||
This task seems to be addressed by
|
This task seems to be addressed by
|
||||||
https://savannah.nongnu.org/projects/emacs-rtf/, which is still in
|
https://savannah.nongnu.org/projects/emacs-rtf/, which is still in
|
||||||
|
@ -886,7 +886,6 @@ window associated with that modeline.
|
||||||
https://lists.gnu.org/r/emacs-devel/2007-09/msg02416.html
|
https://lists.gnu.org/r/emacs-devel/2007-09/msg02416.html
|
||||||
|
|
||||||
** Random things that were planned for Emacs-24
|
** Random things that were planned for Emacs-24
|
||||||
|
|
||||||
Stefan Monnier writes: "Random things that cross my mind right now
|
Stefan Monnier writes: "Random things that cross my mind right now
|
||||||
that I'd like to see. Some of them from my local hacks, but it's not
|
that I'd like to see. Some of them from my local hacks, but it's not
|
||||||
obvious at all whether they'll make it."
|
obvious at all whether they'll make it."
|
||||||
|
@ -1737,11 +1736,18 @@ https://lists.gnu.org/r/emacs-devel/2012-06/msg00354.html
|
||||||
** Maybe replace lib-src/rcs2log with a Lisp implementation
|
** Maybe replace lib-src/rcs2log with a Lisp implementation
|
||||||
It wouldn't have to be a complete replacement, just enough
|
It wouldn't have to be a complete replacement, just enough
|
||||||
for vc-rcs-update-changelog.
|
for vc-rcs-update-changelog.
|
||||||
|
|
||||||
** Allow Emacs to use the bottom-right corner of a TTY
|
** Allow Emacs to use the bottom-right corner of a TTY
|
||||||
Emacs doesn't use the bottom-right corner of a TTY when terminfo
|
Emacs doesn't use the bottom-right corner of a TTY when terminfo
|
||||||
capability "am" (auto_right_margin) is defined. It could use the
|
capability "am" (auto_right_margin) is defined. It could use the
|
||||||
bottom-right corner nonetheless when certain other capabilities are
|
bottom-right corner nonetheless when certain other capabilities are
|
||||||
defined. See bug#57607.
|
defined. See bug#57607.
|
||||||
|
|
||||||
|
** Replace tramp-archive.el by a native libarchive(3) implementation.
|
||||||
|
The former is based on the GVFS archive backend, which makes it
|
||||||
|
available on GNU/Linux only. That implementation has further
|
||||||
|
drawbacks like it doesn't support to write into archives.
|
||||||
|
|
||||||
* Other known bugs
|
* Other known bugs
|
||||||
|
|
||||||
** 'make-frame' forgets unhandled parameters, at least for X11 frames
|
** 'make-frame' forgets unhandled parameters, at least for X11 frames
|
||||||
|
|
|
@ -13,10 +13,10 @@ License: GNU General Public License version 3 or later (see COPYING)
|
||||||
|
|
||||||
Some icons are derived from Red Hat's Insight Debugger:
|
Some icons are derived from Red Hat's Insight Debugger:
|
||||||
|
|
||||||
<http://sourceware.org/insight/>
|
<https://sourceware.org/insight/>
|
||||||
"Insight is a graphical user interface to GDB, the GNU Debugger"
|
"Insight is a graphical user interface to GDB, the GNU Debugger"
|
||||||
|
|
||||||
<http://sourceware.org/insight/aboutus.php>
|
<https://sourceware.org/insight/aboutus.php>
|
||||||
"Insight is being released under the terms of the GNU General Public
|
"Insight is being released under the terms of the GNU General Public
|
||||||
License (GPL)"
|
License (GPL)"
|
||||||
|
|
||||||
|
|
|
@ -38,7 +38,7 @@ template ede-empty :project
|
||||||
{{comment_prefix}} by EDE when this file is updated.
|
{{comment_prefix}} by EDE when this file is updated.
|
||||||
{{comment_prefix}}
|
{{comment_prefix}}
|
||||||
{{comment_prefix}} EDE is the Emacs Development Environment.
|
{{comment_prefix}} EDE is the Emacs Development Environment.
|
||||||
{{comment_prefix}} http://cedet.sourceforge.net/ede.shtml
|
{{comment_prefix}} https://cedet.sourceforge.net/ede.shtml
|
||||||
{{comment_prefix}}
|
{{comment_prefix}}
|
||||||
{{comment_prefix}} Process this file with autoconf to produce a configure script
|
{{comment_prefix}} Process this file with autoconf to produce a configure script
|
||||||
|
|
||||||
|
|
|
@ -34,7 +34,7 @@ template ede-empty :file :project
|
||||||
#
|
#
|
||||||
# DO NOT MODIFY THIS FILE OR YOUR CHANGES MAY BE LOST.
|
# DO NOT MODIFY THIS FILE OR YOUR CHANGES MAY BE LOST.
|
||||||
# EDE is the Emacs Development Environment.
|
# EDE is the Emacs Development Environment.
|
||||||
# http://cedet.sourceforge.net/ede.shtml
|
# https://cedet.sourceforge.net/ede.shtml
|
||||||
#
|
#
|
||||||
|
|
||||||
----
|
----
|
||||||
|
@ -58,7 +58,7 @@ template ede-empty :file
|
||||||
#
|
#
|
||||||
# DO NOT MODIFY THIS FILE OR YOUR CHANGES MAY BE LOST.
|
# DO NOT MODIFY THIS FILE OR YOUR CHANGES MAY BE LOST.
|
||||||
# EDE is the Emacs Development Environment.
|
# EDE is the Emacs Development Environment.
|
||||||
# http://cedet.sourceforge.net/ede.shtml
|
# https://cedet.sourceforge.net/ede.shtml
|
||||||
|
|
||||||
ARDUINO_DIR = {{ARDUINO_HOME}}
|
ARDUINO_DIR = {{ARDUINO_HOME}}
|
||||||
|
|
||||||
|
|
|
@ -21,10 +21,13 @@
|
||||||
|
|
||||||
;;; Code:
|
;;; Code:
|
||||||
|
|
||||||
|
;;;###theme-autoload
|
||||||
(deftheme adwaita
|
(deftheme adwaita
|
||||||
"Face colors similar to the default theme of Gnome 3 (Adwaita).
|
"Face colors similar to the default theme of Gnome 3 (Adwaita).
|
||||||
The colors are chosen to match Adwaita window decorations and the
|
The colors are chosen to match Adwaita window decorations and the
|
||||||
default look of the Gnome 3 desktop.")
|
default look of the Gnome 3 desktop."
|
||||||
|
:background-mode 'light
|
||||||
|
:kind 'color-scheme)
|
||||||
|
|
||||||
(let ((class '((class color) (min-colors 89))))
|
(let ((class '((class color) (min-colors 89))))
|
||||||
(custom-theme-set-faces
|
(custom-theme-set-faces
|
||||||
|
|
|
@ -21,8 +21,11 @@
|
||||||
|
|
||||||
;;; Code:
|
;;; Code:
|
||||||
|
|
||||||
|
;;;###theme-autoload
|
||||||
(deftheme deeper-blue
|
(deftheme deeper-blue
|
||||||
"Face colors using a deep blue background.")
|
"Face colors using a deep blue background."
|
||||||
|
:background-mode 'dark
|
||||||
|
:kind 'color-scheme)
|
||||||
|
|
||||||
(let ((class '((class color) (min-colors 89))))
|
(let ((class '((class color) (min-colors 89))))
|
||||||
(custom-theme-set-faces
|
(custom-theme-set-faces
|
||||||
|
|
|
@ -21,6 +21,7 @@
|
||||||
|
|
||||||
;;; Code:
|
;;; Code:
|
||||||
|
|
||||||
|
;;;###theme-autoload
|
||||||
(deftheme dichromacy
|
(deftheme dichromacy
|
||||||
"Face colors suitable for red/green color-blind users.
|
"Face colors suitable for red/green color-blind users.
|
||||||
The color palette is from B. Wong, Nature Methods 8, 441 (2011).
|
The color palette is from B. Wong, Nature Methods 8, 441 (2011).
|
||||||
|
@ -28,7 +29,9 @@ It is intended to provide good variability while being easily
|
||||||
differentiated by individuals with protanopia or deuteranopia.
|
differentiated by individuals with protanopia or deuteranopia.
|
||||||
|
|
||||||
Basic, Font Lock, Isearch, Gnus, Message, Flyspell, and
|
Basic, Font Lock, Isearch, Gnus, Message, Flyspell, and
|
||||||
Ansi-Color faces are included.")
|
Ansi-Color faces are included."
|
||||||
|
:background-mode 'light
|
||||||
|
:kind 'color-scheme)
|
||||||
|
|
||||||
(let ((class '((class color) (min-colors 89)))
|
(let ((class '((class color) (min-colors 89)))
|
||||||
(orange "#e69f00")
|
(orange "#e69f00")
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
;; Author: Fabrice Niessen <(concat "fniessen" at-sign "pirilampo.org")>
|
;; Author: Fabrice Niessen <(concat "fniessen" at-sign "pirilampo.org")>
|
||||||
;; Contributor: Thibault Polge <(concat "thibault" at-sign "thb.lt")>
|
;; Contributor: Thibault Polge <(concat "thibault" at-sign "thb.lt")>
|
||||||
;; URL: https://github.com/fniessen/emacs-leuven-dark-theme
|
;; URL: https://github.com/fniessen/emacs-leuven-dark-theme
|
||||||
;; Version: 20220202.1126
|
;; Version: 20221010.1208
|
||||||
;; Keywords: color theme
|
;; Keywords: color theme
|
||||||
|
|
||||||
;; This file is part of GNU Emacs.
|
;; This file is part of GNU Emacs.
|
||||||
|
@ -93,11 +93,15 @@ CONTROL can be a number, nil, or t. When t, use DEFAULT-HEIGHT."
|
||||||
|
|
||||||
;;; Theme Faces.
|
;;; Theme Faces.
|
||||||
|
|
||||||
|
;;;###theme-autoload
|
||||||
(deftheme leuven-dark
|
(deftheme leuven-dark
|
||||||
"Face colors with a light background.
|
"Face colors with a light background.
|
||||||
Basic, Font Lock, Isearch, Gnus, Message, Org mode, Diff, Ediff,
|
Basic, Font Lock, Isearch, Gnus, Message, Org mode, Diff, Ediff,
|
||||||
Flyspell, Semantic, and Ansi-Color faces are included -- and much
|
Flyspell, Semantic, and Ansi-Color faces are included -- and much
|
||||||
more...")
|
more..."
|
||||||
|
:background-mode 'dark
|
||||||
|
:family 'leuven
|
||||||
|
:kind 'color-scheme)
|
||||||
|
|
||||||
(let ((class '((class color) (min-colors 89)))
|
(let ((class '((class color) (min-colors 89)))
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
;; Author: Fabrice Niessen <(concat "fniessen" at-sign "pirilampo.org")>
|
;; Author: Fabrice Niessen <(concat "fniessen" at-sign "pirilampo.org")>
|
||||||
;; URL: https://github.com/fniessen/emacs-leuven-theme
|
;; URL: https://github.com/fniessen/emacs-leuven-theme
|
||||||
;; Version: 20200513.1928
|
;; Version: 20221010.1209
|
||||||
;; Keywords: color theme
|
;; Keywords: color theme
|
||||||
|
|
||||||
;; This file is part of GNU Emacs.
|
;; This file is part of GNU Emacs.
|
||||||
|
@ -74,11 +74,15 @@ CONTROL can be a number, nil, or t. When t, use DEFAULT-HEIGHT."
|
||||||
|
|
||||||
;;; Theme Faces.
|
;;; Theme Faces.
|
||||||
|
|
||||||
|
;;;###theme-autoload
|
||||||
(deftheme leuven
|
(deftheme leuven
|
||||||
"Face colors with a light background.
|
"Face colors with a light background.
|
||||||
Basic, Font Lock, Isearch, Gnus, Message, Org mode, Diff, Ediff,
|
Basic, Font Lock, Isearch, Gnus, Message, Org mode, Diff, Ediff,
|
||||||
Flyspell, Semantic, and Ansi-Color faces are included -- and much
|
Flyspell, Semantic, and Ansi-Color faces are included -- and much
|
||||||
more...")
|
more..."
|
||||||
|
:background-mode 'light
|
||||||
|
:kind 'color-scheme
|
||||||
|
:family 'leuven)
|
||||||
|
|
||||||
(let ((class '((class color) (min-colors 89)))
|
(let ((class '((class color) (min-colors 89)))
|
||||||
|
|
||||||
|
|
|
@ -26,8 +26,11 @@
|
||||||
|
|
||||||
;;; Code:
|
;;; Code:
|
||||||
|
|
||||||
|
;;;###theme-autoload
|
||||||
(deftheme light-blue
|
(deftheme light-blue
|
||||||
"Face colors utilizing a light blue background.")
|
"Face colors utilizing a light blue background."
|
||||||
|
:background-mode 'light
|
||||||
|
:kind 'color-scheme)
|
||||||
|
|
||||||
(make-obsolete 'light-blue nil "29.1")
|
(make-obsolete 'light-blue nil "29.1")
|
||||||
|
|
||||||
|
|
|
@ -64,10 +64,13 @@
|
||||||
|
|
||||||
;;; Code:
|
;;; Code:
|
||||||
|
|
||||||
|
;;;###theme-autoload
|
||||||
(deftheme manoj-dark
|
(deftheme manoj-dark
|
||||||
"Very high contrast faces with a black background.
|
"Very high contrast faces with a black background.
|
||||||
This theme avoids subtle color variations, while avoiding the
|
This theme avoids subtle color variations, while avoiding the
|
||||||
jarring angry fruit salad look to reduce eye fatigue.")
|
jarring angry fruit salad look to reduce eye fatigue."
|
||||||
|
:background-mode 'dark
|
||||||
|
:kind 'color-scheme)
|
||||||
|
|
||||||
(custom-theme-set-faces
|
(custom-theme-set-faces
|
||||||
'manoj-dark
|
'manoj-dark
|
||||||
|
|
|
@ -21,8 +21,11 @@
|
||||||
|
|
||||||
;;; Code:
|
;;; Code:
|
||||||
|
|
||||||
|
;;;###theme-autoload
|
||||||
(deftheme misterioso
|
(deftheme misterioso
|
||||||
"Predominantly blue/cyan faces on a dark cyan background.")
|
"Predominantly blue/cyan faces on a dark cyan background."
|
||||||
|
:background-mode 'dark
|
||||||
|
:kind 'color-scheme)
|
||||||
|
|
||||||
(let ((class '((class color) (min-colors 89))))
|
(let ((class '((class color) (min-colors 89))))
|
||||||
|
|
||||||
|
|
|
@ -71,4 +71,6 @@ which corresponds to a minimum contrast in relative luminance of
|
||||||
|
|
||||||
(provide-theme 'modus-operandi))
|
(provide-theme 'modus-operandi))
|
||||||
|
|
||||||
|
;;;###theme-autoload (put 'modus-operandi 'theme-properties '(:background-mode light :kind color-scheme :family modus))
|
||||||
|
|
||||||
;;; modus-operandi-theme.el ends here
|
;;; modus-operandi-theme.el ends here
|
||||||
|
|
|
@ -71,4 +71,6 @@ which corresponds to a minimum contrast in relative luminance of
|
||||||
|
|
||||||
(provide-theme 'modus-vivendi))
|
(provide-theme 'modus-vivendi))
|
||||||
|
|
||||||
|
;;;###theme-autoload (put 'modus-vivendi 'theme-properties '(:background-mode dark :kind color-scheme :family modus))
|
||||||
|
|
||||||
;;; modus-vivendi-theme.el ends here
|
;;; modus-vivendi-theme.el ends here
|
||||||
|
|
|
@ -27,10 +27,15 @@
|
||||||
|
|
||||||
;;; Code:
|
;;; Code:
|
||||||
|
|
||||||
|
;;;###theme-autoload
|
||||||
(deftheme tango-dark
|
(deftheme tango-dark
|
||||||
"Face colors using the Tango palette (dark background).
|
"Face colors using the Tango palette (dark background).
|
||||||
Basic, Font Lock, Isearch, Gnus, Message, Ediff, Flyspell,
|
Basic, Font Lock, Isearch, Gnus, Message, Ediff, Flyspell,
|
||||||
Semantic, and Ansi-Color faces are included.")
|
Semantic, and Ansi-Color faces are included."
|
||||||
|
:background-mode 'dark
|
||||||
|
:kind 'color-scheme
|
||||||
|
:family 'tango)
|
||||||
|
|
||||||
|
|
||||||
(let ((class '((class color) (min-colors 89)))
|
(let ((class '((class color) (min-colors 89)))
|
||||||
;; Tango palette colors.
|
;; Tango palette colors.
|
||||||
|
|
|
@ -27,10 +27,14 @@
|
||||||
|
|
||||||
;;; Code:
|
;;; Code:
|
||||||
|
|
||||||
|
;;;###theme-autoload
|
||||||
(deftheme tango
|
(deftheme tango
|
||||||
"Face colors using the Tango palette (light background).
|
"Face colors using the Tango palette (light background).
|
||||||
Basic, Font Lock, Isearch, Gnus, Message, Ediff, Flyspell,
|
Basic, Font Lock, Isearch, Gnus, Message, Ediff, Flyspell,
|
||||||
Semantic, and Ansi-Color faces are included.")
|
Semantic, and Ansi-Color faces are included."
|
||||||
|
:background-mode 'light
|
||||||
|
:kind 'color-scheme
|
||||||
|
:family 'tango)
|
||||||
|
|
||||||
(let ((class '((class color) (min-colors 89)))
|
(let ((class '((class color) (min-colors 89)))
|
||||||
;; Tango palette colors.
|
;; Tango palette colors.
|
||||||
|
|
|
@ -19,8 +19,12 @@
|
||||||
|
|
||||||
;;; Code:
|
;;; Code:
|
||||||
|
|
||||||
|
;;;###theme-autoload
|
||||||
(deftheme tsdh-dark
|
(deftheme tsdh-dark
|
||||||
"A dark theme used and created by Tassilo Horn.")
|
"A dark theme used and created by Tassilo Horn."
|
||||||
|
:background-mode 'dark
|
||||||
|
:kind 'color-scheme
|
||||||
|
:family 'tsdh)
|
||||||
|
|
||||||
(custom-theme-set-faces
|
(custom-theme-set-faces
|
||||||
'tsdh-dark
|
'tsdh-dark
|
||||||
|
|
|
@ -19,9 +19,13 @@
|
||||||
|
|
||||||
;;; Code:
|
;;; Code:
|
||||||
|
|
||||||
|
;;;###theme-autoload
|
||||||
(deftheme tsdh-light
|
(deftheme tsdh-light
|
||||||
"A light Emacs theme.
|
"A light Emacs theme.
|
||||||
Used and created by Tassilo Horn.")
|
Used and created by Tassilo Horn."
|
||||||
|
:background-mode 'light
|
||||||
|
:kind 'color-scheme
|
||||||
|
:family 'tsdh)
|
||||||
|
|
||||||
(custom-theme-set-faces
|
(custom-theme-set-faces
|
||||||
'tsdh-light
|
'tsdh-light
|
||||||
|
|
|
@ -19,11 +19,14 @@
|
||||||
|
|
||||||
;;; Code:
|
;;; Code:
|
||||||
|
|
||||||
|
;;;###theme-autoload
|
||||||
(deftheme wheatgrass
|
(deftheme wheatgrass
|
||||||
"High-contrast green/blue/brown faces on a black background.
|
"High-contrast green/blue/brown faces on a black background.
|
||||||
Basic, Font Lock, Isearch, Gnus, and Message faces are included.
|
Basic, Font Lock, Isearch, Gnus, and Message faces are included.
|
||||||
The default face foreground is wheat, with other faces in shades
|
The default face foreground is wheat, with other faces in shades
|
||||||
of green, brown, and blue.")
|
of green, brown, and blue."
|
||||||
|
:background-mode 'dark
|
||||||
|
:kind 'color-scheme)
|
||||||
|
|
||||||
(let ((class '((class color) (min-colors 89))))
|
(let ((class '((class color) (min-colors 89))))
|
||||||
(custom-theme-set-faces
|
(custom-theme-set-faces
|
||||||
|
|
|
@ -21,8 +21,11 @@
|
||||||
|
|
||||||
;;; Code:
|
;;; Code:
|
||||||
|
|
||||||
|
;;;###theme-autoload
|
||||||
(deftheme whiteboard
|
(deftheme whiteboard
|
||||||
"Face colors similar to markers on a whiteboard.")
|
"Face colors similar to markers on a whiteboard."
|
||||||
|
:background-mode 'light
|
||||||
|
:kind 'color-scheme)
|
||||||
|
|
||||||
(let ((class '((class color) (min-colors 89))))
|
(let ((class '((class color) (min-colors 89))))
|
||||||
(custom-theme-set-faces
|
(custom-theme-set-faces
|
||||||
|
|
|
@ -21,11 +21,14 @@
|
||||||
|
|
||||||
;;; Code:
|
;;; Code:
|
||||||
|
|
||||||
|
;;;###theme-autoload
|
||||||
(deftheme wombat
|
(deftheme wombat
|
||||||
"Medium-contrast faces with a dark gray background.
|
"Medium-contrast faces with a dark gray background.
|
||||||
Adapted, with permission, from a Vim color scheme by Lars H. Nielsen.
|
Adapted, with permission, from a Vim color scheme by Lars H. Nielsen.
|
||||||
Basic, Font Lock, Isearch, Gnus, Message, and Ansi-Color faces
|
Basic, Font Lock, Isearch, Gnus, Message, and Ansi-Color faces
|
||||||
are included.")
|
are included."
|
||||||
|
:background-mode 'dark
|
||||||
|
:kind 'color-scheme)
|
||||||
|
|
||||||
(let ((class '((class color) (min-colors 89))))
|
(let ((class '((class color) (min-colors 89))))
|
||||||
(custom-theme-set-faces
|
(custom-theme-set-faces
|
||||||
|
|
|
@ -206,6 +206,9 @@ main (int argc, char **argv)
|
||||||
SCMP_A2_32 (SCMP_CMP_MASKED_EQ,
|
SCMP_A2_32 (SCMP_CMP_MASKED_EQ,
|
||||||
~(PROT_NONE | PROT_READ | PROT_WRITE), 0));
|
~(PROT_NONE | PROT_READ | PROT_WRITE), 0));
|
||||||
|
|
||||||
|
/* Allow restartable sequences. The dynamic linker uses them. */
|
||||||
|
RULE (SCMP_ACT_ALLOW, SCMP_SYS (rseq));
|
||||||
|
|
||||||
/* Futexes are used everywhere. */
|
/* Futexes are used everywhere. */
|
||||||
RULE (SCMP_ACT_ALLOW, SCMP_SYS (futex),
|
RULE (SCMP_ACT_ALLOW, SCMP_SYS (futex),
|
||||||
SCMP_A1_32 (SCMP_CMP_EQ, FUTEX_WAKE_PRIVATE));
|
SCMP_A1_32 (SCMP_CMP_EQ, FUTEX_WAKE_PRIVATE));
|
||||||
|
@ -218,6 +221,7 @@ main (int argc, char **argv)
|
||||||
RULE (SCMP_ACT_ALLOW, SCMP_SYS (getuid));
|
RULE (SCMP_ACT_ALLOW, SCMP_SYS (getuid));
|
||||||
RULE (SCMP_ACT_ALLOW, SCMP_SYS (geteuid));
|
RULE (SCMP_ACT_ALLOW, SCMP_SYS (geteuid));
|
||||||
RULE (SCMP_ACT_ALLOW, SCMP_SYS (getpid));
|
RULE (SCMP_ACT_ALLOW, SCMP_SYS (getpid));
|
||||||
|
RULE (SCMP_ACT_ALLOW, SCMP_SYS (gettid));
|
||||||
RULE (SCMP_ACT_ALLOW, SCMP_SYS (getpgrp));
|
RULE (SCMP_ACT_ALLOW, SCMP_SYS (getpgrp));
|
||||||
|
|
||||||
/* Allow operations on open file descriptors. File descriptors are
|
/* Allow operations on open file descriptors. File descriptors are
|
||||||
|
@ -324,6 +328,8 @@ main (int argc, char **argv)
|
||||||
| CLONE_SETTLS | CLONE_PARENT_SETTID
|
| CLONE_SETTLS | CLONE_PARENT_SETTID
|
||||||
| CLONE_CHILD_CLEARTID),
|
| CLONE_CHILD_CLEARTID),
|
||||||
0));
|
0));
|
||||||
|
/* glibc 2.34+ pthread_create uses clone3. */
|
||||||
|
RULE (SCMP_ACT_ALLOW, SCMP_SYS (clone3));
|
||||||
RULE (SCMP_ACT_ALLOW, SCMP_SYS (sigaltstack));
|
RULE (SCMP_ACT_ALLOW, SCMP_SYS (sigaltstack));
|
||||||
RULE (SCMP_ACT_ALLOW, SCMP_SYS (set_robust_list));
|
RULE (SCMP_ACT_ALLOW, SCMP_SYS (set_robust_list));
|
||||||
|
|
||||||
|
|
|
@ -9490,7 +9490,7 @@
|
||||||
toolbar/rescan.pbm, toolbar/rescan.xpm, toolbar/show.pbm,
|
toolbar/rescan.pbm, toolbar/rescan.xpm, toolbar/show.pbm,
|
||||||
toolbar/show.xpm, toolbar/widen.pbm, toolbar/widen.xpm:
|
toolbar/show.xpm, toolbar/widen.pbm, toolbar/widen.xpm:
|
||||||
Upgraded to mh-e version 6.1.1. Full ChangeLog available in
|
Upgraded to mh-e version 6.1.1. Full ChangeLog available in
|
||||||
http://prdownloads.sourceforge.net/mh-e/mh-e-6.1.tgz?download .
|
https://prdownloads.sourceforge.net/mh-e/mh-e-6.1.tgz?download .
|
||||||
There were no user-visible changes in 6.1.1 from 6.1--only the
|
There were no user-visible changes in 6.1.1 from 6.1--only the
|
||||||
section of the Makefile that installs the files into Emacs was changed.
|
section of the Makefile that installs the files into Emacs was changed.
|
||||||
|
|
||||||
|
|
|
@ -155,7 +155,7 @@
|
||||||
|
|
||||||
* epa.el (epa-decrypt-region): Detect encoding if
|
* epa.el (epa-decrypt-region): Detect encoding if
|
||||||
coding-system-for-read is not specified.
|
coding-system-for-read is not specified.
|
||||||
<http://sourceforge.jp/ticket/browse.php?group_id=2267&tid=17018>
|
<https://sourceforge.jp/ticket/browse.php?group_id=2267&tid=17018>
|
||||||
(epa-verify-region): Ditto.
|
(epa-verify-region): Ditto.
|
||||||
|
|
||||||
2009-06-04 Stefan Monnier <monnier@iro.umontreal.ca>
|
2009-06-04 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||||
|
@ -540,7 +540,7 @@
|
||||||
|
|
||||||
* epa-file.el (epa-file-decode-and-insert):
|
* epa-file.el (epa-file-decode-and-insert):
|
||||||
Use string-to-multibyte instead of set-buffer-multibyte.
|
Use string-to-multibyte instead of set-buffer-multibyte.
|
||||||
<http://sourceforge.jp/ticket/browse.php?group_id=2267&tid=15259>
|
<https://sourceforge.jp/ticket/browse.php?group_id=2267&tid=15259>
|
||||||
|
|
||||||
2009-04-18 Yann Hodique <yann.hodique@gmail.com> (tiny change)
|
2009-04-18 Yann Hodique <yann.hodique@gmail.com> (tiny change)
|
||||||
|
|
||||||
|
|
|
@ -22762,7 +22762,7 @@
|
||||||
|
|
||||||
Automatically handle .xz suffix (XZ-compressed files), too.
|
Automatically handle .xz suffix (XZ-compressed files), too.
|
||||||
* jka-cmpr-hook.el (jka-compr-compression-info-list): Add xz.
|
* jka-cmpr-hook.el (jka-compr-compression-info-list): Add xz.
|
||||||
XZ is the successor to LZMA: <http://tukaani.org/xz/>
|
XZ is the successor to LZMA: <https://tukaani.org/xz/>
|
||||||
|
|
||||||
2009-06-22 Dmitry Dzhus <dima@sphinx.net.ru>
|
2009-06-22 Dmitry Dzhus <dima@sphinx.net.ru>
|
||||||
Nick Roberts <nickrob@snap.net.nz>
|
Nick Roberts <nickrob@snap.net.nz>
|
||||||
|
|
|
@ -14039,7 +14039,7 @@
|
||||||
|
|
||||||
* epa-file.el (epa-file-write-region): Encode the region according
|
* epa-file.el (epa-file-write-region): Encode the region according
|
||||||
to `buffer-file-format'. Problem reported at:
|
to `buffer-file-format'. Problem reported at:
|
||||||
<http://sourceforge.jp/ticket/browse.php?group_id=2267&tid=32917>.
|
<https://sourceforge.jp/ticket/browse.php?group_id=2267&tid=32917>.
|
||||||
|
|
||||||
2014-01-14 Stefan Monnier <monnier@iro.umontreal.ca>
|
2014-01-14 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||||
|
|
||||||
|
|
|
@ -430,6 +430,12 @@ compile-always:
|
||||||
find $(lisp) -name '*.elc' $(FIND_DELETE)
|
find $(lisp) -name '*.elc' $(FIND_DELETE)
|
||||||
$(MAKE) compile
|
$(MAKE) compile
|
||||||
|
|
||||||
|
.PHONY: trampolines
|
||||||
|
trampolines: compile
|
||||||
|
ifeq ($(HAVE_NATIVE_COMP),yes)
|
||||||
|
$(emacs) -l comp -f comp-compile-all-trampolines
|
||||||
|
endif
|
||||||
|
|
||||||
.PHONY: backup-compiled-files compile-after-backup
|
.PHONY: backup-compiled-files compile-after-backup
|
||||||
|
|
||||||
# Backup compiled Lisp files in elc.tar.gz. If that file already
|
# Backup compiled Lisp files in elc.tar.gz. If that file already
|
||||||
|
|
|
@ -168,7 +168,7 @@ If this contains a %s, that will be replaced by the matching rule."
|
||||||
|
|
||||||
(".dir-locals.el"
|
(".dir-locals.el"
|
||||||
nil
|
nil
|
||||||
";;; Directory Local Variables\n"
|
";;; Directory Local Variables -*- no-byte-compile: t; -*-\n"
|
||||||
";;; For more information see (info \"(emacs) Directory Variables\")\n\n"
|
";;; For more information see (info \"(emacs) Directory Variables\")\n\n"
|
||||||
"(("
|
"(("
|
||||||
'(setq v1 (let (modes)
|
'(setq v1 (let (modes)
|
||||||
|
|
|
@ -47,7 +47,7 @@
|
||||||
;; The original pulse code was written for semantic tag highlighting.
|
;; The original pulse code was written for semantic tag highlighting.
|
||||||
;; It has been extracted, and adapted for general purpose pulsing.
|
;; It has been extracted, and adapted for general purpose pulsing.
|
||||||
;;
|
;;
|
||||||
;; Pulse is a part of CEDET. http://cedet.sf.net
|
;; Pulse is a part of CEDET. https://cedet.sourceforge.net
|
||||||
|
|
||||||
(require 'color)
|
(require 'color)
|
||||||
|
|
||||||
|
|
|
@ -1152,9 +1152,11 @@ list, in which A occurs before B if B was defined with a
|
||||||
;; (provide-theme 'THEME)
|
;; (provide-theme 'THEME)
|
||||||
|
|
||||||
|
|
||||||
(defmacro deftheme (theme &optional doc)
|
(defmacro deftheme (theme &optional doc &rest properties)
|
||||||
"Declare THEME to be a Custom theme.
|
"Declare THEME to be a Custom theme.
|
||||||
The optional argument DOC is a doc string describing the theme.
|
The optional argument DOC is a doc string describing the theme.
|
||||||
|
PROPERTIES are interpreted as a property list that will be stored
|
||||||
|
in the `theme-properties' property for THEME.
|
||||||
|
|
||||||
Any theme `foo' should be defined in a file called `foo-theme.el';
|
Any theme `foo' should be defined in a file called `foo-theme.el';
|
||||||
see `custom-make-theme-feature' for more information."
|
see `custom-make-theme-feature' for more information."
|
||||||
|
@ -1164,18 +1166,25 @@ see `custom-make-theme-feature' for more information."
|
||||||
;; It is better not to use backquote in this file,
|
;; It is better not to use backquote in this file,
|
||||||
;; because that makes a bootstrapping problem
|
;; because that makes a bootstrapping problem
|
||||||
;; if you need to recompile all the Lisp files using interpreted code.
|
;; if you need to recompile all the Lisp files using interpreted code.
|
||||||
(list 'custom-declare-theme (list 'quote theme) (list 'quote feature) doc)))
|
(list 'custom-declare-theme (list 'quote theme) (list 'quote feature) doc
|
||||||
|
(cons 'list properties))))
|
||||||
|
|
||||||
(defun custom-declare-theme (theme feature &optional doc)
|
(defun custom-declare-theme (theme feature &optional doc properties)
|
||||||
"Like `deftheme', but THEME is evaluated as a normal argument.
|
"Like `deftheme', but THEME is evaluated as a normal argument.
|
||||||
FEATURE is the feature this theme provides. Normally, this is a symbol
|
FEATURE is the feature this theme provides. Normally, this is a
|
||||||
created from THEME by `custom-make-theme-feature'."
|
symbol created from THEME by `custom-make-theme-feature'. The
|
||||||
|
optional argument DOC may contain the documentation for THEME.
|
||||||
|
The optional argument PROPERTIES may contain a property list of
|
||||||
|
attributes associated with THEME."
|
||||||
(unless (custom-theme-name-valid-p theme)
|
(unless (custom-theme-name-valid-p theme)
|
||||||
(error "Custom theme cannot be named %S" theme))
|
(error "Custom theme cannot be named %S" theme))
|
||||||
(unless (memq theme custom-known-themes)
|
(unless (memq theme custom-known-themes)
|
||||||
(push theme custom-known-themes))
|
(push theme custom-known-themes))
|
||||||
(put theme 'theme-feature feature)
|
(put theme 'theme-feature feature)
|
||||||
(when doc (put theme 'theme-documentation doc)))
|
(when doc
|
||||||
|
(put theme 'theme-documentation doc))
|
||||||
|
(when properties
|
||||||
|
(put theme 'theme-properties properties)))
|
||||||
|
|
||||||
(defun custom-make-theme-feature (theme)
|
(defun custom-make-theme-feature (theme)
|
||||||
"Given a symbol THEME, create a new symbol by appending \"-theme\".
|
"Given a symbol THEME, create a new symbol by appending \"-theme\".
|
||||||
|
@ -1372,6 +1381,58 @@ Return t if THEME was successfully loaded, nil otherwise."
|
||||||
(enable-theme theme))
|
(enable-theme theme))
|
||||||
t)
|
t)
|
||||||
|
|
||||||
|
(defun theme-list-variants (theme &rest list)
|
||||||
|
"Return a list of theme variants for THEME.
|
||||||
|
By default this will use all known custom themes (see
|
||||||
|
`custom-available-themes') to check for variants. This can be
|
||||||
|
restricted if the optional argument LIST containing a list of
|
||||||
|
theme symbols to consider."
|
||||||
|
(let* ((properties (get theme 'theme-properties))
|
||||||
|
(family (plist-get properties :family)))
|
||||||
|
(seq-filter
|
||||||
|
(lambda (variant)
|
||||||
|
(and (eq (plist-get (get variant 'theme-properties) :family)
|
||||||
|
family)
|
||||||
|
(not (eq variant theme))))
|
||||||
|
(or list (custom-available-themes)))))
|
||||||
|
|
||||||
|
(defun theme-choose-variant (&optional no-confirm no-enable)
|
||||||
|
"Switch from the current theme to one of its variants.
|
||||||
|
The current theme will be disabled before variant is enabled. If
|
||||||
|
the current theme has only one variant, switch to that variant
|
||||||
|
without prompting, otherwise prompt for the variant to select.
|
||||||
|
See `load-theme' for the meaning of NO-CONFIRM and NO-ENABLE."
|
||||||
|
(interactive)
|
||||||
|
(let ((active-color-schemes
|
||||||
|
(seq-filter
|
||||||
|
(lambda (theme)
|
||||||
|
;; FIXME: As most themes currently do not have a `:kind'
|
||||||
|
;; tag, it is assumed that a theme is a color scheme by
|
||||||
|
;; default. This should be reconsidered in the future.
|
||||||
|
(memq (plist-get (get theme 'theme-properties) :kind)
|
||||||
|
'(color-scheme nil)))
|
||||||
|
custom-enabled-themes)))
|
||||||
|
(cond
|
||||||
|
((length= active-color-schemes 0)
|
||||||
|
(user-error "No theme is active, cannot toggle"))
|
||||||
|
((length> active-color-schemes 1)
|
||||||
|
(user-error "More than one theme active, cannot unambiguously toggle")))
|
||||||
|
(let* ((theme (car active-color-schemes))
|
||||||
|
(family (plist-get (get theme 'theme-properties) :family)))
|
||||||
|
(unless family
|
||||||
|
(error "Theme `%s' does not have any known variants" theme))
|
||||||
|
(let* ((variants (theme-list-variants theme))
|
||||||
|
(choice (cond
|
||||||
|
((null variants)
|
||||||
|
(error "`%s' has no variants" theme))
|
||||||
|
((length= variants 1)
|
||||||
|
(car variants))
|
||||||
|
((intern (completing-read "Load custom theme: " variants))))))
|
||||||
|
(disable-theme theme)
|
||||||
|
(load-theme choice no-confirm no-enable)))))
|
||||||
|
|
||||||
|
(defalias 'toggle-theme #'theme-choose-variant)
|
||||||
|
|
||||||
(defun custom-theme-load-confirm (hash)
|
(defun custom-theme-load-confirm (hash)
|
||||||
"Query the user about loading a Custom theme that may not be safe.
|
"Query the user about loading a Custom theme that may not be safe.
|
||||||
The theme should be in the current buffer. If the user agrees,
|
The theme should be in the current buffer. If the user agrees,
|
||||||
|
|
|
@ -70,9 +70,9 @@
|
||||||
:type '(symbol :tag "Coding system"))
|
:type '(symbol :tag "Coding system"))
|
||||||
|
|
||||||
(defcustom ecomplete-sort-predicate #'ecomplete-decay
|
(defcustom ecomplete-sort-predicate #'ecomplete-decay
|
||||||
"Predicate to use when sorting matched.
|
"Predicate to use when sorting matched ecomplete candidates.
|
||||||
The predicate is called with two parameters that represent the
|
The predicate is called with two arguments that represent the
|
||||||
completion. Each parameter is a list where the first element is
|
completion. Each argument is a list where the first element is
|
||||||
the times the completion has been used, the second is the
|
the times the completion has been used, the second is the
|
||||||
timestamp of the most recent usage, and the third item is the
|
timestamp of the most recent usage, and the third item is the
|
||||||
string that was matched."
|
string that was matched."
|
||||||
|
@ -86,6 +86,11 @@ string that was matched."
|
||||||
:type 'boolean
|
:type 'boolean
|
||||||
:version "29.1")
|
:version "29.1")
|
||||||
|
|
||||||
|
(defcustom ecomplete-filter-regexp nil
|
||||||
|
"Regular expression of addresses that should not be stored by ecomplete."
|
||||||
|
:type 'regexp
|
||||||
|
:version "29.1")
|
||||||
|
|
||||||
;;; Internal variables.
|
;;; Internal variables.
|
||||||
|
|
||||||
(defvar ecomplete-database nil)
|
(defvar ecomplete-database nil)
|
||||||
|
@ -104,6 +109,8 @@ string that was matched."
|
||||||
By default, the longest version of TEXT will be preserved, but if
|
By default, the longest version of TEXT will be preserved, but if
|
||||||
FORCE is non-nil, use TEXT exactly as is."
|
FORCE is non-nil, use TEXT exactly as is."
|
||||||
(unless ecomplete-database (ecomplete-setup))
|
(unless ecomplete-database (ecomplete-setup))
|
||||||
|
(unless (and ecomplete-filter-regexp
|
||||||
|
(string-match-p ecomplete-filter-regexp key))
|
||||||
(let ((elems (assq type ecomplete-database))
|
(let ((elems (assq type ecomplete-database))
|
||||||
(now (time-convert nil 'integer))
|
(now (time-convert nil 'integer))
|
||||||
entry)
|
entry)
|
||||||
|
@ -117,7 +124,7 @@ FORCE is non-nil, use TEXT exactly as is."
|
||||||
(>= (length text) (length oldtext)))
|
(>= (length text) (length oldtext)))
|
||||||
text
|
text
|
||||||
oldtext))))
|
oldtext))))
|
||||||
(nconc elems (list (list key 1 now text))))))
|
(nconc elems (list (list key 1 now text)))))))
|
||||||
|
|
||||||
(defun ecomplete--remove-item (type key)
|
(defun ecomplete--remove-item (type key)
|
||||||
"Remove the element of TYPE and KEY from the ecomplete database."
|
"Remove the element of TYPE and KEY from the ecomplete database."
|
||||||
|
@ -289,7 +296,7 @@ non-nil and there is only a single completion option available."
|
||||||
nil t)))
|
nil t)))
|
||||||
|
|
||||||
(defun ecomplete-edit ()
|
(defun ecomplete-edit ()
|
||||||
"Prompt for an item and allow editing it."
|
"Prompt for an ecomplete item and allow editing it."
|
||||||
(interactive)
|
(interactive)
|
||||||
(let* ((type (ecomplete--prompt-type))
|
(let* ((type (ecomplete--prompt-type))
|
||||||
(data (cdr (assq type ecomplete-database)))
|
(data (cdr (assq type ecomplete-database)))
|
||||||
|
@ -305,7 +312,8 @@ non-nil and there is only a single completion option available."
|
||||||
(ecomplete-save)))
|
(ecomplete-save)))
|
||||||
|
|
||||||
(defun ecomplete-remove ()
|
(defun ecomplete-remove ()
|
||||||
"Remove entries matching a regexp from the ecomplete database."
|
"Remove from the ecomplete database the entries matching a regexp.
|
||||||
|
Prompt for the regexp to match the database entries to be removed."
|
||||||
(interactive)
|
(interactive)
|
||||||
(let* ((type (ecomplete--prompt-type))
|
(let* ((type (ecomplete--prompt-type))
|
||||||
(data (cdr (assq type ecomplete-database)))
|
(data (cdr (assq type ecomplete-database)))
|
||||||
|
|
|
@ -4204,6 +4204,17 @@ bytecode definition was not changed in the meantime)."
|
||||||
|
|
||||||
;;; Compiler entry points.
|
;;; Compiler entry points.
|
||||||
|
|
||||||
|
(defun comp-compile-all-trampolines ()
|
||||||
|
"Pre-compile AOT all trampolines."
|
||||||
|
(let ((comp-running-batch-compilation t)
|
||||||
|
;; We want to target only the 'native-lisp' directory.
|
||||||
|
(native-compile-target-directory
|
||||||
|
(car (last native-comp-eln-load-path))))
|
||||||
|
(mapatoms (lambda (f)
|
||||||
|
(when (subr-primitive-p (symbol-function f))
|
||||||
|
(message "Compiling trampoline for: %s" f)
|
||||||
|
(comp-trampoline-compile f))))))
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun comp-lookup-eln (filename)
|
(defun comp-lookup-eln (filename)
|
||||||
"Given a Lisp source FILENAME return the corresponding .eln file if found.
|
"Given a Lisp source FILENAME return the corresponding .eln file if found.
|
||||||
|
|
|
@ -283,6 +283,12 @@ expression, in which case we want to handle forms differently."
|
||||||
,@(when-let ((safe (plist-get props :safe)))
|
,@(when-let ((safe (plist-get props :safe)))
|
||||||
`((put ',varname 'safe-local-variable ,safe))))))
|
`((put ',varname 'safe-local-variable ,safe))))))
|
||||||
|
|
||||||
|
;; Extract theme properties.
|
||||||
|
((eq car 'deftheme)
|
||||||
|
(let* ((name (car-safe (cdr-safe form)))
|
||||||
|
(props (nthcdr 3 form)))
|
||||||
|
`(put ',name 'theme-properties (list ,@props))))
|
||||||
|
|
||||||
((eq car 'defgroup)
|
((eq car 'defgroup)
|
||||||
;; In Emacs this is normally handled separately by cus-dep.el, but for
|
;; In Emacs this is normally handled separately by cus-dep.el, but for
|
||||||
;; third party packages, it can be convenient to explicitly autoload
|
;; third party packages, it can be convenient to explicitly autoload
|
||||||
|
@ -730,7 +736,14 @@ rules for built-in packages and excluded files."
|
||||||
;; updated.
|
;; updated.
|
||||||
(file-newer-than-file-p
|
(file-newer-than-file-p
|
||||||
(expand-file-name "emacs-lisp/loaddefs-gen.el" lisp-directory)
|
(expand-file-name "emacs-lisp/loaddefs-gen.el" lisp-directory)
|
||||||
output-file))))
|
output-file)))
|
||||||
|
(let ((lisp-mode-autoload-regexp
|
||||||
|
"^;;;###\\(\\(noexist\\)-\\)?\\(theme-autoload\\)"))
|
||||||
|
(loaddefs-generate
|
||||||
|
(expand-file-name "../etc/themes/" lisp-directory)
|
||||||
|
(expand-file-name "theme-loaddefs.el" lisp-directory))))
|
||||||
|
|
||||||
|
;;;###autoload (load "theme-loaddefs.el")
|
||||||
|
|
||||||
(provide 'loaddefs-gen)
|
(provide 'loaddefs-gen)
|
||||||
|
|
||||||
|
|
|
@ -262,12 +262,7 @@ by counted more than once."
|
||||||
(cl-struct-slot-info struct-type)))))
|
(cl-struct-slot-info struct-type)))))
|
||||||
|
|
||||||
(defun memory-report--format (bytes)
|
(defun memory-report--format (bytes)
|
||||||
(setq bytes (/ bytes 1024.0))
|
(format "%10s" (file-size-human-readable bytes 'iec " ")))
|
||||||
(let ((units '("KiB" "MiB" "GiB" "TiB")))
|
|
||||||
(while (>= bytes 1024)
|
|
||||||
(setq bytes (/ bytes 1024.0))
|
|
||||||
(setq units (cdr units)))
|
|
||||||
(format "%6.1f %s" bytes (car units))))
|
|
||||||
|
|
||||||
(defun memory-report--gc-elem (elems type)
|
(defun memory-report--gc-elem (elems type)
|
||||||
(* (nth 1 (assq type elems))
|
(* (nth 1 (assq type elems))
|
||||||
|
|
|
@ -975,7 +975,7 @@ untar into a directory named DIR; otherwise, signal an error."
|
||||||
(or (string-match regexp name)
|
(or (string-match regexp name)
|
||||||
;; Tarballs created by some utilities don't list
|
;; Tarballs created by some utilities don't list
|
||||||
;; directories with a trailing slash (Bug#13136).
|
;; directories with a trailing slash (Bug#13136).
|
||||||
(and (string-equal dir name)
|
(and (string-equal (expand-file-name dir) name)
|
||||||
(eq (tar-header-link-type tar-data) 5))
|
(eq (tar-header-link-type tar-data) 5))
|
||||||
(error "Package does not untar cleanly into directory %s/" dir)))))
|
(error "Package does not untar cleanly into directory %s/" dir)))))
|
||||||
(tar-untar-buffer))
|
(tar-untar-buffer))
|
||||||
|
@ -1240,8 +1240,12 @@ Return the pkg-desc, with desc-kind set to KIND."
|
||||||
"Find package information for a tar file.
|
"Find package information for a tar file.
|
||||||
The return result is a `package-desc'."
|
The return result is a `package-desc'."
|
||||||
(cl-assert (derived-mode-p 'tar-mode))
|
(cl-assert (derived-mode-p 'tar-mode))
|
||||||
(let* ((dir-name (file-name-directory
|
(let* ((dir-name (named-let loop
|
||||||
(tar-header-name (car tar-parse-info))))
|
((filename (tar-header-name (car tar-parse-info))))
|
||||||
|
(let ((dirname (file-name-directory filename)))
|
||||||
|
;; The first file can be in a subdir: look for the top.
|
||||||
|
(if dirname (loop (directory-file-name dirname))
|
||||||
|
(file-name-as-directory filename)))))
|
||||||
(desc-file (package--description-file dir-name))
|
(desc-file (package--description-file dir-name))
|
||||||
(tar-desc (tar-get-file-descriptor (concat dir-name desc-file))))
|
(tar-desc (tar-get-file-descriptor (concat dir-name desc-file))))
|
||||||
(unless tar-desc
|
(unless tar-desc
|
||||||
|
|
|
@ -897,6 +897,8 @@ A FUNC form can have any number of `:no-eval' (or `:no-value'),
|
||||||
:eval (seq-drop-while #'numberp '(1 2 c d 5)))
|
:eval (seq-drop-while #'numberp '(1 2 c d 5)))
|
||||||
(seq-filter
|
(seq-filter
|
||||||
:eval (seq-filter #'numberp '(a b 3 4 f 6)))
|
:eval (seq-filter #'numberp '(a b 3 4 f 6)))
|
||||||
|
(seq-keep
|
||||||
|
:eval (seq-keep #'cl-digit-char-p '(?6 ?a ?7)))
|
||||||
(seq-remove
|
(seq-remove
|
||||||
:eval (seq-remove #'numberp '(1 2 c d 5)))
|
:eval (seq-remove #'numberp '(1 2 c d 5)))
|
||||||
(seq-remove-at-position
|
(seq-remove-at-position
|
||||||
|
|
|
@ -353,6 +353,11 @@ This also updates the displayed table."
|
||||||
(let* ((cache (vtable--cache table))
|
(let* ((cache (vtable--cache table))
|
||||||
(inhibit-read-only t)
|
(inhibit-read-only t)
|
||||||
(keymap (get-text-property (point) 'keymap))
|
(keymap (get-text-property (point) 'keymap))
|
||||||
|
(ellipsis (if (vtable-ellipsis table)
|
||||||
|
(propertize (truncate-string-ellipsis)
|
||||||
|
'face (vtable-face table))
|
||||||
|
""))
|
||||||
|
(ellipsis-width (string-pixel-width ellipsis))
|
||||||
(elem (and after-object
|
(elem (and after-object
|
||||||
(assq after-object (car cache))))
|
(assq after-object (car cache))))
|
||||||
(line (cons object (vtable--compute-cached-line table object))))
|
(line (cons object (vtable--compute-cached-line table object))))
|
||||||
|
@ -370,7 +375,8 @@ This also updates the displayed table."
|
||||||
;; FIXME: We have to adjust colors in lines below this if we
|
;; FIXME: We have to adjust colors in lines below this if we
|
||||||
;; have :row-colors.
|
;; have :row-colors.
|
||||||
(vtable--insert-line table line 0
|
(vtable--insert-line table line 0
|
||||||
(nth 1 cache) (vtable--spacer table))
|
(nth 1 cache) (vtable--spacer table)
|
||||||
|
ellipsis ellipsis-width)
|
||||||
(add-text-properties start (point) (list 'keymap keymap
|
(add-text-properties start (point) (list 'keymap keymap
|
||||||
'vtable table)))
|
'vtable table)))
|
||||||
;; We may have inserted a non-numerical value into a previously
|
;; We may have inserted a non-numerical value into a previously
|
||||||
|
@ -516,7 +522,8 @@ This also updates the displayed table."
|
||||||
(if (> (nth 1 elem) (elt widths index))
|
(if (> (nth 1 elem) (elt widths index))
|
||||||
(concat
|
(concat
|
||||||
(vtable--limit-string
|
(vtable--limit-string
|
||||||
pre-computed (- (elt widths index) ellipsis-width))
|
pre-computed (- (elt widths index)
|
||||||
|
(or ellipsis-width 0)))
|
||||||
ellipsis)
|
ellipsis)
|
||||||
pre-computed))
|
pre-computed))
|
||||||
;; Recompute widths.
|
;; Recompute widths.
|
||||||
|
@ -524,7 +531,8 @@ This also updates the displayed table."
|
||||||
(if (> (string-pixel-width value) (elt widths index))
|
(if (> (string-pixel-width value) (elt widths index))
|
||||||
(concat
|
(concat
|
||||||
(vtable--limit-string
|
(vtable--limit-string
|
||||||
value (- (elt widths index) ellipsis-width))
|
value (- (elt widths index)
|
||||||
|
(or ellipsis-width 0)))
|
||||||
ellipsis)
|
ellipsis)
|
||||||
value))))
|
value))))
|
||||||
(start (point))
|
(start (point))
|
||||||
|
|
|
@ -3779,7 +3779,7 @@
|
||||||
doesn't appear).
|
doesn't appear).
|
||||||
|
|
||||||
* NEWS: Added the information from
|
* NEWS: Added the information from
|
||||||
http://emacswiki.org/cgi-bin/wiki/ErcCvsFeatures and the newer
|
https://emacswiki.org/cgi-bin/wiki/ErcCvsFeatures and the newer
|
||||||
changes which weren't yet documented on that page.
|
changes which weren't yet documented on that page.
|
||||||
|
|
||||||
2005-01-06 Hoan Ton-That <hoan@ton-that.org>
|
2005-01-06 Hoan Ton-That <hoan@ton-that.org>
|
||||||
|
@ -8298,7 +8298,7 @@
|
||||||
it doesn't move point to end-of-buffer in non-ERC buffers. Fixed
|
it doesn't move point to end-of-buffer in non-ERC buffers. Fixed
|
||||||
erc-kill-buffer-function so it doesn't run the erc-kill-server-hook hooks if the
|
erc-kill-buffer-function so it doesn't run the erc-kill-server-hook hooks if the
|
||||||
server connection is closed. Fixed bug 658552, which is described in detail at
|
server connection is closed. Fixed bug 658552, which is described in detail at
|
||||||
http://sourceforge.net/tracker/index.php?func=detail&aid=658552&group_id=30118&atid=398125
|
https://sourceforge.net/tracker/index.php?func=detail&aid=658552&group_id=30118&atid=398125
|
||||||
|
|
||||||
2002-12-26 Alex Schroeder <alex@gnu.org>
|
2002-12-26 Alex Schroeder <alex@gnu.org>
|
||||||
|
|
||||||
|
|
|
@ -6961,6 +6961,8 @@ shortened server name instead."
|
||||||
|
|
||||||
(defvar tabbar--local-hlf)
|
(defvar tabbar--local-hlf)
|
||||||
|
|
||||||
|
;; FIXME when 29.1 is cut and `format-spec' is added to ELPA Compat,
|
||||||
|
;; remove the function invocations from the spec form below.
|
||||||
(defun erc-update-mode-line-buffer (buffer)
|
(defun erc-update-mode-line-buffer (buffer)
|
||||||
"Update the mode line in a single ERC buffer BUFFER."
|
"Update the mode line in a single ERC buffer BUFFER."
|
||||||
(with-current-buffer buffer
|
(with-current-buffer buffer
|
||||||
|
@ -7325,7 +7327,7 @@ See also `format-spec'."
|
||||||
(error "No format spec for message %s" msg))
|
(error "No format spec for message %s" msg))
|
||||||
(when (functionp entry)
|
(when (functionp entry)
|
||||||
(setq entry (apply entry args)))
|
(setq entry (apply entry args)))
|
||||||
(format-spec entry (apply #'format-spec-make args))))
|
(format-spec entry (apply #'format-spec-make args) 'ignore)))
|
||||||
|
|
||||||
;;; Various hook functions
|
;;; Various hook functions
|
||||||
|
|
||||||
|
|
|
@ -372,12 +372,10 @@ Remove the DIRECTORY(ies), if they are empty.")
|
||||||
(setq attr (eshell-file-attributes (car files)))
|
(setq attr (eshell-file-attributes (car files)))
|
||||||
(file-attribute-inode-number attr-target)
|
(file-attribute-inode-number attr-target)
|
||||||
(file-attribute-inode-number attr)
|
(file-attribute-inode-number attr)
|
||||||
(equal (file-attribute-inode-number attr-target)
|
|
||||||
(file-attribute-inode-number attr))
|
|
||||||
(file-attribute-device-number attr-target)
|
(file-attribute-device-number attr-target)
|
||||||
(file-attribute-device-number attr)
|
(file-attribute-device-number attr)
|
||||||
(equal (file-attribute-device-number attr-target)
|
(equal (file-attribute-file-identifier attr-target)
|
||||||
(file-attribute-device-number attr)))
|
(file-attribute-file-identifier attr)))
|
||||||
(eshell-error (format-message "%s: `%s' and `%s' are the same file\n"
|
(eshell-error (format-message "%s: `%s' and `%s' are the same file\n"
|
||||||
command (car files) target)))
|
command (car files) target)))
|
||||||
(t
|
(t
|
||||||
|
|
|
@ -277,7 +277,23 @@ Used only on systems which do not support async subprocesses.")
|
||||||
eshell-delete-exited-processes
|
eshell-delete-exited-processes
|
||||||
delete-exited-processes))
|
delete-exited-processes))
|
||||||
(process-environment (eshell-environment-variables))
|
(process-environment (eshell-environment-variables))
|
||||||
|
(coding-system-for-read coding-system-for-read)
|
||||||
|
(coding-system-for-write coding-system-for-write)
|
||||||
proc stderr-proc decoding encoding changed)
|
proc stderr-proc decoding encoding changed)
|
||||||
|
;; MS-Windows needs special setting of encoding/decoding, because
|
||||||
|
;; (a) non-ASCII text in command-line arguments needs to be
|
||||||
|
;; encoded in the system's codepage; and (b) because many Windows
|
||||||
|
;; programs will always interpret any non-ASCII input as encoded
|
||||||
|
;; in the system codepage.
|
||||||
|
(when (eq system-type 'windows-nt)
|
||||||
|
(or coding-system-for-read ; Honor manual decoding settings
|
||||||
|
(setq coding-system-for-read
|
||||||
|
(coding-system-change-eol-conversion locale-coding-system
|
||||||
|
'dos)))
|
||||||
|
(or coding-system-for-write ; Honor manual encoding settings
|
||||||
|
(setq coding-system-for-write
|
||||||
|
(coding-system-change-eol-conversion locale-coding-system
|
||||||
|
'unix))))
|
||||||
(cond
|
(cond
|
||||||
((fboundp 'make-process)
|
((fboundp 'make-process)
|
||||||
(unless (equal (car (aref eshell-current-handles eshell-output-handle))
|
(unless (equal (car (aref eshell-current-handles eshell-output-handle))
|
||||||
|
@ -325,7 +341,7 @@ Used only on systems which do not support async subprocesses.")
|
||||||
(setq decoding (coding-system-change-eol-conversion decoding 'dos)
|
(setq decoding (coding-system-change-eol-conversion decoding 'dos)
|
||||||
changed t))
|
changed t))
|
||||||
;; Even if `make-process' left the coding system for encoding
|
;; Even if `make-process' left the coding system for encoding
|
||||||
;; data sent from the process undecided, we had better use the
|
;; data sent to the process undecided, we had better use the
|
||||||
;; same one as what we use for decoding. But, we should
|
;; same one as what we use for decoding. But, we should
|
||||||
;; suppress EOL conversion.
|
;; suppress EOL conversion.
|
||||||
(if (and decoding (not encoding))
|
(if (and decoding (not encoding))
|
||||||
|
|
|
@ -489,7 +489,9 @@ from the MODE alist ignoring the input argument VALUE."
|
||||||
dir-locals-directory-cache))
|
dir-locals-directory-cache))
|
||||||
|
|
||||||
;; Insert modified alist of directory-local variables.
|
;; Insert modified alist of directory-local variables.
|
||||||
(insert ";;; Directory Local Variables\n")
|
;; When changing this, also update the ".dir-locals.el" file for
|
||||||
|
;; Emacs itself, as well as the template in autoinsert.el.
|
||||||
|
(insert ";;; Directory Local Variables -*- no-byte-compile: t -*-\n")
|
||||||
(insert ";;; For more information see (info \"(emacs) Directory Variables\")\n\n")
|
(insert ";;; For more information see (info \"(emacs) Directory Variables\")\n\n")
|
||||||
(princ (dir-locals-to-string
|
(princ (dir-locals-to-string
|
||||||
(sort variables
|
(sort variables
|
||||||
|
|
|
@ -208,9 +208,10 @@ if the file has changed on disk and you have not edited the buffer."
|
||||||
:group 'find-file)
|
:group 'find-file)
|
||||||
|
|
||||||
(defvar-local buffer-file-number nil
|
(defvar-local buffer-file-number nil
|
||||||
"The device number and file number of the file visited in the current buffer.
|
"The inode number and the device of the file visited in the current buffer.
|
||||||
The value is a list of the form (FILENUM DEVNUM).
|
The value is a list of the form (INODENUM DEVICE), where DEVICE can be
|
||||||
This pair of numbers uniquely identifies the file.
|
either a single number or a cons cell of two numbers.
|
||||||
|
This tuple of numbers uniquely identifies the file.
|
||||||
If the buffer is visiting a new file, the value is nil.")
|
If the buffer is visiting a new file, the value is nil.")
|
||||||
(put 'buffer-file-number 'permanent-local t)
|
(put 'buffer-file-number 'permanent-local t)
|
||||||
|
|
||||||
|
@ -2163,7 +2164,7 @@ If there is no such live buffer, return nil."
|
||||||
(setq list (cdr list)))
|
(setq list (cdr list)))
|
||||||
found)
|
found)
|
||||||
(let* ((attributes (file-attributes truename))
|
(let* ((attributes (file-attributes truename))
|
||||||
(number (nthcdr 10 attributes))
|
(number (file-attribute-file-identifier attributes))
|
||||||
(list (buffer-list)) found)
|
(list (buffer-list)) found)
|
||||||
(and buffer-file-numbers-unique
|
(and buffer-file-numbers-unique
|
||||||
(car-safe number) ;Make sure the inode is not just nil.
|
(car-safe number) ;Make sure the inode is not just nil.
|
||||||
|
@ -2366,7 +2367,7 @@ the various files."
|
||||||
(let* ((buf (get-file-buffer filename))
|
(let* ((buf (get-file-buffer filename))
|
||||||
(truename (abbreviate-file-name (file-truename filename)))
|
(truename (abbreviate-file-name (file-truename filename)))
|
||||||
(attributes (file-attributes truename))
|
(attributes (file-attributes truename))
|
||||||
(number (nthcdr 10 attributes))
|
(number (file-attribute-file-identifier attributes))
|
||||||
;; Find any buffer for a file that has same truename.
|
;; Find any buffer for a file that has same truename.
|
||||||
(other (and (not buf)
|
(other (and (not buf)
|
||||||
(find-buffer-visiting
|
(find-buffer-visiting
|
||||||
|
@ -4744,7 +4745,7 @@ the old visited file has been renamed to the new name FILENAME."
|
||||||
(setq buffer-file-name truename))))
|
(setq buffer-file-name truename))))
|
||||||
(setq buffer-file-number
|
(setq buffer-file-number
|
||||||
(if filename
|
(if filename
|
||||||
(nthcdr 10 (file-attributes buffer-file-name))
|
(file-attribute-file-identifier (file-attributes buffer-file-name))
|
||||||
nil))
|
nil))
|
||||||
;; write-file-functions is normally used for things like ftp-find-file
|
;; write-file-functions is normally used for things like ftp-find-file
|
||||||
;; that visit things that are not local files as if they were files.
|
;; that visit things that are not local files as if they were files.
|
||||||
|
@ -5733,7 +5734,8 @@ Before and after saving the buffer, this function runs
|
||||||
(setq save-buffer-coding-system last-coding-system-used)
|
(setq save-buffer-coding-system last-coding-system-used)
|
||||||
(setq buffer-file-coding-system last-coding-system-used))
|
(setq buffer-file-coding-system last-coding-system-used))
|
||||||
(setq buffer-file-number
|
(setq buffer-file-number
|
||||||
(nthcdr 10 (file-attributes buffer-file-name)))
|
(file-attribute-file-identifier
|
||||||
|
(file-attributes buffer-file-name)))
|
||||||
(if setmodes
|
(if setmodes
|
||||||
(condition-case ()
|
(condition-case ()
|
||||||
(progn
|
(progn
|
||||||
|
@ -6344,9 +6346,10 @@ If FILE1 or FILE2 does not exist, the return value is unspecified."
|
||||||
(equal f1-attr f2-attr))))))
|
(equal f1-attr f2-attr))))))
|
||||||
|
|
||||||
(defun file-in-directory-p (file dir)
|
(defun file-in-directory-p (file dir)
|
||||||
"Return non-nil if FILE is in DIR or a subdirectory of DIR.
|
"Return non-nil if DIR is a parent directory of FILE.
|
||||||
A directory is considered to be \"in\" itself.
|
Value is non-nil if FILE is inside DIR or inside a subdirectory of DIR.
|
||||||
Return nil if DIR is not an existing directory."
|
A directory is considered to be a \"parent\" of itself.
|
||||||
|
DIR must be an existing directory, otherwise the function returns nil."
|
||||||
(let ((handler (or (find-file-name-handler file 'file-in-directory-p)
|
(let ((handler (or (find-file-name-handler file 'file-in-directory-p)
|
||||||
(find-file-name-handler dir 'file-in-directory-p))))
|
(find-file-name-handler dir 'file-in-directory-p))))
|
||||||
(if handler
|
(if handler
|
||||||
|
@ -8657,19 +8660,26 @@ It is a nonnegative integer."
|
||||||
|
|
||||||
(defsubst file-attribute-device-number (attributes)
|
(defsubst file-attribute-device-number (attributes)
|
||||||
"The file system device number in ATTRIBUTES returned by `file-attributes'.
|
"The file system device number in ATTRIBUTES returned by `file-attributes'.
|
||||||
It is an integer."
|
It is an integer or a cons cell of integers."
|
||||||
(nth 11 attributes))
|
(nth 11 attributes))
|
||||||
|
|
||||||
|
(defsubst file-attribute-file-identifier (attributes)
|
||||||
|
"The inode and device numbers in ATTRIBUTES returned by `file-attributes'.
|
||||||
|
The value is a list of the form (INODENUM DEVICE), where DEVICE could be
|
||||||
|
either a single number or a cons cell of two numbers.
|
||||||
|
This tuple of numbers uniquely identifies the file."
|
||||||
|
(nthcdr 10 attributes))
|
||||||
|
|
||||||
(defun file-attribute-collect (attributes &rest attr-names)
|
(defun file-attribute-collect (attributes &rest attr-names)
|
||||||
"Return a sublist of ATTRIBUTES returned by `file-attributes'.
|
"Return a sublist of ATTRIBUTES returned by `file-attributes'.
|
||||||
ATTR-NAMES are symbols with the selected attribute names.
|
ATTR-NAMES are symbols with the selected attribute names.
|
||||||
|
|
||||||
Valid attribute names are: type, link-number, user-id, group-id,
|
Valid attribute names are: type, link-number, user-id, group-id,
|
||||||
access-time, modification-time, status-change-time, size, modes,
|
access-time, modification-time, status-change-time, size, modes,
|
||||||
inode-number and device-number."
|
inode-number, device-number and file-number."
|
||||||
(let ((all '(type link-number user-id group-id access-time
|
(let ((all '(type link-number user-id group-id access-time
|
||||||
modification-time status-change-time
|
modification-time status-change-time
|
||||||
size modes inode-number device-number))
|
size modes inode-number device-number file-number))
|
||||||
result)
|
result)
|
||||||
(while attr-names
|
(while attr-names
|
||||||
(let ((attr (pop attr-names)))
|
(let ((attr (pop attr-names)))
|
||||||
|
|
|
@ -4361,10 +4361,10 @@ arguments. If METHOD is nil in this case, the return value of
|
||||||
the function will be inserted instead.
|
the function will be inserted instead.
|
||||||
If the buffer already has a\"X-Message-SMTP-Method\" header,
|
If the buffer already has a\"X-Message-SMTP-Method\" header,
|
||||||
it is left unchanged."
|
it is left unchanged."
|
||||||
:type '(alist :key-type '(choice
|
:type '(alist :key-type (choice
|
||||||
(string :tag "From Address")
|
(string :tag "From Address")
|
||||||
(function :tag "Predicate"))
|
(function :tag "Predicate"))
|
||||||
:value-type 'string)
|
:value-type string)
|
||||||
:version "29.1"
|
:version "29.1"
|
||||||
:group 'message-sending)
|
:group 'message-sending)
|
||||||
|
|
||||||
|
|
|
@ -194,7 +194,7 @@ This can be either \"inline\" or \"attachment\".")
|
||||||
nil)
|
nil)
|
||||||
(verbatim-marks
|
(verbatim-marks
|
||||||
;; slrn-style verbatim marks, see
|
;; slrn-style verbatim marks, see
|
||||||
;; http://slrn.sourceforge.net/docs/slrn-manual-6.html#process_verbatim_marks
|
;; https://slrn.sourceforge.net/docs/slrn-manual-6.html#process_verbatim_marks
|
||||||
"^#v\\+"
|
"^#v\\+"
|
||||||
"^#v\\-$"
|
"^#v\\-$"
|
||||||
,(lambda () (mm-uu-verbatim-marks-extract 0 0))
|
,(lambda () (mm-uu-verbatim-marks-extract 0 0))
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
|
|
||||||
;;; Commentary:
|
;;; Commentary:
|
||||||
|
|
||||||
;; For Outlook mail boxes format, see http://mbx2mbox.sourceforge.net/
|
;; For Outlook mail boxes format, see https://mbx2mbox.sourceforge.net/
|
||||||
|
|
||||||
;;; Code:
|
;;; Code:
|
||||||
|
|
||||||
|
|
135
lisp/help.el
135
lisp/help.el
|
@ -112,7 +112,7 @@ buffer.")
|
||||||
(define-key map "v" 'describe-variable)
|
(define-key map "v" 'describe-variable)
|
||||||
(define-key map "w" 'where-is)
|
(define-key map "w" 'where-is)
|
||||||
(define-key map "x" 'describe-command)
|
(define-key map "x" 'describe-command)
|
||||||
(define-key map "q" 'help-quit)
|
(define-key map "q" 'help-quit-or-quick)
|
||||||
map)
|
map)
|
||||||
"Keymap for characters following the Help key.")
|
"Keymap for characters following the Help key.")
|
||||||
|
|
||||||
|
@ -125,11 +125,143 @@ buffer.")
|
||||||
(defvar help-button-cache nil)
|
(defvar help-button-cache nil)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
(defvar help-quick-sections
|
||||||
|
'(("File"
|
||||||
|
(save-buffers-kill-terminal . "exit")
|
||||||
|
(find-file . "find")
|
||||||
|
(write-file . "write")
|
||||||
|
(save-buffer . "save")
|
||||||
|
(save-some-buffers . "all"))
|
||||||
|
("Buffer"
|
||||||
|
(kill-buffer . "kill")
|
||||||
|
(list-buffers . "list")
|
||||||
|
(switch-to-buffer . "switch")
|
||||||
|
(goto-line . "goto line")
|
||||||
|
(read-only-mode . "read only"))
|
||||||
|
("Window"
|
||||||
|
(delete-window . "only other")
|
||||||
|
(delete-other-windows . "only this")
|
||||||
|
(split-window-below . "split vert.")
|
||||||
|
(split-window-right . "split horiz.")
|
||||||
|
(other-window . "other window"))
|
||||||
|
("Mark & Kill"
|
||||||
|
(set-mark-command . "mark")
|
||||||
|
(kill-line . "kill line")
|
||||||
|
(kill-ring-save . "kill region")
|
||||||
|
(yank . "yank")
|
||||||
|
(exchange-point-and-mark . "swap"))
|
||||||
|
("Projects"
|
||||||
|
(project-switch-project . "switch")
|
||||||
|
(project-find-file . "find file")
|
||||||
|
(project-find-regexp . "search")
|
||||||
|
(project-query-replace-regexp . "search & replace")
|
||||||
|
(project-compile . "compile"))
|
||||||
|
("Misc."
|
||||||
|
(undo . "undo")
|
||||||
|
(isearch-forward . "search")
|
||||||
|
(isearch-backward . "reverse search")
|
||||||
|
(query-replace . "search & replace")
|
||||||
|
(fill-paragraph . "reformat"))))
|
||||||
|
|
||||||
|
(declare-function prop-match-value "text-property-search" (match))
|
||||||
|
|
||||||
|
;; Inspired by a mg fork (https://github.com/troglobit/mg)
|
||||||
|
(defun help-quick ()
|
||||||
|
"Display a quick-help buffer."
|
||||||
|
(interactive)
|
||||||
|
(with-current-buffer (get-buffer-create "*Quick Help*")
|
||||||
|
(let ((inhibit-read-only t) (padding 2) blocks)
|
||||||
|
|
||||||
|
;; Go through every section and prepare a text-rectangle to be
|
||||||
|
;; inserted later.
|
||||||
|
(dolist (section help-quick-sections)
|
||||||
|
(let ((max-key-len 0) (max-cmd-len 0) keys)
|
||||||
|
(dolist (ent (reverse (cdr section)))
|
||||||
|
(catch 'skip
|
||||||
|
(let* ((bind (where-is-internal (car ent) nil t))
|
||||||
|
(key (if bind
|
||||||
|
(propertize
|
||||||
|
(key-description bind)
|
||||||
|
'face 'help-key-binding)
|
||||||
|
(throw 'skip nil))))
|
||||||
|
(setq max-cmd-len (max (length (cdr ent)) max-cmd-len)
|
||||||
|
max-key-len (max (length key) max-key-len))
|
||||||
|
(push (list key (cdr ent) (car ent)) keys))))
|
||||||
|
(when keys
|
||||||
|
(let ((fmt (format "%%-%ds %%-%ds%s" max-key-len max-cmd-len
|
||||||
|
(make-string padding ?\s)))
|
||||||
|
(width (+ max-key-len 1 max-cmd-len padding)))
|
||||||
|
(push `(,width
|
||||||
|
,(propertize
|
||||||
|
(concat
|
||||||
|
(car section)
|
||||||
|
(make-string (- width (length (car section))) ?\s))
|
||||||
|
'face 'bold)
|
||||||
|
,@(mapcar (lambda (ent)
|
||||||
|
(format fmt
|
||||||
|
(propertize
|
||||||
|
(car ent)
|
||||||
|
'quick-help-cmd
|
||||||
|
(caddr ent))
|
||||||
|
(cadr ent)))
|
||||||
|
keys))
|
||||||
|
blocks)))))
|
||||||
|
|
||||||
|
;; Insert each rectangle in order until they don't fit into the
|
||||||
|
;; frame any more, in which case the next sections are inserted
|
||||||
|
;; in a new "line".
|
||||||
|
(erase-buffer)
|
||||||
|
(dolist (block (nreverse blocks))
|
||||||
|
(when (> (+ (car block) (current-column)) (frame-width))
|
||||||
|
(goto-char (point-max))
|
||||||
|
(newline 2))
|
||||||
|
(save-excursion
|
||||||
|
(insert-rectangle (cdr block)))
|
||||||
|
(end-of-line))
|
||||||
|
(delete-trailing-whitespace)
|
||||||
|
|
||||||
|
(save-excursion
|
||||||
|
(goto-char (point-min))
|
||||||
|
(while-let ((match (text-property-search-forward 'quick-help-cmd)))
|
||||||
|
(make-text-button (prop-match-beginning match)
|
||||||
|
(prop-match-end match)
|
||||||
|
'mouse-face 'highlight
|
||||||
|
'button t
|
||||||
|
'keymap button-map
|
||||||
|
'action #'describe-symbol
|
||||||
|
'button-data (prop-match-value match)))))
|
||||||
|
|
||||||
|
(help-mode)
|
||||||
|
|
||||||
|
;; Display the buffer at the bottom of the frame...
|
||||||
|
(with-selected-window (display-buffer-at-bottom (current-buffer) '())
|
||||||
|
;; ... mark it as dedicated to prevent focus from being stolen
|
||||||
|
(set-window-dedicated-p (selected-window) t)
|
||||||
|
;; ... and shrink it immediately.
|
||||||
|
(fit-window-to-buffer))
|
||||||
|
(message
|
||||||
|
(substitute-command-keys "Toggle the quick help buffer using \\[help-quit-or-quick]."))))
|
||||||
|
|
||||||
|
(defalias 'cheat-sheet #'help-quick)
|
||||||
|
|
||||||
(defun help-quit ()
|
(defun help-quit ()
|
||||||
"Just exit from the Help command's command loop."
|
"Just exit from the Help command's command loop."
|
||||||
(interactive)
|
(interactive)
|
||||||
nil)
|
nil)
|
||||||
|
|
||||||
|
(defun help-quit-or-quick ()
|
||||||
|
"Call `help-quit' or `help-quick' depending on the context."
|
||||||
|
(interactive)
|
||||||
|
(cond
|
||||||
|
(help-buffer-under-preparation
|
||||||
|
;; FIXME: There should be a better way to detect if we are in the
|
||||||
|
;; help command loop.
|
||||||
|
(help-quit))
|
||||||
|
((and-let* ((window (get-buffer-window "*Quick Help*")))
|
||||||
|
(quit-window t window)))
|
||||||
|
((help-quick))))
|
||||||
|
|
||||||
(defvar help-return-method nil
|
(defvar help-return-method nil
|
||||||
"What to do to \"exit\" the help buffer.
|
"What to do to \"exit\" the help buffer.
|
||||||
This is a list
|
This is a list
|
||||||
|
@ -279,6 +411,7 @@ Do not call this in the scope of `with-help-window'."
|
||||||
("describe-package" "Describe a specific Emacs package")
|
("describe-package" "Describe a specific Emacs package")
|
||||||
""
|
""
|
||||||
("help-with-tutorial" "Start the Emacs tutorial")
|
("help-with-tutorial" "Start the Emacs tutorial")
|
||||||
|
("help-quick-or-quit" "Display the quick help buffer.")
|
||||||
("view-echo-area-messages"
|
("view-echo-area-messages"
|
||||||
"Show recent messages (from echo area)")
|
"Show recent messages (from echo area)")
|
||||||
("view-lossage" ,(format "Show last %d input keystrokes (lossage)"
|
("view-lossage" ,(format "Show last %d input keystrokes (lossage)"
|
||||||
|
|
|
@ -156,7 +156,8 @@ line about point in the selected window only."
|
||||||
:group 'hl-line
|
:group 'hl-line
|
||||||
;; If the global mode is switched on, then `M-x hl-line-mode' should
|
;; If the global mode is switched on, then `M-x hl-line-mode' should
|
||||||
;; switch the mode off in this buffer.
|
;; switch the mode off in this buffer.
|
||||||
(when global-hl-line-mode
|
(when (and global-hl-line-mode
|
||||||
|
(eq arg 'toggle))
|
||||||
(setq hl-line-mode nil)
|
(setq hl-line-mode nil)
|
||||||
(setq-local global-hl-line-mode nil)
|
(setq-local global-hl-line-mode nil)
|
||||||
(global-hl-line-unhighlight))
|
(global-hl-line-unhighlight))
|
||||||
|
|
|
@ -763,6 +763,11 @@ See a list of available Info commands in `Info-mode'."
|
||||||
(read-file-name "Info file name: " nil nil t))
|
(read-file-name "Info file name: " nil nil t))
|
||||||
(if (numberp current-prefix-arg)
|
(if (numberp current-prefix-arg)
|
||||||
(format "*info*<%s>" current-prefix-arg))))
|
(format "*info*<%s>" current-prefix-arg))))
|
||||||
|
(when file-or-node
|
||||||
|
;; Info node names don't contain newlines, so allow for easier use
|
||||||
|
;; of names that might have been wrapped (in emails, etc.).
|
||||||
|
(setq file-or-node
|
||||||
|
(string-replace "\n" " " file-or-node)))
|
||||||
(info-setup file-or-node
|
(info-setup file-or-node
|
||||||
(pop-to-buffer-same-window (or buffer "*info*"))))
|
(pop-to-buffer-same-window (or buffer "*info*"))))
|
||||||
|
|
||||||
|
|
|
@ -34,7 +34,8 @@
|
||||||
(input-method . "balinese")
|
(input-method . "balinese")
|
||||||
(sample-text . "Balinese (ᬅᬓ᭄ᬱᬭᬩᬮᬶ) ᬒᬁᬲ᭄ᬯᬲ᭄ᬢ᭄ᬬᬲ᭄ᬢᬸ")
|
(sample-text . "Balinese (ᬅᬓ᭄ᬱᬭᬩᬮᬶ) ᬒᬁᬲ᭄ᬯᬲ᭄ᬢ᭄ᬬᬲ᭄ᬢᬸ")
|
||||||
(documentation . "\
|
(documentation . "\
|
||||||
Balinese language and its script are supported in this language environment.")))
|
Balinese language and its script are supported in this language environment."))
|
||||||
|
'("Indonesian"))
|
||||||
|
|
||||||
(set-language-info-alist
|
(set-language-info-alist
|
||||||
"Javanese" '((charset unicode)
|
"Javanese" '((charset unicode)
|
||||||
|
@ -43,7 +44,8 @@ Balinese language and its script are supported in this language environment.")))
|
||||||
(input-method . "javanese")
|
(input-method . "javanese")
|
||||||
(sample-text . "Javanese (ꦲꦏ꧀ꦱꦫꦗꦮ) ꦲꦭꦺꦴ")
|
(sample-text . "Javanese (ꦲꦏ꧀ꦱꦫꦗꦮ) ꦲꦭꦺꦴ")
|
||||||
(documentation . "\
|
(documentation . "\
|
||||||
Javanese language and its script are supported in this language environment.")))
|
Javanese language and its script are supported in this language environment."))
|
||||||
|
'("Indonesian"))
|
||||||
|
|
||||||
(set-language-info-alist
|
(set-language-info-alist
|
||||||
"Sundanese" '((charset unicode)
|
"Sundanese" '((charset unicode)
|
||||||
|
@ -52,7 +54,8 @@ Javanese language and its script are supported in this language environment.")))
|
||||||
(input-method . "sundanese")
|
(input-method . "sundanese")
|
||||||
(sample-text . "Sundanese (ᮃᮊ᮪ᮞᮛᮞᮥᮔ᮪ᮓ) ᮞᮙ᮪ᮕᮥᮛᮞᮥᮔ᮪")
|
(sample-text . "Sundanese (ᮃᮊ᮪ᮞᮛᮞᮥᮔ᮪ᮓ) ᮞᮙ᮪ᮕᮥᮛᮞᮥᮔ᮪")
|
||||||
(documentation . "\
|
(documentation . "\
|
||||||
Sundanese language and its script are supported in this language environment.")))
|
Sundanese language and its script are supported in this language environment."))
|
||||||
|
'("Indonesian"))
|
||||||
|
|
||||||
(set-language-info-alist
|
(set-language-info-alist
|
||||||
"Batak" '((charset unicode)
|
"Batak" '((charset unicode)
|
||||||
|
@ -62,7 +65,8 @@ Sundanese language and its script are supported in this language environment."))
|
||||||
(sample-text . "Batak (ᯘᯮᯒᯗ᯲ᯅᯗᯂ᯲) ᯂᯬᯒᯘ᯲ / ᯔᯧᯐᯬᯀᯱᯐᯬᯀᯱ")
|
(sample-text . "Batak (ᯘᯮᯒᯗ᯲ᯅᯗᯂ᯲) ᯂᯬᯒᯘ᯲ / ᯔᯧᯐᯬᯀᯱᯐᯬᯀᯱ")
|
||||||
(documentation . "\
|
(documentation . "\
|
||||||
Languages that use the Batak script, such as Karo, Toba, Pakpak, Mandailing
|
Languages that use the Batak script, such as Karo, Toba, Pakpak, Mandailing
|
||||||
and Simalungun, are supported in this language environment.")))
|
and Simalungun, are supported in this language environment."))
|
||||||
|
'("Indonesian"))
|
||||||
|
|
||||||
(set-language-info-alist
|
(set-language-info-alist
|
||||||
"Rejang" '((charset unicode)
|
"Rejang" '((charset unicode)
|
||||||
|
@ -71,7 +75,8 @@ and Simalungun, are supported in this language environment.")))
|
||||||
(input-method . "rejang")
|
(input-method . "rejang")
|
||||||
(sample-text . "Rejang (ꥆꤰ꥓ꤼꤽ ꤽꥍꤺꥏ) ꤸꥉꥐꤺꥉꥂꥎ")
|
(sample-text . "Rejang (ꥆꤰ꥓ꤼꤽ ꤽꥍꤺꥏ) ꤸꥉꥐꤺꥉꥂꥎ")
|
||||||
(documentation . "\
|
(documentation . "\
|
||||||
Rejang language and its script are supported in this language environment.")))
|
Rejang language and its script are supported in this language environment."))
|
||||||
|
'("Indonesian"))
|
||||||
|
|
||||||
(set-language-info-alist
|
(set-language-info-alist
|
||||||
"Makasar" '((charset unicode)
|
"Makasar" '((charset unicode)
|
||||||
|
@ -80,7 +85,8 @@ Rejang language and its script are supported in this language environment.")))
|
||||||
(input-method . "makasar")
|
(input-method . "makasar")
|
||||||
(sample-text . "Makasar (𑻪𑻢𑻪𑻢) 𑻦𑻤𑻵𑻱")
|
(sample-text . "Makasar (𑻪𑻢𑻪𑻢) 𑻦𑻤𑻵𑻱")
|
||||||
(documentation . "\
|
(documentation . "\
|
||||||
Makassarese language and its script Makasar are supported in this language environment.")))
|
Makassarese language and its script Makasar are supported in this language environment."))
|
||||||
|
'("Indonesian"))
|
||||||
|
|
||||||
(set-language-info-alist
|
(set-language-info-alist
|
||||||
"Buginese" '((charset unicode)
|
"Buginese" '((charset unicode)
|
||||||
|
@ -89,7 +95,8 @@ Makassarese language and its script Makasar are supported in this language envir
|
||||||
(input-method . "lontara")
|
(input-method . "lontara")
|
||||||
(sample-text . "Buginese (ᨒᨚᨈᨑ) ᨖᨒᨚ")
|
(sample-text . "Buginese (ᨒᨚᨈᨑ) ᨖᨒᨚ")
|
||||||
(documentation . "\
|
(documentation . "\
|
||||||
Buginese language and its script Lontara are supported in this language environment.")))
|
Buginese language and its script Lontara are supported in this language environment."))
|
||||||
|
'("Indonesian"))
|
||||||
|
|
||||||
;; Balinese composition rules
|
;; Balinese composition rules
|
||||||
(let ((consonant "[\x1B13-\x1B33\x1B45-\x1B4B]")
|
(let ((consonant "[\x1B13-\x1B33\x1B45-\x1B4B]")
|
||||||
|
|
|
@ -228,7 +228,8 @@ thin (i.e. 1-dot width) space."
|
||||||
(sample-text . "Hanifi Rohingya (𐴌𐴟𐴇𐴥𐴝𐴚𐴒𐴙𐴝 𐴇𐴝𐴕𐴞𐴉𐴞 𐴓𐴠𐴑𐴤𐴝) 𐴀𐴝𐴏𐴓𐴝𐴀𐴡𐴤𐴛𐴝𐴓𐴝𐴙𐴑𐴟𐴔")
|
(sample-text . "Hanifi Rohingya (𐴌𐴟𐴇𐴥𐴝𐴚𐴒𐴙𐴝 𐴇𐴝𐴕𐴞𐴉𐴞 𐴓𐴠𐴑𐴤𐴝) 𐴀𐴝𐴏𐴓𐴝𐴀𐴡𐴤𐴛𐴝𐴓𐴝𐴙𐴑𐴟𐴔")
|
||||||
(documentation . "\
|
(documentation . "\
|
||||||
Rohingya language and its script Hanifi Rohingya are supported
|
Rohingya language and its script Hanifi Rohingya are supported
|
||||||
in this language environment.")))
|
in this language environment."))
|
||||||
|
'("Misc"))
|
||||||
|
|
||||||
;; Hanifi Rohingya composition rules
|
;; Hanifi Rohingya composition rules
|
||||||
(set-char-table-range
|
(set-char-table-range
|
||||||
|
@ -251,7 +252,8 @@ in this language environment.")))
|
||||||
(sample-text . "Kharoṣṭhī (𐨑𐨪𐨆𐨛𐨁) 𐨣𐨨𐨲𐨪𐨆 𐨐𐨪𐨅𐨨𐨁")
|
(sample-text . "Kharoṣṭhī (𐨑𐨪𐨆𐨛𐨁) 𐨣𐨨𐨲𐨪𐨆 𐨐𐨪𐨅𐨨𐨁")
|
||||||
(documentation . "\
|
(documentation . "\
|
||||||
Language environment for Gāndhārī, Sanskrit, and other languages
|
Language environment for Gāndhārī, Sanskrit, and other languages
|
||||||
using the Kharoṣṭhī script.")))
|
using the Kharoṣṭhī script."))
|
||||||
|
'("Misc"))
|
||||||
|
|
||||||
(let ((consonant "[\U00010A00\U00010A10-\U00010A35]")
|
(let ((consonant "[\U00010A00\U00010A10-\U00010A35]")
|
||||||
(vowel "[\U00010A01-\U00010A06]")
|
(vowel "[\U00010A01-\U00010A06]")
|
||||||
|
@ -281,7 +283,8 @@ using the Kharoṣṭhī script.")))
|
||||||
(sample-text . "Adlam (𞤀𞤣𞤤𞤢𞤥) 𞤅𞤢𞤤𞤢𞥄𞤥")
|
(sample-text . "Adlam (𞤀𞤣𞤤𞤢𞤥) 𞤅𞤢𞤤𞤢𞥄𞤥")
|
||||||
(documentation . "\
|
(documentation . "\
|
||||||
Fulani language and its script Adlam are supported
|
Fulani language and its script Adlam are supported
|
||||||
in this language environment.")))
|
in this language environment."))
|
||||||
|
'("Misc"))
|
||||||
|
|
||||||
;; Adlam composition rules
|
;; Adlam composition rules
|
||||||
(set-char-table-range
|
(set-char-table-range
|
||||||
|
@ -303,7 +306,8 @@ in this language environment.")))
|
||||||
(sample-text . "Mende Kikakui (𞠀𞠁𞠂) 𞠛𞠉")
|
(sample-text . "Mende Kikakui (𞠀𞠁𞠂) 𞠛𞠉")
|
||||||
(documentation . "\
|
(documentation . "\
|
||||||
Mende language and its script Kikakui are supported
|
Mende language and its script Kikakui are supported
|
||||||
in this language environment.")))
|
in this language environment."))
|
||||||
|
'("Misc"))
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;; Gothic
|
;; Gothic
|
||||||
|
@ -317,7 +321,8 @@ in this language environment.")))
|
||||||
(sample-text . "Gothic (𐌲𐌿𐍄𐌹𐍃𐌺𐌰) 𐌷𐌰𐌹𐌻𐍃 / 𐌷𐌰𐌹𐌻𐌰")
|
(sample-text . "Gothic (𐌲𐌿𐍄𐌹𐍃𐌺𐌰) 𐌷𐌰𐌹𐌻𐍃 / 𐌷𐌰𐌹𐌻𐌰")
|
||||||
(documentation . "\
|
(documentation . "\
|
||||||
Ancient Gothic language using the Gothic script is supported in this
|
Ancient Gothic language using the Gothic script is supported in this
|
||||||
language environment.")))
|
language environment."))
|
||||||
|
'("Misc"))
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;; Coptic
|
;; Coptic
|
||||||
|
@ -331,7 +336,8 @@ language environment.")))
|
||||||
(sample-text . "Coptic (ⲘⲉⲧⲢⲉⲙ̀ⲛⲭⲏⲙⲓ) Ⲛⲟⲩϥⲣⲓ")
|
(sample-text . "Coptic (ⲘⲉⲧⲢⲉⲙ̀ⲛⲭⲏⲙⲓ) Ⲛⲟⲩϥⲣⲓ")
|
||||||
(documentation . "\
|
(documentation . "\
|
||||||
Coptic language using the Coptic script is supported in this
|
Coptic language using the Coptic script is supported in this
|
||||||
language environment.")))
|
language environment."))
|
||||||
|
'("Misc"))
|
||||||
|
|
||||||
(provide 'misc-lang)
|
(provide 'misc-lang)
|
||||||
|
|
||||||
|
|
|
@ -35,7 +35,8 @@
|
||||||
(sample-text . "Tagalog (ᜊᜌ᜔ᜊᜌᜒᜈ᜔) ᜃᜓᜋᜓᜐ᜔ᜆ")
|
(sample-text . "Tagalog (ᜊᜌ᜔ᜊᜌᜒᜈ᜔) ᜃᜓᜋᜓᜐ᜔ᜆ")
|
||||||
(documentation . "\
|
(documentation . "\
|
||||||
Tagalog language using the Baybayin script is supported in
|
Tagalog language using the Baybayin script is supported in
|
||||||
this language environment.")))
|
this language environment."))
|
||||||
|
'("Philippine"))
|
||||||
|
|
||||||
(set-language-info-alist
|
(set-language-info-alist
|
||||||
"Hanunoo" '((charset unicode)
|
"Hanunoo" '((charset unicode)
|
||||||
|
@ -44,7 +45,8 @@ this language environment.")))
|
||||||
(input-method . "hanunoo")
|
(input-method . "hanunoo")
|
||||||
(sample-text . "Hanunoo (ᜱᜨᜳᜨᜳᜢ) ᜫᜬᜧ᜴ ᜣᜭᜯᜥ᜴ ᜰᜲᜭᜥ᜴")
|
(sample-text . "Hanunoo (ᜱᜨᜳᜨᜳᜢ) ᜫᜬᜧ᜴ ᜣᜭᜯᜥ᜴ ᜰᜲᜭᜥ᜴")
|
||||||
(documentation . "\
|
(documentation . "\
|
||||||
Philippine Language Hanunoo is supported in this language environment.")))
|
Philippine Language Hanunoo is supported in this language environment."))
|
||||||
|
'("Philippine"))
|
||||||
|
|
||||||
(set-language-info-alist
|
(set-language-info-alist
|
||||||
"Buhid" '((charset unicode)
|
"Buhid" '((charset unicode)
|
||||||
|
@ -52,7 +54,8 @@ Philippine Language Hanunoo is supported in this language environment.")))
|
||||||
(coding-priority utf-8)
|
(coding-priority utf-8)
|
||||||
(input-method . "buhid")
|
(input-method . "buhid")
|
||||||
(documentation . "\
|
(documentation . "\
|
||||||
Philippine Language Buhid is supported in this language environment.")))
|
Philippine Language Buhid is supported in this language environment."))
|
||||||
|
'("Philippine"))
|
||||||
|
|
||||||
(set-language-info-alist
|
(set-language-info-alist
|
||||||
"Tagbanwa" '((charset unicode)
|
"Tagbanwa" '((charset unicode)
|
||||||
|
@ -61,7 +64,8 @@ Philippine Language Buhid is supported in this language environment.")))
|
||||||
(input-method . "tagbanwa")
|
(input-method . "tagbanwa")
|
||||||
(sample-text . "Tagbanwa (ᝦᝪᝯ) ᝫᝩᝬᝥ ᝣᝮᝧᝯ")
|
(sample-text . "Tagbanwa (ᝦᝪᝯ) ᝫᝩᝬᝥ ᝣᝮᝧᝯ")
|
||||||
(documentation . "\
|
(documentation . "\
|
||||||
Philippine Languages Tagbanwa are supported in this language environment.")))
|
Philippine Languages Tagbanwa are supported in this language environment."))
|
||||||
|
'("Philippine"))
|
||||||
|
|
||||||
;; Tagalog composition rules
|
;; Tagalog composition rules
|
||||||
(let ((akshara "[\x1700-\x1711\x171F]")
|
(let ((akshara "[\x1700-\x1711\x171F]")
|
||||||
|
|
|
@ -15397,7 +15397,7 @@ it is disabled.
|
||||||
|
|
||||||
;;; Generated autoloads from progmodes/hideshow.el
|
;;; Generated autoloads from progmodes/hideshow.el
|
||||||
|
|
||||||
(defvar hs-special-modes-alist (mapcar 'purecopy '((c-mode "{" "}" "/[*/]" nil nil) (c++-mode "{" "}" "/[*/]" nil nil) (bibtex-mode ("@\\S(*\\(\\s(\\)" 1)) (java-mode "{" "}" "/[*/]" nil nil) (js-mode "{" "}" "/[*/]" nil) (mhtml-mode "{\\|<[^/>]*?" "}\\|</[^/>]*[^/]>" "<!--" mhtml-forward nil))) "\
|
(defvar hs-special-modes-alist (mapcar #'purecopy '((c-mode "{" "}" "/[*/]" nil nil) (c++-mode "{" "}" "/[*/]" nil nil) (bibtex-mode ("@\\S(*\\(\\s(\\)" 1)) (java-mode "{" "}" "/[*/]" nil nil) (js-mode "{" "}" "/[*/]" nil) (mhtml-mode "{\\|<[^/>]*?" "}\\|</[^/>]*[^/]>" "<!--" mhtml-forward nil))) "\
|
||||||
Alist for initializing the hideshow variables for different modes.
|
Alist for initializing the hideshow variables for different modes.
|
||||||
Each element has the form
|
Each element has the form
|
||||||
(MODE START END COMMENT-START FORWARD-SEXP-FUNC ADJUST-BEG-FUNC
|
(MODE START END COMMENT-START FORWARD-SEXP-FUNC ADJUST-BEG-FUNC
|
||||||
|
@ -18847,6 +18847,8 @@ done. Otherwise, this function will use the current buffer.
|
||||||
Major mode for browsing CVS log output.
|
Major mode for browsing CVS log output.
|
||||||
|
|
||||||
(fn)" t)
|
(fn)" t)
|
||||||
|
(autoload 'log-view-get-marked "log-view" "\
|
||||||
|
Return the list of tags for the marked log entries.")
|
||||||
(register-definition-prefixes "log-view" '("log-view-"))
|
(register-definition-prefixes "log-view" '("log-view-"))
|
||||||
|
|
||||||
|
|
||||||
|
@ -24534,7 +24536,7 @@ Open profile FILENAME.
|
||||||
|
|
||||||
;;; Generated autoloads from progmodes/project.el
|
;;; Generated autoloads from progmodes/project.el
|
||||||
|
|
||||||
(push (purecopy '(project 0 8 1)) package--builtin-versions)
|
(push (purecopy '(project 0 8 2)) package--builtin-versions)
|
||||||
(autoload 'project-current "project" "\
|
(autoload 'project-current "project" "\
|
||||||
Return the project instance in DIRECTORY, defaulting to `default-directory'.
|
Return the project instance in DIRECTORY, defaulting to `default-directory'.
|
||||||
|
|
||||||
|
@ -25926,6 +25928,9 @@ The mode's hook is called both when the mode is enabled and when
|
||||||
it is disabled.
|
it is disabled.
|
||||||
|
|
||||||
(fn &optional ARG)" t)
|
(fn &optional ARG)" t)
|
||||||
|
(autoload 'repeat-exit "repeat" "\
|
||||||
|
Exit the repeating sequence.
|
||||||
|
This function can be used to force exit of repetition while it's active." t)
|
||||||
(register-definition-prefixes "repeat" '("describe-repeat-maps" "repeat-"))
|
(register-definition-prefixes "repeat" '("describe-repeat-maps" "repeat-"))
|
||||||
|
|
||||||
|
|
||||||
|
@ -29436,6 +29441,8 @@ PROMPT will be inserted at the start of the buffer, but won't be
|
||||||
included in the resulting string. If PROMPT is nil, no help text
|
included in the resulting string. If PROMPT is nil, no help text
|
||||||
will be inserted.
|
will be inserted.
|
||||||
|
|
||||||
|
Also see `read-string-from-buffer'.
|
||||||
|
|
||||||
(fn PROMPT STRING SUCCESS-CALLBACK &key ABORT-CALLBACK)")
|
(fn PROMPT STRING SUCCESS-CALLBACK &key ABORT-CALLBACK)")
|
||||||
(autoload 'read-string-from-buffer "string-edit" "\
|
(autoload 'read-string-from-buffer "string-edit" "\
|
||||||
Switch to a new buffer to edit STRING in a recursive edit.
|
Switch to a new buffer to edit STRING in a recursive edit.
|
||||||
|
@ -29445,6 +29452,8 @@ PROMPT will be inserted at the start of the buffer, but won't be
|
||||||
included in the resulting string. If nil, no prompt will be
|
included in the resulting string. If nil, no prompt will be
|
||||||
inserted in the buffer.
|
inserted in the buffer.
|
||||||
|
|
||||||
|
Also see `string-edit'.
|
||||||
|
|
||||||
(fn PROMPT STRING)")
|
(fn PROMPT STRING)")
|
||||||
(register-definition-prefixes "string-edit" '("string-edit-"))
|
(register-definition-prefixes "string-edit" '("string-edit-"))
|
||||||
|
|
||||||
|
@ -31999,16 +32008,16 @@ Add archive file name handler to `file-name-handler-alist'." (when (and tramp-ar
|
||||||
(defalias 'tramp-compat-rx #'rx)
|
(defalias 'tramp-compat-rx #'rx)
|
||||||
(register-definition-prefixes "tramp-compat" '("tramp-"))
|
(register-definition-prefixes "tramp-compat" '("tramp-"))
|
||||||
|
|
||||||
|
|
||||||
|
;;; Generated autoloads from net/tramp-container.el
|
||||||
|
|
||||||
|
(register-definition-prefixes "tramp-container" '("tramp-"))
|
||||||
|
|
||||||
|
|
||||||
;;; Generated autoloads from net/tramp-crypt.el
|
;;; Generated autoloads from net/tramp-crypt.el
|
||||||
|
|
||||||
(register-definition-prefixes "tramp-crypt" '("tramp-crypt-"))
|
(register-definition-prefixes "tramp-crypt" '("tramp-crypt-"))
|
||||||
|
|
||||||
|
|
||||||
;;; Generated autoloads from net/tramp-docker.el
|
|
||||||
|
|
||||||
(register-definition-prefixes "tramp-docker" '("tramp-docker-"))
|
|
||||||
|
|
||||||
|
|
||||||
;;; Generated autoloads from net/tramp-ftp.el
|
;;; Generated autoloads from net/tramp-ftp.el
|
||||||
|
|
||||||
|
@ -32740,6 +32749,10 @@ if it had been inserted from a file named URL.
|
||||||
|
|
||||||
|
|
||||||
(fn URL &optional VISIT BEG END REPLACE)")
|
(fn URL &optional VISIT BEG END REPLACE)")
|
||||||
|
(autoload 'url-insert-file-contents-literally "url-handlers" "\
|
||||||
|
Insert the data retrieved from URL literally in the current buffer.
|
||||||
|
|
||||||
|
(fn URL)")
|
||||||
(register-definition-prefixes "url-handlers" '("url-"))
|
(register-definition-prefixes "url-handlers" '("url-"))
|
||||||
|
|
||||||
|
|
||||||
|
@ -33440,11 +33453,13 @@ Show the change log for BRANCH root in a window.
|
||||||
(autoload 'vc-log-incoming "vc" "\
|
(autoload 'vc-log-incoming "vc" "\
|
||||||
Show log of changes that will be received with pull from REMOTE-LOCATION.
|
Show log of changes that will be received with pull from REMOTE-LOCATION.
|
||||||
When called interactively with a prefix argument, prompt for REMOTE-LOCATION.
|
When called interactively with a prefix argument, prompt for REMOTE-LOCATION.
|
||||||
|
In some version control systems REMOTE-LOCATION can be a remote branch name.
|
||||||
|
|
||||||
(fn &optional REMOTE-LOCATION)" t)
|
(fn &optional REMOTE-LOCATION)" t)
|
||||||
(autoload 'vc-log-outgoing "vc" "\
|
(autoload 'vc-log-outgoing "vc" "\
|
||||||
Show log of changes that will be sent with a push operation to REMOTE-LOCATION.
|
Show log of changes that will be sent with a push operation to REMOTE-LOCATION.
|
||||||
When called interactively with a prefix argument, prompt for REMOTE-LOCATION.
|
When called interactively with a prefix argument, prompt for REMOTE-LOCATION.
|
||||||
|
In some version control systems REMOTE-LOCATION can be a remote branch name.
|
||||||
|
|
||||||
(fn &optional REMOTE-LOCATION)" t)
|
(fn &optional REMOTE-LOCATION)" t)
|
||||||
(autoload 'vc-log-search "vc" "\
|
(autoload 'vc-log-search "vc" "\
|
||||||
|
@ -33571,6 +33586,18 @@ log entries should be gathered.
|
||||||
Request editing the next VC shell command before execution.
|
Request editing the next VC shell command before execution.
|
||||||
This is a prefix command. It affects only a VC command executed
|
This is a prefix command. It affects only a VC command executed
|
||||||
immediately after this one." t)
|
immediately after this one." t)
|
||||||
|
(autoload 'vc-prepare-patch "vc" "\
|
||||||
|
Compose an Email sending patches for REVISIONS to ADDRESSEE.
|
||||||
|
If `vc-prepare-patches-separately' is nil, SUBJECT will be used
|
||||||
|
as the default subject for the message (and it will be prompted
|
||||||
|
for when called interactively). Otherwise a separate message
|
||||||
|
will be composed for each revision, with SUBJECT derived from the
|
||||||
|
invidividual commits.
|
||||||
|
|
||||||
|
When invoked interactively in a Log View buffer with marked
|
||||||
|
revisions, those revisions will be used.
|
||||||
|
|
||||||
|
(fn ADDRESSEE SUBJECT REVISIONS)" t)
|
||||||
(register-definition-prefixes "vc" '("vc-" "with-vc-properties"))
|
(register-definition-prefixes "vc" '("vc-" "with-vc-properties"))
|
||||||
|
|
||||||
|
|
||||||
|
@ -34565,10 +34592,6 @@ Convert Vietnamese characters of the current buffer to `VIQR' mnemonics." t)
|
||||||
|
|
||||||
;;; Generated autoloads from view.el
|
;;; Generated autoloads from view.el
|
||||||
|
|
||||||
(defvar view-remove-frame-by-deleting t "\
|
|
||||||
Determine how View mode removes a frame no longer needed.
|
|
||||||
If nil, make an icon of the frame. If non-nil, delete the frame.")
|
|
||||||
(custom-autoload 'view-remove-frame-by-deleting "view" t)
|
|
||||||
(defvar-local view-mode nil "\
|
(defvar-local view-mode nil "\
|
||||||
Non-nil if View mode is enabled.
|
Non-nil if View mode is enabled.
|
||||||
Don't change this variable directly, you must change it by one of the
|
Don't change this variable directly, you must change it by one of the
|
||||||
|
@ -36122,7 +36145,13 @@ Extract file name from an yenc header.")
|
||||||
;;; Generated autoloads from play/zone.el
|
;;; Generated autoloads from play/zone.el
|
||||||
|
|
||||||
(autoload 'zone "zone" "\
|
(autoload 'zone "zone" "\
|
||||||
Zone out, completely." t)
|
Zone out, completely.
|
||||||
|
With a prefix argument the user is prompted for a program to run.
|
||||||
|
When called from Lisp the optional argument PGM can be used to
|
||||||
|
run a specific program. The program must be a member of
|
||||||
|
`zone-programs'.
|
||||||
|
|
||||||
|
(fn &optional PGM)" t)
|
||||||
(register-definition-prefixes "zone" '("zone-"))
|
(register-definition-prefixes "zone" '("zone-"))
|
||||||
|
|
||||||
;;; End of scraped data
|
;;; End of scraped data
|
||||||
|
|
|
@ -402,7 +402,7 @@ information can be used so that you can replace multiple
|
||||||
|
|
||||||
Bogofilter is a Bayesian spam filtering program. Get it from your
|
Bogofilter is a Bayesian spam filtering program. Get it from your
|
||||||
local distribution or from the bogofilter web site at URL
|
local distribution or from the bogofilter web site at URL
|
||||||
`http://bogofilter.sourceforge.net/'.
|
`https://bogofilter.sourceforge.io/'.
|
||||||
|
|
||||||
Bogofilter is taught by running:
|
Bogofilter is taught by running:
|
||||||
|
|
||||||
|
@ -487,7 +487,7 @@ See `mh-bogofilter-blocklist' for more information."
|
||||||
|
|
||||||
SpamProbe is a Bayesian spam filtering program. Get it from your
|
SpamProbe is a Bayesian spam filtering program. Get it from your
|
||||||
local distribution or from the SpamProbe web site at URL
|
local distribution or from the SpamProbe web site at URL
|
||||||
`http://spamprobe.sourceforge.net'.
|
`https://spamprobe.sourceforge.net'.
|
||||||
|
|
||||||
To use SpamProbe, add the following recipes to \".procmailrc\":
|
To use SpamProbe, add the following recipes to \".procmailrc\":
|
||||||
|
|
||||||
|
|
|
@ -1294,6 +1294,11 @@ currently selected window instead."
|
||||||
(let ((file (url-unhex-string (url-filename parsed))))
|
(let ((file (url-unhex-string (url-filename parsed))))
|
||||||
(when-let ((coding (browse-url--file-name-coding-system)))
|
(when-let ((coding (browse-url--file-name-coding-system)))
|
||||||
(setq file (decode-coding-string file 'utf-8)))
|
(setq file (decode-coding-string file 'utf-8)))
|
||||||
|
;; The local-part of file: URLs on Windows is supposed to
|
||||||
|
;; start with an extra slash.
|
||||||
|
(when (eq system-type 'windows-nt)
|
||||||
|
(setq file (replace-regexp-in-string
|
||||||
|
"\\`/\\([a-z]:\\)" "\\1" file)))
|
||||||
(funcall func file))
|
(funcall func file))
|
||||||
(let ((file-name-handler-alist
|
(let ((file-name-handler-alist
|
||||||
(cons (cons url-handler-regexp 'url-file-handler)
|
(cons (cons url-handler-regexp 'url-file-handler)
|
||||||
|
|
|
@ -2176,9 +2176,11 @@ connection."
|
||||||
|
|
||||||
(defun rcirc-generate-log-filename (process target)
|
(defun rcirc-generate-log-filename (process target)
|
||||||
"Return filename for log file based on PROCESS and TARGET."
|
"Return filename for log file based on PROCESS and TARGET."
|
||||||
|
(concat
|
||||||
(if target
|
(if target
|
||||||
(rcirc-generate-new-buffer-name process target)
|
(rcirc-generate-new-buffer-name process target)
|
||||||
(process-name process)))
|
(process-name process))
|
||||||
|
".log"))
|
||||||
|
|
||||||
(defcustom rcirc-log-filename-function 'rcirc-generate-log-filename
|
(defcustom rcirc-log-filename-function 'rcirc-generate-log-filename
|
||||||
"A function to generate the filename used by rcirc's logging facility.
|
"A function to generate the filename used by rcirc's logging facility.
|
||||||
|
@ -3018,11 +3020,7 @@ for nick completion."
|
||||||
:version "29.1")
|
:version "29.1")
|
||||||
|
|
||||||
(defface rcirc-bridged-nick
|
(defface rcirc-bridged-nick
|
||||||
'((((class color) (min-colors 88) (background light)) :background "SlateGray1")
|
'((t :inherit highlight))
|
||||||
(((class color) (min-colors 88) (background dark)) :background "DarkSlateGray4")
|
|
||||||
(((class color) (min-colors 16) (background light)) :background "LightBlue")
|
|
||||||
(((class color) (min-colors 16) (background dark)) :background "DarkSlateGray")
|
|
||||||
(t :background "blue"))
|
|
||||||
"Face used for pseudo-nick ."
|
"Face used for pseudo-nick ."
|
||||||
:version "29.1")
|
:version "29.1")
|
||||||
|
|
||||||
|
|
|
@ -1088,34 +1088,18 @@ Derived from `tramp-postfix-host-format'.")
|
||||||
(defun tramp-build-remote-file-name-spec-regexp ()
|
(defun tramp-build-remote-file-name-spec-regexp ()
|
||||||
"Construct a regexp matching a Tramp file name for a Tramp syntax.
|
"Construct a regexp matching a Tramp file name for a Tramp syntax.
|
||||||
It is expected, that `tramp-syntax' has the proper value."
|
It is expected, that `tramp-syntax' has the proper value."
|
||||||
;; Starting with Emacs 27, we can use `rx-let'.
|
|
||||||
(let* ((user-regexp
|
|
||||||
(tramp-compat-rx
|
(tramp-compat-rx
|
||||||
(group-n 6 (regexp tramp-user-regexp))
|
;; Method.
|
||||||
(regexp tramp-postfix-user-regexp)))
|
(group (regexp tramp-method-regexp)) (regexp tramp-postfix-method-regexp)
|
||||||
(host-regexp
|
;; Optional user. This includes domain.
|
||||||
(tramp-compat-rx
|
(? (group (regexp tramp-user-regexp)) (regexp tramp-postfix-user-regexp))
|
||||||
(group-n 7 (| (regexp tramp-host-regexp)
|
;; Optional host.
|
||||||
|
(? (group (| (regexp tramp-host-regexp)
|
||||||
(: (regexp tramp-prefix-ipv6-regexp)
|
(: (regexp tramp-prefix-ipv6-regexp)
|
||||||
(? (regexp tramp-ipv6-regexp))
|
(? (regexp tramp-ipv6-regexp))
|
||||||
(regexp tramp-postfix-ipv6-regexp)))
|
(regexp tramp-postfix-ipv6-regexp)))
|
||||||
;; Optional port.
|
;; Optional port.
|
||||||
(? (regexp tramp-prefix-port-regexp)
|
(? (regexp tramp-prefix-port-regexp) (regexp tramp-port-regexp))))))
|
||||||
(regexp tramp-port-regexp)))))
|
|
||||||
(user-host-regexp
|
|
||||||
(if (eq tramp-syntax 'simplified)
|
|
||||||
;; There must be either user or host.
|
|
||||||
(tramp-compat-rx
|
|
||||||
(| (: (regexp user-regexp) (? (regexp host-regexp)))
|
|
||||||
(: (? (regexp user-regexp)) (regexp host-regexp))))
|
|
||||||
(tramp-compat-rx
|
|
||||||
(? (regexp user-regexp)) (? (regexp host-regexp))))))
|
|
||||||
(tramp-compat-rx
|
|
||||||
;; Method.
|
|
||||||
(group-n 5 (regexp tramp-method-regexp))
|
|
||||||
(regexp tramp-postfix-method-regexp)
|
|
||||||
;; User and host.
|
|
||||||
(regexp user-host-regexp))))
|
|
||||||
|
|
||||||
(defvar tramp-remote-file-name-spec-regexp
|
(defvar tramp-remote-file-name-spec-regexp
|
||||||
nil ; Initialized when defining `tramp-syntax'!
|
nil ; Initialized when defining `tramp-syntax'!
|
||||||
|
@ -1214,7 +1198,8 @@ The `ftp' syntax does not support methods.")
|
||||||
;; "/ssh:host:~/path" becomes "c:/ssh:host:~/path". See also
|
;; "/ssh:host:~/path" becomes "c:/ssh:host:~/path". See also
|
||||||
;; `tramp-drop-volume-letter'.
|
;; `tramp-drop-volume-letter'.
|
||||||
(? (regexp tramp-volume-letter-regexp))
|
(? (regexp tramp-volume-letter-regexp))
|
||||||
(regexp tramp-prefix-regexp)
|
;; We cannot use `tramp-prefix-regexp', because it starts with `bol'.
|
||||||
|
(literal tramp-prefix-format)
|
||||||
|
|
||||||
;; Optional multi hops.
|
;; Optional multi hops.
|
||||||
(* (regexp tramp-remote-file-name-spec-regexp)
|
(* (regexp tramp-remote-file-name-spec-regexp)
|
||||||
|
@ -1862,7 +1847,8 @@ the form (METHOD USER DOMAIN HOST PORT LOCALNAME &optional HOP)."
|
||||||
tramp-prefix-regexp ""
|
tramp-prefix-regexp ""
|
||||||
(replace-regexp-in-string
|
(replace-regexp-in-string
|
||||||
(tramp-compat-rx
|
(tramp-compat-rx
|
||||||
(regexp tramp-postfix-host-regexp) eos) tramp-postfix-hop-format
|
(regexp tramp-postfix-host-regexp) eos)
|
||||||
|
tramp-postfix-hop-format
|
||||||
(tramp-make-tramp-file-name vec 'noloc)))))
|
(tramp-make-tramp-file-name vec 'noloc)))))
|
||||||
|
|
||||||
(defun tramp-completion-make-tramp-file-name (method user host localname)
|
(defun tramp-completion-make-tramp-file-name (method user host localname)
|
||||||
|
|
|
@ -32,7 +32,7 @@
|
||||||
|
|
||||||
;; matlab.el required for interactive emacs sessions and matlab-mode
|
;; matlab.el required for interactive emacs sessions and matlab-mode
|
||||||
;; major mode for source code editing buffer
|
;; major mode for source code editing buffer
|
||||||
;; http://matlab-emacs.sourceforge.net/
|
;; https://matlab-emacs.sourceforge.net/
|
||||||
|
|
||||||
;;; Code:
|
;;; Code:
|
||||||
(require 'ob)
|
(require 'ob)
|
||||||
|
|
|
@ -30,7 +30,7 @@
|
||||||
|
|
||||||
;;; Requirements:
|
;;; Requirements:
|
||||||
|
|
||||||
;; plantuml | http://plantuml.sourceforge.net/
|
;; plantuml | https://plantuml.com/
|
||||||
;; plantuml.jar | `org-plantuml-jar-path' should point to the jar file (when exec mode is `jar')
|
;; plantuml.jar | `org-plantuml-jar-path' should point to the jar file (when exec mode is `jar')
|
||||||
|
|
||||||
;;; Code:
|
;;; Code:
|
||||||
|
|
|
@ -47,7 +47,7 @@
|
||||||
;;
|
;;
|
||||||
;; Install org mode
|
;; Install org mode
|
||||||
;; Ensure org-ctags.el is somewhere in your emacs load path.
|
;; Ensure org-ctags.el is somewhere in your emacs load path.
|
||||||
;; Download and install Exuberant ctags -- "http://ctags.sourceforge.net/"
|
;; Download and install Exuberant ctags -- "https://ctags.sourceforge.net/"
|
||||||
;; Edit your .emacs file (see next section) and load emacs.
|
;; Edit your .emacs file (see next section) and load emacs.
|
||||||
|
|
||||||
;; To put in your init file (.emacs):
|
;; To put in your init file (.emacs):
|
||||||
|
|
|
@ -66,7 +66,7 @@
|
||||||
;;
|
;;
|
||||||
;;
|
;;
|
||||||
;; As of March 2009 Firefox users follow the steps documented on
|
;; As of March 2009 Firefox users follow the steps documented on
|
||||||
;; http://kb.mozillazine.org/Register_protocol, Opera setup is described here:
|
;; https://kb.mozillazine.org/Register_protocol, Opera setup is described here:
|
||||||
;; http://www.opera.com/support/kb/view/535/
|
;; http://www.opera.com/support/kb/view/535/
|
||||||
;;
|
;;
|
||||||
;;
|
;;
|
||||||
|
|
228
lisp/outline.el
228
lisp/outline.el
|
@ -516,13 +516,7 @@ See the command `outline-mode' for more information on this mode."
|
||||||
(set-window-buffer nil (window-buffer)))
|
(set-window-buffer nil (window-buffer)))
|
||||||
(when (or outline--use-buttons outline--use-margins)
|
(when (or outline--use-buttons outline--use-margins)
|
||||||
(add-hook 'after-change-functions
|
(add-hook 'after-change-functions
|
||||||
(lambda (beg end _len)
|
#'outline--fix-buttons-after-change nil t))
|
||||||
(when outline--use-buttons
|
|
||||||
(remove-overlays beg end 'outline-button t))
|
|
||||||
(when outline--use-margins
|
|
||||||
(remove-overlays beg end 'outline-margin t))
|
|
||||||
(outline--fix-up-all-buttons beg end))
|
|
||||||
nil t))
|
|
||||||
(when outline-minor-mode-highlight
|
(when outline-minor-mode-highlight
|
||||||
(if (and global-font-lock-mode (font-lock-specified-p major-mode))
|
(if (and global-font-lock-mode (font-lock-specified-p major-mode))
|
||||||
(progn
|
(progn
|
||||||
|
@ -1065,107 +1059,6 @@ If non-nil, EVENT should be a mouse event."
|
||||||
(mouse-set-point event))
|
(mouse-set-point event))
|
||||||
(outline-flag-subtree t)))
|
(outline-flag-subtree t)))
|
||||||
|
|
||||||
(defun outline--make-button-overlay (type)
|
|
||||||
(let ((o (seq-find (lambda (o)
|
|
||||||
(overlay-get o 'outline-button))
|
|
||||||
(overlays-at (point)))))
|
|
||||||
(unless o
|
|
||||||
(setq o (make-overlay (point) (1+ (point))))
|
|
||||||
(overlay-put o 'evaporate t)
|
|
||||||
(overlay-put o 'follow-link 'mouse-face)
|
|
||||||
(overlay-put o 'mouse-face 'highlight)
|
|
||||||
(overlay-put o 'outline-button t))
|
|
||||||
(let ((icon (icon-elements (if (eq type 'close)
|
|
||||||
(if outline--use-rtl
|
|
||||||
'outline-close-rtl
|
|
||||||
'outline-close)
|
|
||||||
'outline-open)))
|
|
||||||
(inhibit-read-only t))
|
|
||||||
;; In editing buffers we use overlays only, but in other buffers
|
|
||||||
;; we use a mix of text properties, text and overlays to make
|
|
||||||
;; movement commands work more logically.
|
|
||||||
(when (derived-mode-p 'special-mode)
|
|
||||||
(put-text-property (point) (1+ (point)) 'face (plist-get icon 'face)))
|
|
||||||
(if-let ((image (plist-get icon 'image)))
|
|
||||||
(overlay-put o 'display image)
|
|
||||||
(overlay-put o 'display (concat (plist-get icon 'string)
|
|
||||||
(string (char-after (point)))))
|
|
||||||
(overlay-put o 'face (plist-get icon 'face))))
|
|
||||||
o))
|
|
||||||
|
|
||||||
(defun outline--make-margin-overlay (type)
|
|
||||||
(let ((o (seq-find (lambda (o)
|
|
||||||
(overlay-get o 'outline-margin))
|
|
||||||
(overlays-at (point)))))
|
|
||||||
(unless o
|
|
||||||
(setq o (make-overlay (point) (1+ (point))))
|
|
||||||
(overlay-put o 'evaporate t)
|
|
||||||
(overlay-put o 'outline-margin t))
|
|
||||||
(let ((icon (icon-elements (if (eq type 'close)
|
|
||||||
(if outline--use-rtl
|
|
||||||
'outline-close-rtl-in-margins
|
|
||||||
'outline-close-in-margins)
|
|
||||||
'outline-open-in-margins)))
|
|
||||||
(inhibit-read-only t))
|
|
||||||
(overlay-put
|
|
||||||
o 'before-string
|
|
||||||
(propertize " " 'display
|
|
||||||
`((margin ,(if outline--use-rtl
|
|
||||||
'right-margin 'left-margin))
|
|
||||||
,(or (plist-get icon 'image)
|
|
||||||
(plist-get icon 'string))))))
|
|
||||||
o))
|
|
||||||
|
|
||||||
(defun outline--insert-open-button (&optional use-margins)
|
|
||||||
(with-silent-modifications
|
|
||||||
(save-excursion
|
|
||||||
(beginning-of-line)
|
|
||||||
(if use-margins
|
|
||||||
(outline--make-margin-overlay 'open)
|
|
||||||
(when (derived-mode-p 'special-mode)
|
|
||||||
(let ((inhibit-read-only t))
|
|
||||||
(insert " ")
|
|
||||||
(beginning-of-line)))
|
|
||||||
(let ((o (outline--make-button-overlay 'open)))
|
|
||||||
(overlay-put o 'help-echo "Click to hide")
|
|
||||||
(overlay-put o 'keymap
|
|
||||||
(define-keymap
|
|
||||||
"RET" #'outline-hide-subtree
|
|
||||||
"<mouse-2>" #'outline-hide-subtree)))))))
|
|
||||||
|
|
||||||
(defun outline--insert-close-button (&optional use-margins)
|
|
||||||
(with-silent-modifications
|
|
||||||
(save-excursion
|
|
||||||
(beginning-of-line)
|
|
||||||
(if use-margins
|
|
||||||
(outline--make-margin-overlay 'close)
|
|
||||||
(when (derived-mode-p 'special-mode)
|
|
||||||
(let ((inhibit-read-only t))
|
|
||||||
(insert " ")
|
|
||||||
(beginning-of-line)))
|
|
||||||
(let ((o (outline--make-button-overlay 'close)))
|
|
||||||
(overlay-put o 'help-echo "Click to show")
|
|
||||||
(overlay-put o 'keymap
|
|
||||||
(define-keymap
|
|
||||||
"RET" #'outline-show-subtree
|
|
||||||
"<mouse-2>" #'outline-show-subtree)))))))
|
|
||||||
|
|
||||||
(defun outline--fix-up-all-buttons (&optional from to)
|
|
||||||
(when (or outline--use-buttons outline--use-margins)
|
|
||||||
(when from
|
|
||||||
(save-excursion
|
|
||||||
(goto-char from)
|
|
||||||
(setq from (line-beginning-position))))
|
|
||||||
(outline-map-region
|
|
||||||
(lambda ()
|
|
||||||
(if (save-excursion
|
|
||||||
(outline-end-of-heading)
|
|
||||||
(seq-some (lambda (o) (eq (overlay-get o 'invisible) 'outline))
|
|
||||||
(overlays-at (point))))
|
|
||||||
(outline--insert-close-button outline--use-margins)
|
|
||||||
(outline--insert-open-button outline--use-margins)))
|
|
||||||
(or from (point-min)) (or to (point-max)))))
|
|
||||||
|
|
||||||
(define-obsolete-function-alias 'hide-subtree #'outline-hide-subtree "25.1")
|
(define-obsolete-function-alias 'hide-subtree #'outline-hide-subtree "25.1")
|
||||||
|
|
||||||
(defun outline-hide-leaves ()
|
(defun outline-hide-leaves ()
|
||||||
|
@ -1451,6 +1344,9 @@ convenient way to make a table of contents of the buffer."
|
||||||
(insert "\n\n"))))))
|
(insert "\n\n"))))))
|
||||||
(kill-new (buffer-string)))))))
|
(kill-new (buffer-string)))))))
|
||||||
|
|
||||||
|
|
||||||
|
;;; Initial visibility
|
||||||
|
|
||||||
(defcustom outline-default-state nil
|
(defcustom outline-default-state nil
|
||||||
"If non-nil, some headings are initially outlined.
|
"If non-nil, some headings are initially outlined.
|
||||||
|
|
||||||
|
@ -1629,6 +1525,9 @@ LEVEL, decides of subtree visibility according to
|
||||||
beg end)))
|
beg end)))
|
||||||
(run-hooks 'outline-view-change-hook)))
|
(run-hooks 'outline-view-change-hook)))
|
||||||
|
|
||||||
|
|
||||||
|
;;; Visibility cycling
|
||||||
|
|
||||||
(defun outline--cycle-state ()
|
(defun outline--cycle-state ()
|
||||||
"Return the cycle state of current heading.
|
"Return the cycle state of current heading.
|
||||||
Return either `hide-all', `headings-only', or `show-all'."
|
Return either `hide-all', `headings-only', or `show-all'."
|
||||||
|
@ -1741,6 +1640,119 @@ With a prefix argument, show headings up to that LEVEL."
|
||||||
(setq outline--cycle-buffer-state 'show-all)
|
(setq outline--cycle-buffer-state 'show-all)
|
||||||
(message "Show all")))))
|
(message "Show all")))))
|
||||||
|
|
||||||
|
|
||||||
|
;;; Button/margin indicators
|
||||||
|
|
||||||
|
(defun outline--make-button-overlay (type)
|
||||||
|
(let ((o (seq-find (lambda (o)
|
||||||
|
(overlay-get o 'outline-button))
|
||||||
|
(overlays-at (point)))))
|
||||||
|
(unless o
|
||||||
|
(setq o (make-overlay (point) (1+ (point))))
|
||||||
|
(overlay-put o 'evaporate t)
|
||||||
|
(overlay-put o 'follow-link 'mouse-face)
|
||||||
|
(overlay-put o 'mouse-face 'highlight)
|
||||||
|
(overlay-put o 'outline-button t))
|
||||||
|
(let ((icon (icon-elements (if (eq type 'close)
|
||||||
|
(if outline--use-rtl
|
||||||
|
'outline-close-rtl
|
||||||
|
'outline-close)
|
||||||
|
'outline-open)))
|
||||||
|
(inhibit-read-only t))
|
||||||
|
;; In editing buffers we use overlays only, but in other buffers
|
||||||
|
;; we use a mix of text properties, text and overlays to make
|
||||||
|
;; movement commands work more logically.
|
||||||
|
(when (derived-mode-p 'special-mode)
|
||||||
|
(put-text-property (point) (1+ (point)) 'face (plist-get icon 'face)))
|
||||||
|
(if-let ((image (plist-get icon 'image)))
|
||||||
|
(overlay-put o 'display image)
|
||||||
|
(overlay-put o 'display (concat (plist-get icon 'string)
|
||||||
|
(string (char-after (point)))))
|
||||||
|
(overlay-put o 'face (plist-get icon 'face))))
|
||||||
|
o))
|
||||||
|
|
||||||
|
(defun outline--make-margin-overlay (type)
|
||||||
|
(let ((o (seq-find (lambda (o)
|
||||||
|
(overlay-get o 'outline-margin))
|
||||||
|
(overlays-at (point)))))
|
||||||
|
(unless o
|
||||||
|
(setq o (make-overlay (point) (1+ (point))))
|
||||||
|
(overlay-put o 'evaporate t)
|
||||||
|
(overlay-put o 'outline-margin t))
|
||||||
|
(let ((icon (icon-elements (if (eq type 'close)
|
||||||
|
(if outline--use-rtl
|
||||||
|
'outline-close-rtl-in-margins
|
||||||
|
'outline-close-in-margins)
|
||||||
|
'outline-open-in-margins))))
|
||||||
|
(overlay-put
|
||||||
|
o 'before-string
|
||||||
|
(propertize " " 'display
|
||||||
|
`((margin ,(if outline--use-rtl
|
||||||
|
'right-margin 'left-margin))
|
||||||
|
,(or (plist-get icon 'image)
|
||||||
|
(plist-get icon 'string))))))
|
||||||
|
o))
|
||||||
|
|
||||||
|
(defun outline--insert-open-button (&optional use-margins)
|
||||||
|
(with-silent-modifications
|
||||||
|
(save-excursion
|
||||||
|
(beginning-of-line)
|
||||||
|
(if use-margins
|
||||||
|
(outline--make-margin-overlay 'open)
|
||||||
|
(when (derived-mode-p 'special-mode)
|
||||||
|
(let ((inhibit-read-only t))
|
||||||
|
(insert " ")
|
||||||
|
(beginning-of-line)))
|
||||||
|
(let ((o (outline--make-button-overlay 'open)))
|
||||||
|
(overlay-put o 'help-echo "Click to hide")
|
||||||
|
(overlay-put o 'keymap
|
||||||
|
(define-keymap
|
||||||
|
"RET" #'outline-hide-subtree
|
||||||
|
"<mouse-2>" #'outline-hide-subtree)))))))
|
||||||
|
|
||||||
|
(defun outline--insert-close-button (&optional use-margins)
|
||||||
|
(with-silent-modifications
|
||||||
|
(save-excursion
|
||||||
|
(beginning-of-line)
|
||||||
|
(if use-margins
|
||||||
|
(outline--make-margin-overlay 'close)
|
||||||
|
(when (derived-mode-p 'special-mode)
|
||||||
|
(let ((inhibit-read-only t))
|
||||||
|
(insert " ")
|
||||||
|
(beginning-of-line)))
|
||||||
|
(let ((o (outline--make-button-overlay 'close)))
|
||||||
|
(overlay-put o 'help-echo "Click to show")
|
||||||
|
(overlay-put o 'keymap
|
||||||
|
(define-keymap
|
||||||
|
"RET" #'outline-show-subtree
|
||||||
|
"<mouse-2>" #'outline-show-subtree)))))))
|
||||||
|
|
||||||
|
(defun outline--fix-up-all-buttons (&optional from to)
|
||||||
|
(when (or outline--use-buttons outline--use-margins)
|
||||||
|
(when from
|
||||||
|
(save-excursion
|
||||||
|
(goto-char from)
|
||||||
|
(setq from (line-beginning-position))))
|
||||||
|
(outline-map-region
|
||||||
|
(lambda ()
|
||||||
|
(if (save-excursion
|
||||||
|
(outline-end-of-heading)
|
||||||
|
(seq-some (lambda (o) (eq (overlay-get o 'invisible) 'outline))
|
||||||
|
(overlays-at (point))))
|
||||||
|
(outline--insert-close-button outline--use-margins)
|
||||||
|
(outline--insert-open-button outline--use-margins)))
|
||||||
|
(or from (point-min)) (or to (point-max)))))
|
||||||
|
|
||||||
|
(defun outline--fix-buttons-after-change (beg end _len)
|
||||||
|
;; Handle whole lines
|
||||||
|
(save-excursion (goto-char beg) (setq beg (pos-bol)))
|
||||||
|
(save-excursion (goto-char end) (setq end (pos-eol)))
|
||||||
|
(when outline--use-buttons
|
||||||
|
(remove-overlays beg end 'outline-button t))
|
||||||
|
(when outline--use-margins
|
||||||
|
(remove-overlays beg end 'outline-margin t))
|
||||||
|
(outline--fix-up-all-buttons beg end))
|
||||||
|
|
||||||
|
|
||||||
(defvar-keymap outline-navigation-repeat-map
|
(defvar-keymap outline-navigation-repeat-map
|
||||||
"C-b" #'outline-backward-same-level
|
"C-b" #'outline-backward-same-level
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue