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

This commit is contained in:
Yuuki Harano 2021-03-14 23:24:49 +09:00
commit 7a7bc15242
227 changed files with 2569 additions and 2035 deletions

View file

@ -948,6 +948,10 @@ extraclean: $(extraclean_dirs:=_extraclean)
# I removed it because it causes `make tags` to build Emacs.
TAGS tags: lib lib-src # src
$(MAKE) -C src tags
$(MAKE) -C doc/emacs tags
$(MAKE) -C doc/lispintro tags
$(MAKE) -C doc/lispref tags
$(MAKE) -C doc/misc tags
CHECK_TARGETS = check check-maybe check-expensive check-all
.PHONY: $(CHECK_TARGETS)

View file

@ -63,8 +63,8 @@ to "JIS X 0213:2004".
* MULE-*.map
Created by using ../mule-charsets.el in Emacs 22 as this:
% emacs-22 -batch -l ../mule-charsets.el
Created by using ../mule-charsets.el in Emacs as this:
% emacs -batch -l ../mule-charsets.el
This file is part of GNU Emacs.

View file

@ -91,6 +91,7 @@
%expectedconflicts 5
%{
(require 'semantic/tag)
(declare-function wisent-python-reconstitute-function-tag
"semantic/wisent/python" (tag suite))
(declare-function wisent-python-reconstitute-class-tag "semantic/wisent/python"

View file

@ -220,7 +220,7 @@ infoclean:
$(buildinfodir)/emacs.info-[1-9][0-9]
bootstrap-clean maintainer-clean: distclean infoclean
rm -f ${srcdir}/emacsver.texi
rm -f ${srcdir}/emacsver.texi TAGS
.PHONY: install-dvi install-html install-pdf install-ps install-doc
@ -269,4 +269,20 @@ uninstall-pdf:
uninstall-doc: uninstall-dvi uninstall-html uninstall-pdf uninstall-ps
ETAGS = ../../lib-src/etags${EXEEXT}
${ETAGS}: FORCE
$(MAKE) -C $(dir $@) $(notdir $@)
texifiles = $(wildcard ${srcdir}/*.texi)
TAGS: ${ETAGS} $(texifiles)
$(AM_V_GEN)${ETAGS} --include=../lispref/TAGS --include=../misc/TAGS $(texifiles)
tags: TAGS
.PHONY: tags
FORCE:
.PHONY: FORCE
### Makefile ends here

View file

@ -388,15 +388,15 @@ file. For example:
Emacs versions, like this:
@example
(cond ((< emacs-major-version 22)
;; @r{Emacs 21 customization.}
(setq custom-file "~/.config/custom-21.el"))
((and (= emacs-major-version 22)
(cond ((< emacs-major-version 28)
;; @r{Emacs 27 customization.}
(setq custom-file "~/.config/custom-27.el"))
((and (= emacs-major-version 26)
(< emacs-minor-version 3))
;; @r{Emacs 22 customization, before version 22.3.}
(setq custom-file "~/.config/custom-22.el"))
;; @r{Emacs 26 customization, before version 26.3.}
(setq custom-file "~/.config/custom-26.el"))
(t
;; @r{Emacs version 22.3 or later.}
;; @r{Emacs version 28.1 or later.}
(setq custom-file "~/.config/emacs-custom.el")))
(load custom-file)

View file

@ -1611,6 +1611,10 @@ branch ID for a branch starting at the current revision. For example,
if the current revision is 2.5, the branch ID should be 2.5.1, 2.5.2,
and so on, depending on the number of existing branches at that point.
This procedure will not work for distributed version control systems
like git or Mercurial. For those systems you should use the prefix
argument to @code{vc-create-tag} (@kbd{C-u C-x v s}) instead.
To create a new branch at an older revision (one that is no longer
the head of a branch), first select that revision (@pxref{Switching
Branches}). Your procedure will then differ depending on whether you

View file

@ -800,6 +800,7 @@ can re-execute a command by calling @code{eval} with the
@node Passwords
@section Entering passwords
@cindex entering passwords
Sometimes, you may need to enter a password into Emacs. For instance,
when you tell Emacs to visit a file on another machine via a network
@ -810,7 +811,7 @@ access to the machine (@pxref{Remote Files}).
displays a prompt in the echo area (such as @samp{Password: }); after
you type the required password, press @key{RET} to submit it. To
prevent others from seeing your password, every character you type is
displayed as a dot (@samp{.}) instead of its usual form.
displayed as an asterisk (@samp{*}) instead of its usual form.
Most of the features and commands associated with the minibuffer
@emph{cannot} be used when entering a password. There is no history

View file

@ -119,6 +119,7 @@ infoclean:
$(buildinfodir)/eintr.info-[1-9]
bootstrap-clean maintainer-clean: distclean infoclean
rm -f TAGS
.PHONY: install-dvi install-html install-pdf install-ps install-doc
@ -166,5 +167,20 @@ uninstall-pdf:
uninstall-doc: uninstall-dvi uninstall-html uninstall-pdf uninstall-ps
ETAGS = ../../lib-src/etags${EXEEXT}
${ETAGS}: FORCE
$(MAKE) -C $(dir $@) $(notdir $@)
texifiles = $(wildcard ${srcdir}/*.texi)
TAGS: ${ETAGS} $(texifiles)
$(AM_V_GEN)${ETAGS} $(texifiles)
tags: TAGS
.PHONY: tags
FORCE:
.PHONY: FORCE
### Makefile ends here

View file

@ -17532,10 +17532,9 @@ Here is the definition:
@need 1250
Now for the keybinding.
Nowadays, function keys as well as mouse button events and
non-@sc{ascii} characters are written within square brackets, without
quotation marks. (In Emacs version 18 and before, you had to write
different function key bindings for each different make of terminal.)
Function keys as well as mouse button events and non-@sc{ascii}
characters are written within square brackets, without quotation
marks.
I bind @code{line-to-top-of-window} to my @key{F6} function key like
this:
@ -17550,18 +17549,18 @@ Your Init File, emacs, The GNU Emacs Manual}.
@cindex Conditional 'twixt two versions of Emacs
@cindex Version of Emacs, choosing
@cindex Emacs version, choosing
If you run two versions of GNU Emacs, such as versions 22 and 23, and
If you run two versions of GNU Emacs, such as versions 27 and 28, and
use one @file{.emacs} file, you can select which code to evaluate with
the following conditional:
@smallexample
@group
(cond
((= 22 emacs-major-version)
;; evaluate version 22 code
((= 27 emacs-major-version)
;; evaluate version 27 code
( @dots{} ))
((= 23 emacs-major-version)
;; evaluate version 23 code
((= 28 emacs-major-version)
;; evaluate version 28 code
( @dots{} )))
@end group
@end smallexample

View file

@ -180,6 +180,7 @@ infoclean:
$(buildinfodir)/elisp.info-[1-9][0-9]
bootstrap-clean maintainer-clean: distclean infoclean
rm -f TAGS
.PHONY: install-dvi install-html install-pdf install-ps install-doc
@ -227,5 +228,20 @@ uninstall-pdf:
uninstall-doc: uninstall-dvi uninstall-html uninstall-pdf uninstall-ps
ETAGS = ../../lib-src/etags${EXEEXT}
${ETAGS}: FORCE
$(MAKE) -C $(dir $@) $(notdir $@)
texifiles = $(wildcard ${srcdir}/*.texi)
TAGS: ${ETAGS} $(texifiles)
$(AM_V_GEN)${ETAGS} $(texifiles)
tags: TAGS
.PHONY: tags
FORCE:
.PHONY: FORCE
### Makefile ends here

View file

@ -309,7 +309,6 @@ foo
This function renames the current buffer to @var{newname}. An error
is signaled if @var{newname} is not a string.
@c Emacs 19 feature
Ordinarily, @code{rename-buffer} signals an error if @var{newname} is
already in use. However, if @var{unique} is non-@code{nil}, it modifies
@var{newname} to make a name that is not in use. Interactively, you can
@ -344,7 +343,6 @@ a name. For example:
See also the function @code{get-buffer-create} in @ref{Creating Buffers}.
@end defun
@c Emacs 19 feature
@defun generate-new-buffer-name starting-name &optional ignore
This function returns a name that would be unique for a new buffer---but
does not create the buffer. It starts with @var{starting-name}, and
@ -879,7 +877,6 @@ then @code{other-buffer} uses that predicate to decide which buffers to
consider. It calls the predicate once for each buffer, and if the value
is @code{nil}, that buffer is ignored. @xref{Buffer Parameters}.
@c Emacs 19 feature
If @var{visible-ok} is @code{nil}, @code{other-buffer} avoids returning
a buffer visible in any window on any visible frame, except as a last
resort. If @var{visible-ok} is non-@code{nil}, then it does not matter

View file

@ -5392,6 +5392,21 @@ are supported, unless the image type is @code{imagemagick}. Positive
values rotate clockwise, negative values counter-clockwise. Rotation
is performed after scaling and cropping.
@item :transform-smoothing @var{smooth}
If this is @code{t}, any image transform will have smoothing applied;
if @code{nil}, no smoothing will be applied. The exact algorithm used
is platform dependent, but should be equivalent to bilinear
filtering. Disabling smoothing will use the nearest neighbor
algorithm.
If this property is not specified, @code{create-image} will use the
@code{image-transform-smoothing} user option to say whether scaling
should be done or not. This option can be @code{nil} (no smoothing),
@code{t} (use smoothing) or a predicate function that's called with
the image object as the only parameter, and should return either
@code{nil} or @code{t}. The default is for down-scaling to apply
smoothing, and for large up-scaling to not apply smoothing.
@item :index @var{frame}
@xref{Multi-Frame Images}.

View file

@ -332,7 +332,6 @@ or just
The built-in function @code{indirect-function} provides an easy way to
perform symbol function indirection explicitly.
@c Emacs 19 feature
@defun indirect-function function &optional noerror
@anchor{Definition of indirect-function}
This function returns the meaning of @var{function} as a function. If

View file

@ -455,7 +455,6 @@ Even though this is not a normal hook, you can use @code{add-hook} and
@code{remove-hook} to manipulate the list. @xref{Hooks}.
@end defvar
@c Emacs 19 feature
@defvar write-contents-functions
This works just like @code{write-file-functions}, but it is intended
for hooks that pertain to the buffer's contents, not to the particular
@ -486,7 +485,6 @@ this hook to make sure the file you are saving has the current year in
its copyright notice.
@end defopt
@c Emacs 19 feature
@defopt after-save-hook
This normal hook runs after a buffer has been saved in its visited file.
@end defopt
@ -622,7 +620,6 @@ If @var{start} is @code{nil}, then the command writes the entire buffer
contents (@emph{not} just the accessible portion) to the file and
ignores @var{end}.
@c Emacs 19 feature
If @var{start} is a string, then @code{write-region} writes or appends
that string, rather than text from the buffer. @var{end} is ignored in
this case.
@ -653,7 +650,6 @@ It also sets the last file modification time for the current buffer to
feature is used by @code{save-buffer}, but you probably should not use
it yourself.
@c Emacs 19 feature
If @var{visit} is a string, it specifies the file name to visit. This
way, you can write the data to one file (@var{filename}) while recording
the buffer as visiting another file (@var{visit}). The argument
@ -3094,7 +3090,6 @@ which generate the listing with Lisp code.
@node Create/Delete Dirs
@section Creating, Copying and Deleting Directories
@cindex creating, copying and deleting directories
@c Emacs 19 features
Most Emacs Lisp file-manipulation functions get errors when used on
files that are directories. For example, you cannot delete a directory

View file

@ -369,7 +369,6 @@ appear directly as bindings in @var{keymap} are also copied recursively,
and so on to any number of levels. However, recursive copying does not
take place when the definition of a character is a symbol whose function
definition is a keymap; the same symbol appears in the new copy.
@c Emacs 19 feature
@example
@group
@ -1140,7 +1139,6 @@ and have extra events at the end that do not fit into a single key
sequence. Then the value is a number, the number of events at the front
of @var{key} that compose a complete key.
@c Emacs 19 feature
If @var{accept-defaults} is non-@code{nil}, then @code{lookup-key}
considers default bindings as well as bindings for the specific events
in @var{key}. Otherwise, @code{lookup-key} reports only bindings for
@ -1182,7 +1180,6 @@ not cause an error.
This function returns the binding for @var{key} in the current
local keymap, or @code{nil} if it is undefined there.
@c Emacs 19 feature
The argument @var{accept-defaults} controls checking for default bindings,
as in @code{lookup-key} (above).
@end defun
@ -1191,12 +1188,10 @@ as in @code{lookup-key} (above).
This function returns the binding for command @var{key} in the
current global keymap, or @code{nil} if it is undefined there.
@c Emacs 19 feature
The argument @var{accept-defaults} controls checking for default bindings,
as in @code{lookup-key} (above).
@end defun
@c Emacs 19 feature
@defun minor-mode-key-binding key &optional accept-defaults
This function returns a list of all the active minor mode bindings of
@var{key}. More precisely, it returns an alist of pairs
@ -1414,7 +1409,6 @@ standard bindings:
@end group
@end smallexample
@c Emacs 19 feature
If @var{oldmap} is non-@code{nil}, that changes the behavior of
@code{substitute-key-definition}: the bindings in @var{oldmap} determine
which keys to rebind. The rebindings still happen in @var{keymap}, not

View file

@ -1052,7 +1052,6 @@ rather than replacing that element. @xref{Eval}.
@section Unloading
@cindex unloading packages
@c Emacs 19 feature
You can discard the functions and variables loaded by a library to
reclaim memory for other Lisp objects. To do this, use the function
@code{unload-feature}:

View file

@ -379,8 +379,6 @@ default, it makes the following bindings:
@end table
@end defvar
@c In version 18, initial is required
@c Emacs 19 feature
@defun read-no-blanks-input prompt &optional initial inherit-input-method
This function reads a string from the minibuffer, but does not allow
whitespace characters as part of the input: instead, those characters
@ -2475,7 +2473,6 @@ usual minibuffer input functions because they all start by choosing the
minibuffer window according to the selected frame.
@end defun
@c Emacs 19 feature
@defun window-minibuffer-p &optional window
This function returns @code{t} if @var{window} is a minibuffer window.
@var{window} defaults to the selected window.
@ -2619,7 +2616,6 @@ when the minibuffer is active, not even if you switch to another window
to do it.
@end defopt
@c Emacs 19 feature
If a command name has a property @code{enable-recursive-minibuffers}
that is non-@code{nil}, then the command can use the minibuffer to read
arguments even if it is invoked from the minibuffer. A command can

View file

@ -232,7 +232,6 @@ backward until encountering the front of a word, rather than forward.
@end deffn
@defopt words-include-escapes
@c Emacs 19 feature
This variable affects the behavior of @code{forward-word} and
@code{backward-word}, and everything that uses them. If it is
non-@code{nil}, then characters in the escape and character-quote

View file

@ -1696,7 +1696,6 @@ buffer has a buffer-local binding. For example, you could use
you are in a C or Lisp mode buffer that has a buffer-local value for
this variable.
@c Emacs 19 feature
The special forms @code{defvar} and @code{defconst} also set the
default value (if they set the variable at all), rather than any
buffer-local value.
@ -1708,7 +1707,6 @@ this variable. If @var{symbol} is not buffer-local, this is equivalent
to @code{symbol-value} (@pxref{Accessing Variables}).
@end defun
@c Emacs 19 feature
@defun default-boundp symbol
The function @code{default-boundp} tells you whether @var{symbol}'s
default value is nonvoid. If @code{(default-boundp 'foo)} returns

View file

@ -287,6 +287,7 @@ orgclean:
rm -f ${TEXI_FROM_ORG}
bootstrap-clean maintainer-clean: distclean infoclean orgclean
rm -f TAGS
.PHONY: install-dvi install-html install-pdf install-ps install-doc
@ -336,4 +337,20 @@ uninstall-pdf:
uninstall-doc: uninstall-dvi uninstall-html uninstall-pdf uninstall-ps
ETAGS = ../../lib-src/etags${EXEEXT}
${ETAGS}: FORCE
$(MAKE) -C $(dir $@) $(notdir $@)
texifiles = $(wildcard ${srcdir}/*.texi)
TAGS: ${ETAGS} $(texifiles)
$(AM_V_GEN)${ETAGS} $(texifiles)
tags: TAGS
.PHONY: tags
FORCE:
.PHONY: FORCE
### Makefile ends here

View file

@ -370,11 +370,10 @@ On Windows, the @file{.emacs} file may be called @file{_emacs} for
backward compatibility with DOS and FAT filesystems where filenames
could not start with a dot. Some users prefer to continue using such
a name due to historical problems various Windows tools had in the
past with file names that begin with a dot. In Emacs 22 and later,
the init file may also be called @file{.emacs.d/init.el}. Many of the
other files that are created by lisp packages are now stored in the
@file{.emacs.d} directory too, so this keeps all your Emacs related
files in one place.
past with file names that begin with a dot. The init file may also be
called @file{.emacs.d/init.el}. Many of the other files that are
created by Lisp packages are stored in the @file{.emacs.d} directory
too, which keeps all your Emacs related files in one place.
All the files mentioned above should go in your @env{HOME} directory.
The @env{HOME} directory is determined by following the steps below:

View file

@ -160,13 +160,7 @@ Where and how to get Gnus?
@subsubheading Answer
Gnus is released independent from releases of Emacs. Therefore, the
version bundled with Emacs might not be up to date (e.g., Gnus 5.9
bundled with Emacs 21 is outdated).
You can get the latest released version of Gnus from
@uref{https://www.gnus.org/dist/gnus.tar.gz}
or from
@uref{https://ftp.gnus.org/pub/gnus/gnus.tar.gz}.
Gnus is bundled with Emacs.
@node FAQ 1-4
@subsubheading Question 1.4

View file

@ -815,7 +815,7 @@ Various
* Undo:: Some actions can be undone.
* Predicate Specifiers:: Specifying predicates.
* Moderation:: What to do if you're a moderator.
* Image Enhancements:: Modern versions of Emacs can display images.
* Image Enhancements:: Emacs can display images.
* Fuzzy Matching:: What's the big fuzz?
* Thwarting Email Spam:: Simple ways to avoid unsolicited commercial email.
* Spam Package:: A package for filtering and processing spam.
@ -22505,7 +22505,7 @@ to you, using @kbd{G b u} and updating the group will usually fix this.
* Predicate Specifiers:: Specifying predicates.
* Moderation:: What to do if you're a moderator.
* Fetching a Group:: Starting Gnus just to read a group.
* Image Enhancements:: Modern versions of Emacs can display images.
* Image Enhancements:: Emacs can display images.
* Fuzzy Matching:: What's the big fuzz?
* Thwarting Email Spam:: Simple ways to avoid unsolicited commercial email.
* Spam Package:: A package for filtering and processing spam.
@ -23668,9 +23668,8 @@ It takes the group name as a parameter.
@node Image Enhancements
@section Image Enhancements
Emacs 21@footnote{Emacs 21 on MS Windows doesn't
support images, Emacs 22 does.} and up are able to display pictures and
stuff, so Gnus has taken advantage of that.
Emacs is able to display pictures and stuff, so Gnus has taken
advantage of that.
@menu
* X-Face:: Display a funky, teensy black-and-white image.

View file

@ -2648,11 +2648,14 @@ visibility of files.
@subsection @option{sshfs} setup
@cindex sshfs setup
The method @option{sshfs} declares only the mount arguments, passed to
the @command{sshfs} command. This is a list of list of strings, and
can be overwritten by the connection property @t{"mount-args"},
@xref{Predefined connection information}.
The method @option{sshfs} declares the mount arguments in the variable
@code{tramp-methods}, passed to the @command{sshfs} command. This is
a list of list of strings, and can be overwritten by the connection
property @t{"mount-args"}, @xref{Predefined connection information}.
Additionally, it declares also the arguments for running remote
processes, using the @command{ssh} command. These don't need to be
changed.
@node Android shell setup
@section Android shell setup hints

View file

@ -24,7 +24,7 @@ applies, and please also update docstrings as needed.
* Installation Changes in Emacs 28.1
--
---
** Support for building with Motif has been removed.
** Cairo graphics library is now used by default if found.
@ -69,8 +69,7 @@ It was declared obsolete in Emacs 27.1.
---
** The configure option '--without-makeinfo' has been removed.
This was only ever relevant when building from a repository checkout.
Please install makeinfo, or if all else fails run 'make lisp' instead
of 'make [all]'.
This now requires makeinfo, which is part of the texinfo package.
---
** Support for building with '-fcheck-pointer-bounds' has been removed.
@ -520,11 +519,13 @@ It can be used to enable/disable the tab bar individually on each frame
independently from the value of 'tab-bar-mode' and 'tab-bar-show'.
---
*** New variable 'tab-bar-format' defines a list of tab bar items.
*** New option 'tab-bar-format' defines a list of tab bar items.
When it contains 'tab-bar-format-global' (possibly appended after
'tab-bar-format-align-right'), then after enabling 'display-time-mode'
(or any other mode that uses 'global-mode-string') it displays time
aligned to the right on the tab bar instead of the mode line.
When 'tab-bar-format-tabs' is replaced with 'tab-bar-format-tabs-groups',
then the tab bar displays tab groups.
---
*** 'Mod-9' bound to 'tab-last' now switches to the last tab.
@ -541,6 +542,10 @@ It also supports a negative argument.
*** 'C-x t M' moves the current tab to the specified absolute position.
It also supports a negative argument.
---
*** 'C-x t G' assigns a group name to the tab.
'tab-close-group' can close all tabs that belong to the selected group.
---
*** New user option 'tab-bar-tab-name-format-function'.
@ -1438,9 +1443,9 @@ decaying average of delays, and if this number gets too high, the
animation is stopped.
+++
*** The 'n' and 'p' commands (next/previous image) now respects dired order.
*** The 'n' and 'p' commands (next/previous image) now respect Dired order.
These commands would previously display the next/previous image in
alphabetical order, but will now find the "parent" dired buffer and
lexicographic order, but will now find the "parent" Dired buffer and
select the next/previous image file according to how the files are
sorted there. The commands have also been extended to work when the
"parent" buffer is an archive mode (i.e., zip file or the like) or tar
@ -1470,6 +1475,22 @@ To load images with the default frame colors use the ':foreground' and
This change only affects image types that support foreground and
background colors or transparency, such as xbm, pbm, svg, png and gif.
+++
*** Image smoothing can now be explicitly enabled or disabled.
Smoothing applies a bilinear filter while scaling or rotating an image
to prevent aliasing and other unwanted effects. The new image
property ':transform-smoothing' can be set to t to force smoothing
and nil to disable smoothing.
The default behaviour of smoothing on down-scaling and not smoothing
on up-scaling remains unchanged.
+++
*** New user option 'image-transform-smoothing'.
This controls whether to use smoothing or not for an image. Values
include nil (no smoothing), t (do smoothing) or a predicate function
that's called with the image object and should return nil/t.
** EWW
+++

View file

@ -57,6 +57,8 @@ are included.")
`(font-lock-type-face ((,class (:foreground "#92a65e" :weight bold))))
`(font-lock-variable-name-face ((,class (:foreground "#cae682"))))
`(font-lock-warning-face ((,class (:foreground "#ccaa8f"))))
;; Help faces
`(help-key-binding ((,class (:background "#333333" :foreground "#f6f3e8"))))
;; Button and link faces
`(link ((,class (:foreground "#8ac6f2" :underline t))))
`(link-visited ((,class (:foreground "#e5786d" :underline t))))

View file

@ -1310,7 +1310,7 @@ aligner would have dealt with are."
(thissep (if rulesep (cdr rulesep) separate))
same (eol 0)
search-start
groups group-c
groups ;; group-c
spacing spacing-c
tab-stop tab-stop-c
repeat repeat-c
@ -1434,7 +1434,7 @@ aligner would have dealt with are."
;; lookup the `group' attribute the first time
;; that we need it
(unless group-c
(unless nil ;; group-c
(setq groups (or (cdr (assq 'group rule)) 1))
(unless (listp groups)
(setq groups (list groups)))

View file

@ -660,11 +660,11 @@ Does not signal an error if optional argument NOERROR is non-nil."
(defun archive-mode (&optional force)
"Major mode for viewing an archive file in a dired-like way.
You can move around using the usual cursor motion commands.
Letters no longer insert themselves.
Type `e' to pull a file out of the archive and into its own buffer;
Letters no longer insert themselves.\\<archive-mode-map>
Type \\[archive-extract] to pull a file out of the archive and into its own buffer;
or click mouse-2 on the file's line in the archive mode buffer.
If you edit a sub-file of this archive (as with the `e' command) and
If you edit a sub-file of this archive (as with the \\[archive-extract] command) and
save it, the contents of that buffer will be saved back into the
archive.

View file

@ -472,8 +472,8 @@ mouse event is used.
If there's no button at POS, do nothing and return nil, otherwise
return t.
To get a description of what function will called when pushing a
butting, use the `button-describe' command."
To get a description of the function that will be invoked when
pushing a button, use the `button-describe' command."
(interactive
(list (if (integerp last-command-event) (point) last-command-event)))
(if (and (not (integerp pos)) (eventp pos))

View file

@ -639,7 +639,7 @@ Interactively, reads the register using `register-read-with-preview'."
(calc-slow-wrapper
(when (eq n 0)
(setq n (calc-stack-size)))
(let* ((flag nil)
(let* (;; (flag nil)
(allow-ret (> n 1))
(list (math-showing-full-precision
(mapcar (if (> n 1)
@ -651,7 +651,8 @@ Interactively, reads the register using `register-read-with-preview'."
(if (> n 0)
(calc-top-list n)
(calc-top-list 1 (- n)))))))
(calc--edit-mode (lambda () (calc-finish-stack-edit (or flag n))) allow-ret)
(calc--edit-mode (lambda () (calc-finish-stack-edit n)) ;; (or flag n)
allow-ret)
(while list
(insert (car list) "\n")
(setq list (cdr list)))))

View file

@ -291,7 +291,7 @@ user-defined operators, use `calculator-user-operators' instead.")
5. The function's precedence -- should be in the range of 1 (lowest) to
9 (highest) (optional, defaults to 1);
It it possible have a unary prefix version of a binary operator if it
It is possible have a unary prefix version of a binary operator if it
comes later in this list. If the list begins with the symbol `nobind',
then no key binding will take place -- this is only used for predefined
keys.

View file

@ -2279,7 +2279,7 @@ made in the number or names of categories."
(inc (prefix-numeric-value inc))
(buffer-read-only nil)
ndate ntime
year monthname month day dayname)
year monthname month day) ;; dayname
(when marked (todo--user-error-if-marked-done-item))
(save-excursion
(or (and marked (goto-char (point-min))) (todo-item-start))
@ -2437,7 +2437,7 @@ made in the number or names of categories."
(monthname monthname)
(month month)
(day day)
(dayname dayname))
(dayname nil)) ;; dayname
(mapconcat #'eval calendar-date-display-form "")))))
(when ndate (replace-match ndate nil nil nil 1))
;; Add new time string to the header, if it was supplied.
@ -3450,8 +3450,8 @@ containing only archived items, provided user option
are shown in `todo-archived-only' face."
(interactive)
(todo-display-categories)
(let (sortkey)
(todo-update-categories-display sortkey)))
;; (let (sortkey)
(todo-update-categories-display nil)) ;; sortkey
(defun todo-next-button (n)
"Move point to the Nth next button in the table of categories."

View file

@ -1,4 +1,4 @@
;;; cedet-cscope.el --- CScope support for CEDET
;;; cedet-cscope.el --- CScope support for CEDET -*- lexical-binding: t; -*-
;;; Copyright (C) 2009-2021 Free Software Foundation, Inc.
@ -34,7 +34,7 @@
:type 'string
:group 'cedet)
(defun cedet-cscope-search (searchtext texttype type scope)
(defun cedet-cscope-search (searchtext texttype type _scope)
"Perform a search with CScope, return the created buffer.
SEARCHTEXT is text to find.
TEXTTYPE is the type of text, such as `regexp', `string', `tagname',
@ -85,7 +85,7 @@ options -cR."
(with-current-buffer b
(setq default-directory cd)
(erase-buffer))
(apply 'call-process cedet-cscope-command
(apply #'call-process cedet-cscope-command
nil b nil
flags)
b))

View file

@ -1,4 +1,4 @@
;;; cedet-files.el --- Common routines dealing with file names.
;;; cedet-files.el --- Common routines dealing with file names. -*- lexical-binding: t; -*-
;; Copyright (C) 2007-2021 Free Software Foundation, Inc.

View file

@ -1,4 +1,4 @@
;;; cedet-global.el --- GNU Global support for CEDET.
;;; cedet-global.el --- GNU Global support for CEDET. -*- lexical-binding: t; -*-
;; Copyright (C) 2008-2021 Free Software Foundation, Inc.
@ -75,7 +75,7 @@ SCOPE is the scope of the search, such as `project' or `subdirs'."
(with-current-buffer b
(setq default-directory cd)
(erase-buffer))
(apply 'call-process cedet-global-command
(apply #'call-process cedet-global-command
nil b nil
flags)
b))
@ -88,7 +88,7 @@ SCOPE is the scope of the search, such as `project' or `subdirs'."
(with-current-buffer b
(setq default-directory cd)
(erase-buffer))
(apply 'call-process cedet-global-gtags-command
(apply #'call-process cedet-global-gtags-command
nil b nil
flags)

View file

@ -1,4 +1,4 @@
;;; cedet-idutils.el --- ID Utils support for CEDET.
;;; cedet-idutils.el --- ID Utils support for CEDET. -*- lexical-binding: t; -*-
;; Copyright (C) 2009-2021 Free Software Foundation, Inc.
@ -47,7 +47,7 @@
:type 'string
:group 'cedet)
(defun cedet-idutils-search (searchtext texttype type scope)
(defun cedet-idutils-search (searchtext texttype type _scope)
"Perform a search with ID Utils, return the created buffer.
SEARCHTEXT is text to find.
TEXTTYPE is the type of text, such as `regexp', `string', `tagname',
@ -64,7 +64,7 @@ Note: Scope is not yet supported."
(let* ((resultflg (if (eq texttype 'tagcompletions)
(list "--key=token")
(list "--result=grep")))
(scopeflgs nil) ; (cond ((eq scope 'project) "" ) ((eq scope 'target) "l")))
;; (scopeflgs (cond ((eq scope 'project) "" ) ((eq scope 'target) "l")))
(stflag (cond ((or (eq texttype 'tagname)
(eq texttype 'tagregexp))
(list "-r" "-w"))
@ -77,7 +77,7 @@ Note: Scope is not yet supported."
;; t means 'symbol
(t (list "-l" "-w"))))
)
(cedet-idutils-lid-call (append resultflg scopeflgs stflag
(cedet-idutils-lid-call (append resultflg nil stflag ;; scopeflgs
(list searchtext))))))
(defun cedet-idutils-fnid-call (flags)
@ -89,7 +89,7 @@ Return the created buffer with program output."
(with-current-buffer b
(setq default-directory cd)
(erase-buffer))
(apply 'call-process cedet-idutils-file-command
(apply #'call-process cedet-idutils-file-command
nil b nil
flags)
b))
@ -103,7 +103,7 @@ Return the created buffer with program output."
(with-current-buffer b
(setq default-directory cd)
(erase-buffer))
(apply 'call-process cedet-idutils-token-command
(apply #'call-process cedet-idutils-token-command
nil b nil
flags)
b))
@ -117,7 +117,7 @@ Return the created buffer with program output."
(with-current-buffer b
(setq default-directory cd)
(erase-buffer))
(apply 'call-process cedet-idutils-make-command
(apply #'call-process cedet-idutils-make-command
nil b nil
flags)
b))
@ -133,7 +133,7 @@ Return a filename relative to the default directory."
(if (looking-at "[^ \n]*fnid: ")
(error "ID Utils not available")
(split-string (buffer-string) "\n" t)))))
(setq ans (mapcar 'expand-file-name ans))
(setq ans (mapcar #'expand-file-name ans))
(when (called-interactively-p 'interactive)
(if ans
(if (= (length ans) 1)

View file

@ -1,4 +1,4 @@
;;; cedet.el --- Setup CEDET environment
;;; cedet.el --- Setup CEDET environment -*- lexical-binding: t; -*-
;; Copyright (C) 2002-2021 Free Software Foundation, Inc.
@ -48,25 +48,25 @@
(defvar cedet-menu-map ;(make-sparse-keymap "CEDET menu")
(let ((map (make-sparse-keymap "CEDET menu")))
(define-key map [semantic-force-refresh] 'undefined)
(define-key map [semantic-edit-menu] 'undefined)
(define-key map [navigate-menu] 'undefined)
(define-key map [semantic-options-separator] 'undefined)
(define-key map [global-semantic-highlight-func-mode] 'undefined)
(define-key map [global-semantic-stickyfunc-mode] 'undefined)
(define-key map [global-semantic-decoration-mode] 'undefined)
(define-key map [global-semantic-idle-completions-mode] 'undefined)
(define-key map [global-semantic-idle-summary-mode] 'undefined)
(define-key map [global-semantic-idle-scheduler-mode] 'undefined)
(define-key map [global-semanticdb-minor-mode] 'undefined)
(define-key map [cedet-menu-separator] 'undefined)
(define-key map [ede-find-file] 'undefined)
(define-key map [ede-speedbar] 'undefined)
(define-key map [ede] 'undefined)
(define-key map [ede-new] 'undefined)
(define-key map [ede-target-options] 'undefined)
(define-key map [ede-project-options] 'undefined)
(define-key map [ede-build-forms-menu] 'undefined)
(define-key map [semantic-force-refresh] #'undefined)
(define-key map [semantic-edit-menu] #'undefined)
(define-key map [navigate-menu] #'undefined)
(define-key map [semantic-options-separator] #'undefined)
(define-key map [global-semantic-highlight-func-mode] #'undefined)
(define-key map [global-semantic-stickyfunc-mode] #'undefined)
(define-key map [global-semantic-decoration-mode] #'undefined)
(define-key map [global-semantic-idle-completions-mode] #'undefined)
(define-key map [global-semantic-idle-summary-mode] #'undefined)
(define-key map [global-semantic-idle-scheduler-mode] #'undefined)
(define-key map [global-semanticdb-minor-mode] #'undefined)
(define-key map [cedet-menu-separator] #'undefined)
(define-key map [ede-find-file] #'undefined)
(define-key map [ede-speedbar] #'undefined)
(define-key map [ede] #'undefined)
(define-key map [ede-new] #'undefined)
(define-key map [ede-target-options] #'undefined)
(define-key map [ede-project-options] #'undefined)
(define-key map [ede-build-forms-menu] #'undefined)
map)
"Menu keymap for the CEDET package.
This is used by `semantic-mode' and `global-ede-mode'.")

View file

@ -1,4 +1,4 @@
;;; data-debug.el --- Data structure debugger
;;; data-debug.el --- Data structure debugger -*- lexical-binding: t; -*-
;; Copyright (C) 2007-2021 Free Software Foundation, Inc.
@ -48,9 +48,9 @@
;;; Compatibility
;;
(define-obsolete-function-alias 'data-debug-overlay-properties 'overlay-properties "28.1")
(define-obsolete-function-alias 'data-debug-overlay-p 'overlayp "28.1")
(define-obsolete-function-alias 'dd-propertize 'propertize "28.1")
(define-obsolete-function-alias 'data-debug-overlay-properties #'overlay-properties "28.1")
(define-obsolete-function-alias 'data-debug-overlay-p #'overlayp "28.1")
(define-obsolete-function-alias 'dd-propertize #'propertize "28.1")
;;; GENERIC STUFF
;;
@ -100,14 +100,14 @@ PREBUTTONTEXT is some text between prefix and the overlay button."
(let ((start (point))
(end nil)
(str (format "%s" overlay))
(tip nil))
) ;; (tip nil)
(insert prefix prebuttontext str)
(setq end (point))
(put-text-property (- end (length str)) end 'face 'font-lock-comment-face)
(put-text-property start end 'ddebug overlay)
(put-text-property start end 'ddebug-indent(length prefix))
(put-text-property start end 'ddebug-prefix prefix)
(put-text-property start end 'help-echo tip)
;; (put-text-property start end 'help-echo tip)
(put-text-property start end 'ddebug-function
'data-debug-insert-overlay-from-point)
(insert "\n")
@ -149,14 +149,14 @@ PREBUTTONTEXT is some text between prefix and the overlay list button."
(let ((start (point))
(end nil)
(str (format "#<overlay list: %d entries>" (length overlaylist)))
(tip nil))
) ;; (tip nil)
(insert prefix prebuttontext str)
(setq end (point))
(put-text-property (- end (length str)) end 'face 'font-lock-comment-face)
(put-text-property start end 'ddebug overlaylist)
(put-text-property start end 'ddebug-indent(length prefix))
(put-text-property start end 'ddebug-prefix prefix)
(put-text-property start end 'help-echo tip)
;; (put-text-property start end 'help-echo tip)
(put-text-property start end 'ddebug-function
'data-debug-insert-overlay-list-from-point)
(insert "\n")
@ -204,14 +204,14 @@ PREBUTTONTEXT is some text between prefix and the buffer button."
(let ((start (point))
(end nil)
(str (format "%S" buffer))
(tip nil))
) ;; (tip nil)
(insert prefix prebuttontext str)
(setq end (point))
(put-text-property (- end (length str)) end 'face 'font-lock-comment-face)
(put-text-property start end 'ddebug buffer)
(put-text-property start end 'ddebug-indent(length prefix))
(put-text-property start end 'ddebug-prefix prefix)
(put-text-property start end 'help-echo tip)
;; (put-text-property start end 'help-echo tip)
(put-text-property start end 'ddebug-function
'data-debug-insert-buffer-from-point)
(insert "\n")
@ -253,14 +253,14 @@ PREBUTTONTEXT is some text between prefix and the buffer list button."
(let ((start (point))
(end nil)
(str (format "#<buffer list: %d entries>" (length bufferlist)))
(tip nil))
) ;; (tip nil)
(insert prefix prebuttontext str)
(setq end (point))
(put-text-property (- end (length str)) end 'face 'font-lock-comment-face)
(put-text-property start end 'ddebug bufferlist)
(put-text-property start end 'ddebug-indent(length prefix))
(put-text-property start end 'ddebug-prefix prefix)
(put-text-property start end 'help-echo tip)
;; (put-text-property start end 'help-echo tip)
(put-text-property start end 'ddebug-function
'data-debug-insert-buffer-list-from-point)
(insert "\n")
@ -309,14 +309,14 @@ PREBUTTONTEXT is some text between prefix and the process button."
(let ((start (point))
(end nil)
(str (format "%S : %s" process (process-status process)))
(tip nil))
) ;; (tip nil)
(insert prefix prebuttontext str)
(setq end (point))
(put-text-property (- end (length str)) end 'face 'font-lock-comment-face)
(put-text-property start end 'ddebug process)
(put-text-property start end 'ddebug-indent(length prefix))
(put-text-property start end 'ddebug-prefix prefix)
(put-text-property start end 'help-echo tip)
;; (put-text-property start end 'help-echo tip)
(put-text-property start end 'ddebug-function
'data-debug-insert-process-from-point)
(insert "\n")
@ -363,8 +363,8 @@ PREBUTTONTEXT is some text between prefix and the stuff list button."
(str (format "#<RING: %d, %d max>"
(ring-length ring)
(ring-size ring)))
(ringthing
(if (= (ring-length ring) 0) nil (ring-ref ring 0)))
;; (ringthing
;; (if (= (ring-length ring) 0) nil (ring-ref ring 0)))
(tip (format "Ring max-size %d, length %d."
(ring-size ring)
(ring-length ring)))
@ -437,7 +437,7 @@ PREBUTTONTEXT is some text between prefix and the stuff list button."
;; Widgets have a long list of properties
(defun data-debug-insert-widget-properties (widget prefix)
"Insert the contents of WIDGET inserting PREFIX before each element."
(let ((type (car widget))
(let (;; (type (car widget))
(rest (cdr widget)))
(while rest
(data-debug-insert-thing (car (cdr rest))
@ -683,7 +683,7 @@ PREBUTTONTEXT is some text between prefix and the thing."
)
;;; nil thing
(defun data-debug-insert-nil (thing prefix prebuttontext)
(defun data-debug-insert-nil (_thing prefix prebuttontext)
"Insert one simple THING with a face.
PREFIX is the text that precedes the button.
PREBUTTONTEXT is some text between prefix and the thing.
@ -856,19 +856,18 @@ If PARENT is non-nil, it is somehow related as a parent to thing."
(defvar data-debug-mode-map
(let ((km (make-sparse-keymap)))
(suppress-keymap km)
(define-key km [mouse-2] 'data-debug-expand-or-contract-mouse)
(define-key km " " 'data-debug-expand-or-contract)
(define-key km "\C-m" 'data-debug-expand-or-contract)
(define-key km "n" 'data-debug-next)
(define-key km "p" 'data-debug-prev)
(define-key km "N" 'data-debug-next-expando)
(define-key km "P" 'data-debug-prev-expando)
(define-key km [mouse-2] #'data-debug-expand-or-contract-mouse)
(define-key km " " #'data-debug-expand-or-contract)
(define-key km "\C-m" #'data-debug-expand-or-contract)
(define-key km "n" #'data-debug-next)
(define-key km "p" #'data-debug-prev)
(define-key km "N" #'data-debug-next-expando)
(define-key km "P" #'data-debug-prev-expando)
km)
"Keymap used in data-debug.")
(defcustom data-debug-mode-hook nil
"Hook run when data-debug starts."
:group 'data-debug
:type 'hook)
(define-derived-mode data-debug-mode fundamental-mode "DATA-DEBUG"
@ -1032,7 +1031,7 @@ Do nothing if already contracted."
nil read-expression-map t
'read-expression-history))
))
(let ((v (eval expr)))
(let ((v (eval expr t)))
(if (not v)
(message "Expression %s is nil." expr)
(data-debug-show-stuff v "expression"))))
@ -1049,12 +1048,12 @@ If the result is a list or vector, then use the data debugger to display it."
(let (result)
(if (null eval-expression-debug-on-error)
(setq result (values--store-value (eval expr)))
(setq result (values--store-value (eval expr t)))
(let ((old-value (make-symbol "t")) new-value)
;; Bind debug-on-error to something unique so that we can
;; detect when evalled code changes it.
(let ((debug-on-error old-value))
(setq result (values--store-value (eval expr)))
(setq result (values--store-value (eval expr t)))
(setq new-value debug-on-error))
;; If evalled code has changed the value of debug-on-error,
;; propagate that change to the global binding.

View file

@ -1,4 +1,4 @@
;;; ede.el --- Emacs Development Environment gloss
;;; ede.el --- Emacs Development Environment gloss -*- lexical-binding: t; -*-
;; Copyright (C) 1998-2005, 2007-2021 Free Software Foundation, Inc.
@ -87,7 +87,6 @@ target wants the file, the user is asked. If only one target wants
the file, then it is automatically added to that target. If the
value is `ask', then the user is always asked, unless there is no
target willing to take the file. `never' means never perform the check."
:group 'ede
:type '(choice (const always)
(const multi-ask)
(const ask)
@ -95,7 +94,6 @@ target willing to take the file. `never' means never perform the check."
(defcustom ede-debug-program-function 'gdb
"Default Emacs command used to debug a target."
:group 'ede
:type 'function) ; make this be a list of options some day
(defcustom ede-project-directories nil
@ -112,7 +110,6 @@ If you invoke the commands \\[ede] or \\[ede-new] on a directory
that is not listed, Emacs will offer to add it to the list.
Any other value disables searching for EDE project files."
:group 'ede
:type '(choice (const :tag "Any directory" t)
(repeat :tag "List of directories"
(directory))
@ -186,21 +183,23 @@ Argument LIST-O-O is the list of objects to choose from."
;;; Menu and Keymap
(declare-function ede-speedbar "ede/speedbar" ())
(defvar ede-minor-mode-map
(let ((map (make-sparse-keymap))
(pmap (make-sparse-keymap)))
(define-key pmap "e" 'ede-edit-file-target)
(define-key pmap "a" 'ede-add-file)
(define-key pmap "d" 'ede-remove-file)
(define-key pmap "t" 'ede-new-target)
(define-key pmap "g" 'ede-rescan-toplevel)
(define-key pmap "s" 'ede-speedbar)
(define-key pmap "f" 'ede-find-file)
(define-key pmap "C" 'ede-compile-project)
(define-key pmap "c" 'ede-compile-target)
(define-key pmap "\C-c" 'ede-compile-selected)
(define-key pmap "D" 'ede-debug-target)
(define-key pmap "R" 'ede-run-target)
(define-key pmap "e" #'ede-edit-file-target)
(define-key pmap "a" #'ede-add-file)
(define-key pmap "d" #'ede-remove-file)
(define-key pmap "t" #'ede-new-target)
(define-key pmap "g" #'ede-rescan-toplevel)
(define-key pmap "s" #'ede-speedbar)
(define-key pmap "f" #'ede-find-file)
(define-key pmap "C" #'ede-compile-project)
(define-key pmap "c" #'ede-compile-target)
(define-key pmap "\C-c" #'ede-compile-selected)
(define-key pmap "D" #'ede-debug-target)
(define-key pmap "R" #'ede-run-target)
;; bind our submap into map
(define-key map "\C-c." pmap)
map)
@ -476,7 +475,7 @@ To be used in hook functions."
If this file is contained, or could be contained in an EDE
controlled project, then this mode is activated automatically
provided `global-ede-mode' is enabled."
:group 'ede
:global nil
(cond ((or (eq major-mode 'dired-mode)
(eq major-mode 'vc-dir-mode))
(ede-dired-minor-mode (if ede-minor-mode 1 -1)))
@ -486,6 +485,9 @@ provided `global-ede-mode' is enabled."
;; If we fail to have a project here, turn it back off.
(ede-minor-mode -1)))))
(declare-function ede-directory-project-cons "ede/files" (dir &optional force))
(declare-function ede-toplevel-project-or-nil "ede/files" (dir))
(defun ede-initialize-state-current-buffer ()
"Initialize the current buffer's state for EDE.
Sets buffer local variables for EDE."
@ -496,7 +498,7 @@ Sets buffer local variables for EDE."
;; Init the buffer.
(let* ((ROOT nil)
(proj (ede-directory-get-open-project default-directory
'ROOT)))
(gv-ref ROOT))))
(when (not proj)
;; If there is no open project, look up the project
@ -517,7 +519,8 @@ Sets buffer local variables for EDE."
(ede-directory-safe-p top)))
;; The project is safe, so load it in.
(setq proj (ede-load-project-file default-directory projdetect 'ROOT))))))
(setq proj (ede-load-project-file default-directory projdetect
(gv-ref ROOT)))))))
;; If PROJ is now loaded in, we can initialize our buffer to it.
(when proj
@ -561,30 +564,29 @@ Sets buffer local variables for EDE."
This global minor mode enables `ede-minor-mode' in all buffers in
an EDE controlled project."
:global t
:group 'ede
(if global-ede-mode
;; Turn on global-ede-mode
(progn
(if semantic-mode
(define-key cedet-menu-map [cedet-menu-separator] '("--")))
(add-hook 'semanticdb-project-predicate-functions 'ede-directory-project-p)
(add-hook 'semanticdb-project-root-functions 'ede-toplevel-project-or-nil)
(add-hook 'ecb-source-path-functions 'ede-ecb-project-paths)
(add-hook 'semanticdb-project-predicate-functions #'ede-directory-project-p)
(add-hook 'semanticdb-project-root-functions #'ede-toplevel-project-or-nil)
(add-hook 'ecb-source-path-functions #'ede-ecb-project-paths)
;; Append our hook to the end. This allows mode-local to finish
;; it's stuff before we start doing misc file loads, etc.
(add-hook 'find-file-hook 'ede-turn-on-hook t)
(add-hook 'dired-mode-hook 'ede-turn-on-hook)
(add-hook 'kill-emacs-hook 'ede-save-cache)
(add-hook 'find-file-hook #'ede-turn-on-hook t)
(add-hook 'dired-mode-hook #'ede-turn-on-hook)
(add-hook 'kill-emacs-hook #'ede-save-cache)
(ede-load-cache)
(ede-reset-all-buffers))
;; Turn off global-ede-mode
(define-key cedet-menu-map [cedet-menu-separator] nil)
(remove-hook 'semanticdb-project-predicate-functions 'ede-directory-project-p)
(remove-hook 'semanticdb-project-root-functions 'ede-toplevel-project-or-nil)
(remove-hook 'ecb-source-path-functions 'ede-ecb-project-paths)
(remove-hook 'find-file-hook 'ede-turn-on-hook)
(remove-hook 'dired-mode-hook 'ede-turn-on-hook)
(remove-hook 'kill-emacs-hook 'ede-save-cache)
(remove-hook 'semanticdb-project-predicate-functions #'ede-directory-project-p)
(remove-hook 'semanticdb-project-root-functions #'ede-toplevel-project-or-nil)
(remove-hook 'ecb-source-path-functions #'ede-ecb-project-paths)
(remove-hook 'find-file-hook #'ede-turn-on-hook)
(remove-hook 'dired-mode-hook #'ede-turn-on-hook)
(remove-hook 'kill-emacs-hook #'ede-save-cache)
(ede-save-cache)
(ede-reset-all-buffers)))
@ -1080,7 +1082,7 @@ Flush the dead projects from the project cache."
(let ((dead nil))
(dolist (P ede-projects)
(when (not (file-exists-p (oref P file)))
(add-to-list 'dead P)))
(cl-pushnew P dead :test #'equal)))
(dolist (D dead)
(ede-delete-project-from-global-list D))
))
@ -1108,7 +1110,7 @@ Flush the dead projects from the project cache."
"Project file independent way to read a project in from DIR.
Optional DETECTIN is an autoload cons from `ede-detect-directory-for-project'
which can be passed in to save time.
Optional ROOTRETURN will return the root project for DIR."
Optional ROOTRETURN reference will return the root project for DIR."
;; Don't do anything if we are in the process of
;; constructing an EDE object.
;;
@ -1147,7 +1149,8 @@ Optional ROOTRETURN will return the root project for DIR."
(setq o (ede-auto-load-project autoloader toppath))))
;; Return the found root project.
(when rootreturn (set rootreturn o))
(when rootreturn (if (symbolp rootreturn) (set rootreturn o)
(setf (gv-deref rootreturn) o)))
;; The project has been found (in the global list) or loaded from
;; disk (via autoloader.) We can now search for the project asked
@ -1504,6 +1507,8 @@ It does not apply the value to buffers."
;;; Integration with project.el
(defun project-try-ede (dir)
;; FIXME: This passes the `ROOT' dynbound variable, but I don't know
;; where it comes from!
(let ((project-dir
(locate-dominating-file
dir
@ -1523,7 +1528,7 @@ It does not apply the value to buffers."
(provide 'ede)
;; Include this last because it depends on ede.
(require 'ede/files)
(if t (require 'ede/files)) ;; Don't bother loading it at compile-time.
;; If this does not occur after the provide, we can get a recursive
;; load. Yuck!

View file

@ -1,4 +1,4 @@
;;; ede/auto.el --- Autoload features for EDE
;;; ede/auto.el --- Autoload features for EDE -*- lexical-binding: t; -*-
;; Copyright (C) 2010-2021 Free Software Foundation, Inc.
@ -325,13 +325,13 @@ NOTE: Do not call this - it should only be called from `ede-load-project-file'."
;; See if we can do without them.
;; @FIXME - delete from loaddefs to remove this.
(cl-defmethod ede-project-root ((this ede-project-autoload))
(cl-defmethod ede-project-root ((_this ede-project-autoload))
"If a project knows its root, return it here.
Allows for one-project-object-for-a-tree type systems."
nil)
;; @FIXME - delete from loaddefs to remove this.
(cl-defmethod ede-project-root-directory ((this ede-project-autoload) &optional file)
(cl-defmethod ede-project-root-directory ((_this ede-project-autoload) &optional _file)
"" nil)
(provide 'ede/auto)

View file

@ -1,4 +1,4 @@
;;; ede/autoconf-edit.el --- Keymap for autoconf
;;; ede/autoconf-edit.el --- Keymap for autoconf -*- lexical-binding: t; -*-
;; Copyright (C) 1998-2000, 2009-2021 Free Software Foundation, Inc.

View file

@ -1,4 +1,4 @@
;;; ede/config.el --- Configuration Handler baseclass
;;; ede/config.el --- Configuration Handler baseclass -*- lexical-binding: t; -*-
;; Copyright (C) 2014-2021 Free Software Foundation, Inc.
@ -171,7 +171,7 @@ the directory isn't on the `safe' list, ask to add it to the safe list."
(oset config project proj)))
config))
(cl-defmethod ede-config-setup-configuration ((proj ede-project-with-config) config)
(cl-defmethod ede-config-setup-configuration ((_proj ede-project-with-config) _config)
"Default configuration setup method."
nil)
@ -187,7 +187,7 @@ the directory isn't on the `safe' list, ask to add it to the safe list."
(let ((config (ede-config-get-configuration proj t)))
(eieio-customize-object config)))
(cl-defmethod ede-customize ((target ede-target-with-config))
(cl-defmethod ede-customize ((_target ede-target-with-config))
"Customize the EDE TARGET by actually configuring the config object."
;; Nothing unique for the targets, use the project.
(ede-customize-project))
@ -302,14 +302,14 @@ This class brings in method overloads for building.")
"Class to mix into a project with configuration for builds.
This class brings in method overloads for building.")
(cl-defmethod project-compile-project ((proj ede-project-with-config-build) &optional command)
(cl-defmethod project-compile-project ((proj ede-project-with-config-build) &optional _command)
"Compile the entire current project PROJ.
Argument COMMAND is the command to use when compiling."
(let* ((config (ede-config-get-configuration proj t))
(comp (oref config build-command)))
(compile comp)))
(cl-defmethod project-compile-target ((obj ede-target-with-config-build) &optional command)
(cl-defmethod project-compile-target ((_obj ede-target-with-config-build) &optional command)
"Compile the current target OBJ.
Argument COMMAND is the command to use for compiling the target."
(project-compile-project (ede-current-project) command))

View file

@ -1,4 +1,4 @@
;;; ede/cpp-root.el --- A simple way to wrap a C++ project with a single root
;;; ede/cpp-root.el --- A simple way to wrap a C++ project with a single root -*- lexical-binding: t; -*-
;; Copyright (C) 2007-2021 Free Software Foundation, Inc.
@ -275,7 +275,7 @@ Each directory needs a project file to control it.")
;; objects is deleted.
(cl-defmethod initialize-instance ((this ede-cpp-root-project)
&rest fields)
&rest _fields)
"Make sure the :file is fully expanded."
;; Add ourselves to the master list
(cl-call-next-method)
@ -310,7 +310,7 @@ Each directory needs a project file to control it.")
;; project, simplifying authoring new single-point projects.
(cl-defmethod ede-find-subproject-for-directory ((proj ede-cpp-root-project)
dir)
_dir)
"Return PROJ, for handling all subdirs below DIR."
proj)
@ -319,7 +319,7 @@ Each directory needs a project file to control it.")
;; Creating new targets on a per directory basis is a good way to keep
;; files organized. See ede-emacs for an example with multiple file
;; types.
(cl-defmethod ede-find-target ((proj ede-cpp-root-project) buffer)
(cl-defmethod ede-find-target ((proj ede-cpp-root-project) _buffer)
"Find an EDE target in PROJ for BUFFER.
If one doesn't exist, create a new one for this directory."
(let* ((targets (oref proj targets))
@ -451,7 +451,7 @@ This is for project include paths and spp source files."
"Get the pre-processor map for project THIS."
(ede-preprocessor-map (ede-target-parent this)))
(cl-defmethod project-compile-project ((proj ede-cpp-root-project) &optional command)
(cl-defmethod project-compile-project ((proj ede-cpp-root-project) &optional _command)
"Compile the entire current project PROJ.
Argument COMMAND is the command to use when compiling."
;; we need to be in the proj root dir for this to work
@ -474,7 +474,7 @@ Argument COMMAND is the command to use for compiling the target."
(project-compile-project (oref obj project) command)))
(cl-defmethod project-rescan ((this ede-cpp-root-project))
(cl-defmethod project-rescan ((_this ede-cpp-root-project))
"Don't rescan this project from the sources."
(message "cpp-root has nothing to rescan."))

View file

@ -1,4 +1,4 @@
;;; ede/custom.el --- customization of EDE projects.
;;; ede/custom.el --- customization of EDE projects. -*- lexical-binding: t; -*-
;; Copyright (C) 2010-2021 Free Software Foundation, Inc.
@ -97,13 +97,13 @@ OBJ is the target object to customize."
"Create a custom-like buffer for sorting targets of current project."
(interactive)
(let ((proj (ede-current-project))
(count 1)
current order)
;; (count 1)
) ;; current order
(switch-to-buffer (get-buffer-create "*EDE sort targets*"))
(erase-buffer)
(setq ede-object-project proj)
(widget-create 'push-button
:notify (lambda (&rest ignore)
:notify (lambda (&rest _ignore)
(let ((targets (oref ede-object-project targets))
cur newtargets)
(while (setq cur (pop ede-project-sort-targets-order))
@ -115,7 +115,7 @@ OBJ is the target object to customize."
" Accept ")
(widget-insert " ")
(widget-create 'push-button
:notify (lambda (&rest ignore)
:notify (lambda (&rest _ignore)
(kill-buffer))
" Cancel ")
(widget-insert "\n\n")
@ -170,7 +170,9 @@ OBJ is the target object to customize."
(widget-insert " "))
(widget-insert (concat " " (number-to-string (1+ count)) ".: "
(oref (nth (nth count ede-project-sort-targets-order)
targets) name) "\n"))
targets)
name)
"\n"))
(setq count (1+ count))))))
;;; Customization hooks
@ -195,11 +197,11 @@ OBJ is the target object to customize."
;; These two methods should be implemented by subclasses of
;; project and targets in order to account for user specified
;; changes.
(cl-defmethod eieio-done-customizing ((target ede-target))
(cl-defmethod eieio-done-customizing ((_target ede-target))
"Call this when a user finishes customizing TARGET."
nil)
(cl-defmethod ede-commit-project ((proj ede-project))
(cl-defmethod ede-commit-project ((_proj ede-project))
"Commit any change to PROJ to its file."
nil
)

View file

@ -1,4 +1,4 @@
;;; ede/detect.el --- EDE project detection and file associations
;;; ede/detect.el --- EDE project detection and file associations -*- lexical-binding: t; -*-
;; Copyright (C) 2014-2021 Free Software Foundation, Inc.

View file

@ -35,11 +35,11 @@
(defvar ede-dired-keymap
(let ((map (make-sparse-keymap)))
(define-key map ".a" 'ede-dired-add-to-target)
(define-key map ".t" 'ede-new-target)
(define-key map ".s" 'ede-speedbar)
(define-key map ".C" 'ede-compile-project)
(define-key map ".d" 'ede-make-dist)
(define-key map ".a" #'ede-dired-add-to-target)
(define-key map ".t" #'ede-new-target)
(define-key map ".s" #'ede-speedbar)
(define-key map ".C" #'ede-compile-project)
(define-key map ".d" #'ede-make-dist)
(easy-menu-define
ede-dired-menu map "EDE Dired Minor Mode Menu"

View file

@ -1,4 +1,4 @@
;;; ede/files.el --- Associate projects with files and directories.
;;; ede/files.el --- Associate projects with files and directories. -*- lexical-binding: t; -*-
;; Copyright (C) 2008-2021 Free Software Foundation, Inc.
@ -33,6 +33,7 @@
;; till no ede-project-autoload structure matches.
;;
(require 'eieio)
(require 'ede)
(declare-function ede-locate-file-in-hash "ede/locate")
@ -75,13 +76,13 @@ Allows for one-project-object-for-a-tree type systems."
(oref this rootproject))
(cl-defmethod ede-project-root-directory ((this ede-project-placeholder)
&optional file)
&optional _file)
"If a project knows its root, return it here.
Allows for one-project-object-for-a-tree type systems.
Optional FILE is the file to test. It is ignored in preference
of the anchor file for the project."
(let ((root (or (ede-project-root this) this)))
(file-name-directory (expand-file-name (oref this file)))))
;; (let ((root (or (ede-project-root this) this)))
(file-name-directory (expand-file-name (oref this file)))) ;; )
;; Why INODEs?
@ -141,7 +142,7 @@ Does not check subprojects."
(defun ede-directory-get-open-project (dir &optional rootreturn)
"Return an already open project that is managing DIR.
Optional ROOTRETURN specifies a symbol to set to the root project.
Optional ROOTRETURN specifies a `gv-ref' to set to the root project.
If DIR is the root project, then it is the same."
(let* ((inode (ede--inode-for-dir dir))
(ft (file-name-as-directory (expand-file-name dir)))
@ -153,7 +154,8 @@ If DIR is the root project, then it is the same."
;; Default answer is this project
(setq ans proj)
;; Save.
(when rootreturn (set rootreturn proj))
(when rootreturn (if (symbolp rootreturn) (set rootreturn proj)
(setf (gv-deref rootreturn) proj)))
;; Find subprojects.
(when (and proj (if ede--disable-inode
(not (string= ft (expand-file-name
@ -272,7 +274,7 @@ Do this whenever a new project is created, as opposed to loaded."
(remhash (file-name-as-directory dir) ede-project-directory-hash)
;; Look for all subdirs of D, and remove them.
(let ((match (concat "^" (regexp-quote dir))))
(maphash (lambda (K O)
(maphash (lambda (K _O)
(when (string-match match K)
(remhash K ede-project-directory-hash)))
ede-project-directory-hash)))
@ -363,7 +365,7 @@ If DIR is not part of a project, return nil."
(t nil))))
(defalias 'ede-toplevel-project-or-nil 'ede-toplevel-project)
(defalias 'ede-toplevel-project-or-nil #'ede-toplevel-project)
;;; DIRECTORY CONVERSION STUFF
;;
@ -469,15 +471,15 @@ is returned."
ans))
(cl-defmethod ede-expand-filename-impl ((this ede-project) filename &optional force)
(cl-defmethod ede-expand-filename-impl ((this ede-project) filename &optional _force)
"Return a fully qualified file name based on project THIS.
FILENAME should be just a filename which occurs in a directory controlled
by this project.
Optional argument FORCE forces the default filename to be provided even if it
doesn't exist."
(let ((loc (ede-get-locator-object this))
(path (ede-project-root-directory this))
(proj (oref this subproj))
;; (path (ede-project-root-directory this))
;; (proj (oref this subproj))
(found nil))
;; find it Locally.
(setq found (or (ede-expand-filename-local this filename)

View file

@ -1,4 +1,4 @@
;;; ede/generic.el --- Base Support for generic build systems
;;; ede/generic.el --- Base Support for generic build systems -*- lexical-binding: t; -*-
;; Copyright (C) 2010-2021 Free Software Foundation, Inc.
@ -93,7 +93,7 @@
)
"User Configuration object for a generic project.")
(defun ede-generic-load (dir &optional rootproj)
(defun ede-generic-load (dir &optional _rootproj)
"Return a Generic Project object if there is a match.
Return nil if there isn't one.
Argument DIR is the directory it is created for.
@ -149,7 +149,7 @@ The class allocated value is replace by different sub classes.")
:abstract t)
(cl-defmethod initialize-instance ((this ede-generic-project)
&rest fields)
&rest _fields)
"Make sure the targets slot is bound."
(cl-call-next-method)
(unless (slot-boundp this 'targets)
@ -161,7 +161,7 @@ The class allocated value is replace by different sub classes.")
this)
(cl-defmethod ede-find-subproject-for-directory ((proj ede-generic-project)
dir)
_dir)
"Return PROJ, for handling all subdirs below DIR."
proj)
@ -324,7 +324,7 @@ CLASS is the EIEIO class that is used to track this project. It should subclass
)
"Generic Project for makefiles.")
(cl-defmethod ede-generic-setup-configuration ((proj ede-generic-makefile-project) config)
(cl-defmethod ede-generic-setup-configuration ((_proj ede-generic-makefile-project) config)
"Setup a configuration for Make."
(oset config build-command "make -k")
(oset config debug-command "gdb ")
@ -337,7 +337,7 @@ CLASS is the EIEIO class that is used to track this project. It should subclass
)
"Generic Project for scons.")
(cl-defmethod ede-generic-setup-configuration ((proj ede-generic-scons-project) config)
(cl-defmethod ede-generic-setup-configuration ((_proj ede-generic-scons-project) config)
"Setup a configuration for SCONS."
(oset config build-command "scons")
(oset config debug-command "gdb ")
@ -350,7 +350,7 @@ CLASS is the EIEIO class that is used to track this project. It should subclass
)
"Generic Project for cmake.")
(cl-defmethod ede-generic-setup-configuration ((proj ede-generic-cmake-project) config)
(cl-defmethod ede-generic-setup-configuration ((_proj ede-generic-cmake-project) config)
"Setup a configuration for CMake."
(oset config build-command "cmake")
(oset config debug-command "gdb ")
@ -361,9 +361,9 @@ CLASS is the EIEIO class that is used to track this project. It should subclass
()
"Generic project found via Version Control files.")
(cl-defmethod ede-generic-setup-configuration ((proj ede-generic-vc-project) config)
(cl-defmethod ede-generic-setup-configuration ((_proj ede-generic-vc-project) _config)
"Setup a configuration for projects identified by revision control."
)
nil)
(provide 'ede/generic)

View file

@ -1,4 +1,4 @@
;;; ede/linux.el --- Special project for Linux
;;; ede/linux.el --- Special project for Linux -*- lexical-binding: t; -*-
;; Copyright (C) 2008-2021 Free Software Foundation, Inc.
@ -47,26 +47,22 @@
(defcustom project-linux-build-directory-default 'ask
"Build directory."
:version "24.4"
:group 'project-linux
:type '(choice (const :tag "Same as source directory" same)
(const :tag "Ask the user" ask)))
(defcustom project-linux-architecture-default 'ask
"Target architecture to assume when not auto-detected."
:version "24.4"
:group 'project-linux
:type '(choice (string :tag "Architecture name")
(const :tag "Ask the user" ask)))
(defcustom project-linux-compile-target-command (concat ede-make-command " -k -C %s SUBDIRS=%s")
"Default command used to compile a target."
:group 'project-linux
:type 'string)
(defcustom project-linux-compile-project-command (concat ede-make-command " -k -C %s")
"Default command used to compile a project."
:group 'project-linux
:type 'string)
(defun ede-linux-version (dir)

View file

@ -1,4 +1,4 @@
;;; ede/locate.el --- Locate support
;;; ede/locate.el --- Locate support -*- lexical-binding: t; -*-
;; Copyright (C) 2008-2021 Free Software Foundation, Inc.
@ -110,7 +110,7 @@ based on `ede-locate-setup-options'."
)
"Baseclass for LOCATE feature in EDE.")
(cl-defmethod initialize-instance ((loc ede-locate-base) &rest fields)
(cl-defmethod initialize-instance ((loc ede-locate-base) &rest _fields)
"Make sure we have a hash table."
;; Basic setup.
(cl-call-next-method)
@ -118,8 +118,8 @@ based on `ede-locate-setup-options'."
(ede-locate-flush-hash loc)
)
(cl-defmethod ede-locate-ok-in-project ((loc (subclass ede-locate-base))
root)
(cl-defmethod ede-locate-ok-in-project ((_loc (subclass ede-locate-base))
_root)
"Is it ok to use this project type under ROOT."
t)
@ -149,17 +149,15 @@ that created this EDE locate object."
(oset loc lastanswer ans)
ans))
(cl-defmethod ede-locate-file-in-project-impl ((loc ede-locate-base)
filesubstring
)
(cl-defmethod ede-locate-file-in-project-impl ((_loc ede-locate-base)
_filesubstring)
"Locate with LOC occurrences of FILESUBSTRING.
Searches are done under the current root of the EDE project
that created this EDE locate object."
nil
)
nil)
(cl-defmethod ede-locate-create/update-root-database
((loc (subclass ede-locate-base)) root)
((loc (subclass ede-locate-base)) _root)
"Create or update the database for the current project.
You cannot create projects for the baseclass."
(error "Cannot create/update a database of type %S"
@ -177,8 +175,8 @@ You cannot create projects for the baseclass."
Configure the Emacs `locate-program' variable to also
configure the use of EDE locate.")
(cl-defmethod ede-locate-ok-in-project ((loc (subclass ede-locate-locate))
root)
(cl-defmethod ede-locate-ok-in-project ((_loc (subclass ede-locate-locate))
_root)
"Is it ok to use this project type under ROOT."
(or (featurep 'locate) (locate-library "locate"))
)
@ -198,7 +196,7 @@ that created this EDE locate object."
(with-current-buffer b
(setq default-directory cd)
(erase-buffer))
(apply 'call-process locate-command
(apply #'call-process locate-command
nil b nil
searchstr nil)
(with-current-buffer b
@ -221,7 +219,7 @@ Configure EDE's use of GNU Global through the cedet-global.el
variable `cedet-global-command'.")
(cl-defmethod initialize-instance ((loc ede-locate-global)
&rest slots)
&rest _slots)
"Make sure that we can use GNU Global."
(require 'cedet-global)
;; Get ourselves initialized.
@ -235,8 +233,8 @@ variable `cedet-global-command'.")
(oref loc root))))
)
(cl-defmethod ede-locate-ok-in-project ((loc (subclass ede-locate-global))
root)
(cl-defmethod ede-locate-ok-in-project ((_loc (subclass ede-locate-global))
root)
"Is it ok to use this project type under ROOT."
(require 'cedet-global)
(cedet-gnu-global-version-check)
@ -252,7 +250,7 @@ variable `cedet-global-command'.")
(cedet-gnu-global-expand-filename filesubstring)))
(cl-defmethod ede-locate-create/update-root-database
((loc (subclass ede-locate-global)) root)
((_loc (subclass ede-locate-global)) root)
"Create or update the GNU Global database for the current project."
(cedet-gnu-global-create/update-database root))
@ -271,7 +269,7 @@ Configure EDE's use of IDUtils through the cedet-idutils.el
file name searching variable `cedet-idutils-file-command'.")
(cl-defmethod initialize-instance ((loc ede-locate-idutils)
&rest slots)
&rest _slots)
"Make sure that we can use IDUtils."
;; Get ourselves initialized.
(cl-call-next-method)
@ -283,8 +281,8 @@ file name searching variable `cedet-idutils-file-command'.")
(oref loc root)))
)
(cl-defmethod ede-locate-ok-in-project ((loc (subclass ede-locate-idutils))
root)
(cl-defmethod ede-locate-ok-in-project ((_loc (subclass ede-locate-idutils))
root)
"Is it ok to use this project type under ROOT."
(require 'cedet-idutils)
(cedet-idutils-version-check)
@ -301,7 +299,7 @@ that created this EDE locate object."
(cedet-idutils-expand-filename filesubstring)))
(cl-defmethod ede-locate-create/update-root-database
((loc (subclass ede-locate-idutils)) root)
((_loc (subclass ede-locate-idutils)) root)
"Create or update the GNU Global database for the current project."
(cedet-idutils-create/update-database root))
@ -320,7 +318,7 @@ Configure EDE's use of Cscope through the cedet-cscope.el
file name searching variable `cedet-cscope-file-command'.")
(cl-defmethod initialize-instance ((loc ede-locate-cscope)
&rest slots)
&rest _slots)
"Make sure that we can use Cscope."
;; Get ourselves initialized.
(cl-call-next-method)
@ -332,8 +330,8 @@ file name searching variable `cedet-cscope-file-command'.")
(oref loc root)))
)
(cl-defmethod ede-locate-ok-in-project ((loc (subclass ede-locate-cscope))
root)
(cl-defmethod ede-locate-ok-in-project ((_loc (subclass ede-locate-cscope))
root)
"Is it ok to use this project type under ROOT."
(require 'cedet-cscope)
(cedet-cscope-version-check)
@ -350,7 +348,7 @@ that created this EDE locate object."
(cedet-cscope-expand-filename filesubstring)))
(cl-defmethod ede-locate-create/update-root-database
((loc (subclass ede-locate-cscope)) root)
((_loc (subclass ede-locate-cscope)) root)
"Create or update the Cscope database for the current project."
(require 'cedet-cscope)
(cedet-cscope-create/update-database root))

View file

@ -1,4 +1,4 @@
;;; makefile-edit.el --- Makefile editing/scanning commands.
;;; makefile-edit.el --- Makefile editing/scanning commands. -*- lexical-binding: t; -*-
;; Copyright (C) 2009-2021 Free Software Foundation, Inc.

View file

@ -1,4 +1,4 @@
;;; ede/pconf.el --- configure.ac maintenance for EDE
;;; ede/pconf.el --- configure.ac maintenance for EDE -*- lexical-binding: t; -*-
;;; Copyright (C) 1998-2000, 2005, 2008-2021 Free Software Foundation,
;;; Inc.
@ -67,7 +67,7 @@ don't do it. A value of nil means to just do it.")
;;(td (file-name-directory (ede-proj-configure-file this)))
(targs (oref this targets))
(postcmd "")
(add-missing nil))
) ;; (add-missing nil)
;; First, make sure we have a file.
(if (not (file-exists-p (ede-proj-configure-file this)))
(autoconf-new-program b (oref this name) "Project.ede"))
@ -97,7 +97,7 @@ don't do it. A value of nil means to just do it.")
(ede-map-targets sp #'ede-proj-flush-autoconf)))
(ede-map-all-subprojects
this
(lambda (sp)
(lambda (_sp)
(ede-map-targets this #'ede-proj-tweak-autoconf)))
;; Now save
(save-buffer)
@ -109,14 +109,15 @@ don't do it. A value of nil means to just do it.")
(ede-proj-configure-test-required-file this "README")
(ede-proj-configure-test-required-file this "ChangeLog")
;; Let specific targets get missing files.
(mapc 'ede-proj-configure-create-missing targs)
(mapc #'ede-proj-configure-create-missing targs)
;; Verify that we have a make system.
(if (or (not (ede-expand-filename (ede-toplevel this) "Makefile"))
;; Now is this one of our old Makefiles?
(with-current-buffer
(find-file-noselect
(ede-expand-filename (ede-toplevel this)
"Makefile" t) t)
"Makefile" t)
t)
(goto-char (point-min))
;; Here is the unique piece for our makefiles.
(re-search-forward "For use with: make" nil t)))
@ -166,11 +167,11 @@ don't do it. A value of nil means to just do it.")
"Tweak the configure file (current buffer) to accommodate THIS."
;; Check the compilers belonging to THIS, and call the autoconf
;; setup for those compilers.
(mapc 'ede-proj-tweak-autoconf (ede-proj-compilers this))
(mapc 'ede-proj-tweak-autoconf (ede-proj-linkers this))
(mapc #'ede-proj-tweak-autoconf (ede-proj-compilers this))
(mapc #'ede-proj-tweak-autoconf (ede-proj-linkers this))
)
(cl-defmethod ede-proj-flush-autoconf ((this ede-proj-target))
(cl-defmethod ede-proj-flush-autoconf ((_this ede-proj-target))
"Flush the configure file (current buffer) to accommodate THIS.
By flushing, remove any cruft that may be in the file. Subsequent
calls to `ede-proj-tweak-autoconf' can restore items removed by flush."
@ -178,13 +179,13 @@ calls to `ede-proj-tweak-autoconf' can restore items removed by flush."
;; @TODO - No-one calls this ???
(cl-defmethod ede-proj-configure-add-missing ((this ede-proj-target))
(cl-defmethod ede-proj-configure-add-missing ((_this ede-proj-target))
"Query if any files needed by THIS provided by automake are missing.
Results in --add-missing being passed to automake."
nil)
;; @TODO - No-one implements this yet.
(cl-defmethod ede-proj-configure-create-missing ((this ede-proj-target))
(cl-defmethod ede-proj-configure-create-missing ((_this ede-proj-target))
"Add any missing files for THIS by creating them."
nil)

View file

@ -46,6 +46,7 @@
(require 'ede/proj)
(require 'ede/proj-obj)
(require 'ede/proj-comp)
(require 'seq)
(declare-function ede-srecode-setup "ede/srecode")
(declare-function ede-srecode-insert "ede/srecode")
@ -111,13 +112,13 @@ MFILENAME is the makefile to generate."
(let* ((targ (if isdist (oref this targets) mt))
(sp (oref this subproj))
(df (apply 'append
(df (apply #'append
(mapcar (lambda (tg)
(ede-proj-makefile-dependency-files tg))
targ))))
;; Distribution variables
(ede-compiler-begin-unique
(mapc 'ede-proj-makefile-insert-variables targ))
(mapc #'ede-proj-makefile-insert-variables targ))
;; Only add the distribution stuff in when depth != 0
(let ((top (ede-toplevel this))
(tmp this)
@ -153,7 +154,8 @@ MFILENAME is the makefile to generate."
(concat ".deps/"
(file-name-nondirectory
(file-name-sans-extension
f)) ".P"))
f))
".P"))
df " "))))
;;
;; Insert ALL Rule
@ -188,11 +190,11 @@ MFILENAME is the makefile to generate."
;;
(ede-compiler-begin-unique
(ede-proj-makefile-insert-rules this)
(mapc 'ede-proj-makefile-insert-rules targ))
(mapc #'ede-proj-makefile-insert-rules targ))
;;
;; phony targets for sub projects
;;
(mapc 'ede-proj-makefile-insert-subproj-rules sp)
(mapc #'ede-proj-makefile-insert-subproj-rules sp)
;;
;; Distribution rules such as CLEAN and DIST
;;
@ -210,11 +212,11 @@ MFILENAME is the makefile to generate."
;; Distribution variables
(let ((targ (if isdist (oref this targets) mt)))
(ede-compiler-begin-unique
(mapc 'ede-proj-makefile-insert-automake-pre-variables targ))
(mapc #'ede-proj-makefile-insert-automake-pre-variables targ))
(ede-compiler-begin-unique
(mapc 'ede-proj-makefile-insert-source-variables targ))
(mapc #'ede-proj-makefile-insert-source-variables targ))
(ede-compiler-begin-unique
(mapc 'ede-proj-makefile-insert-automake-post-variables targ))
(mapc #'ede-proj-makefile-insert-automake-post-variables targ))
(ede-compiler-begin-unique
(ede-proj-makefile-insert-user-rules this))
(insert "\n# End of Makefile.am\n")
@ -428,11 +430,11 @@ sources variable."
(let* ((proj (ede-target-parent this))
(conf-table (ede-proj-makefile-configuration-variables
this (oref proj configuration-default)))
(conf-done nil)
;; (conf-done nil)
)
;; Add in all variables from the configuration not already covered.
(mapc (lambda (c)
(if (member (car c) conf-done)
(if nil ;; (member (car c) conf-done)
nil
(insert (car c) "=" (cdr c) "\n")))
conf-table))
@ -464,9 +466,9 @@ sources variable."
"Return a list of patterns that are considered garbage to THIS.
These are removed with make clean."
(let ((mc (ede-map-targets
this (lambda (c) (ede-proj-makefile-garbage-patterns c))))
this #'ede-proj-makefile-garbage-patterns))
(uniq nil))
(setq mc (sort (apply 'append mc) 'string<))
(setq mc (sort (apply #'append mc) #'string<))
;; Filter out duplicates from the targets.
(while mc
(if (and (car uniq) (string= (car uniq) (car mc)))
@ -502,13 +504,13 @@ These are removed with make clean."
(cl-defmethod ede-proj-makefile-insert-rules ((this ede-proj-project))
"Insert rules needed by THIS target."
(mapc 'ede-proj-makefile-insert-rules (oref this inference-rules))
(mapc #'ede-proj-makefile-insert-rules (oref this inference-rules))
)
(cl-defmethod ede-proj-makefile-insert-dist-dependencies ((this ede-proj-project))
"Insert any symbols that the DIST rule should depend on.
Argument THIS is the project that should insert stuff."
(mapc 'ede-proj-makefile-insert-dist-dependencies (oref this targets))
(mapc #'ede-proj-makefile-insert-dist-dependencies (oref this targets))
)
(cl-defmethod ede-proj-makefile-insert-dist-dependencies ((_this ede-proj-target))
@ -608,10 +610,10 @@ Argument THIS is the target that should insert stuff."
(cl-defmethod ede-proj-makefile-insert-rules ((this ede-proj-target-makefile))
"Insert rules needed by THIS target."
(mapc 'ede-proj-makefile-insert-rules (oref this rules))
(mapc #'ede-proj-makefile-insert-rules (oref this rules))
(let ((c (ede-proj-compilers this)))
(when c
(mapc 'ede-proj-makefile-insert-rules c)
(mapc #'ede-proj-makefile-insert-rules c)
(if (oref this phony)
(insert ".PHONY: " (ede-proj-makefile-target-name this) "\n"))
(insert (ede-proj-makefile-target-name this) ": "
@ -622,9 +624,9 @@ Argument THIS is the target that should insert stuff."
(cl-defmethod ede-proj-makefile-insert-commands ((this ede-proj-target-makefile))
"Insert the commands needed by target THIS.
For targets, insert the commands needed by the chosen compiler."
(mapc 'ede-proj-makefile-insert-commands (ede-proj-compilers this))
(mapc #'ede-proj-makefile-insert-commands (ede-proj-compilers this))
(when (object-assoc t :uselinker (ede-proj-compilers this))
(mapc 'ede-proj-makefile-insert-commands (ede-proj-linkers this))))
(mapc #'ede-proj-makefile-insert-commands (ede-proj-linkers this))))
(cl-defmethod ede-proj-makefile-insert-user-rules ((this ede-proj-project))
@ -632,11 +634,11 @@ For targets, insert the commands needed by the chosen compiler."
This is different from `ede-proj-makefile-insert-rules' in that this
function won't create the building rules which are auto created with
automake."
(mapc 'ede-proj-makefile-insert-user-rules (oref this inference-rules)))
(mapc #'ede-proj-makefile-insert-user-rules (oref this inference-rules)))
(cl-defmethod ede-proj-makefile-insert-user-rules ((this ede-proj-target))
"Insert user specified rules needed by THIS target."
(mapc 'ede-proj-makefile-insert-rules (oref this rules)))
(mapc #'ede-proj-makefile-insert-rules (oref this rules)))
(cl-defmethod ede-proj-makefile-dependencies ((this ede-proj-target-makefile))
"Return a string representing the dependencies for THIS.
@ -644,7 +646,7 @@ Some compilers only use the first element in the dependencies, others
have a list of intermediates (object files), and others don't care.
This allows customization of how these elements appear."
(let* ((c (ede-proj-compilers this))
(io (eval (cons 'or (mapcar 'ede-compiler-intermediate-objects-p c))))
(io (seq-some #'ede-compiler-intermediate-objects-p c))
(out nil))
(if io
(progn
@ -652,7 +654,8 @@ This allows customization of how these elements appear."
(setq out
(concat out "$(" (ede-compiler-intermediate-object-variable
(car c)
(ede-proj-makefile-target-name this)) ")")
(ede-proj-makefile-target-name this))
")")
c (cdr c)))
out)
(let ((sv (ede-proj-makefile-sourcevar this))

View file

@ -309,7 +309,7 @@ Not all compilers do this."
(cl-defmethod ede-proj-makefile-insert-rules ((this ede-compilation-program))
"Insert rules needed for THIS compiler object."
(ede-compiler-only-once this
(mapc 'ede-proj-makefile-insert-rules (oref this rules))))
(mapc #'ede-proj-makefile-insert-rules (oref this rules))))
(cl-defmethod ede-proj-makefile-insert-rules ((this ede-makefile-rule))
"Insert rules needed for THIS rule object."

View file

@ -1,4 +1,4 @@
;;; ede-proj-elisp.el --- EDE Generic Project Emacs Lisp support
;;; ede-proj-elisp.el --- EDE Generic Project Emacs Lisp support -*- lexical-binding: t; -*-
;; Copyright (C) 1998-2005, 2007-2021 Free Software Foundation, Inc.
@ -64,7 +64,7 @@ This inserts the PRELOADS target-local variable."
(when preloads
(insert (format "%s: PRELOADS=%s\n"
(oref this name)
(mapconcat 'identity preloads " ")))))
(mapconcat #'identity preloads " ")))))
(insert "\n"))
(cl-defmethod ede-proj-makefile-dependencies ((this ede-proj-target-elisp))
@ -152,7 +152,7 @@ Bonus: Return a cons cell: (COMPILED . UPTODATE)."
(utd 0))
(mapc (lambda (src)
(let* ((fsrc (expand-file-name src dir))
(elc (concat (file-name-sans-extension fsrc) ".elc")))
) ;; (elc (concat (file-name-sans-extension fsrc) ".elc"))
(with-no-warnings
(if (eq (byte-recompile-file fsrc nil 0) t)
(setq comp (1+ comp))
@ -169,7 +169,7 @@ is found, such as a `-version' variable, or the standard header."
(if (and (slot-boundp this 'versionsource)
(oref this versionsource))
(let ((vs (oref this versionsource))
(match nil))
) ;; (match nil)
(while vs
(with-current-buffer (find-file-noselect
(ede-expand-filename this (car vs)))
@ -177,7 +177,7 @@ is found, such as a `-version' variable, or the standard header."
(let ((case-fold-search t))
(if (re-search-forward "-version\\s-+\"\\([^\"]+\\)\"" nil t)
(progn
(setq match t)
;; (setq match t)
(delete-region (match-beginning 1)
(match-end 1))
(goto-char (match-beginning 1))
@ -331,27 +331,27 @@ Lays claim to all .elc files that match .el files in this target."
If the `compiler' slot is empty, get the car of the compilers list."
(let ((comp (oref obj compiler)))
(if comp
(if (listp comp)
(setq comp (mapcar 'symbol-value comp))
(setq comp (list (symbol-value comp))))
(setq comp (if (listp comp)
(mapcar #'symbol-value comp)
(list (symbol-value comp))))
;; Get the first element from our list of compilers.
(let ((avail (mapcar 'symbol-value (oref obj availablecompilers))))
(let ((avail (mapcar #'symbol-value (oref obj availablecompilers))))
(setq comp (list (car avail)))))
comp))
(cl-defmethod ede-proj-makefile-insert-source-variables ((this ede-proj-target-elisp-autoloads)
&optional
moresource)
(cl-defmethod ede-proj-makefile-insert-source-variables ((_this ede-proj-target-elisp-autoloads)
&optional
_moresource)
"Insert the source variables needed by THIS.
Optional argument MORESOURCE is a list of additional sources to add to the
sources variable."
nil)
(cl-defmethod ede-proj-makefile-sourcevar ((this ede-proj-target-elisp-autoloads))
(cl-defmethod ede-proj-makefile-sourcevar ((_this ede-proj-target-elisp-autoloads))
"Return the variable name for THIS's sources."
nil) ; "LOADDEFS")
(cl-defmethod ede-proj-makefile-dependencies ((this ede-proj-target-elisp-autoloads))
(cl-defmethod ede-proj-makefile-dependencies ((_this ede-proj-target-elisp-autoloads))
"Return a string representing the dependencies for THIS.
Always return an empty string for an autoloads generator."
"")
@ -361,21 +361,22 @@ Always return an empty string for an autoloads generator."
(ede-pmake-insert-variable-shared "LOADDEFS"
(insert (oref this autoload-file)))
(ede-pmake-insert-variable-shared "LOADDIRS"
(insert (mapconcat 'identity
(insert (mapconcat #'identity
(or (oref this autoload-dirs) '("."))
" ")))
)
(cl-defmethod project-compile-target ((obj ede-proj-target-elisp-autoloads))
"Create or update the autoload target."
(require 'cedet-autogen)
(require 'cedet-autogen) ;FIXME: We don't have this file!
(declare-function cedet-update-autoloads "cedet-autogen")
(let ((default-directory (ede-expand-filename obj ".")))
(apply 'cedet-update-autoloads
(apply #'cedet-update-autoloads
(oref obj autoload-file)
(oref obj autoload-dirs))
))
(cl-defmethod ede-update-version-in-source ((this ede-proj-target-elisp-autoloads) version)
(cl-defmethod ede-update-version-in-source ((_this ede-proj-target-elisp-autoloads) _version)
"In a Lisp file, updated a version string for THIS to VERSION.
There are standards in Elisp files specifying how the version string
is found, such as a `-version' variable, or the standard header."
@ -397,11 +398,11 @@ Argument THIS is the target which needs to insert an info file."
(insert " " (oref this autoload-file))
)
(cl-defmethod ede-proj-tweak-autoconf ((this ede-proj-target-elisp-autoloads))
(cl-defmethod ede-proj-tweak-autoconf ((_this ede-proj-target-elisp-autoloads))
"Tweak the configure file (current buffer) to accommodate THIS."
(error "Autoloads not supported in autoconf yet"))
(cl-defmethod ede-proj-flush-autoconf ((this ede-proj-target-elisp-autoloads))
(cl-defmethod ede-proj-flush-autoconf ((_this ede-proj-target-elisp-autoloads))
"Flush the configure file (current buffer) to accommodate THIS."
nil)

View file

@ -1,4 +1,4 @@
;;; ede-proj-info.el --- EDE Generic Project texinfo support
;;; ede-proj-info.el --- EDE Generic Project texinfo support -*- lexical-binding: t; -*-
;;; Copyright (C) 1998-2001, 2004, 2007-2021 Free Software Foundation,
;;; Inc.
@ -70,7 +70,7 @@ All other sources should be included independently."))
;;; Makefile generation
;;
(cl-defmethod ede-proj-configure-add-missing
((this ede-proj-target-makefile-info))
((_this ede-proj-target-makefile-info))
"Query if any files needed by THIS provided by automake are missing.
Results in --add-missing being passed to automake."
(not (ede-expand-filename (ede-toplevel) "texinfo.tex")))
@ -97,7 +97,7 @@ when working in Automake mode."
(insert menu))
;; Now insert the rest of the source elsewhere
(ede-pmake-insert-variable-shared sv
(insert (mapconcat 'identity src " ")))
(insert (mapconcat #'identity src " ")))
(if moresource
(error "Texinfo files should not have moresource")))))

View file

@ -1,4 +1,4 @@
;;; ede/proj-obj.el --- EDE Generic Project Object code generation support
;;; ede/proj-obj.el --- EDE Generic Project Object code generation support -*- lexical-binding: t; -*-
;;; Copyright (C) 1998-2000, 2005, 2008-2021 Free Software Foundation,
;;; Inc.
@ -282,15 +282,15 @@ Argument THIS is the target to get sources from."
(append (oref this source) (oref this auxsource)))
(cl-defmethod ede-proj-makefile-insert-variables ((this ede-proj-target-makefile-objectcode)
&optional moresource)
&optional _moresource)
"Insert variables needed by target THIS.
Optional argument MORESOURCE is not used."
(let ((ede-proj-objectcode-dodependencies
(oref (ede-target-parent this) automatic-dependencies)))
(cl-call-next-method)))
(cl-defmethod ede-buffer-header-file((this ede-proj-target-makefile-objectcode)
buffer)
(cl-defmethod ede-buffer-header-file ((this ede-proj-target-makefile-objectcode)
_buffer)
"There are no default header files."
(or (cl-call-next-method)
;; Ok, nothing obvious. Try looking in ourselves.

View file

@ -1,4 +1,4 @@
;;; ede-proj-prog.el --- EDE Generic Project program support
;;; ede-proj-prog.el --- EDE Generic Project program support -*- lexical-binding: t; -*-
;; Copyright (C) 1998-2001, 2005, 2008-2021 Free Software Foundation,
;; Inc.
@ -90,11 +90,11 @@ Note: Currently only used for Automake projects."
(cl-defmethod ede-proj-makefile-insert-variables ((this ede-proj-target-makefile-program))
"Insert variables needed by the compiler THIS."
(cl-call-next-method)
(let ((lf (mapconcat 'identity (oref this ldflags) " ")))
(let ((lf (mapconcat #'identity (oref this ldflags) " ")))
(with-slots (ldlibs) this
(if ldlibs
(setq lf
(concat lf " -l" (mapconcat 'identity ldlibs " -l")))))
(concat lf " -l" (mapconcat #'identity ldlibs " -l")))))
;; LDFLAGS as needed.
(when (and lf (not (string= "" lf)))
(ede-pmake-insert-variable-once "LDDEPS" (insert lf)))))

View file

@ -1,4 +1,4 @@
;;; ede-proj-shared.el --- EDE Generic Project shared library support
;;; ede-proj-shared.el --- EDE Generic Project shared library support -*- lexical-binding: t; -*-
;;; Copyright (C) 1998-2000, 2009-2021 Free Software Foundation, Inc.
@ -170,7 +170,7 @@ Use ldlibs to add addition libraries.")
)
(cl-defmethod ede-proj-configure-add-missing
((this ede-proj-target-makefile-shared-object))
((_this ede-proj-target-makefile-shared-object))
"Query if any files needed by THIS provided by automake are missing.
Results in --add-missing being passed to automake."
(not (and (ede-expand-filename (ede-toplevel) "ltconfig")
@ -185,7 +185,7 @@ Makefile.am generator, so use it to add this important bin program."
(insert (concat "lib" (ede-name this) ".la"))))
(cl-defmethod ede-proj-makefile-insert-automake-post-variables
((this ede-proj-target-makefile-shared-object))
((_this ede-proj-target-makefile-shared-object))
"Insert bin_PROGRAMS variables needed by target THIS.
We need to override -program which has an LDADD element."
nil)

View file

@ -1,4 +1,4 @@
;;; ede/proj.el --- EDE Generic Project file driver
;;; ede/proj.el --- EDE Generic Project file driver -*- lexical-binding: t; -*-
;; Copyright (C) 1998-2003, 2007-2021 Free Software Foundation, Inc.
@ -339,7 +339,7 @@ Argument PROJ is the project to save."
(cl-call-next-method)
(ede-proj-save proj))
(cl-defmethod eieio-done-customizing ((target ede-proj-target))
(cl-defmethod eieio-done-customizing ((_target ede-proj-target))
"Call this when a user finishes customizing this object.
Argument TARGET is the project we are completing customization on."
(cl-call-next-method)
@ -462,7 +462,7 @@ FILE must be massaged by `ede-convert-path'."
(object-remove-from-list target 'auxsource (ede-convert-path target file))
(ede-proj-save))
(cl-defmethod project-update-version ((this ede-proj-project))
(cl-defmethod project-update-version ((_this ede-proj-project))
"The :version of project THIS has changed."
(ede-proj-save))
@ -486,7 +486,7 @@ FILE must be massaged by `ede-convert-path'."
(concat (oref this name) "-" (oref this version) ".tar.gz")
))
(cl-defmethod project-compile-project ((proj ede-proj-project) &optional command)
(cl-defmethod project-compile-project ((proj ede-proj-project) &optional _command)
"Compile the entire current project PROJ.
Argument COMMAND is the command to use when compiling."
(let ((pm (ede-proj-dist-makefile proj))
@ -499,13 +499,13 @@ Argument COMMAND is the command to use when compiling."
;;; Target type specific compilations/debug
;;
(cl-defmethod project-compile-target ((obj ede-proj-target) &optional command)
(cl-defmethod project-compile-target ((_obj ede-proj-target) &optional command)
"Compile the current target OBJ.
Argument COMMAND is the command to use for compiling the target."
(project-compile-project (ede-current-project) command))
(cl-defmethod project-compile-target ((obj ede-proj-target-makefile)
&optional command)
&optional _command)
"Compile the current target program OBJ.
Optional argument COMMAND is the s the alternate command to use."
(ede-proj-setup-buildenvironment (ede-current-project))
@ -545,11 +545,11 @@ Converts all symbols into the objects to be used."
(if comp
;; Now that we have a pre-set compilers to use, convert tye symbols
;; into objects for ease of use
(if (listp comp)
(setq comp (mapcar 'symbol-value comp))
(setq comp (list (symbol-value comp))))
(setq comp (if (listp comp)
(mapcar #'symbol-value comp)
(list (symbol-value comp))))
(let* ((acomp (oref obj availablecompilers))
(avail (mapcar 'symbol-value acomp))
(avail (mapcar #'symbol-value acomp))
(st (oref obj sourcetype))
(sources (oref obj source)))
;; COMP is not specified, so generate a list from the available
@ -585,7 +585,7 @@ Converts all symbols into the objects to be used."
(setq link (list (symbol-value link)))
(error ":linker is not a symbol. Howd you do that?"))
(let* ((alink (oref obj availablelinkers))
(avail (mapcar 'symbol-value alink))
(avail (mapcar #'symbol-value alink))
(st (oref obj sourcetype))
(sources (oref obj source)))
;; LINKER is not specified, so generate a list from the available

View file

@ -596,10 +596,8 @@ Strip out duplicates, and recurse on variables."
(project-am-expand-subdirlist
place (makefile-macro-file-list var))
;; Else, add SP in if it isn't a dup.
(if (member sp (symbol-value place))
nil ; don't do it twice.
(set place (cons sp (symbol-value place))) ;; add
))))
(cl-pushnew sp (gv-deref place) :test #'equal) ;; add
)))
subdirs)
)
@ -645,7 +643,7 @@ Strip out duplicates, and recurse on variables."
;; We still have a list of targets. For all buffers, make sure
;; their object still exists!
;; FIGURE THIS OUT
(project-am-expand-subdirlist 'csubprojexpanded csubproj)
(project-am-expand-subdirlist (gv-ref csubprojexpanded) csubproj)
;; Ok, now let's look at all our sub-projects.
(mapc (lambda (sp)
(let* ((subdir (file-name-as-directory

View file

@ -1,4 +1,4 @@
;;; ede/shell.el --- A shell controlled by EDE.
;;; ede/shell.el --- A shell controlled by EDE. -*- lexical-binding: t; -*-
;;
;; Copyright (C) 2009-2021 Free Software Foundation, Inc.
;;

View file

@ -1,4 +1,4 @@
;;; ede/simple.el --- Overlay an EDE structure on an existing project
;;; ede/simple.el --- Overlay an EDE structure on an existing project -*- lexical-binding: t; -*-
;; Copyright (C) 2007-2021 Free Software Foundation, Inc.
@ -78,7 +78,7 @@ The directory has three parts:
ede-simple-save-file-name)
))
(defun ede-simple-load (dir &optional rootproj)
(defun ede-simple-load (dir &optional _rootproj)
"Load a project of type `Simple' for the directory DIR.
Return nil if there isn't one.
ROOTPROJ is nil, since we will only create a single EDE project here."
@ -112,7 +112,7 @@ Each directory needs a project file to control it.")
(eieio-persistent-save proj))
(cl-defmethod ede-find-subproject-for-directory ((proj ede-simple-project)
dir)
_dir)
"Return PROJ, for handling all subdirs below DIR."
proj)

View file

@ -1,4 +1,4 @@
;; ede/source.el --- EDE source code object
;; ede/source.el --- EDE source code object -*- lexical-binding: t; -*-
;; Copyright (C) 2000, 2008-2021 Free Software Foundation, Inc.
@ -72,7 +72,7 @@ that they are willing to use.")
;;; Methods
;;
(cl-defmethod initialize-instance :after ((this ede-sourcecode) &rest fields)
(cl-defmethod initialize-instance :after ((this ede-sourcecode) &rest _fields)
"Make sure that all ede compiler objects are cached in
`ede-compiler-list'."
(let ((lst ede-sourcecode-list))

View file

@ -1,4 +1,4 @@
;;; ede/speedbar.el --- Speedbar viewing of EDE projects
;;; ede/speedbar.el --- Speedbar viewing of EDE projects -*- lexical-binding: t; -*-
;; Copyright (C) 1998-2001, 2003, 2005, 2007-2021 Free Software
;; Foundation, Inc.
@ -42,21 +42,21 @@
(setq ede-speedbar-key-map (speedbar-make-specialized-keymap))
;; General viewing things
(define-key ede-speedbar-key-map "\C-m" 'speedbar-edit-line)
(define-key ede-speedbar-key-map "+" 'speedbar-expand-line)
(define-key ede-speedbar-key-map "=" 'speedbar-expand-line)
(define-key ede-speedbar-key-map "-" 'speedbar-contract-line)
(define-key ede-speedbar-key-map " " 'speedbar-toggle-line-expansion)
(define-key ede-speedbar-key-map "\C-m" #'speedbar-edit-line)
(define-key ede-speedbar-key-map "+" #'speedbar-expand-line)
(define-key ede-speedbar-key-map "=" #'speedbar-expand-line)
(define-key ede-speedbar-key-map "-" #'speedbar-contract-line)
(define-key ede-speedbar-key-map " " #'speedbar-toggle-line-expansion)
;; Some object based things
(define-key ede-speedbar-key-map "C" 'eieio-speedbar-customize-line)
(define-key ede-speedbar-key-map "C" #'eieio-speedbar-customize-line)
;; Some project based things
(define-key ede-speedbar-key-map "R" 'ede-speedbar-remove-file-from-target)
(define-key ede-speedbar-key-map "b" 'ede-speedbar-compile-line)
(define-key ede-speedbar-key-map "B" 'ede-speedbar-compile-project)
(define-key ede-speedbar-key-map "D" 'ede-speedbar-make-distribution)
(define-key ede-speedbar-key-map "E" 'ede-speedbar-edit-projectfile)
(define-key ede-speedbar-key-map "R" #'ede-speedbar-remove-file-from-target)
(define-key ede-speedbar-key-map "b" #'ede-speedbar-compile-line)
(define-key ede-speedbar-key-map "B" #'ede-speedbar-compile-project)
(define-key ede-speedbar-key-map "D" #'ede-speedbar-make-distribution)
(define-key ede-speedbar-key-map "E" #'ede-speedbar-edit-projectfile)
)
(defvar ede-speedbar-menu
@ -98,7 +98,7 @@
(speedbar-get-focus)
)
(defun ede-speedbar-toplevel-buttons (dir)
(defun ede-speedbar-toplevel-buttons (_dir)
"Return a list of objects to display in speedbar.
Argument DIR is the directory from which to derive the list of objects."
ede-projects
@ -180,13 +180,13 @@ Argument DIR is the directory from which to derive the list of objects."
(setq depth (1- depth)))
(speedbar-line-token))))
(cl-defmethod eieio-speedbar-derive-line-path ((obj ede-project) &optional depth)
(cl-defmethod eieio-speedbar-derive-line-path ((obj ede-project) &optional _depth)
"Return the path to OBJ.
Optional DEPTH is the depth we start at."
(file-name-directory (oref obj file))
)
(cl-defmethod eieio-speedbar-derive-line-path ((obj ede-target) &optional depth)
(cl-defmethod eieio-speedbar-derive-line-path ((obj ede-target) &optional _depth)
"Return the path to OBJ.
Optional DEPTH is the depth we start at."
(let ((proj (ede-target-parent obj)))
@ -208,7 +208,7 @@ Optional DEPTH is the depth we start at."
"Provide a speedbar description for OBJ."
(ede-description obj))
(cl-defmethod eieio-speedbar-child-description ((obj ede-target))
(cl-defmethod eieio-speedbar-child-description ((_obj ede-target))
"Provide a speedbar description for a plain-child of OBJ.
A plain child is a child element which is not an EIEIO object."
(or (speedbar-item-info-file-helper)
@ -251,7 +251,7 @@ It has depth DEPTH."
;;; Generic file management for TARGETS
;;
(defun ede-file-find (text token indent)
(defun ede-file-find (_text token indent)
"Find the file TEXT at path TOKEN.
INDENT is the current indentation level."
(speedbar-find-file-in-frame
@ -290,7 +290,7 @@ level."
(t (error "Ooops... not sure what to do")))
(speedbar-center-buffer-smartly))
(defun ede-tag-find (text token indent)
(defun ede-tag-find (_text token _indent)
"For the tag TEXT in a file TOKEN, goto that position.
INDENT is the current indentation level."
(let ((file (ede-find-nearest-file-line)))
@ -314,21 +314,21 @@ INDENT is the current indentation level."
(defvar ede-speedbar-file-menu-additions
'("----"
["Create EDE Target" ede-new-target (ede-current-project) ]
["Add to project" ede-speedbar-file-add-to-project (ede-current-project) ]
;; ["Add to project" ede-speedbar-file-add-to-project (ede-current-project) ]
["Compile project" ede-speedbar-compile-project (ede-current-project) ]
["Compile file target" ede-speedbar-compile-file-target (ede-current-project) ]
;; ["Compile file target" ede-speedbar-compile-file-target (ede-current-project) ]
["Make distribution" ede-make-dist (ede-current-project) ]
)
"Set of menu items to splice into the speedbar menu.")
(defvar ede-speedbar-file-keymap
(let ((km (make-sparse-keymap)))
(define-key km "a" 'ede-speedbar-file-add-to-project)
(define-key km "t" 'ede-new-target)
(define-key km "s" 'ede-speedbar)
(define-key km "C" 'ede-speedbar-compile-project)
(define-key km "c" 'ede-speedbar-compile-file-target)
(define-key km "d" 'ede-make-dist)
;; (define-key km "a" #'ede-speedbar-file-add-to-project)
(define-key km "t" #'ede-new-target)
(define-key km "s" #'ede-speedbar)
(define-key km "C" #'ede-speedbar-compile-project)
;; (define-key km "c" #'ede-speedbar-compile-file-target)
(define-key km "d" #'ede-make-dist)
km)
"Keymap spliced into the speedbar keymap.")

View file

@ -1,4 +1,4 @@
;;; ede/util.el --- EDE utilities
;;; ede/util.el --- EDE utilities -*- lexical-binding: t; -*-
;; Copyright (C) 2000, 2005, 2009-2021 Free Software Foundation, Inc.

View file

@ -576,7 +576,7 @@ OVERARGS is a list of arguments passed to the override and
(put :override-with-args 'lisp-indent-function 1)
(define-obsolete-function-alias 'define-overload
'define-overloadable-function "27.1")
#'define-overloadable-function "27.1")
(define-obsolete-function-alias 'function-overload-p
#'mode-local--function-overload-p "27.1")

View file

@ -194,7 +194,7 @@ Optional argument FACE specifies the face to do the highlighting."
(progn
(overlay-put o 'face (or face 'pulse-highlight-start-face))
(add-hook 'pre-command-hook
'pulse-momentary-unhighlight))
#'pulse-momentary-unhighlight))
;; Pulse it.
(overlay-put o 'face 'pulse-highlight-face)
;; The pulse function puts FACE onto 'pulse-highlight-face.
@ -233,7 +233,7 @@ Optional argument FACE specifies the face to do the highlighting."
(cancel-timer pulse-momentary-timer))
;; Remove this hook.
(remove-hook 'pre-command-hook 'pulse-momentary-unhighlight))
(remove-hook 'pre-command-hook #'pulse-momentary-unhighlight))
;;;###autoload
(defun pulse-momentary-highlight-one-line (point &optional face)

View file

@ -1,4 +1,4 @@
;;; semantic.el --- Semantic buffer evaluator.
;;; semantic.el --- Semantic buffer evaluator. -*- lexical-binding: t; -*-
;; Copyright (C) 1999-2021 Free Software Foundation, Inc.
@ -297,7 +297,7 @@ to use Semantic, and `semantic-init-hook' is run."
'semantic-inhibit-functions)))
;; Make sure that if this buffer is cloned, our tags and overlays
;; don't go along for the ride.
(add-hook 'clone-indirect-buffer-hook 'semantic-clear-toplevel-cache
(add-hook 'clone-indirect-buffer-hook #'semantic-clear-toplevel-cache
nil t)
;; Specify that this function has done its work. At this point
;; we can consider that semantic is active in this buffer.
@ -466,12 +466,12 @@ is requested."
;; Nuke all semantic overlays. This is faster than deleting based
;; on our data structure.
(let ((l (overlay-lists)))
(mapc 'semantic-delete-overlay-maybe (car l))
(mapc 'semantic-delete-overlay-maybe (cdr l))
(mapc #'semantic-delete-overlay-maybe (car l))
(mapc #'semantic-delete-overlay-maybe (cdr l))
)
(semantic-parse-tree-set-needs-rebuild)
;; Remove this hook which tracks if a buffer is up to date or not.
(remove-hook 'after-change-functions 'semantic-change-function t)
(remove-hook 'after-change-functions #'semantic-change-function t)
(run-hook-with-args 'semantic-after-toplevel-cache-change-hook
semantic--buffer-cache)
@ -487,7 +487,7 @@ is requested."
;; This is specific to the bovine parser.
(setq-local semantic-bovinate-nonterminal-check-obarray nil)
(semantic-parse-tree-set-up-to-date)
(add-hook 'after-change-functions 'semantic-change-function nil t)
(add-hook 'after-change-functions #'semantic-change-function nil t)
(run-hook-with-args 'semantic-after-toplevel-cache-change-hook
semantic--buffer-cache)
(setq semantic--completion-cache nil)
@ -779,25 +779,25 @@ Throw away all the old tags, and recreate the tag database."
(defvar semantic-mode-map
(let ((map (make-sparse-keymap)))
;; Key bindings:
;; (define-key km "f" 'senator-search-set-tag-class-filter)
;; (define-key km "i" 'senator-isearch-toggle-semantic-mode)
(define-key map "\C-c,j" 'semantic-complete-jump-local)
(define-key map "\C-c,J" 'semantic-complete-jump)
(define-key map "\C-c,m" 'semantic-complete-jump-local-members)
(define-key map "\C-c,g" 'semantic-symref-symbol)
(define-key map "\C-c,G" 'semantic-symref)
(define-key map "\C-c,p" 'senator-previous-tag)
(define-key map "\C-c,n" 'senator-next-tag)
(define-key map "\C-c,u" 'senator-go-to-up-reference)
(define-key map "\C-c, " 'semantic-complete-analyze-inline)
(define-key map "\C-c,\C-w" 'senator-kill-tag)
(define-key map "\C-c,\M-w" 'senator-copy-tag)
(define-key map "\C-c,\C-y" 'senator-yank-tag)
(define-key map "\C-c,r" 'senator-copy-tag-to-register)
(define-key map "\C-c,," 'semantic-force-refresh)
(define-key map [?\C-c ?, up] 'senator-transpose-tags-up)
(define-key map [?\C-c ?, down] 'senator-transpose-tags-down)
(define-key map "\C-c,l" 'semantic-analyze-possible-completions)
;; (define-key km "f" #'senator-search-set-tag-class-filter)
;; (define-key km "i" #'senator-isearch-toggle-semantic-mode)
(define-key map "\C-c,j" #'semantic-complete-jump-local)
(define-key map "\C-c,J" #'semantic-complete-jump)
(define-key map "\C-c,m" #'semantic-complete-jump-local-members)
(define-key map "\C-c,g" #'semantic-symref-symbol)
(define-key map "\C-c,G" #'semantic-symref)
(define-key map "\C-c,p" #'senator-previous-tag)
(define-key map "\C-c,n" #'senator-next-tag)
(define-key map "\C-c,u" #'senator-go-to-up-reference)
(define-key map "\C-c, " #'semantic-complete-analyze-inline)
(define-key map "\C-c,\C-w" #'senator-kill-tag)
(define-key map "\C-c,\M-w" #'senator-copy-tag)
(define-key map "\C-c,\C-y" #'senator-yank-tag)
(define-key map "\C-c,r" #'senator-copy-tag-to-register)
(define-key map "\C-c,," #'semantic-force-refresh)
(define-key map [?\C-c ?, up] #'senator-transpose-tags-up)
(define-key map [?\C-c ?, down] #'senator-transpose-tags-down)
(define-key map "\C-c,l" #'semantic-analyze-possible-completions)
;; This hack avoids showing the CEDET menu twice if ede-minor-mode
;; and Semantic are both enabled. Is there a better way?
(define-key map [menu-bar cedet-menu]
@ -1029,7 +1029,7 @@ Semantic mode.
(file-exists-p semanticdb-default-system-save-directory))
(require 'semantic/db-ebrowse)
(semanticdb-load-ebrowse-caches)))
(add-hook 'mode-local-init-hook 'semantic-new-buffer-fcn)
(add-hook 'mode-local-init-hook #'semantic-new-buffer-fcn)
;; Add semantic-ia-complete-symbol to
;; completion-at-point-functions, so that it is run from
;; M-TAB.
@ -1037,11 +1037,11 @@ Semantic mode.
;; Note: The first entry added is the last entry run, so the
;; most specific entry should be last.
(add-hook 'completion-at-point-functions
'semantic-analyze-nolongprefix-completion-at-point-function)
#'semantic-analyze-nolongprefix-completion-at-point-function)
(add-hook 'completion-at-point-functions
'semantic-analyze-notc-completion-at-point-function)
#'semantic-analyze-notc-completion-at-point-function)
(add-hook 'completion-at-point-functions
'semantic-analyze-completion-at-point-function)
#'semantic-analyze-completion-at-point-function)
(if (bound-and-true-p global-ede-mode)
(define-key cedet-menu-map [cedet-menu-separator] '("--")))
@ -1052,21 +1052,21 @@ Semantic mode.
;; introduced in the buffer is pretty much futile, but we have to
;; clean the hooks and delete Semantic-related overlays, so that
;; Semantic can be re-activated cleanly.
(remove-hook 'mode-local-init-hook 'semantic-new-buffer-fcn)
(remove-hook 'mode-local-init-hook #'semantic-new-buffer-fcn)
(remove-hook 'completion-at-point-functions
'semantic-analyze-completion-at-point-function)
#'semantic-analyze-completion-at-point-function)
(remove-hook 'completion-at-point-functions
'semantic-analyze-notc-completion-at-point-function)
#'semantic-analyze-notc-completion-at-point-function)
(remove-hook 'completion-at-point-functions
'semantic-analyze-nolongprefix-completion-at-point-function)
#'semantic-analyze-nolongprefix-completion-at-point-function)
(remove-hook 'after-change-functions
'semantic-change-function)
#'semantic-change-function)
(define-key cedet-menu-map [cedet-menu-separator] nil)
(define-key cedet-menu-map [semantic-options-separator] nil)
;; FIXME: handle semanticdb-load-ebrowse-caches
(dolist (mode semantic-submode-list)
(if (and (boundp mode) (eval mode))
(if (and (boundp mode) (symbol-value mode))
(funcall mode -1)))
;; Unlink buffer and clear cache
(semantic--tag-unlink-cache-from-buffer)

View file

@ -1740,7 +1740,7 @@ If it is a macro name, return a description of the associated expander
function parameter list.
If it is a function name, return a description of this function
parameter list.
It it is a variable name, return a brief (one-line) documentation
If it is a variable name, return a brief (one-line) documentation
string for the variable.
If a default description of the current context can be obtained,
return it.

View file

@ -348,54 +348,56 @@ Returns t if all processing succeeded."
Visits Semantic controlled buffers, and makes sure all needed
include files have been parsed, and that the typecache is up to date.
Uses `semantic-idle-work-for-on-buffer' to do the work."
(let ((errbuf nil)
(interrupted
(semantic-exit-on-input 'idle-work-timer
(let* ((inhibit-quit nil)
(cb (current-buffer))
(buffers (delq (current-buffer)
(delq nil
(mapcar #'(lambda (b)
(and (buffer-file-name b)
b))
(buffer-list)))))
safe errbuf)
;; First, handle long tasks in the current buffer.
(when (semantic-idle-scheduler-enabled-p)
(save-excursion
(setq safe (semantic-idle-work-for-one-buffer (current-buffer))
)))
(when (not safe) (push (current-buffer) errbuf))
(let*
((errbuf nil)
(interrupted
(semantic-exit-on-input 'idle-work-timer
(let* ((inhibit-quit nil)
(cb (current-buffer))
(buffers (delq (current-buffer)
(delq nil
(mapcar #'(lambda (b)
(and (buffer-file-name b)
b))
(buffer-list)))))
safe) ;; errbuf
;; First, handle long tasks in the current buffer.
(when (semantic-idle-scheduler-enabled-p)
(save-excursion
(setq safe (semantic-idle-work-for-one-buffer (current-buffer))
)))
(when (not safe) (push (current-buffer) errbuf))
;; Now loop over other buffers with same major mode, trying to
;; update them as well. Stop on keypress.
(dolist (b buffers)
(semantic-throw-on-input 'parsing-mode-buffers)
(with-current-buffer b
(when (semantic-idle-scheduler-enabled-p)
(and (semantic-idle-scheduler-enabled-p)
(unless (semantic-idle-work-for-one-buffer (current-buffer))
(push (current-buffer) errbuf)))
))
)
;; Now loop over other buffers with same major mode, trying to
;; update them as well. Stop on keypress.
(dolist (b buffers)
(semantic-throw-on-input 'parsing-mode-buffers)
(with-current-buffer b
(when (semantic-idle-scheduler-enabled-p)
(and (semantic-idle-scheduler-enabled-p)
(unless (semantic-idle-work-for-one-buffer
(current-buffer))
(push (current-buffer) errbuf)))
))
)
(when (and (featurep 'semantic/db) (semanticdb-minor-mode-p))
;; Save everything.
(semanticdb-save-all-db-idle)
(when (and (featurep 'semantic/db) (semanticdb-minor-mode-p))
;; Save everything.
(semanticdb-save-all-db-idle)
;; Parse up files near our active buffer
(when semantic-idle-work-parse-neighboring-files-flag
(semantic-safe "Idle Work Parse Neighboring Files: %S"
(set-buffer cb)
(semantic-idle-scheduler-work-parse-neighboring-files))
t)
;; Parse up files near our active buffer
(when semantic-idle-work-parse-neighboring-files-flag
(semantic-safe "Idle Work Parse Neighboring Files: %S"
(set-buffer cb)
(semantic-idle-scheduler-work-parse-neighboring-files))
t)
;; Save everything... again
(semanticdb-save-all-db-idle)
)
;; Save everything... again
(semanticdb-save-all-db-idle)
)
;; Done w/ processing
nil))))
;; Done w/ processing
nil))))
;; Done
(if interrupted
@ -734,7 +736,8 @@ Call `semantic-idle-summary-current-symbol-info' for getting the
current tag to display information."
(or (eq major-mode 'emacs-lisp-mode)
(not (semantic-idle-summary-useful-context-p))
(let* ((found (semantic-idle-summary-current-symbol-info))
(let* ((found (save-excursion
(semantic-idle-summary-current-symbol-info)))
(str (cond ((stringp found) found)
((semantic-tag-p found)
(funcall semantic-idle-summary-function

View file

@ -562,7 +562,7 @@ such as `public' or `private'."
;; @TODO - is this line needed?? Try w/out for a while
;; @note - I think C++ says no. elisp might, but methods
;; look like defuns, so it makes no difference.
(extmeth nil) ; (semantic-tag-external-member-children type t))
;;(extmeth nil) ; (semantic-tag-external-member-children type t))
;; INHERITED are tags found in classes that our TYPE tag
;; inherits from. Do not do this if it was not requested.
@ -584,7 +584,7 @@ such as `public' or `private'."
(setq slots (nreverse copyslots))
))
;; Flatten the database output.
(append slots extmeth inherited)
(append slots nil inherited) ;; extmeth
)))
(defun semantic-analyze-scoped-inherited-tags (type scope access)

View file

@ -54,15 +54,16 @@
;; bound locally, without all these "reference to free variable"
;; compiler warnings!
(defmacro wisent-context-name (name)
"Return the context name from NAME."
`(if (and ,name (symbolp ,name))
(intern (format "wisent-context-%s" ,name))
(error "Invalid context name: %S" ,name)))
(eval-when-compile
(defun wisent-context-name (name)
"Return the context name from NAME."
(if (and name (symbolp name))
(intern (format "wisent-context-%s" name))
(error "Invalid context name: %S" name)))
(defmacro wisent-context-bindings (name)
"Return the variables in context NAME."
`(symbol-value (wisent-context-name ,name)))
(defun wisent-context-bindings (name)
"Return the variables in context NAME."
(symbol-value (wisent-context-name name))))
(defmacro wisent-defcontext (name &rest vars)
"Define a context NAME that will bind variables VARS."
@ -71,18 +72,14 @@
(declarations (mapcar #'(lambda (v) (list 'defvar v)) vars)))
`(progn
,@declarations
(eval-and-compile
(eval-when-compile
(defvar ,context ',vars)))))
(defmacro wisent-with-context (name &rest body)
"Bind variables in context NAME then eval BODY."
(declare (indent 1))
(let ((bindings (wisent-context-bindings name)))
`(progn
,@(mapcar (lambda (binding) `(defvar ,(or (car-safe binding) binding)))
bindings)
(let* ,bindings
,@body))))
`(dlet ,(wisent-context-bindings name)
,@body))
;; Other utilities

View file

@ -1439,6 +1439,8 @@ ARGS is a list of image descriptors."
(apply #'create-image file doc-view--image-type nil args)
(unless (member :width args)
(setq args `(,@args :width ,doc-view-image-width)))
(unless (member :transform-smoothing args)
(setq args `(,@args :transform-smoothing t)))
(apply #'create-image file doc-view--image-type nil args))))
(slice (doc-view-current-slice))
(img-width (and image (car (image-size image))))

View file

@ -62,7 +62,8 @@ See also `benchmark-run-compiled'."
;; Take account of the loop overhead.
`(- (benchmark-elapse (dotimes (,i ,repetitions)
,@forms))
(benchmark-elapse (dotimes (,i ,repetitions))))
(benchmark-elapse (dotimes (,i ,repetitions)
nil)))
`(benchmark-elapse ,@forms))
(- gcs-done ,gcs)
(- gc-elapsed ,gc)))))

View file

@ -1327,6 +1327,8 @@ Same format as `byte-optimize--lexvars', with shared structure and contents.")
radians-to-degrees rassq rassoc read-from-string regexp-opt
regexp-quote region-beginning region-end reverse round
sin sqrt string string< string= string-equal string-lessp
string> string-greaterp string-empty-p
string-prefix-p string-suffix-p string-blank-p
string-search string-to-char
string-to-number string-to-syntax substring
sxhash sxhash-equal sxhash-eq sxhash-eql

View file

@ -295,8 +295,9 @@ of converted forms."
(if wrappers
(let ((special-forms '()))
;; Keep special forms at the beginning of the body.
(while (or (stringp (car funcbody)) ;docstring.
(memq (car-safe (car funcbody)) '(interactive declare)))
(while (or (and (cdr funcbody) (stringp (car funcbody))) ;docstring.
(memq (car-safe (car funcbody))
'(interactive declare :documentation)))
(push (pop funcbody) special-forms))
(let ((body (macroexp-progn funcbody)))
(dolist (wrapper wrappers) (setq body (funcall wrapper body)))
@ -584,9 +585,6 @@ places where they originally did not directly appear."
(_ (or (cdr (assq form env)) form))))
(unless (fboundp 'byte-compile-not-lexical-var-p)
;; Only used to test the code in non-lexbind Emacs.
(defalias 'byte-compile-not-lexical-var-p 'boundp))
(defvar byte-compile-lexical-variables)
(defun cconv--analyze-use (vardata form varkind)
@ -602,7 +600,14 @@ FORM is the parent form that binds this var."
;; FIXME: Convert this warning to use `macroexp--warn-wrap'
;; so as to give better position information.
(byte-compile-warn
"%s `%S' not left unused" varkind var)))
"%s `%S' not left unused" varkind var))
((and (let (or 'let* 'let) (car form))
`((,var) ;; (or `(,var nil) : Too many false positives: bug#47080
t nil ,_ ,_))
;; FIXME: Convert this warning to use `macroexp--warn-wrap'
;; so as to give better position information.
(unless (not (intern-soft var))
(byte-compile-warn "Variable `%S' left uninitialized" var))))
(pcase vardata
(`(,binder nil ,_ ,_ nil)
(push (cons (cons binder form) :unused) cconv-var-classification))
@ -783,7 +788,7 @@ This function does not return anything but instead fills the
(let ((dv (assq form env))) ; dv = declared and visible
(when dv
(setf (nth 1 dv) t))))))
(define-obsolete-function-alias 'cconv-analyse-form 'cconv-analyze-form "25.1")
(define-obsolete-function-alias 'cconv-analyse-form #'cconv-analyze-form "25.1")
(provide 'cconv)
;;; cconv.el ends here

View file

@ -2134,8 +2134,8 @@ buffer, otherwise stop after the first error."
(user-error "No spellchecker installed: check the variable `ispell-program-name'"))
(save-excursion
(skip-chars-forward "^a-zA-Z")
(let (word sym case-fold-search err word-beginning word-end)
(while (and (not err) (< (point) end))
(let (word sym case-fold-search word-beginning word-end) ;; err
(while (and (< (point) end)) ;; (not err)
(if (save-excursion (forward-char -1) (looking-at "[('`]"))
;; Skip lists describing meta-syntax, or bound variables
(forward-sexp 1)
@ -2167,7 +2167,7 @@ buffer, otherwise stop after the first error."
(sit-for 0)
(message "Continuing..."))))))))
(skip-chars-forward "^a-zA-Z"))
err))))
nil)))) ;; err
;;; Rogue space checking engine
;;

View file

@ -332,12 +332,20 @@ or call the function `%s'."))))
t)))
;; Keep minor modes list up to date.
,@(if globalp
`((setq global-minor-modes (delq ',modefun global-minor-modes))
;; When running this byte-compiled code in earlier
;; Emacs versions, these variables may not be defined
;; there. So check defensively, even if they're
;; always defined in Emacs 28 and up.
`((when (boundp 'global-minor-modes)
(setq global-minor-modes
(delq ',modefun global-minor-modes))
(when ,getter
(push ',modefun global-minor-modes))))
;; Ditto check.
`((when (boundp 'local-minor-modes)
(setq local-minor-modes (delq ',modefun local-minor-modes))
(when ,getter
(push ',modefun global-minor-modes)))
`((setq local-minor-modes (delq ',modefun local-minor-modes))
(when ,getter
(push ',modefun local-minor-modes))))
(push ',modefun local-minor-modes)))))
,@body
;; The on/off hooks are here for backward compatibility only.
(run-hooks ',hook (if ,getter ',hook-on ',hook-off))

View file

@ -3508,7 +3508,7 @@ canceled the first time the function is entered."
(defun edebug-cancel-on-entry (function)
"Cause Edebug to not stop when FUNCTION is called.
The removes the effect of `edebug-on-entry'. If FUNCTION is is
The removes the effect of `edebug-on-entry'. If FUNCTION is
nil, remove `edebug-on-entry' on all functions."
(interactive
(list (let ((name (completing-read

View file

@ -261,7 +261,7 @@ DATA is displayed to the user and should state the reason for skipping."
It should only be stopped when ran from inside ert--run-test-internal."
(when (and (not (symbolp debugger)) ; only run on anonymous debugger
(memq error-symbol '(ert-test-failed ert-test-skipped)))
(funcall debugger 'error (list error-symbol data))))
(funcall debugger 'error (cons error-symbol data))))
(defun ert--special-operator-p (thing)
"Return non-nil if THING is a symbol naming a special operator."
@ -1633,7 +1633,7 @@ default (if any)."
(defun ert-find-test-other-window (test-name)
"Find, in another window, the definition of TEST-NAME."
(interactive (list (ert-read-test-name-at-point "Find test definition: ")))
(interactive (list (ert-read-test-name-at-point "Find test definition")))
(find-function-do-it test-name 'ert--test 'switch-to-buffer-other-window))
(defun ert-delete-test (test-name)
@ -2083,6 +2083,7 @@ and how to display message."
(define-derived-mode ert-results-mode special-mode "ERT-Results"
"Major mode for viewing results of ERT test runs."
:interactive nil
(setq-local revert-buffer-function
(lambda (&rest _) (ert-results-rerun-all-tests))))
@ -2178,7 +2179,7 @@ To be used in the ERT results buffer."
"Move point to the next test.
To be used in the ERT results buffer."
(interactive)
(interactive nil ert-results-mode)
(ert--results-move (ewoc-locate ert--results-ewoc) 'ewoc-next
"No tests below"))
@ -2186,7 +2187,7 @@ To be used in the ERT results buffer."
"Move point to the previous test.
To be used in the ERT results buffer."
(interactive)
(interactive nil ert-results-mode)
(ert--results-move (ewoc-locate ert--results-ewoc) 'ewoc-prev
"No tests above"))
@ -2219,7 +2220,7 @@ user-error is signaled with the message ERROR-MESSAGE."
"Find the definition of the test at point in another window.
To be used in the ERT results buffer."
(interactive)
(interactive nil ert-results-mode)
(let ((name (ert-test-at-point)))
(unless name
(user-error "No test at point"))
@ -2253,7 +2254,7 @@ To be used in the ERT results buffer."
;; the summary apparently needs to be easily accessible from the
;; error log, and perhaps it would be better to have it in a
;; separate buffer to keep it visible.
(interactive)
(interactive nil ert-results-mode)
(let ((ewoc ert--results-ewoc)
(progress-bar-begin ert--results-progress-bar-button-begin))
(cond ((ert--results-test-node-or-null-at-point)
@ -2370,7 +2371,7 @@ definition."
"Re-run all tests, using the same selector.
To be used in the ERT results buffer."
(interactive)
(interactive nil ert-results-mode)
(cl-assert (eql major-mode 'ert-results-mode))
(let ((selector (ert--stats-selector ert--results-stats)))
(ert-run-tests-interactively selector (buffer-name))))
@ -2379,7 +2380,7 @@ To be used in the ERT results buffer."
"Re-run the test at point.
To be used in the ERT results buffer."
(interactive)
(interactive nil ert-results-mode)
(cl-destructuring-bind (test redefinition-state)
(ert--results-test-at-point-allow-redefinition)
(when (null test)
@ -2414,7 +2415,7 @@ To be used in the ERT results buffer."
"Re-run the test at point with `ert-debug-on-error' bound to t.
To be used in the ERT results buffer."
(interactive)
(interactive nil ert-results-mode)
(let ((ert-debug-on-error t))
(ert-results-rerun-test-at-point)))
@ -2422,7 +2423,7 @@ To be used in the ERT results buffer."
"Display the backtrace for the test at point.
To be used in the ERT results buffer."
(interactive)
(interactive nil ert-results-mode)
(let* ((test (ert--results-test-at-point-no-redefinition t))
(stats ert--results-stats)
(pos (ert--stats-test-pos stats test))
@ -2449,7 +2450,7 @@ To be used in the ERT results buffer."
"Display the part of the *Messages* buffer generated during the test at point.
To be used in the ERT results buffer."
(interactive)
(interactive nil ert-results-mode)
(let* ((test (ert--results-test-at-point-no-redefinition t))
(stats ert--results-stats)
(pos (ert--stats-test-pos stats test))
@ -2470,7 +2471,7 @@ To be used in the ERT results buffer."
"Display the list of `should' forms executed during the test at point.
To be used in the ERT results buffer."
(interactive)
(interactive nil ert-results-mode)
(let* ((test (ert--results-test-at-point-no-redefinition t))
(stats ert--results-stats)
(pos (ert--stats-test-pos stats test))
@ -2506,7 +2507,7 @@ To be used in the ERT results buffer."
"Toggle how much of the condition to print for the test at point.
To be used in the ERT results buffer."
(interactive)
(interactive nil ert-results-mode)
(let* ((ewoc ert--results-ewoc)
(node (ert--results-test-node-at-point))
(entry (ewoc-data node)))
@ -2518,7 +2519,7 @@ To be used in the ERT results buffer."
"Display test timings for the last run.
To be used in the ERT results buffer."
(interactive)
(interactive nil ert-results-mode)
(let* ((stats ert--results-stats)
(buffer (get-buffer-create "*ERT timings*"))
(data (cl-loop for test across (ert--stats-tests stats)
@ -2597,7 +2598,7 @@ To be used in the ERT results buffer."
"Display the documentation of the test at point.
To be used in the ERT results buffer."
(interactive)
(interactive nil ert-results-mode)
(ert-describe-test (ert--results-test-at-point-no-redefinition t)))

View file

@ -324,8 +324,7 @@ The return value is the last VAL in the list.
(gv-letplace (getter setter) place
(funcall do `(edebug-after ,before ,index ,getter)
(lambda (store)
`(progn (edebug-after ,before ,index ,getter)
,(funcall setter store)))))))
`(edebug-after ,before ,index ,(funcall setter store)))))))
;;; The common generalized variables.

View file

@ -290,12 +290,13 @@ all RULES in total."
',(string-to-syntax (nth 1 action)))
,@(nthcdr 2 action))
`((let ((mb (match-beginning ,gn))
(me (match-end ,gn))
(syntax ,(nth 1 action)))
(if syntax
(put-text-property
mb me 'syntax-table syntax))
,@(nthcdr 2 action)))))
(me (match-end ,gn)))
,(macroexp-let2 nil syntax (nth 1 action)
`(progn
(if ,syntax
(put-text-property
mb me 'syntax-table ,syntax))
,@(nthcdr 2 action)))))))
(t
`((let ((mb (match-beginning ,gn))
(me (match-end ,gn))

View file

@ -32,8 +32,8 @@
;;;Here are some macros that exercise SES. Set `pause' to t if you want the
;;;macros to pause after each step.
(let* ((pause nil)
(x (if pause "\^Xq" ""))
(let* (;; (pause nil)
(x (if nil "\^Xq" "")) ;; pause
(y "\^X\^Fses-test.ses\r\^[<"))
;;Fiddle with the existing spreadsheet
(fset 'ses-exercise-example

View file

@ -46,7 +46,7 @@ A cua-rectangle definition is a vector used for all actions in
TOP is the upper-left corner point.
BOTTOM is the point at the end of line after the the lower-right
BOTTOM is the point at the end of line after the lower-right
corner point.
LEFT and RIGHT are column numbers.

View file

@ -635,8 +635,7 @@ Argument NUM is the number of lines to move."
(defmacro edt-with-position (&rest body)
"Execute BODY with some position-related variables bound."
`(let* ((left nil)
(beg (edt-current-line))
`(let* ((beg (edt-current-line))
(height (window-height))
(top-percent
(if (zerop edt-top-scroll-margin) 10 edt-top-scroll-margin))
@ -650,7 +649,7 @@ Argument NUM is the number of lines to move."
(far (save-excursion
(goto-char bottom)
(point-at-bol (1- height)))))
(ignore top left far)
(ignore top far)
,@body))
;;;
@ -668,9 +667,10 @@ Optional argument FIND is t is this function is called from `edt-find'."
(search-backward edt-find-last-text)
(edt-set-match)
(if (> (point) far)
(if (zerop (setq left (save-excursion (forward-line height))))
(recenter top-margin)
(recenter (- left bottom-up-margin)))
(let ((left (save-excursion (forward-line height))))
(recenter (if (zerop left)
top-margin
(- left bottom-up-margin))))
(and (> (point) bottom) (recenter bottom-margin))))))
(defun edt-find-backward (&optional find)
@ -707,9 +707,9 @@ Optional argument FIND is t if this function is called from `edt-find'."
(search-backward edt-find-last-text)
(edt-set-match)
(if (> (point) far)
(if (zerop (setq left (save-excursion (forward-line height))))
(recenter top-margin)
(recenter (- left bottom-up-margin)))
(let ((left (save-excursion (forward-line height))))
(recenter (if (zerop left) top-margin
(- left bottom-up-margin))))
(and (> (point) bottom) (recenter bottom-margin))))
(backward-char 1)
(error "Search failed: \"%s\"" edt-find-last-text))))
@ -1241,9 +1241,8 @@ Argument NUM is the positive number of sentences to move."
(forward-word 1)
(backward-sentence))
(if (> (point) far)
(if (zerop (setq left (save-excursion (forward-line height))))
(recenter top-margin)
(recenter (- left bottom-up-margin)))
(let ((left (save-excursion (forward-line height))))
(recenter (if (zerop left) top-margin (- left bottom-up-margin))))
(and (> (point) bottom) (recenter bottom-margin)))))
(defun edt-sentence-backward (num)
@ -1282,9 +1281,8 @@ Argument NUM is the positive number of paragraphs to move."
(forward-line 1))
(setq num (1- num)))
(if (> (point) far)
(if (zerop (setq left (save-excursion (forward-line height))))
(recenter top-margin)
(recenter (- left bottom-up-margin)))
(let ((left (save-excursion (forward-line height))))
(recenter (if (zerop left) top-margin (- left bottom-up-margin))))
(and (> (point) bottom) (recenter bottom-margin)))))
(defun edt-paragraph-backward (num)

View file

@ -110,11 +110,11 @@ ERC menu yet.")
(define-erc-module menu nil
"Enable a menu in ERC buffers."
((unless erc-menu-defined
;; make sure the menu only gets defined once, since Emacs 22
;; make sure the menu only gets defined once, since Emacs
;; activates it immediately
(easy-menu-define erc-menu erc-mode-map "ERC menu" erc-menu-definition)
(setq erc-menu-defined t)))
(;; `easy-menu-remove' is a no-op in Emacs 22
(;; `easy-menu-remove' is a no-op in Emacs
(message "You might have to restart Emacs to remove the ERC menu")))
(defun erc-menu-add ()

View file

@ -680,12 +680,12 @@ Each member of FILES is either a string or a cons cell of the form
(let ((f files)
last-f
display-files
ignore)
) ;; ignore
(while f
(if (cdar f)
(setq last-f f
f (cdr f))
(unless ignore
(unless nil ;; ignore
(funcall error-func
(format "%s: No such file or directory\n" (caar f))))
(if (eq f files)
@ -698,7 +698,7 @@ Each member of FILES is either a string or a cons cell of the form
(setcar f (cadr f))
(setcdr f (cddr f))))))
(if (not show-size)
(setq display-files (mapcar 'eshell-ls-annotate files))
(setq display-files (mapcar #'eshell-ls-annotate files))
(dolist (file files)
(let* ((str (eshell-ls-printable-size (file-attribute-size (cdr file)) t))
(len (length str)))

View file

@ -2817,11 +2817,18 @@ Note: Other faces cannot inherit from the cursor face."
:group 'help)
(defface help-key-binding
'((((class color) (min-colors 88) (background light)) :foreground "ForestGreen")
(((class color) (min-colors 88) (background dark)) :foreground "#44bc44")
(((class color grayscale) (background light)) :foreground "grey15")
(((class color grayscale) (background dark)) :foreground "grey85")
(t :foreground "ForestGreen"))
'((((class color) (min-colors 88) (background light))
:background "grey92" :foreground "DarkBlue"
;; We use negative thickness of the horizontal box border line to
;; avoid enlarging the height of the echo-area display, which
;; would then move the mode line a few pixels up.
:box (:line-width (1 . -1) :color "grey80"))
(((class color) (min-colors 88) (background dark))
:background "grey23" :foreground "LightBlue"
:box (:line-width (1 . -1) :color "grey35"))
(((class color grayscale) (background light)) :background "grey90")
(((class color grayscale) (background dark)) :background "grey25")
(t :background "grey90"))
"Face for keybindings in *Help* buffers.
This face is added by `substitute-command-keys', which see.

View file

@ -823,7 +823,9 @@ The path separator is colon in GNU and GNU-like systems."
(expand-file-name dir))
(locate-file dir cd-path nil
(lambda (f) (and (file-directory-p f) 'dir-ok)))
(error "No such directory found via CDPATH environment variable"))))
(if (getenv "CDPATH")
(error "No such directory found via CDPATH environment variable: %s" dir)
(error "No such directory: %s" dir)))))
(defun directory-files-recursively (dir regexp
&optional include-directories predicate

View file

@ -1183,7 +1183,7 @@ Return full path if FULL-FLAG is non-nil."
(constraint-flag
(message "Obsolete :constraint-flag %S, use :constraintp instead"
(cadr constraint-flag))
(eval (cadr constraint-flag)))
(eval (cadr constraint-flag) t))
(t
t))))
@ -1557,18 +1557,20 @@ Replace <file-name> or <<file-name>> with filename."
(completing-read "Select fileset: " filesets-data nil t))))
(when (and cmd-name name)
(let* ((event (if (equal cmd-name "Grep <<selection>>")
'on-grep
'on-grep
'on-cmd))
(files (if (and fileset
(or (equal mode ':ingroup)
(equal mode ':tree)))
(or (equal mode :ingroup)
(equal mode :tree)))
(filesets-get-filelist fileset mode event)
(filesets-get-filelist
(filesets-get-fileset-from-name name)
mode event))))
(filesets-get-filelist
(filesets-get-fileset-from-name name)
mode event))))
(when files
(let ((fn (filesets-cmd-get-fn cmd-name))
(args (filesets-cmd-get-args cmd-name)))
(args
(dlet ((filesets--files files))
(filesets-cmd-get-args cmd-name))))
(if (memq fn '(multi-isearch-files multi-isearch-files-regexp))
(apply fn args)
(dolist (this files nil)
@ -1577,28 +1579,27 @@ Replace <file-name> or <<file-name>> with filename."
(let ((buffer (filesets-find-file this)))
(when buffer
(goto-char (point-min))
(progn
(cond
((stringp fn)
(let* ((args
(mapconcat
(lambda (this)
(filesets-run-cmd--repl-fn
this
(lambda (this)
(format "%s" this))))
args
" "))
(cmd (concat fn " " args)))
(filesets-cmd-show-result
cmd (shell-command-to-string cmd))))
((symbolp fn)
(apply fn
(mapcan (lambda (this)
(filesets-run-cmd--repl-fn
this
'list))
args)))))))))))))))))
(cond
((stringp fn)
(let* ((args
(mapconcat
(lambda (this)
(filesets-run-cmd--repl-fn
this
(lambda (this)
(format "%s" this))))
args
" "))
(cmd (concat fn " " args)))
(filesets-cmd-show-result
cmd (shell-command-to-string cmd))))
((symbolp fn)
(apply fn
(mapcan (lambda (this)
(filesets-run-cmd--repl-fn
this
'list))
args))))))))))))))))
(defun filesets-get-cmd-menu ()
"Create filesets command menu."
@ -1624,7 +1625,7 @@ Replace <file-name> or <<file-name>> with filename."
(defun filesets-cmd-isearch-getargs ()
"Get arguments for `multi-isearch-files' and `multi-isearch-files-regexp'."
(and (boundp 'files) (list files)))
(and (boundp 'filesets--files) (list filesets--files)))
(defun filesets-cmd-shell-command-getargs ()
"Get arguments for `filesets-cmd-shell-command'."

View file

@ -337,7 +337,7 @@ Returns the number of articles marked as read."
(gnus-newsgroup-kill-file gnus-newsgroup-name)))
(unreads (length gnus-newsgroup-unreads))
(gnus-summary-inhibit-highlight t)
beg)
) ;; beg
(setq gnus-newsgroup-kill-headers nil)
;; If there are any previously scored articles, we remove these
;; from the `gnus-newsgroup-headers' list that the score functions
@ -381,7 +381,7 @@ Returns the number of articles marked as read."
(gnus-set-mode-line 'summary)
(if beg
(if nil ;; beg
(let ((nunreads (- unreads (length gnus-newsgroup-unreads))))
(or (eq nunreads 0)
(gnus-message 6 "Marked %d articles as read" nunreads))

View file

@ -549,7 +549,7 @@ structure.
In the simplest case, they are simply consed together. String
KEY is converted to a symbol."
(let (return)
(let () ;; return
(cond
((member key gnus-search-date-keys)
(when (string= "after" key)
@ -559,7 +559,7 @@ KEY is converted to a symbol."
(setq value (gnus-search-query-parse-mark value)))
((string= "message-id" key)
(setq key "id")))
(or return
(or nil ;; return
(cons (intern key) value))))
(defun gnus-search-query-parse-date (value &optional rel-date)

View file

@ -1172,7 +1172,7 @@ for new groups, and subscribe the new groups as zombies."
gnus-check-new-newsgroups)
gnus-secondary-select-methods))))
(groups 0)
group new-newsgroups got-new method hashtb
new-newsgroups got-new method hashtb ;; group
gnus-override-subscribe-method)
(unless gnus-killed-hashtb
(gnus-make-hashtable-from-killed))
@ -1203,14 +1203,14 @@ for new groups, and subscribe the new groups as zombies."
(cond
((eq do-sub 'subscribe)
(cl-incf groups)
(puthash g-name group gnus-killed-hashtb)
(puthash g-name nil gnus-killed-hashtb) ;; group
(gnus-call-subscribe-functions
gnus-subscribe-options-newsgroup-method g-name))
((eq do-sub 'ignore)
nil)
(t
(cl-incf groups)
(puthash g-name group gnus-killed-hashtb)
(puthash g-name nil gnus-killed-hashtb) ;; group
(if gnus-subscribe-hierarchical-interactive
(push g-name new-newsgroups)
(gnus-call-subscribe-functions
@ -2378,6 +2378,11 @@ If FORCE is non-nil, the .newsrc file is read."
(unless (gnus-yes-or-no-p (concat errmsg "; continue? "))
(error "%s" errmsg)))))))))
;; IIUC these 3 vars were used in older .newsrc files.
(defvar gnus-killed-assoc)
(defvar gnus-marked-assoc)
(defvar gnus-newsrc-assoc)
(defun gnus-read-newsrc-el-file (file)
(let ((ding-file (concat file "d")))
(when (file-exists-p ding-file)

View file

@ -6354,9 +6354,9 @@ The resulting hash table is returned, or nil if no Xrefs were found."
;; First peel off all invalid article numbers.
(when active
(let ((ids articles)
id first)
id) ;; first
(while (setq id (pop ids))
(when (and first (> id (cdr active)))
(when nil ;; (and first (> id (cdr active)))
;; We'll end up in this situation in one particular
;; obscure situation. If you re-scan a group and get
;; a new article that is cross-posted to a different
@ -12741,7 +12741,7 @@ If REVERSE, save parts that do not match TYPE."
;; so we highlight the entire line instead.
(when (= (+ to 2) from)
(setq from beg)
(setq to end))
(setq to (1+ end)))
(if gnus-newsgroup-selected-overlay
;; Move old overlay.
(move-overlay
@ -12796,7 +12796,7 @@ If REVERSE, save parts that do not match TYPE."
(let ((face (funcall (gnus-summary-highlight-line-0))))
(unless (eq face (gnus-get-text-property-excluding-characters-with-faces beg 'face))
(gnus-put-text-property-excluding-characters-with-faces
beg (point-at-eol) 'face
beg (1+ (point-at-eol)) 'face
(setq face (if (boundp face) (symbol-value face) face)))
(when gnus-summary-highlight-line-function
(funcall gnus-summary-highlight-line-function article face))))))

View file

@ -323,7 +323,7 @@
(nnbabyl-possibly-change-newsgroup group server)
(nnmail-check-syntax)
(let ((buf (current-buffer))
result beg)
result) ;; beg
(and
(nnmail-activate 'nnbabyl)
(save-excursion
@ -331,7 +331,7 @@
(search-forward "\n\n" nil t)
(forward-line -1)
(save-excursion
(while (re-search-backward "^X-Gnus-Newsgroup: " beg t)
(while (re-search-backward "^X-Gnus-Newsgroup: " nil t) ;; beg
(delete-region (point) (progn (forward-line 1) (point)))))
(when nnmail-cache-accepted-message-ids
(nnmail-cache-insert (nnmail-fetch-field "message-id")

View file

@ -706,7 +706,7 @@ deleted. Point is left where the deleted region was."
(if dont-check
(setq nnfolder-current-group group
nnfolder-current-buffer nil)
(let (inf file)
(let (file) ;; inf
;; If we have to change groups, see if we don't already have
;; the folder in memory. If we do, verify the modtime and
;; destroy the folder if needed so we can rescan it.
@ -718,7 +718,7 @@ deleted. Point is left where the deleted region was."
;; touched the file since last time.
(when (and nnfolder-current-buffer
(not (gnus-buffer-live-p nnfolder-current-buffer)))
(setq nnfolder-buffer-alist (delq inf nnfolder-buffer-alist)
(setq nnfolder-buffer-alist (delq nil nnfolder-buffer-alist) ;; inf
nnfolder-current-buffer nil))
(setq nnfolder-current-group group)

View file

@ -503,6 +503,8 @@ as unread by Gnus.")
(setcdr active (1+ (cdr active))))
(cdr active)))
(defvar nnmh-newsgroup-articles)
(defun nnmh-update-gnus-unreads (group)
;; Go through the .nnmh-articles file and compare with the actual
;; articles in this folder. The articles that are "new" will be

View file

@ -200,7 +200,7 @@ for decoding when the cdr that the data specify is not available.")
(nnrss-possibly-change-group group server)
(let ((e (assq article nnrss-group-data))
(nntp-server-buffer (or buffer nntp-server-buffer))
err) ;; post
) ;; err post
(when e
(with-current-buffer nntp-server-buffer
(erase-buffer)
@ -302,8 +302,7 @@ for decoding when the cdr that the data specify is not available.")
(when nnrss-content-function
(funcall nnrss-content-function e group article))))
(cond
(err
(nnheader-report 'nnrss err))
;; (err (nnheader-report 'nnrss err))
((not e)
(nnheader-report 'nnrss "no such id: %d" article))
(t

View file

@ -210,7 +210,7 @@ Do not call this in the scope of `with-help-window'."
\\[describe-key] KEYS Display the full documentation for the key sequence.
\\[Info-goto-emacs-key-command-node] KEYS Show the Emacs manual's section for the command bound to KEYS.
\\[view-lossage] Show last 300 input keystrokes (lossage).
\\[describe-language-environment] LANG-ENV Describes a specific language environment, or RET for current.
\\[describe-language-environment] LANG-ENV Describe a specific language environment, or RET for current.
\\[describe-mode] Display documentation of current minor modes and current major mode,
including their special commands.
\\[view-emacs-news] Display news of recent Emacs changes.
@ -1253,7 +1253,7 @@ Return nil if the key sequence is too long."
;; Converted from describe_translation in keymap.c.
;; Avoid using the `help-keymap' face.
(let ((op (point)))
(indent-to 16)
(indent-to 16 1)
(set-text-properties op (point) '( face nil
font-lock-face nil)))
(cond ((symbolp definition)

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