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")
|
||||
|
||||
((nil . ((tab-width . 8)
|
||||
|
|
|
@ -5685,7 +5685,7 @@
|
|||
(__mktime_internal): Use it systematically for all isdst comparisons.
|
||||
This completes the fix for libc BZ #6723, and removes the need for
|
||||
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.
|
||||
|
||||
mktime: fix some integer overflow issues and sidestep the rest
|
||||
|
|
|
@ -185373,7 +185373,7 @@
|
|||
|
||||
* lisp/image.el (image-type-header-regexps):
|
||||
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>
|
||||
|
||||
|
@ -197097,7 +197097,7 @@
|
|||
Clang on macOS warns about these with -Wtautological-compare. POSIX
|
||||
guarantees that rlim_t is
|
||||
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.
|
||||
|
||||
* src/emacs.c (main): Remove tautological comparisons.
|
||||
|
@ -199197,7 +199197,7 @@
|
|||
|
||||
' is commonly used as an apostrophe in the prose sections of spec
|
||||
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
|
||||
punctuation in RPM spec files.
|
||||
|
|
2
INSTALL
2
INSTALL
|
@ -187,7 +187,7 @@ X11 is being used.
|
|||
libz (for PNG): https://www.zlib.net/
|
||||
X libjpeg for JPEG: https://www.ijg.org/
|
||||
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
|
||||
libwebp for WebP: https://developers.google.com/speed/webp/
|
||||
|
||||
|
|
|
@ -530,6 +530,11 @@ lisp: src
|
|||
lib lib-src lisp nt: Makefile
|
||||
$(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
|
||||
# expands it using its own value of srcdir (which points to the
|
||||
# source directory of src/).
|
||||
|
|
|
@ -54,7 +54,7 @@
|
|||
#
|
||||
# [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.
|
||||
#
|
||||
0020 20 # SPACE # space
|
||||
|
|
|
@ -57,7 +57,7 @@
|
|||
#
|
||||
# [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.
|
||||
#
|
||||
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:
|
||||
|
||||
../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
|
||||
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.
|
||||
|
||||
BidiBrackets.txt
|
||||
http://www.unicode.org/Public/UNIDATA/BidiBrackets.txt
|
||||
https://www.unicode.org/Public/UNIDATA/BidiBrackets.txt
|
||||
2021-06-30
|
||||
|
||||
BidiMirroring.txt
|
||||
http://www.unicode.org/Public/UNIDATA/BidiMirroring.txt
|
||||
https://www.unicode.org/Public/UNIDATA/BidiMirroring.txt
|
||||
2021-08-08
|
||||
|
||||
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
|
||||
|
||||
IVD_Sequences.txt
|
||||
http://www.unicode.org/ivd/
|
||||
https://www.unicode.org/ivd/
|
||||
2020-11-06
|
||||
|
||||
NormalizationTest.txt
|
||||
http://www.unicode.org/Public/UNIDATA/NormalizationTest.txt
|
||||
https://www.unicode.org/Public/UNIDATA/NormalizationTest.txt
|
||||
2021-05-28
|
||||
|
||||
SpecialCasing.txt
|
||||
http://unicode.org/Public/UNIDATA/SpecialCasing.txt
|
||||
https://unicode.org/Public/UNIDATA/SpecialCasing.txt
|
||||
2021-03-08
|
||||
|
||||
UnicodeData.txt
|
||||
http://www.unicode.org/Public/UNIDATA/UnicodeData.txt
|
||||
https://www.unicode.org/Public/UNIDATA/UnicodeData.txt
|
||||
2021-07-06
|
||||
|
||||
emoji-data.txt
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
### Commentary:
|
||||
|
||||
## 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.
|
||||
|
||||
## It lumps together all the blocks belonging to the same language.
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
<title>Unicode Terms of Use</title>
|
||||
<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">
|
||||
pre {
|
||||
|
@ -32,8 +32,8 @@
|
|||
<td colspan="2">
|
||||
<table width="100%" border="0" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td class="icon" style="width:38px; height:35px"><a href="http://www.unicode.org/"><img border="0"
|
||||
src="http://www.unicode.org/webscripts/logo60s2.gif" align="middle" alt="[Unicode]" width="34" height="33"></a></td>
|
||||
<td class="icon" style="width:38px; height:35px"><a href="https://www.unicode.org/"><img border="0"
|
||||
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"
|
||||
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>
|
||||
|
@ -112,7 +112,7 @@ <h1>Unicode® Copyright and Terms of Use</h1>
|
|||
|
||||
<p>For the general privacy policy governing access to this site, see
|
||||
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>
|
||||
|
||||
<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
|
||||
editions (Unicode 5.0 and earlier), these are found on the back
|
||||
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>
|
||||
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>
|
||||
|
@ -224,7 +224,7 @@ <h1>Unicode® Copyright and Terms of Use</h1>
|
|||
<li><u><a name="5"></a>Trademarks & Logos</u>
|
||||
<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><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>
|
||||
</ol>
|
||||
</li>
|
||||
|
@ -270,15 +270,15 @@ <h1>Unicode® Copyright and Terms of Use</h1>
|
|||
<center>
|
||||
<table cellspacing="0" cellpadding="0" border="0" id="table2">
|
||||
<tr>
|
||||
<td><a href="http://www.unicode.org/copyright.html">
|
||||
<img src="http://www.unicode.org/img/hb_notice.gif"
|
||||
<td><a href="https://www.unicode.org/copyright.html">
|
||||
<img src="https://www.unicode.org/img/hb_notice.gif"
|
||||
border="0" alt="Access to Copyright and terms of use"
|
||||
width="216" height="50"></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<script language="Javascript" type="text/javascript"
|
||||
src="http://www.unicode.org/webscripts/lastModified.js">
|
||||
src="https://www.unicode.org/webscripts/lastModified.js">
|
||||
</script>
|
||||
|
||||
</center>
|
||||
|
|
|
@ -667,6 +667,16 @@ type @kbd{M-x disable-theme}.
|
|||
the @file{*Custom Themes*} buffer; or type @kbd{M-x describe-theme}
|
||||
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
|
||||
@subsection Creating Custom Themes
|
||||
@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}
|
||||
Perform interactive query-replace on references that match
|
||||
@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
|
||||
@findex xref-revert-buffer
|
||||
|
@ -2336,7 +2338,8 @@ them.
|
|||
@item M-?
|
||||
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}
|
||||
Interactively replace @var{regexp} with @var{replacement} in the names
|
||||
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.
|
||||
|
||||
@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
|
||||
renames the identifiers shown in the @file{*xref*} buffer in all the
|
||||
places in all the files where these identifiers are referenced, such
|
||||
that their new name is @var{replacement}. This is useful when you
|
||||
rename your identifiers as part of refactoring. This command should
|
||||
be invoked in the @file{*xref*} buffer generated by @kbd{M-?}. With a
|
||||
prefix argument, the command also prompts for a regexp to match
|
||||
identifier names, and renames that regexp in the names of the matching
|
||||
identifiers with @var{replacement}.
|
||||
be invoked in the @file{*xref*} buffer generated by @kbd{M-?}. By
|
||||
default, the command replaces the entire name of each identifier with
|
||||
@var{replacement}, but if invoked with a prefix argument, the command
|
||||
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
|
||||
@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
|
||||
@code{vc-prepare-patch} command. This will prompt you for the
|
||||
revisions you wish to share, and which destination email address(es)
|
||||
to use. The command will then prepare those revisions using your
|
||||
@abbr{MUA, Mail User Agent} for you to review and send.
|
||||
to use. The revisions are separated using commas (or whatever was
|
||||
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
|
||||
Depending on the value of the user option
|
||||
|
|
|
@ -427,19 +427,19 @@ It is a permanent local, unaffected by
|
|||
@end defvar
|
||||
|
||||
@defvar buffer-file-number
|
||||
This buffer-local variable holds the file number and directory device
|
||||
number of the file visited in the current buffer, or @code{nil} if no
|
||||
This buffer-local variable holds the inode number and device
|
||||
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,
|
||||
unaffected by @code{kill-all-local-variables}.
|
||||
|
||||
The value is normally a list of the form @code{(@var{filenum}
|
||||
@var{devnum})}. This pair of numbers uniquely identifies the file among
|
||||
The value is normally a list of the form @code{(@var{inodenum}
|
||||
@var{device})}. This tuple uniquely identifies the file among
|
||||
all files accessible on the system. See the function
|
||||
@code{file-attributes}, in @ref{File Attributes}, for more information
|
||||
about them.
|
||||
|
||||
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
|
||||
|
||||
@defun get-file-buffer filename
|
||||
|
|
|
@ -985,7 +985,7 @@ too late.
|
|||
While setting this variable disables automatic compilation of Lisp
|
||||
files, the compiler may still be invoked to install @dfn{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}
|
||||
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
|
||||
@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
|
||||
theme. The optional argument @var{doc} should be a string describing
|
||||
the theme; this is the description shown when the user invokes the
|
||||
@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):
|
||||
@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.
|
||||
@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
|
||||
This function determines the responsible VC backend of the given
|
||||
@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.
|
||||
|
||||
@item
|
||||
The filesystem number of the device that the file is on
|
||||
@code{file-attribute-device-number}), an integer.
|
||||
This element and the file's inode number
|
||||
together give enough information to distinguish any two files on the
|
||||
system---no two files can have the same values for both of these
|
||||
numbers.
|
||||
The filesystem's identifier of the device that the file is on
|
||||
(@code{file-attribute-device-number}), an integer or a cons cell of
|
||||
two integers. The latter is sometimes used by remote files, in order
|
||||
to distinguish remote filesystems from local ones.
|
||||
@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}:
|
||||
|
||||
@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.
|
||||
@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
|
||||
This is similar to @code{directory-files} in deciding which files
|
||||
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}.
|
||||
|
||||
@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,Autotyping,,autotype,Autotyping}).
|
||||
@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
|
||||
interpolation).
|
||||
|
||||
@code{sqlite-execute} returns the number of affected rows. For
|
||||
instance, an @samp{insert} statement will return @samp{1}, whereas an
|
||||
@samp{update} statement may return zero or a higher number.
|
||||
@code{sqlite-execute} usually returns the number of affected rows.
|
||||
For instance, an @samp{insert} statement will typically return
|
||||
@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
|
||||
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{t}, @var{window} was not shown at that time but has been
|
||||
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.
|
||||
@end defun
|
||||
|
||||
@defun window-old-pixel-width &optional window
|
||||
This function returns the total pixel width of @var{window} the
|
||||
last time window change functions found @code{window} live on its
|
||||
frame. It is zero if @code{window} was created after that.
|
||||
last time window change functions found @var{window} live on its
|
||||
frame. It is zero if @var{window} was created after that.
|
||||
@end defun
|
||||
|
||||
@defun window-old-pixel-height &optional window
|
||||
This function returns the total pixel height of @var{window} the last
|
||||
time window change functions found @code{window} live on its frame.
|
||||
It is zero if @code{window} was created after that.
|
||||
time window change functions found @var{window} live on its frame.
|
||||
It is zero if @var{window} was created after that.
|
||||
@end defun
|
||||
|
||||
@defun window-old-body-pixel-width &optional window
|
||||
This function returns the pixel width of @var{window}'s text area the
|
||||
last time window change functions found @code{window} live on its
|
||||
frame. It is zero if @code{window} was created after that.
|
||||
last time window change functions found @var{window} live on its
|
||||
frame. It is zero if @var{window} was created after that.
|
||||
@end defun
|
||||
|
||||
@defun window-old-body-pixel-height &optional window
|
||||
This function returns the pixel height of @var{window}'s text area the
|
||||
last time window change functions found @code{window} live on its
|
||||
frame. It is zero if @code{window} was created after that.
|
||||
last time window change functions found @var{window} live on its
|
||||
frame. It is zero if @var{window} was created after that.
|
||||
@end defun
|
||||
|
||||
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
|
||||
@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
|
||||
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
|
||||
(@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
|
||||
@code{c-comment-prefix-regexp} matches the empty string (which it does
|
||||
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.
|
||||
which handles things like bulleted lists nicely. There's a convenience
|
||||
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:
|
||||
|
||||
@quotation
|
||||
@uref{http://cc-mode.sourceforge.net/}
|
||||
@uref{https://cc-mode.sourceforge.net/}
|
||||
@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
|
||||
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
|
||||
@uref{http://cc-mode.sourceforge.net/} for further details.
|
||||
@uref{https://cc-mode.sourceforge.net/} for further details.
|
||||
|
||||
@cindex announcement mailing list
|
||||
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.
|
||||
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
|
||||
@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.
|
||||
See the following two URLs for details:
|
||||
@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.
|
||||
@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
|
||||
|
||||
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.
|
||||
|
||||
@node Version control
|
||||
|
@ -2194,7 +2194,7 @@ to port software to Windows.
|
|||
@cindex image libraries, gnuwin32
|
||||
@cindex image libraries, development
|
||||
|
||||
@uref{http://gnuwin32.sourceforge.net/}
|
||||
@uref{https://gnuwin32.sourceforge.net/}
|
||||
|
||||
GnuWin32 provides precompiled native Windows ports of a wide selection
|
||||
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
|
||||
onwards, including Windows XP and Vista. Pre-built binaries may be
|
||||
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
|
||||
look-alikes), consult the list of ``Emacs implementations and literature,''
|
||||
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
|
||||
lack certain features, such as the Emacs Lisp extension language.
|
||||
|
@ -3757,7 +3757,7 @@ Various spell-checkers are compatible with Emacs, including:
|
|||
@table @b
|
||||
|
||||
@item Hunspell
|
||||
@uref{http://hunspell.sourceforge.net/}
|
||||
@uref{https://hunspell.github.io/}
|
||||
|
||||
@item GNU Aspell
|
||||
@uref{http://aspell.net/}
|
||||
|
|
|
@ -1330,7 +1330,7 @@ details.
|
|||
|
||||
However, what you really want is the Insidious Big Brother
|
||||
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:
|
||||
|
||||
@example
|
||||
|
@ -1782,13 +1782,13 @@ when you're online.
|
|||
Let's talk about Unix systems first: For the news part,
|
||||
the easiest solution is a small nntp server like
|
||||
@uref{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
|
||||
server like
|
||||
@uref{https://www.isc.org/othersoftware/, inn}.
|
||||
Then you want to fetch your Mail, popular choices
|
||||
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
|
||||
Gnus to read it from there. Last but not least the mail
|
||||
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
|
||||
@vindex gnus-summary-muttprint-program
|
||||
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
|
||||
variable @code{gnus-summary-muttprint-program}.
|
||||
(@code{gnus-summary-muttprint}).
|
||||
|
@ -9343,7 +9343,7 @@ Use Gnus rendered based on w3m.
|
|||
Use @uref{http://emacs-w3m.namazu.org/, emacs-w3m}.
|
||||
|
||||
@item w3m-standalone
|
||||
Use @uref{http://w3m.sourceforge.net/, w3m}.
|
||||
Use @uref{https://w3m.sourceforge.net/, w3m}.
|
||||
|
||||
@item 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}
|
||||
server from the firewall machine, you can instruct Gnus to @code{rlogin}
|
||||
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.
|
||||
Doing this can be rather fiddly, but your virtual server definition
|
||||
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
|
||||
with names like @code{netpbm}, @code{libgr-progs} 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.
|
||||
@c In fact only the following DLLs and binaries seem to be required:
|
||||
@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}.
|
||||
Since this kept most users from setting this option,
|
||||
@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}.}.
|
||||
|
||||
@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:
|
||||
@code{nil}).
|
||||
@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:
|
||||
@code{'mh-search-p}).
|
||||
@c -------------------------
|
||||
|
@ -7540,8 +7540,8 @@ Allowlisted message face
|
|||
@cindex spam filters, bogofilter
|
||||
|
||||
MH-E depends on @uref{https://spamassassin.apache.org/, SpamAssassin},
|
||||
@uref{http://bogofilter.sourceforge.net/, bogofilter}, or
|
||||
@uref{http://spamprobe.sourceforge.net/, SpamProbe} to throw the dreck
|
||||
@uref{https://bogofilter.sourceforge.net/, bogofilter}, or
|
||||
@uref{https://spamprobe.sourceforge.net/, SpamProbe} to throw the dreck
|
||||
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
|
||||
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
|
||||
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:
|
||||
|
||||
|
@ -7791,7 +7791,7 @@ bogofilter.
|
|||
@cindex spam filters, SpamProbe
|
||||
|
||||
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}.
|
||||
|
||||
To use SpamProbe, add the following recipes to @file{~/.procmailrc}:
|
||||
|
@ -8633,7 +8633,7 @@ via SourceForge (@pxref{Bug Reports}).
|
|||
@cindex 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
|
||||
@samp{comp.mail.mh}. While very little is there that deals with MH-E
|
||||
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]].
|
||||
|
||||
#+cindex: print edition
|
||||
An earlier version (7.3) of this manual is available as a [[http://www.network-theory.co.uk/org/manual/][paperback
|
||||
book from Network Theory Ltd.]].
|
||||
An earlier version (7.3) of this manual was published as a paperback book by
|
||||
Network Theory Ltd. in 2010.
|
||||
|
||||
** Installation
|
||||
:PROPERTIES:
|
||||
|
@ -3234,7 +3234,7 @@ options:
|
|||
|
||||
| Link Type | Example |
|
||||
|------------+----------------------------------------------------------|
|
||||
| http | =http://staff.science.uva.nl/c.dominik/= |
|
||||
| http | =https://staff.science.uva.nl/c.dominik/= |
|
||||
| https | =https://orgmode.org/= |
|
||||
| doi | =doi:10.1000/182= |
|
||||
| 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=")
|
||||
("Nu Html Checker" . "https://validator.w3.org/nu/?doc=%h")
|
||||
("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\"")))
|
||||
#+end_src
|
||||
|
||||
|
@ -3596,7 +3596,7 @@ can define them in the file with
|
|||
|
||||
#+cindex: @samp{LINK}, keyword
|
||||
#+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
|
||||
#+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
|
||||
the PDF, they are no longer links but actual images embedded on the
|
||||
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
|
||||
a ~tikzpicture~ environment.
|
||||
|
||||
|
@ -13982,7 +13982,7 @@ some text in German...
|
|||
#+cindex: Markdown export
|
||||
|
||||
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
|
||||
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.
|
||||
|
||||
[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
|
||||
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
|
||||
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.
|
||||
|
||||
[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
|
||||
~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]].
|
||||
|
||||
[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
|
||||
OpenDocument-v1.2 specification.
|
||||
|
@ -22170,7 +22170,7 @@ are not evaluated when they appear in a keyword (see [[*Summary of
|
|||
In-Buffer Settings]]).
|
||||
|
||||
[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
|
||||
in =org-tempo.el=.
|
||||
|
|
|
@ -424,13 +424,6 @@ The default priority for remembered mail messages.
|
|||
@section Saving to an Org Mode file
|
||||
@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,
|
||||
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,
|
||||
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
|
||||
@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
|
||||
hopefully growing number of RFCs and drafts documents. This chapter
|
||||
lists the relevant ones. They can all be fetched from
|
||||
@uref{http://quimby.gnus.org/notes/}.
|
||||
@uref{https://quimby.gnus.org/notes/}.
|
||||
|
||||
@table @dfn
|
||||
|
||||
|
|
|
@ -892,7 +892,7 @@ list. Send email to the maintainer @email{reto@@gnu.org} to join
|
|||
either of these lists.
|
||||
|
||||
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
|
||||
@chapter Sample Init File
|
||||
|
|
|
@ -1004,7 +1004,7 @@ incompatible with the --with-dumping=unexec option of 'configure'.
|
|||
|
||||
** 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,
|
||||
Valgrind does not need you to compile Emacs with special debugging
|
||||
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
|
||||
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
|
||||
|
||||
+++
|
||||
|
@ -1376,6 +1382,11 @@ the ecomplete database.
|
|||
*** New user option 'ecomplete-auto-select'.
|
||||
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
|
||||
|
||||
+++
|
||||
|
@ -1897,7 +1908,7 @@ If non-nil, multiple revisions can be queried. This is done using
|
|||
'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
|
||||
MULTIPLE.
|
||||
|
||||
|
@ -1905,7 +1916,7 @@ MULTIPLE.
|
|||
*** New command 'vc-prepare-patch'.
|
||||
Patches for any version control system can be prepared using VC. The
|
||||
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
|
||||
'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
|
||||
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.
|
||||
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
|
||||
|
||||
+++
|
||||
** 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'.
|
||||
This is like 'when-let', but repeats until a binding form is nil.
|
||||
|
|
|
@ -217,7 +217,7 @@ Default is 'grow-only'.
|
|||
** LessTif support.
|
||||
|
||||
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.
|
||||
|
||||
|
|
|
@ -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
|
||||
depend on external libraries. All of these libraries have been ported
|
||||
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
|
||||
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
|
||||
5.32.99, although the software itself hasn't changed. This aims to
|
||||
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.
|
||||
|
||||
|
||||
|
|
|
@ -1223,7 +1223,7 @@ specialized for editing freedesktop.org desktop entries.
|
|||
editing Less files.
|
||||
|
||||
** 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
|
||||
|
|
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
|
||||
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
|
||||
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
|
||||
|
||||
** Random things that were planned for Emacs-24
|
||||
|
||||
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
|
||||
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
|
||||
It wouldn't have to be a complete replacement, just enough
|
||||
for vc-rcs-update-changelog.
|
||||
|
||||
** Allow Emacs to use the bottom-right corner of a TTY
|
||||
Emacs doesn't use the bottom-right corner of a TTY when terminfo
|
||||
capability "am" (auto_right_margin) is defined. It could use the
|
||||
bottom-right corner nonetheless when certain other capabilities are
|
||||
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
|
||||
|
||||
** '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:
|
||||
|
||||
<http://sourceware.org/insight/>
|
||||
<https://sourceware.org/insight/>
|
||||
"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
|
||||
License (GPL)"
|
||||
|
||||
|
|
|
@ -38,7 +38,7 @@ template ede-empty :project
|
|||
{{comment_prefix}} by EDE when this file is updated.
|
||||
{{comment_prefix}}
|
||||
{{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}} 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.
|
||||
# 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.
|
||||
# EDE is the Emacs Development Environment.
|
||||
# http://cedet.sourceforge.net/ede.shtml
|
||||
# https://cedet.sourceforge.net/ede.shtml
|
||||
|
||||
ARDUINO_DIR = {{ARDUINO_HOME}}
|
||||
|
||||
|
|
|
@ -21,10 +21,13 @@
|
|||
|
||||
;;; Code:
|
||||
|
||||
;;;###theme-autoload
|
||||
(deftheme adwaita
|
||||
"Face colors similar to the default theme of Gnome 3 (Adwaita).
|
||||
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))))
|
||||
(custom-theme-set-faces
|
||||
|
|
|
@ -21,8 +21,11 @@
|
|||
|
||||
;;; Code:
|
||||
|
||||
;;;###theme-autoload
|
||||
(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))))
|
||||
(custom-theme-set-faces
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
|
||||
;;; Code:
|
||||
|
||||
;;;###theme-autoload
|
||||
(deftheme dichromacy
|
||||
"Face colors suitable for red/green color-blind users.
|
||||
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.
|
||||
|
||||
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)))
|
||||
(orange "#e69f00")
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
;; Author: Fabrice Niessen <(concat "fniessen" at-sign "pirilampo.org")>
|
||||
;; Contributor: Thibault Polge <(concat "thibault" at-sign "thb.lt")>
|
||||
;; URL: https://github.com/fniessen/emacs-leuven-dark-theme
|
||||
;; Version: 20220202.1126
|
||||
;; Version: 20221010.1208
|
||||
;; Keywords: color theme
|
||||
|
||||
;; 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-autoload
|
||||
(deftheme leuven-dark
|
||||
"Face colors with a light background.
|
||||
Basic, Font Lock, Isearch, Gnus, Message, Org mode, Diff, Ediff,
|
||||
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)))
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
;; Author: Fabrice Niessen <(concat "fniessen" at-sign "pirilampo.org")>
|
||||
;; URL: https://github.com/fniessen/emacs-leuven-theme
|
||||
;; Version: 20200513.1928
|
||||
;; Version: 20221010.1209
|
||||
;; Keywords: color theme
|
||||
|
||||
;; 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-autoload
|
||||
(deftheme leuven
|
||||
"Face colors with a light background.
|
||||
Basic, Font Lock, Isearch, Gnus, Message, Org mode, Diff, Ediff,
|
||||
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)))
|
||||
|
||||
|
|
|
@ -26,8 +26,11 @@
|
|||
|
||||
;;; Code:
|
||||
|
||||
;;;###theme-autoload
|
||||
(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")
|
||||
|
||||
|
|
|
@ -64,10 +64,13 @@
|
|||
|
||||
;;; Code:
|
||||
|
||||
;;;###theme-autoload
|
||||
(deftheme manoj-dark
|
||||
"Very high contrast faces with a black background.
|
||||
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
|
||||
'manoj-dark
|
||||
|
|
|
@ -21,8 +21,11 @@
|
|||
|
||||
;;; Code:
|
||||
|
||||
;;;###theme-autoload
|
||||
(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))))
|
||||
|
||||
|
|
|
@ -71,4 +71,6 @@ which corresponds to a minimum contrast in relative luminance of
|
|||
|
||||
(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
|
||||
|
|
|
@ -71,4 +71,6 @@ which corresponds to a minimum contrast in relative luminance of
|
|||
|
||||
(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
|
||||
|
|
|
@ -27,10 +27,15 @@
|
|||
|
||||
;;; Code:
|
||||
|
||||
;;;###theme-autoload
|
||||
(deftheme tango-dark
|
||||
"Face colors using the Tango palette (dark background).
|
||||
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)))
|
||||
;; Tango palette colors.
|
||||
|
|
|
@ -27,10 +27,14 @@
|
|||
|
||||
;;; Code:
|
||||
|
||||
;;;###theme-autoload
|
||||
(deftheme tango
|
||||
"Face colors using the Tango palette (light background).
|
||||
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)))
|
||||
;; Tango palette colors.
|
||||
|
|
|
@ -19,8 +19,12 @@
|
|||
|
||||
;;; Code:
|
||||
|
||||
;;;###theme-autoload
|
||||
(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
|
||||
'tsdh-dark
|
||||
|
|
|
@ -19,9 +19,13 @@
|
|||
|
||||
;;; Code:
|
||||
|
||||
;;;###theme-autoload
|
||||
(deftheme tsdh-light
|
||||
"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
|
||||
'tsdh-light
|
||||
|
|
|
@ -19,11 +19,14 @@
|
|||
|
||||
;;; Code:
|
||||
|
||||
;;;###theme-autoload
|
||||
(deftheme wheatgrass
|
||||
"High-contrast green/blue/brown faces on a black background.
|
||||
Basic, Font Lock, Isearch, Gnus, and Message faces are included.
|
||||
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))))
|
||||
(custom-theme-set-faces
|
||||
|
|
|
@ -21,8 +21,11 @@
|
|||
|
||||
;;; Code:
|
||||
|
||||
;;;###theme-autoload
|
||||
(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))))
|
||||
(custom-theme-set-faces
|
||||
|
|
|
@ -21,11 +21,14 @@
|
|||
|
||||
;;; Code:
|
||||
|
||||
;;;###theme-autoload
|
||||
(deftheme wombat
|
||||
"Medium-contrast faces with a dark gray background.
|
||||
Adapted, with permission, from a Vim color scheme by Lars H. Nielsen.
|
||||
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))))
|
||||
(custom-theme-set-faces
|
||||
|
|
|
@ -206,6 +206,9 @@ main (int argc, char **argv)
|
|||
SCMP_A2_32 (SCMP_CMP_MASKED_EQ,
|
||||
~(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. */
|
||||
RULE (SCMP_ACT_ALLOW, SCMP_SYS (futex),
|
||||
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 (geteuid));
|
||||
RULE (SCMP_ACT_ALLOW, SCMP_SYS (getpid));
|
||||
RULE (SCMP_ACT_ALLOW, SCMP_SYS (gettid));
|
||||
RULE (SCMP_ACT_ALLOW, SCMP_SYS (getpgrp));
|
||||
|
||||
/* Allow operations on open file descriptors. File descriptors are
|
||||
|
@ -324,6 +328,8 @@ main (int argc, char **argv)
|
|||
| CLONE_SETTLS | CLONE_PARENT_SETTID
|
||||
| CLONE_CHILD_CLEARTID),
|
||||
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 (set_robust_list));
|
||||
|
||||
|
|
|
@ -9490,7 +9490,7 @@
|
|||
toolbar/rescan.pbm, toolbar/rescan.xpm, toolbar/show.pbm,
|
||||
toolbar/show.xpm, toolbar/widen.pbm, toolbar/widen.xpm:
|
||||
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
|
||||
section of the Makefile that installs the files into Emacs was changed.
|
||||
|
||||
|
|
|
@ -155,7 +155,7 @@
|
|||
|
||||
* epa.el (epa-decrypt-region): Detect encoding if
|
||||
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.
|
||||
|
||||
2009-06-04 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
@ -540,7 +540,7 @@
|
|||
|
||||
* epa-file.el (epa-file-decode-and-insert):
|
||||
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)
|
||||
|
||||
|
|
|
@ -22762,7 +22762,7 @@
|
|||
|
||||
Automatically handle .xz suffix (XZ-compressed files), too.
|
||||
* 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>
|
||||
Nick Roberts <nickrob@snap.net.nz>
|
||||
|
|
|
@ -14039,7 +14039,7 @@
|
|||
|
||||
* epa-file.el (epa-file-write-region): Encode the region according
|
||||
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>
|
||||
|
||||
|
|
|
@ -430,6 +430,12 @@ compile-always:
|
|||
find $(lisp) -name '*.elc' $(FIND_DELETE)
|
||||
$(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
|
||||
|
||||
# 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"
|
||||
nil
|
||||
";;; Directory Local Variables\n"
|
||||
";;; Directory Local Variables -*- no-byte-compile: t; -*-\n"
|
||||
";;; For more information see (info \"(emacs) Directory Variables\")\n\n"
|
||||
"(("
|
||||
'(setq v1 (let (modes)
|
||||
|
|
|
@ -47,7 +47,7 @@
|
|||
;; The original pulse code was written for semantic tag highlighting.
|
||||
;; 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)
|
||||
|
||||
|
|
|
@ -1152,9 +1152,11 @@ list, in which A occurs before B if B was defined with a
|
|||
;; (provide-theme 'THEME)
|
||||
|
||||
|
||||
(defmacro deftheme (theme &optional doc)
|
||||
(defmacro deftheme (theme &optional doc &rest properties)
|
||||
"Declare THEME to be a Custom 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';
|
||||
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,
|
||||
;; because that makes a bootstrapping problem
|
||||
;; 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.
|
||||
FEATURE is the feature this theme provides. Normally, this is a symbol
|
||||
created from THEME by `custom-make-theme-feature'."
|
||||
FEATURE is the feature this theme provides. Normally, this is a
|
||||
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)
|
||||
(error "Custom theme cannot be named %S" theme))
|
||||
(unless (memq theme custom-known-themes)
|
||||
(push theme custom-known-themes))
|
||||
(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)
|
||||
"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))
|
||||
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)
|
||||
"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,
|
||||
|
|
|
@ -70,9 +70,9 @@
|
|||
:type '(symbol :tag "Coding system"))
|
||||
|
||||
(defcustom ecomplete-sort-predicate #'ecomplete-decay
|
||||
"Predicate to use when sorting matched.
|
||||
The predicate is called with two parameters that represent the
|
||||
completion. Each parameter is a list where the first element is
|
||||
"Predicate to use when sorting matched ecomplete candidates.
|
||||
The predicate is called with two arguments that represent the
|
||||
completion. Each argument is a list where the first element is
|
||||
the times the completion has been used, the second is the
|
||||
timestamp of the most recent usage, and the third item is the
|
||||
string that was matched."
|
||||
|
@ -86,6 +86,11 @@ string that was matched."
|
|||
:type 'boolean
|
||||
: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.
|
||||
|
||||
(defvar ecomplete-database nil)
|
||||
|
@ -104,20 +109,22 @@ string that was matched."
|
|||
By default, the longest version of TEXT will be preserved, but if
|
||||
FORCE is non-nil, use TEXT exactly as is."
|
||||
(unless ecomplete-database (ecomplete-setup))
|
||||
(let ((elems (assq type ecomplete-database))
|
||||
(now (time-convert nil 'integer))
|
||||
entry)
|
||||
(unless elems
|
||||
(push (setq elems (list type)) ecomplete-database))
|
||||
(if (setq entry (assoc key (cdr elems)))
|
||||
(pcase-let ((`(,_key ,count ,_time ,oldtext) entry))
|
||||
(setcdr entry (list (1+ count) now
|
||||
;; Preserve the "more complete" text.
|
||||
(if (or force
|
||||
(>= (length text) (length oldtext)))
|
||||
text
|
||||
oldtext))))
|
||||
(nconc elems (list (list key 1 now text))))))
|
||||
(unless (and ecomplete-filter-regexp
|
||||
(string-match-p ecomplete-filter-regexp key))
|
||||
(let ((elems (assq type ecomplete-database))
|
||||
(now (time-convert nil 'integer))
|
||||
entry)
|
||||
(unless elems
|
||||
(push (setq elems (list type)) ecomplete-database))
|
||||
(if (setq entry (assoc key (cdr elems)))
|
||||
(pcase-let ((`(,_key ,count ,_time ,oldtext) entry))
|
||||
(setcdr entry (list (1+ count) now
|
||||
;; Preserve the "more complete" text.
|
||||
(if (or force
|
||||
(>= (length text) (length oldtext)))
|
||||
text
|
||||
oldtext))))
|
||||
(nconc elems (list (list key 1 now text)))))))
|
||||
|
||||
(defun ecomplete--remove-item (type key)
|
||||
"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)))
|
||||
|
||||
(defun ecomplete-edit ()
|
||||
"Prompt for an item and allow editing it."
|
||||
"Prompt for an ecomplete item and allow editing it."
|
||||
(interactive)
|
||||
(let* ((type (ecomplete--prompt-type))
|
||||
(data (cdr (assq type ecomplete-database)))
|
||||
|
@ -305,7 +312,8 @@ non-nil and there is only a single completion option available."
|
|||
(ecomplete-save)))
|
||||
|
||||
(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)
|
||||
(let* ((type (ecomplete--prompt-type))
|
||||
(data (cdr (assq type ecomplete-database)))
|
||||
|
|
|
@ -4204,6 +4204,17 @@ bytecode definition was not changed in the meantime)."
|
|||
|
||||
;;; 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
|
||||
(defun comp-lookup-eln (filename)
|
||||
"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)))
|
||||
`((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)
|
||||
;; In Emacs this is normally handled separately by cus-dep.el, but for
|
||||
;; third party packages, it can be convenient to explicitly autoload
|
||||
|
@ -730,7 +736,14 @@ rules for built-in packages and excluded files."
|
|||
;; updated.
|
||||
(file-newer-than-file-p
|
||||
(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)
|
||||
|
||||
|
|
|
@ -262,12 +262,7 @@ by counted more than once."
|
|||
(cl-struct-slot-info struct-type)))))
|
||||
|
||||
(defun memory-report--format (bytes)
|
||||
(setq bytes (/ bytes 1024.0))
|
||||
(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))))
|
||||
(format "%10s" (file-size-human-readable bytes 'iec " ")))
|
||||
|
||||
(defun memory-report--gc-elem (elems type)
|
||||
(* (nth 1 (assq type elems))
|
||||
|
|
|
@ -975,7 +975,7 @@ untar into a directory named DIR; otherwise, signal an error."
|
|||
(or (string-match regexp name)
|
||||
;; Tarballs created by some utilities don't list
|
||||
;; 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))
|
||||
(error "Package does not untar cleanly into directory %s/" dir)))))
|
||||
(tar-untar-buffer))
|
||||
|
@ -1240,8 +1240,12 @@ Return the pkg-desc, with desc-kind set to KIND."
|
|||
"Find package information for a tar file.
|
||||
The return result is a `package-desc'."
|
||||
(cl-assert (derived-mode-p 'tar-mode))
|
||||
(let* ((dir-name (file-name-directory
|
||||
(tar-header-name (car tar-parse-info))))
|
||||
(let* ((dir-name (named-let loop
|
||||
((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))
|
||||
(tar-desc (tar-get-file-descriptor (concat dir-name desc-file))))
|
||||
(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)))
|
||||
(seq-filter
|
||||
:eval (seq-filter #'numberp '(a b 3 4 f 6)))
|
||||
(seq-keep
|
||||
:eval (seq-keep #'cl-digit-char-p '(?6 ?a ?7)))
|
||||
(seq-remove
|
||||
:eval (seq-remove #'numberp '(1 2 c d 5)))
|
||||
(seq-remove-at-position
|
||||
|
|
|
@ -353,6 +353,11 @@ This also updates the displayed table."
|
|||
(let* ((cache (vtable--cache table))
|
||||
(inhibit-read-only t)
|
||||
(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
|
||||
(assq after-object (car cache))))
|
||||
(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
|
||||
;; have :row-colors.
|
||||
(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
|
||||
'vtable table)))
|
||||
;; 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))
|
||||
(concat
|
||||
(vtable--limit-string
|
||||
pre-computed (- (elt widths index) ellipsis-width))
|
||||
pre-computed (- (elt widths index)
|
||||
(or ellipsis-width 0)))
|
||||
ellipsis)
|
||||
pre-computed))
|
||||
;; Recompute widths.
|
||||
|
@ -524,7 +531,8 @@ This also updates the displayed table."
|
|||
(if (> (string-pixel-width value) (elt widths index))
|
||||
(concat
|
||||
(vtable--limit-string
|
||||
value (- (elt widths index) ellipsis-width))
|
||||
value (- (elt widths index)
|
||||
(or ellipsis-width 0)))
|
||||
ellipsis)
|
||||
value))))
|
||||
(start (point))
|
||||
|
|
|
@ -3779,7 +3779,7 @@
|
|||
doesn't appear).
|
||||
|
||||
* 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.
|
||||
|
||||
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
|
||||
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
|
||||
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>
|
||||
|
||||
|
|
|
@ -6961,6 +6961,8 @@ shortened server name instead."
|
|||
|
||||
(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)
|
||||
"Update the mode line in a single ERC buffer BUFFER."
|
||||
(with-current-buffer buffer
|
||||
|
@ -7325,7 +7327,7 @@ See also `format-spec'."
|
|||
(error "No format spec for message %s" msg))
|
||||
(when (functionp entry)
|
||||
(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
|
||||
|
||||
|
|
|
@ -372,12 +372,10 @@ Remove the DIRECTORY(ies), if they are empty.")
|
|||
(setq attr (eshell-file-attributes (car files)))
|
||||
(file-attribute-inode-number attr-target)
|
||||
(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)
|
||||
(equal (file-attribute-device-number attr-target)
|
||||
(file-attribute-device-number attr)))
|
||||
(equal (file-attribute-file-identifier attr-target)
|
||||
(file-attribute-file-identifier attr)))
|
||||
(eshell-error (format-message "%s: `%s' and `%s' are the same file\n"
|
||||
command (car files) target)))
|
||||
(t
|
||||
|
|
|
@ -277,7 +277,23 @@ Used only on systems which do not support async subprocesses.")
|
|||
eshell-delete-exited-processes
|
||||
delete-exited-processes))
|
||||
(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)
|
||||
;; 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
|
||||
((fboundp 'make-process)
|
||||
(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)
|
||||
changed t))
|
||||
;; 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
|
||||
;; suppress EOL conversion.
|
||||
(if (and decoding (not encoding))
|
||||
|
|
|
@ -489,7 +489,9 @@ from the MODE alist ignoring the input argument VALUE."
|
|||
dir-locals-directory-cache))
|
||||
|
||||
;; 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")
|
||||
(princ (dir-locals-to-string
|
||||
(sort variables
|
||||
|
|
|
@ -208,9 +208,10 @@ if the file has changed on disk and you have not edited the buffer."
|
|||
:group 'find-file)
|
||||
|
||||
(defvar-local buffer-file-number nil
|
||||
"The device number and file number of the file visited in the current buffer.
|
||||
The value is a list of the form (FILENUM DEVNUM).
|
||||
This pair of numbers uniquely identifies the file.
|
||||
"The inode number and the device of the file visited in the current buffer.
|
||||
The value is a list of the form (INODENUM DEVICE), where DEVICE can be
|
||||
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.")
|
||||
(put 'buffer-file-number 'permanent-local t)
|
||||
|
||||
|
@ -2163,7 +2164,7 @@ If there is no such live buffer, return nil."
|
|||
(setq list (cdr list)))
|
||||
found)
|
||||
(let* ((attributes (file-attributes truename))
|
||||
(number (nthcdr 10 attributes))
|
||||
(number (file-attribute-file-identifier attributes))
|
||||
(list (buffer-list)) found)
|
||||
(and buffer-file-numbers-unique
|
||||
(car-safe number) ;Make sure the inode is not just nil.
|
||||
|
@ -2366,7 +2367,7 @@ the various files."
|
|||
(let* ((buf (get-file-buffer filename))
|
||||
(truename (abbreviate-file-name (file-truename filename)))
|
||||
(attributes (file-attributes truename))
|
||||
(number (nthcdr 10 attributes))
|
||||
(number (file-attribute-file-identifier attributes))
|
||||
;; Find any buffer for a file that has same truename.
|
||||
(other (and (not buf)
|
||||
(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-number
|
||||
(if filename
|
||||
(nthcdr 10 (file-attributes buffer-file-name))
|
||||
(file-attribute-file-identifier (file-attributes buffer-file-name))
|
||||
nil))
|
||||
;; 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.
|
||||
|
@ -5733,7 +5734,8 @@ Before and after saving the buffer, this function runs
|
|||
(setq save-buffer-coding-system last-coding-system-used)
|
||||
(setq buffer-file-coding-system last-coding-system-used))
|
||||
(setq buffer-file-number
|
||||
(nthcdr 10 (file-attributes buffer-file-name)))
|
||||
(file-attribute-file-identifier
|
||||
(file-attributes buffer-file-name)))
|
||||
(if setmodes
|
||||
(condition-case ()
|
||||
(progn
|
||||
|
@ -6344,9 +6346,10 @@ If FILE1 or FILE2 does not exist, the return value is unspecified."
|
|||
(equal f1-attr f2-attr))))))
|
||||
|
||||
(defun file-in-directory-p (file dir)
|
||||
"Return non-nil if FILE is in DIR or a subdirectory of DIR.
|
||||
A directory is considered to be \"in\" itself.
|
||||
Return nil if DIR is not an existing directory."
|
||||
"Return non-nil if DIR is a parent directory of FILE.
|
||||
Value is non-nil if FILE is inside DIR or inside a subdirectory of DIR.
|
||||
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)
|
||||
(find-file-name-handler dir 'file-in-directory-p))))
|
||||
(if handler
|
||||
|
@ -8657,19 +8660,26 @@ It is a nonnegative integer."
|
|||
|
||||
(defsubst file-attribute-device-number (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))
|
||||
|
||||
(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)
|
||||
"Return a sublist of ATTRIBUTES returned by `file-attributes'.
|
||||
ATTR-NAMES are symbols with the selected attribute names.
|
||||
|
||||
Valid attribute names are: type, link-number, user-id, group-id,
|
||||
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
|
||||
modification-time status-change-time
|
||||
size modes inode-number device-number))
|
||||
size modes inode-number device-number file-number))
|
||||
result)
|
||||
(while 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.
|
||||
If the buffer already has a\"X-Message-SMTP-Method\" header,
|
||||
it is left unchanged."
|
||||
:type '(alist :key-type '(choice
|
||||
(string :tag "From Address")
|
||||
(function :tag "Predicate"))
|
||||
:value-type 'string)
|
||||
:type '(alist :key-type (choice
|
||||
(string :tag "From Address")
|
||||
(function :tag "Predicate"))
|
||||
:value-type string)
|
||||
:version "29.1"
|
||||
:group 'message-sending)
|
||||
|
||||
|
|
|
@ -194,7 +194,7 @@ This can be either \"inline\" or \"attachment\".")
|
|||
nil)
|
||||
(verbatim-marks
|
||||
;; 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\\-$"
|
||||
,(lambda () (mm-uu-verbatim-marks-extract 0 0))
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
|
||||
;;; Commentary:
|
||||
|
||||
;; For Outlook mail boxes format, see http://mbx2mbox.sourceforge.net/
|
||||
;; For Outlook mail boxes format, see https://mbx2mbox.sourceforge.net/
|
||||
|
||||
;;; Code:
|
||||
|
||||
|
|
135
lisp/help.el
135
lisp/help.el
|
@ -112,7 +112,7 @@ buffer.")
|
|||
(define-key map "v" 'describe-variable)
|
||||
(define-key map "w" 'where-is)
|
||||
(define-key map "x" 'describe-command)
|
||||
(define-key map "q" 'help-quit)
|
||||
(define-key map "q" 'help-quit-or-quick)
|
||||
map)
|
||||
"Keymap for characters following the Help key.")
|
||||
|
||||
|
@ -125,11 +125,143 @@ buffer.")
|
|||
(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 ()
|
||||
"Just exit from the Help command's command loop."
|
||||
(interactive)
|
||||
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
|
||||
"What to do to \"exit\" the help buffer.
|
||||
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")
|
||||
""
|
||||
("help-with-tutorial" "Start the Emacs tutorial")
|
||||
("help-quick-or-quit" "Display the quick help buffer.")
|
||||
("view-echo-area-messages"
|
||||
"Show recent messages (from echo area)")
|
||||
("view-lossage" ,(format "Show last %d input keystrokes (lossage)"
|
||||
|
|
|
@ -156,7 +156,8 @@ line about point in the selected window only."
|
|||
:group 'hl-line
|
||||
;; If the global mode is switched on, then `M-x hl-line-mode' should
|
||||
;; 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-local global-hl-line-mode nil)
|
||||
(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))
|
||||
(if (numberp 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
|
||||
(pop-to-buffer-same-window (or buffer "*info*"))))
|
||||
|
||||
|
|
|
@ -34,7 +34,8 @@
|
|||
(input-method . "balinese")
|
||||
(sample-text . "Balinese (ᬅᬓ᭄ᬱᬭᬩᬮᬶ) ᬒᬁᬲ᭄ᬯᬲ᭄ᬢ᭄ᬬᬲ᭄ᬢᬸ")
|
||||
(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
|
||||
"Javanese" '((charset unicode)
|
||||
|
@ -43,7 +44,8 @@ Balinese language and its script are supported in this language environment.")))
|
|||
(input-method . "javanese")
|
||||
(sample-text . "Javanese (ꦲꦏ꧀ꦱꦫꦗꦮ) ꦲꦭꦺꦴ")
|
||||
(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
|
||||
"Sundanese" '((charset unicode)
|
||||
|
@ -52,7 +54,8 @@ Javanese language and its script are supported in this language environment.")))
|
|||
(input-method . "sundanese")
|
||||
(sample-text . "Sundanese (ᮃᮊ᮪ᮞᮛᮞᮥᮔ᮪ᮓ) ᮞᮙ᮪ᮕᮥᮛᮞᮥᮔ᮪")
|
||||
(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
|
||||
"Batak" '((charset unicode)
|
||||
|
@ -62,7 +65,8 @@ Sundanese language and its script are supported in this language environment."))
|
|||
(sample-text . "Batak (ᯘᯮᯒᯗ᯲ᯅᯗᯂ᯲) ᯂᯬᯒᯘ᯲ / ᯔᯧᯐᯬᯀᯱᯐᯬᯀᯱ")
|
||||
(documentation . "\
|
||||
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
|
||||
"Rejang" '((charset unicode)
|
||||
|
@ -71,7 +75,8 @@ and Simalungun, are supported in this language environment.")))
|
|||
(input-method . "rejang")
|
||||
(sample-text . "Rejang (ꥆꤰ꥓ꤼꤽ ꤽꥍꤺꥏ) ꤸꥉꥐꤺꥉꥂꥎ")
|
||||
(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
|
||||
"Makasar" '((charset unicode)
|
||||
|
@ -80,7 +85,8 @@ Rejang language and its script are supported in this language environment.")))
|
|||
(input-method . "makasar")
|
||||
(sample-text . "Makasar (𑻪𑻢𑻪𑻢) 𑻦𑻤𑻵𑻱")
|
||||
(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
|
||||
"Buginese" '((charset unicode)
|
||||
|
@ -89,7 +95,8 @@ Makassarese language and its script Makasar are supported in this language envir
|
|||
(input-method . "lontara")
|
||||
(sample-text . "Buginese (ᨒᨚᨈᨑ) ᨖᨒᨚ")
|
||||
(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
|
||||
(let ((consonant "[\x1B13-\x1B33\x1B45-\x1B4B]")
|
||||
|
|
|
@ -228,7 +228,8 @@ thin (i.e. 1-dot width) space."
|
|||
(sample-text . "Hanifi Rohingya (𐴌𐴟𐴇𐴥𐴝𐴚𐴒𐴙𐴝 𐴇𐴝𐴕𐴞𐴉𐴞 𐴓𐴠𐴑𐴤𐴝) 𐴀𐴝𐴏𐴓𐴝𐴀𐴡𐴤𐴛𐴝𐴓𐴝𐴙𐴑𐴟𐴔")
|
||||
(documentation . "\
|
||||
Rohingya language and its script Hanifi Rohingya are supported
|
||||
in this language environment.")))
|
||||
in this language environment."))
|
||||
'("Misc"))
|
||||
|
||||
;; Hanifi Rohingya composition rules
|
||||
(set-char-table-range
|
||||
|
@ -251,7 +252,8 @@ in this language environment.")))
|
|||
(sample-text . "Kharoṣṭhī (𐨑𐨪𐨆𐨛𐨁) 𐨣𐨨𐨲𐨪𐨆 𐨐𐨪𐨅𐨨𐨁")
|
||||
(documentation . "\
|
||||
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]")
|
||||
(vowel "[\U00010A01-\U00010A06]")
|
||||
|
@ -281,7 +283,8 @@ using the Kharoṣṭhī script.")))
|
|||
(sample-text . "Adlam (𞤀𞤣𞤤𞤢𞤥) 𞤅𞤢𞤤𞤢𞥄𞤥")
|
||||
(documentation . "\
|
||||
Fulani language and its script Adlam are supported
|
||||
in this language environment.")))
|
||||
in this language environment."))
|
||||
'("Misc"))
|
||||
|
||||
;; Adlam composition rules
|
||||
(set-char-table-range
|
||||
|
@ -303,7 +306,8 @@ in this language environment.")))
|
|||
(sample-text . "Mende Kikakui (𞠀𞠁𞠂) 𞠛𞠉")
|
||||
(documentation . "\
|
||||
Mende language and its script Kikakui are supported
|
||||
in this language environment.")))
|
||||
in this language environment."))
|
||||
'("Misc"))
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; Gothic
|
||||
|
@ -317,7 +321,8 @@ in this language environment.")))
|
|||
(sample-text . "Gothic (𐌲𐌿𐍄𐌹𐍃𐌺𐌰) 𐌷𐌰𐌹𐌻𐍃 / 𐌷𐌰𐌹𐌻𐌰")
|
||||
(documentation . "\
|
||||
Ancient Gothic language using the Gothic script is supported in this
|
||||
language environment.")))
|
||||
language environment."))
|
||||
'("Misc"))
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; Coptic
|
||||
|
@ -331,7 +336,8 @@ language environment.")))
|
|||
(sample-text . "Coptic (ⲘⲉⲧⲢⲉⲙ̀ⲛⲭⲏⲙⲓ) Ⲛⲟⲩϥⲣⲓ")
|
||||
(documentation . "\
|
||||
Coptic language using the Coptic script is supported in this
|
||||
language environment.")))
|
||||
language environment."))
|
||||
'("Misc"))
|
||||
|
||||
(provide 'misc-lang)
|
||||
|
||||
|
|
|
@ -35,7 +35,8 @@
|
|||
(sample-text . "Tagalog (ᜊᜌ᜔ᜊᜌᜒᜈ᜔) ᜃᜓᜋᜓᜐ᜔ᜆ")
|
||||
(documentation . "\
|
||||
Tagalog language using the Baybayin script is supported in
|
||||
this language environment.")))
|
||||
this language environment."))
|
||||
'("Philippine"))
|
||||
|
||||
(set-language-info-alist
|
||||
"Hanunoo" '((charset unicode)
|
||||
|
@ -44,7 +45,8 @@ this language environment.")))
|
|||
(input-method . "hanunoo")
|
||||
(sample-text . "Hanunoo (ᜱᜨᜳᜨᜳᜢ) ᜫᜬᜧ᜴ ᜣᜭᜯᜥ᜴ ᜰᜲᜭᜥ᜴")
|
||||
(documentation . "\
|
||||
Philippine Language Hanunoo is supported in this language environment.")))
|
||||
Philippine Language Hanunoo is supported in this language environment."))
|
||||
'("Philippine"))
|
||||
|
||||
(set-language-info-alist
|
||||
"Buhid" '((charset unicode)
|
||||
|
@ -52,7 +54,8 @@ Philippine Language Hanunoo is supported in this language environment.")))
|
|||
(coding-priority utf-8)
|
||||
(input-method . "buhid")
|
||||
(documentation . "\
|
||||
Philippine Language Buhid is supported in this language environment.")))
|
||||
Philippine Language Buhid is supported in this language environment."))
|
||||
'("Philippine"))
|
||||
|
||||
(set-language-info-alist
|
||||
"Tagbanwa" '((charset unicode)
|
||||
|
@ -61,7 +64,8 @@ Philippine Language Buhid is supported in this language environment.")))
|
|||
(input-method . "tagbanwa")
|
||||
(sample-text . "Tagbanwa (ᝦᝪᝯ) ᝫᝩᝬᝥ ᝣᝮᝧᝯ")
|
||||
(documentation . "\
|
||||
Philippine Languages Tagbanwa are supported in this language environment.")))
|
||||
Philippine Languages Tagbanwa are supported in this language environment."))
|
||||
'("Philippine"))
|
||||
|
||||
;; Tagalog composition rules
|
||||
(let ((akshara "[\x1700-\x1711\x171F]")
|
||||
|
|
|
@ -15397,7 +15397,7 @@ it is disabled.
|
|||
|
||||
;;; 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.
|
||||
Each element has the form
|
||||
(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.
|
||||
|
||||
(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-"))
|
||||
|
||||
|
||||
|
@ -24534,7 +24536,7 @@ Open profile FILENAME.
|
|||
|
||||
;;; 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" "\
|
||||
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.
|
||||
|
||||
(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-"))
|
||||
|
||||
|
||||
|
@ -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
|
||||
will be inserted.
|
||||
|
||||
Also see `read-string-from-buffer'.
|
||||
|
||||
(fn PROMPT STRING SUCCESS-CALLBACK &key ABORT-CALLBACK)")
|
||||
(autoload 'read-string-from-buffer "string-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
|
||||
inserted in the buffer.
|
||||
|
||||
Also see `string-edit'.
|
||||
|
||||
(fn PROMPT STRING)")
|
||||
(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)
|
||||
(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
|
||||
|
||||
(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
|
||||
|
||||
|
@ -32740,6 +32749,10 @@ if it had been inserted from a file named URL.
|
|||
|
||||
|
||||
(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-"))
|
||||
|
||||
|
||||
|
@ -33440,11 +33453,13 @@ Show the change log for BRANCH root in a window.
|
|||
(autoload 'vc-log-incoming "vc" "\
|
||||
Show log of changes that will be received with pull from 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)
|
||||
(autoload 'vc-log-outgoing "vc" "\
|
||||
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.
|
||||
In some version control systems REMOTE-LOCATION can be a remote branch name.
|
||||
|
||||
(fn &optional REMOTE-LOCATION)" t)
|
||||
(autoload 'vc-log-search "vc" "\
|
||||
|
@ -33571,6 +33586,18 @@ log entries should be gathered.
|
|||
Request editing the next VC shell command before execution.
|
||||
This is a prefix command. It affects only a VC command executed
|
||||
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"))
|
||||
|
||||
|
||||
|
@ -34565,10 +34592,6 @@ Convert Vietnamese characters of the current buffer to `VIQR' mnemonics." t)
|
|||
|
||||
;;; 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 "\
|
||||
Non-nil if View mode is enabled.
|
||||
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
|
||||
|
||||
(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-"))
|
||||
|
||||
;;; 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
|
||||
local distribution or from the bogofilter web site at URL
|
||||
`http://bogofilter.sourceforge.net/'.
|
||||
`https://bogofilter.sourceforge.io/'.
|
||||
|
||||
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
|
||||
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\":
|
||||
|
||||
|
|
|
@ -1294,6 +1294,11 @@ currently selected window instead."
|
|||
(let ((file (url-unhex-string (url-filename parsed))))
|
||||
(when-let ((coding (browse-url--file-name-coding-system)))
|
||||
(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))
|
||||
(let ((file-name-handler-alist
|
||||
(cons (cons url-handler-regexp 'url-file-handler)
|
||||
|
|
|
@ -2176,9 +2176,11 @@ connection."
|
|||
|
||||
(defun rcirc-generate-log-filename (process target)
|
||||
"Return filename for log file based on PROCESS and TARGET."
|
||||
(if target
|
||||
(rcirc-generate-new-buffer-name process target)
|
||||
(process-name process)))
|
||||
(concat
|
||||
(if target
|
||||
(rcirc-generate-new-buffer-name process target)
|
||||
(process-name process))
|
||||
".log"))
|
||||
|
||||
(defcustom rcirc-log-filename-function 'rcirc-generate-log-filename
|
||||
"A function to generate the filename used by rcirc's logging facility.
|
||||
|
@ -3018,11 +3020,7 @@ for nick completion."
|
|||
:version "29.1")
|
||||
|
||||
(defface rcirc-bridged-nick
|
||||
'((((class color) (min-colors 88) (background light)) :background "SlateGray1")
|
||||
(((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"))
|
||||
'((t :inherit highlight))
|
||||
"Face used for pseudo-nick ."
|
||||
:version "29.1")
|
||||
|
||||
|
|
|
@ -1088,34 +1088,18 @@ Derived from `tramp-postfix-host-format'.")
|
|||
(defun tramp-build-remote-file-name-spec-regexp ()
|
||||
"Construct a regexp matching a Tramp file name for a Tramp syntax.
|
||||
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
|
||||
(group-n 6 (regexp tramp-user-regexp))
|
||||
(regexp tramp-postfix-user-regexp)))
|
||||
(host-regexp
|
||||
(tramp-compat-rx
|
||||
(group-n 7 (| (regexp tramp-host-regexp)
|
||||
(: (regexp tramp-prefix-ipv6-regexp)
|
||||
(? (regexp tramp-ipv6-regexp))
|
||||
(regexp tramp-postfix-ipv6-regexp)))
|
||||
;; Optional port.
|
||||
(? (regexp tramp-prefix-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))))
|
||||
(tramp-compat-rx
|
||||
;; Method.
|
||||
(group (regexp tramp-method-regexp)) (regexp tramp-postfix-method-regexp)
|
||||
;; Optional user. This includes domain.
|
||||
(? (group (regexp tramp-user-regexp)) (regexp tramp-postfix-user-regexp))
|
||||
;; Optional host.
|
||||
(? (group (| (regexp tramp-host-regexp)
|
||||
(: (regexp tramp-prefix-ipv6-regexp)
|
||||
(? (regexp tramp-ipv6-regexp))
|
||||
(regexp tramp-postfix-ipv6-regexp)))
|
||||
;; Optional port.
|
||||
(? (regexp tramp-prefix-port-regexp) (regexp tramp-port-regexp))))))
|
||||
|
||||
(defvar tramp-remote-file-name-spec-regexp
|
||||
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
|
||||
;; `tramp-drop-volume-letter'.
|
||||
(? (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.
|
||||
(* (regexp tramp-remote-file-name-spec-regexp)
|
||||
|
@ -1862,7 +1847,8 @@ the form (METHOD USER DOMAIN HOST PORT LOCALNAME &optional HOP)."
|
|||
tramp-prefix-regexp ""
|
||||
(replace-regexp-in-string
|
||||
(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)))))
|
||||
|
||||
(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
|
||||
;; major mode for source code editing buffer
|
||||
;; http://matlab-emacs.sourceforge.net/
|
||||
;; https://matlab-emacs.sourceforge.net/
|
||||
|
||||
;;; Code:
|
||||
(require 'ob)
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
|
||||
;;; 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')
|
||||
|
||||
;;; Code:
|
||||
|
|
|
@ -47,7 +47,7 @@
|
|||
;;
|
||||
;; Install org mode
|
||||
;; 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.
|
||||
|
||||
;; To put in your init file (.emacs):
|
||||
|
|
|
@ -66,7 +66,7 @@
|
|||
;;
|
||||
;;
|
||||
;; 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/
|
||||
;;
|
||||
;;
|
||||
|
|
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)))
|
||||
(when (or outline--use-buttons outline--use-margins)
|
||||
(add-hook 'after-change-functions
|
||||
(lambda (beg end _len)
|
||||
(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))
|
||||
#'outline--fix-buttons-after-change nil t))
|
||||
(when outline-minor-mode-highlight
|
||||
(if (and global-font-lock-mode (font-lock-specified-p major-mode))
|
||||
(progn
|
||||
|
@ -1065,107 +1059,6 @@ If non-nil, EVENT should be a mouse event."
|
|||
(mouse-set-point event))
|
||||
(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")
|
||||
|
||||
(defun outline-hide-leaves ()
|
||||
|
@ -1451,6 +1344,9 @@ convenient way to make a table of contents of the buffer."
|
|||
(insert "\n\n"))))))
|
||||
(kill-new (buffer-string)))))))
|
||||
|
||||
|
||||
;;; Initial visibility
|
||||
|
||||
(defcustom outline-default-state nil
|
||||
"If non-nil, some headings are initially outlined.
|
||||
|
||||
|
@ -1629,6 +1525,9 @@ LEVEL, decides of subtree visibility according to
|
|||
beg end)))
|
||||
(run-hooks 'outline-view-change-hook)))
|
||||
|
||||
|
||||
;;; Visibility cycling
|
||||
|
||||
(defun outline--cycle-state ()
|
||||
"Return the cycle state of current heading.
|
||||
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)
|
||||
(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
|
||||
"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