Merge remote-tracking branch 'savannah/master' into native-comp

This commit is contained in:
Andrea Corallo 2021-03-25 16:29:07 +01:00
commit c6c7b30e4b
180 changed files with 1982 additions and 1977 deletions

View file

@ -76935,7 +76935,7 @@
* lisp/emacs-lisp/lisp-mode.el (lisp-cl-font-lock-keywords-2):
Highlight the Common Lisp conventional names as described in
http://www.cliki.net/Naming+conventions.
https://www.cliki.net/Naming+conventions.
(lisp-el-font-lock-keywords-2): Remove the already commented out
code for `do-' and `with-' because Emacs Lisp does not have a similar
convention.
@ -122126,7 +122126,7 @@
I roughly followed the Bordeaux threads API:
http://trac.common-lisp.net/bordeaux-threads/wiki/ApiDocumentation
https://sionescu.github.io/bordeaux-threads/
... but not identically. In particular I chose not to implement
interrupt-thread or destroy-thread, but instead a thread-signaling

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -259,8 +259,8 @@ search buffer due to too many matches being highlighted.
The 'C-x x' keymap now holds keystrokes for various buffer-oriented
commands. The new keystrokes are 'C-x x g' ('revert-buffer'),
'C-x x r' ('rename-buffer'), 'C-x x u' ('rename-uniquely'), 'C-x x n'
('clone-buffer'), 'C-x x i' ('insert-buffer') and 'C-x x t'
('toggle-truncate-lines').
('clone-buffer'), 'C-x x i' ('insert-buffer'), 'C-x x t'
('toggle-truncate-lines') and 'C-x x f' ('font-lock-update').
---
** Commands 'set-frame-width' and 'set-frame-height' can now get their
@ -438,6 +438,9 @@ to nil. This was already sometimes the case, but it is now guaranteed.
This is like '(pred (lambda (x) (not (FUN x))))' but results
in better code.
---
*** New function 'pcase-compile-patterns' to write other macros.
+++
** profiler.el
The results displayed by 'profiler-report' now have the usage figures
@ -564,7 +567,9 @@ It also supports a negative argument.
*** 'C-x t G' assigns a group name to the tab.
'tab-close-group' can close all tabs that belong to the selected group.
The user option 'tab-bar-new-tab-group' defines the default group of a
new tab.
new tab. After customizing 'tab-bar-tab-post-change-group-functions'
to 'tab-bar-move-tab-to-group', changing the tab group will also move it
closer to other tabs in the same group.
---
*** New user option 'tab-bar-tab-name-format-function'.
@ -1583,6 +1588,11 @@ project's root directory, respectively.
+++
*** New user option 'project-list-file'.
+++
*** New command 'project-remove-known-project'.
This command lets you interactively remove an entry from the list of projects
in 'project-list-file'.
** xref
---
@ -2277,13 +2287,24 @@ To restore the old binding, say something like:
(require 'facemenu)
(define-key global-map "\M-o" 'facemenu-keymap)
(define-key facemenu-keymap "\es" 'center-line)
(define-key facemenu-keymap "\eS" 'center-paragraph)
The last two lines are not strictly necessary if you don't care about
having those two commands on the 'M-o' keymap; see the next section.
** The 'M-o M-s' and 'M-o M-S' global bindings have been removed.
Use 'M-x center-line' and 'M-x center-paragraph' instead.
Use 'M-x center-line' and 'M-x center-paragraph' instead. See the
previous section for how to get back the old bindings. Alternatively,
if you only want these two commands to have global bindings they had
before, you can add the following to your init file:
(define-key global-map "\M-o\M-s" 'center-line)
(define-key global-map "\M-o\M-S" 'center-paragraph)
** The 'M-o M-o' global binding has been removed.
Use 'M-x font-lock-fontify-block' instead, or the new 'C-x x f'
command, which toggles fontification in the current buffer.
command, which updates the syntax highlighting in the current buffer.
** In 'f90-mode', the backslash character ('\') no longer escapes.
For about a decade, the backslash character has no longer had a
@ -2299,6 +2320,10 @@ since the latter uses 'M-s' as a prefix key of the search prefix map.
** 'vc-print-branch-log' shows the change log for BRANCH from its root
directory instead of the default directory.
---
** 'project-shell' and 'shell' now use 'pop-to-buffer-same-window'.
This is to keep the same behavior as Eshell.
* Incompatible Lisp Changes in Emacs 28.1

View file

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

View file

@ -6,7 +6,7 @@
;; Version: 1.0
;; Created: Dec 2005
;; Keywords: outlines
;; Website: http://myriadicity.net/software-and-systems/craft/emacs-allout
;; Website: https://myriadicity.net/software-and-systems/craft/emacs-allout
;; This file is part of GNU Emacs.
@ -38,7 +38,7 @@
;; See the `allout-widgets-mode' docstring for more details.
;;
;; Info about allout and allout-widgets development are available at
;; http://myriadicity.net/Sundry/EmacsAllout
;; https://myriadicity.net/software-and-systems/craft/emacs-allout
;;
;; The graphics include:
;;

View file

@ -6,7 +6,7 @@
;; Created: Dec 1991 -- first release to usenet
;; Version: 2.3
;; Keywords: outlines, wp, languages, PGP, GnuPG
;; Website: http://myriadicity.net/software-and-systems/craft/emacs-allout
;; Website: https://myriadicity.net/software-and-systems/craft/emacs-allout
;; This file is part of GNU Emacs.
@ -57,7 +57,7 @@
;; mode.
;;
;; Directions to the latest development version and helpful notes are
;; available at http://myriadicity.net/Sundry/EmacsAllout .
;; available at https://myriadicity.net/software-and-systems/craft/emacs-allout .
;;
;; The outline menubar additions provide quick reference to many of the
;; features. See the docstring of the variables `allout-layout' and

View file

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

View file

@ -1211,7 +1211,7 @@ if `inhibit-field-text-motion' is non-nil."
;; (define-key global-map [kp-9] 'function-key-error)
;; (define-key global-map [kp-equal] 'function-key-error)
;; X11R6 distinguishes these keys from the non-kp keys.
;; X11 distinguishes these keys from the non-kp keys.
;; Make them behave like the non-kp keys unless otherwise bound.
;; FIXME: rather than list such mappings for every modifier-combination,
;; we should come up with a way to do it generically, something like

View file

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

View file

@ -66,7 +66,7 @@
;; 0.02:
;; - Should work in XEmacs now. Thanks to Len Trigg for the XEmacs patches!
;; - Added exporting from Emacs diary to ical.
;; - Some bugfixes, after testing with calendars from http://icalshare.com.
;; - Some bugfixes, after testing with calendars from https://icalshare.com.
;; - Tested with Emacs 21.3.2 and XEmacs 21.4.12
;; 0.01: (2003-03-21)

View file

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

View file

@ -79,13 +79,8 @@
(insert "("))
(t nil))))
(defalias 'semantic-ia-get-completions #'semantic-ia-get-completions-deprecated)
(make-obsolete 'semantic-ia-get-completions
#'semantic-analyze-possible-completions "28.1")
(defun semantic-ia-get-completions-deprecated (context _point)
"A function to help transition away from `semantic-ia-get-completions'.
Return completions based on CONTEXT at POINT."
(defun semantic-ia-get-completions (context _point)
"Fetch the completion of CONTEXT at POINT."
(declare (obsolete semantic-analyze-possible-completions "28.1"))
(semantic-analyze-possible-completions context))

View file

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

View file

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

View file

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

View file

@ -548,6 +548,10 @@ has the form (autoload . FILENAME).")
(defvar byte-compile-unresolved-functions nil
"Alist of undefined functions to which calls have been compiled.
Each element in the list has the form (FUNCTION POSITION . CALLS)
where CALLS is a list whose elements are integers (indicating the
number of arguments passed in the function call) or the constant `t'
if the function is called indirectly.
This variable is only significant whilst compiling an entire buffer.
Used for warnings when a function is not known to be defined or is later
defined with incorrect args.")
@ -1472,9 +1476,9 @@ when printing the error message."
;; Remember number of args in call.
(let ((cons (assq f byte-compile-unresolved-functions)))
(if cons
(or (memq nargs (cdr cons))
(push nargs (cdr cons)))
(push (list f nargs)
(or (memq nargs (cddr cons))
(push nargs (cddr cons)))
(push (list f byte-compile-last-position nargs)
byte-compile-unresolved-functions)))))
;; Warn if the form is calling a function with the wrong number of arguments.
@ -1574,14 +1578,14 @@ extra args."
(setq byte-compile-unresolved-functions
(delq calls byte-compile-unresolved-functions))
(setq calls (delq t calls)) ;Ignore higher-order uses of the function.
(when (cdr calls)
(when (cddr calls)
(when (and (symbolp name)
(eq (function-get name 'byte-optimizer)
'byte-compile-inline-expand))
(byte-compile-warn "defsubst `%s' was used before it was defined"
name))
(setq sig (byte-compile-arglist-signature arglist)
nums (sort (copy-sequence (cdr calls)) (function <))
nums (sort (copy-sequence (cddr calls)) (function <))
min (car nums)
max (car (nreverse nums)))
(when (or (< min (car sig))
@ -1689,56 +1693,21 @@ It is too wide if it has any lines longer than the largest of
kind name col))))
form)
(defun byte-compile-print-syms (str1 strn syms)
(when syms
(byte-compile-set-symbol-position (car syms) t))
(cond ((and (cdr syms) (not noninteractive))
(let* ((str strn)
(L (length str))
s)
(while syms
(setq s (symbol-name (pop syms))
L (+ L (length s) 2))
(if (< L (1- (buffer-local-value 'fill-column
(or (get-buffer
byte-compile-log-buffer)
(current-buffer)))))
(setq str (concat str " " s (and syms ",")))
(setq str (concat str "\n " s (and syms ","))
L (+ (length s) 4))))
(byte-compile-warn "%s" str)))
((cdr syms)
(byte-compile-warn "%s %s"
strn
(mapconcat #'symbol-name syms ", ")))
(syms
(byte-compile-warn str1 (car syms)))))
;; If we have compiled any calls to functions which are not known to be
;; defined, issue a warning enumerating them.
;; `unresolved' in the list `byte-compile-warnings' disables this.
(defun byte-compile-warn-about-unresolved-functions ()
(when (byte-compile-warning-enabled-p 'unresolved)
(let ((byte-compile-current-form :end)
(noruntime nil)
(unresolved nil))
(let ((byte-compile-current-form :end))
;; Separate the functions that will not be available at runtime
;; from the truly unresolved ones.
(dolist (f byte-compile-unresolved-functions)
(setq f (car f))
(when (not (memq f byte-compile-new-defuns))
(if (fboundp f) (push f noruntime) (push f unresolved))))
;; Complain about the no-run-time functions
(byte-compile-print-syms
"the function `%s' might not be defined at runtime."
"the following functions might not be defined at runtime:"
noruntime)
;; Complain about the unresolved functions
(byte-compile-print-syms
"the function `%s' is not known to be defined."
"the following functions are not known to be defined:"
unresolved)))
(dolist (urf byte-compile-unresolved-functions)
(let ((f (car urf)))
(when (not (memq f byte-compile-new-defuns))
(let ((byte-compile-last-position (cadr urf)))
(byte-compile-warn
(if (fboundp f) "the function `%s' might not be defined at runtime." "the function `%s' is not known to be defined.")
(car urf))))))))
nil)
@ -5006,10 +4975,10 @@ binding slots have been popped."
(byte-compile-push-constant op)
(byte-compile-form fun)
(byte-compile-form prop)
(let* ((fun (eval fun))
(prop (eval prop))
(let* ((fun (eval fun t))
(prop (eval prop t))
(val (if (macroexp-const-p val)
(eval val)
(eval val t)
(byte-compile-lambda (cadr val)))))
(push `(,fun
. (,prop ,val ,@(alist-get fun overriding-plist-environment)))

View file

@ -1976,7 +1976,8 @@ a `let' form, except that the list of symbols can be computed at run-time."
(,binds ()))
(while ,syms
(push (list (pop ,syms) (list 'quote (pop ,vals))) ,binds))
(eval (list 'let ,binds (list 'funcall (list 'quote ,bodyfun))))))))
(eval (list 'let (nreverse ,binds)
(list 'funcall (list 'quote ,bodyfun))))))))
(defconst cl--labels-magic (make-symbol "cl--labels-magic"))

View file

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

View file

@ -207,6 +207,7 @@ If EXP fails to match any of the patterns in CASES, an error is signaled."
(pcase--dontwarn-upats (cons x pcase--dontwarn-upats)))
(pcase--expand
;; FIXME: Could we add the FILE:LINE data in the error message?
;; FILE is available from `macroexp-file-name'.
exp (append cases `((,x (error "No clause matching `%S'" ,x)))))))
;;;###autoload
@ -320,34 +321,46 @@ of the elements of LIST is performed as if by `pcase-let'.
(defun pcase--trivial-upat-p (upat)
(and (symbolp upat) (not (memq upat pcase--dontcare-upats))))
(defun pcase--expand (exp cases)
;; (message "pid=%S (pcase--expand %S ...hash=%S)"
;; (emacs-pid) exp (sxhash cases))
(defun pcase-compile-patterns (exp cases)
"Compile the set of patterns in CASES.
EXP is the expression that will be matched against the patterns.
CASES is a list of elements (PAT . CODEGEN)
where CODEGEN is a function that returns the code to use when
PAT matches. That code has to be in the form of a cons cell.
CODEGEN will be called with at least 2 arguments, VARVALS and COUNT.
VARVALS is a list of elements of the form (VAR VAL . RESERVED) where VAR
is a variable bound by the pattern and VAL is a duplicable expression
that returns the value this variable should be bound to.
If the pattern PAT uses `or', CODEGEN may be called multiple times,
in which case it may want to generate the code differently to avoid
a potential code explosion. For this reason the COUNT argument indicates
how many time this CODEGEN is called."
(macroexp-let2 macroexp-copyable-p val exp
(let* ((defs ())
(seen '())
(let* ((seen '())
(phcounter 0)
(main
(pcase--u
(mapcar
(lambda (case)
`(,(pcase--match val (pcase--macroexpand (car case)))
,(lambda (vars)
(let ((prev (assq case seen))
(code (cdr case)))
(let ((prev (assq case seen)))
(unless prev
;; Keep track of the cases that are used.
(push (setq prev (list case)) seen))
(if (member code '(nil (nil))) nil
;; Put `code' in the cdr just so that not all
;; branches look identical (to avoid things like
;; `macroexp--if' optimizing them too optimistically).
(let ((ph (list 'pcase--placeholder code)))
(setcdr prev (cons (cons vars ph) (cdr prev)))
ph))))))
;; Put a counter in the cdr just so that not
;; all branches look identical (to avoid things
;; like `macroexp--if' optimizing them too
;; optimistically).
(let ((ph (cons 'pcase--placeholder
(setq phcounter (1+ phcounter)))))
(setcdr prev (cons (cons vars ph) (cdr prev)))
ph)))))
cases))))
;; Take care of the place holders now.
(dolist (branch seen)
(let ((code (cdar branch))
(let ((codegen (cdar branch))
(uses (cdr branch)))
;; Find all the vars that are in scope (the union of the
;; vars provided in each use case).
@ -358,48 +371,74 @@ of the elements of LIST is performed as if by `pcase-let'.
(if vi
(if (cddr v) (setcdr vi 'used))
(push (cons (car v) (cddr v)) allvarinfo))))))
(allvars (mapcar #'car allvarinfo))
(ignores (mapcar (lambda (vi) (when (cdr vi) `(ignore ,(car vi))))
allvarinfo)))
;; Since we use a tree-based pattern matching
;; technique, the leaves (the places that contain the
;; code to run once a pattern is matched) can get
;; copied a very large number of times, so to avoid
;; code explosion, we need to keep track of how many
;; times we've used each leaf and move it
;; to a separate function if that number is too high.
(if (or (null (cdr uses)) (pcase--small-branch-p code))
(dolist (use uses)
(let ((vars (car use))
(placeholder (cdr use)))
;; (cl-assert (eq (car placeholder) 'pcase--placeholder))
(setcar placeholder 'let)
(setcdr placeholder
`(,(mapcar (lambda (v) (list v (cadr (assq v vars))))
allvars)
;; Try and silence some of the most common
;; spurious "unused var" warnings.
,@ignores
,@code))))
;; Several occurrence of this non-small branch in the output.
(let ((bsym
(make-symbol (format "pcase-%d" (length defs)))))
(push `(,bsym (lambda ,allvars ,@ignores ,@code)) defs)
(dolist (use uses)
(let ((vars (car use))
(placeholder (cdr use)))
;; (cl-assert (eq (car placeholder) 'pcase--placeholder))
(setcar placeholder 'funcall)
(setcdr placeholder
`(,bsym
,@(mapcar (lambda (v) (cadr (assq v vars)))
allvars))))))))))
(allvars (mapcar #'car allvarinfo)))
(dolist (use uses)
(let* ((vars (car use))
(varvals
(mapcar (lambda (v)
`(,v ,(cadr (assq v vars))
,(cdr (assq v allvarinfo))))
allvars))
(placeholder (cdr use))
(code (funcall codegen varvals (length uses))))
;; (cl-assert (eq (car placeholder) 'pcase--placeholder))
(setcar placeholder (car code))
(setcdr placeholder (cdr code)))))))
(dolist (case cases)
(unless (or (assq case seen)
(memq (car case) pcase--dontwarn-upats))
(message "pcase pattern %S shadowed by previous pcase pattern"
(car case))))
(macroexp-let* defs main))))
(setq main
(macroexp-warn-and-return
(format "pcase pattern %S shadowed by previous pcase pattern"
(car case))
main))))
main)))
(defun pcase--expand (exp cases)
;; (message "pid=%S (pcase--expand %S ...hash=%S)"
;; (emacs-pid) exp (sxhash cases))
(let* ((defs ())
(codegen
(lambda (code)
(if (member code '(nil (nil) ('nil)))
(lambda (&rest _) ''nil)
(let ((bsym ()))
(lambda (varvals count &rest _)
(let* ((ignored-vars
(delq nil (mapcar (lambda (vv) (if (nth 2 vv) (car vv)))
varvals)))
(ignores (if ignored-vars
`((ignore . ,ignored-vars)))))
;; Since we use a tree-based pattern matching
;; technique, the leaves (the places that contain the
;; code to run once a pattern is matched) can get
;; copied a very large number of times, so to avoid
;; code explosion, we need to keep track of how many
;; times we've used each leaf and move it
;; to a separate function if that number is too high.
(if (or (< count 2) (pcase--small-branch-p code))
`(let ,(mapcar (lambda (vv) (list (car vv) (cadr vv)))
varvals)
;; Try and silence some of the most common
;; spurious "unused var" warnings.
,@ignores
,@code)
;; Several occurrence of this non-small branch in
;; the output.
(unless bsym
(setq bsym (make-symbol
(format "pcase-%d" (length defs))))
(push `(,bsym (lambda ,(mapcar #'car varvals)
,@ignores ,@code))
defs))
`(funcall ,bsym ,@(mapcar #'cadr varvals)))))))))
(main
(pcase-compile-patterns
exp
(mapcar (lambda (case)
(cons (car case) (funcall codegen (cdr case))))
cases))))
(macroexp-let* defs main)))
(defun pcase--macroexpand (pat)
"Expands all macro-patterns in PAT."

View file

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

View file

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

View file

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

View file

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

View file

@ -105,18 +105,19 @@ longer than `erc-fill-column'."
"Flag indicating whether nicks should be buttonized or not."
:type 'boolean)
(defcustom erc-button-rfc-url "http://www.faqs.org/rfcs/rfc%s.html"
"URL used to browse rfc references.
(defcustom erc-button-rfc-url "https://tools.ietf.org/html/rfc%s"
"URL used to browse RFC references.
%s is replaced by the number."
:type 'string)
:type 'string
:version "28.1")
(define-obsolete-variable-alias 'erc-button-google-url
'erc-button-search-url "27.1")
(defcustom erc-button-search-url "http://duckduckgo.com/?q=%s"
(defcustom erc-button-search-url "https://duckduckgo.com/?q=%s"
"URL used to search for a term.
%s is replaced by the search string."
:version "27.1"
:version "28.1"
:type 'string)
(defcustom erc-button-alist

View file

@ -40,8 +40,8 @@
;; disable this module, it will continue removing message flags, but the
;; unidentified nickname prefix will not be added to messages.
;; Visit <http://freenode.net/faq.shtml#spoofing> and
;; <http://freenode.net/faq.shtml#registering> to find further
;; Visit <https://freenode.net/kb/answer/cloaks> and
;; <https://freenode.net/kb/answer/registration> to find further
;; explanations of this capability.
;; From freenode.net's web site (not there anymore) on how to mark

View file

@ -3389,7 +3389,7 @@ to send.
If only one word is given, display the mode of that target.
A list of valid mode strings for Freenode may be found at
URL `http://freenode.net/using_the_network.shtml'."
URL `https://freenode.net/kb/all'."
(cond
((string-match "^\\s-\\(.*\\)$" line)
(let ((s (match-string 1 line)))

View file

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

View file

@ -23,14 +23,6 @@
;;; Code:
;; Unused.
;; (defgroup eshell-opt nil
;; "The options processing code handles command argument parsing for
;; Eshell commands implemented in Lisp."
;; :tag "Command options processing"
;; :group 'eshell)
;;; User Functions:
;; Macro expansion of eshell-eval-using-options refers to eshell-stringify-list

View file

@ -1259,7 +1259,15 @@ of a global face. Value is the new attribute value."
(or (car (rassoc old-value valid))
(format "%s" old-value))))
(setq new-value
(face-read-string face default attribute-name valid))
(if (memq attribute '(:foreground :background))
(let ((color
(read-color
(format-prompt "%s for face `%s'"
default attribute-name face))))
(if (equal (string-trim color) "")
default
color))
(face-read-string face default attribute-name valid)))
(if (equal new-value default)
;; Nothing changed, so don't bother with all the stuff
;; below. In particular, this avoids a non-tty color

View file

@ -699,13 +699,14 @@ will not be changed."
(copy-tree connection-local-variables-alist)))
(hack-local-variables-apply)))
(defsubst connection-local-criteria-for-default-directory ()
"Return a connection-local criteria, which represents `default-directory'."
(defsubst connection-local-criteria-for-default-directory (&optional application)
"Return a connection-local criteria, which represents `default-directory'.
If APPLICATION is nil, the symbol `tramp' is used."
(when (file-remote-p default-directory)
`(:application tramp
:protocol ,(file-remote-p default-directory 'method)
:user ,(file-remote-p default-directory 'user)
:machine ,(file-remote-p default-directory 'host))))
`(:application ,(or application 'tramp)
:protocol ,(file-remote-p default-directory 'method)
:user ,(file-remote-p default-directory 'user)
:machine ,(file-remote-p default-directory 'host))))
;;;###autoload
(defmacro with-connection-local-variables (&rest body)

View file

@ -423,7 +423,7 @@ FILE should be in a form suitable for passing to `locate-library'."
(defun finder-mouse-select (event)
"Select item in a Finder buffer with the mouse."
(interactive "e" finder-mode)
(interactive "e")
(with-current-buffer (window-buffer (posn-window (event-start event)))
(goto-char (posn-point (event-start event)))
(finder-select)))

View file

@ -747,13 +747,17 @@ to write these unknown annotations back into the file."
(if (numberp val) ; add to ambient value if numeric
(format-property-increment-region from to prop val 0)
(put-text-property
from to prop
(cond ((get prop 'format-list-valued) ; value gets consed onto
; list-valued properties
(let ((prev (get-text-property from prop)))
(cons val (if (listp prev) prev (list prev)))))
(t val))))) ; normally, just set to val.
;; Kludge alert: ignore items with reversed order of
;; FROM and TO. They seem to be redundant anyway, and
;; in one case I've seen them refer to EOB.
(when (<= from to)
(put-text-property
from to prop
(cond ((get prop 'format-list-valued) ; value gets consed onto
; list-valued properties
(let ((prev (get-text-property from prop)))
(cons val (if (listp prev) prev (list prev)))))
(t val)))))) ; normally, just set to val.
(setq todo (cdr todo)))
(if unknown-ans

View file

@ -1,4 +0,0 @@
((emacs-lisp-mode . ((show-trailing-whitespace . t))))
;; Local Variables:
;; no-byte-compile: t
;; End:

View file

@ -971,7 +971,7 @@ see http://www.cs.indiana.edu/picons/ftp/index.html"
:version "22.1"
:type '(repeat directory)
:link '(url-link :tag "download"
"http://www.cs.indiana.edu/picons/ftp/index.html")
"http://www.cs.indiana.edu/picons/ftp/index.html")
:link '(custom-manual "(gnus)Picons")
:group 'gnus-picon)

View file

@ -5977,14 +5977,15 @@ If SELECT-ARTICLES, only select those articles from GROUP."
(input
(read-string
(if only-read-p
(format
"How many articles from %s (available %d, default %d): "
(gnus-group-real-name gnus-newsgroup-name)
number default)
(format
"How many articles from %s (%d default): "
(gnus-group-real-name gnus-newsgroup-name)
default))
(format-prompt
"How many articles from %s (available %d)"
default
(gnus-group-real-name gnus-newsgroup-name)
number)
(format-prompt
"How many articles from %s"
default
(gnus-group-real-name gnus-newsgroup-name)))
nil
nil
(number-to-string default))))
@ -9514,11 +9515,9 @@ If BACKWARD, search backward instead."
(interactive
(list
(read-string
(format "Search article %s (regexp%s): "
(if current-prefix-arg "backward" "forward")
(if gnus-last-search-regexp
(concat ", default " gnus-last-search-regexp)
"")))
(format-prompt "Search article %s (regexp)"
gnus-last-search-regexp
(if current-prefix-arg "backward" "forward")))
current-prefix-arg)
gnus-summary-mode)
(if (string-equal regexp "")
@ -9537,10 +9536,8 @@ If BACKWARD, search backward instead."
(interactive
(list
(read-string
(format "Search article backward (regexp%s): "
(if gnus-last-search-regexp
(concat ", default " gnus-last-search-regexp)
""))))
(format-prompt "Search article backward (regexp)"
gnus-last-search-regexp)))
gnus-summary-mode)
(gnus-summary-search-article-forward regexp 'backward))

View file

@ -382,7 +382,7 @@ Archives \(such as groups.google.com) respect this header."
:group 'message-various)
(defcustom message-archive-note
"X-No-Archive: Yes - save http://groups.google.com/"
"X-No-Archive: Yes - save https://groups.google.com/"
"Note to insert why you wouldn't want this posting archived.
If nil, don't insert any text in the body."
:version "22.1"

View file

@ -140,7 +140,7 @@ by default identifies the used encryption keys, giving away the
Bcc'ed identities. Clearly, this contradicts the original goal of
*blind* copies.
For an academic paper explaining the problem, see URL
`http://crypto.stanford.edu/portia/papers/bb-bcc.pdf'.
`https://crypto.stanford.edu/portia/papers/bb-bcc.pdf'.
Use this variable to specify e-mail addresses whose owners do not
mind if they are identifiable as recipients. This may be useful if
you use Bcc headers to encrypt e-mails to yourself."

View file

@ -21,7 +21,7 @@
;;; Commentary:
;; Maildir format is documented at <URL:http://cr.yp.to/proto/maildir.html>.
;; Maildir format is documented at <URL:https://cr.yp.to/proto/maildir.html>.
;; nnmaildir also stores extra information in the .nnmaildir/ directory
;; within a maildir.
;;

View file

@ -930,60 +930,7 @@ Use Mark Pilgrim's `ultra-liberal rss locator'."
(setq rss-link (nnrss-rss-title-description
rss-ns href-data (car hrefs))))
(setq hrefs (cdr hrefs)))))
(if rss-link
rss-link
;; 4. check syndic8
(nnrss-find-rss-via-syndic8 url))))))))
(declare-function xml-rpc-method-call "ext:xml-rpc"
(server-url method &rest params))
(defun nnrss-find-rss-via-syndic8 (url)
"Query syndic8 for the rss feeds it has for URL."
(if (not (locate-library "xml-rpc"))
(progn
(message "XML-RPC is not available... not checking Syndic8.")
nil)
(require 'xml-rpc)
(let ((feedid (xml-rpc-method-call
"http://www.syndic8.com/xmlrpc.php"
'syndic8.FindSites
url)))
(when feedid
(let* ((feedinfo (xml-rpc-method-call
"http://www.syndic8.com/xmlrpc.php"
'syndic8.GetFeedInfo
feedid))
(urllist
(delq nil
(mapcar
(lambda (listinfo)
(if (string-equal
(cdr (assoc "status" listinfo))
"Syndicated")
(cons
(cdr (assoc "sitename" listinfo))
(list
(cons 'title
(cdr (assoc
"sitename" listinfo)))
(cons 'href
(cdr (assoc
"dataurl" listinfo)))))))
feedinfo))))
(if (not (> (length urllist) 1))
(cdar urllist)
(let ((completion-ignore-case t)
(selection
(mapcar (lambda (listinfo)
(cons (cdr (assoc "sitename" listinfo))
(string-to-number
(cdr (assoc "feedid" listinfo)))))
feedinfo)))
(cdr (assoc
(gnus-completing-read
"Multiple feeds found. Select one"
selection t) urllist)))))))))
rss-link))))))
(defun nnrss-rss-p (data)
"Test if DATA is an RSS feed.
@ -1022,6 +969,11 @@ prefix), return the prefix."
(concat ns ":")
ns)))
(defun nnrss-find-rss-via-syndic8 (_url)
"This function is obsolete and does nothing. Syndic8 shut down in 2013."
(declare (obsolete nil "28.1"))
nil)
(provide 'nnrss)
;;; nnrss.el ends here

View file

@ -42,7 +42,7 @@
;; reflect this.
;;
;; The home of this file is in Gnus, but also available from
;; http://josefsson.org/smime.html.
;; https://josefsson.org/smime.html.
;;; Quick introduction:

View file

@ -1,4 +1,4 @@
;;; help-at-pt.el --- local help through the keyboard
;;; help-at-pt.el --- local help through the keyboard -*- lexical-binding: t -*-
;; Copyright (C) 2003-2021 Free Software Foundation, Inc.
@ -42,9 +42,6 @@
;;
;; (global-set-key [C-tab] 'scan-buf-next-region)
;; (global-set-key [C-M-tab] 'scan-buf-previous-region)
;;
;; You do not have to do anything special to use the functionality
;; provided by this file, because all important functions autoload.
;;; Code:

View file

@ -1,4 +1,4 @@
;;; iimage.el --- Inline image minor mode.
;;; iimage.el --- Inline image minor mode. -*- lexical-binding: t -*-
;; Copyright (C) 2004-2021 Free Software Foundation, Inc.
@ -51,8 +51,7 @@
(defcustom iimage-mode-image-search-path nil
"List of directories to search for image files for iimage-mode."
:type '(choice (const nil) (repeat directory))
:group 'iimage)
:type '(choice (const nil) (repeat directory)))
(defvar iimage-mode-image-filename-regex
(concat "[-+./_0-9a-zA-Z]+\\."
@ -74,14 +73,12 @@ Examples of image filename patterns to match:
\\=`file://foo.png\\='
\\[\\[foo.gif]]
<foo.png>
foo.JPG
"
:type '(alist :key-type regexp :value-type integer)
:group 'iimage)
foo.JPG"
:type '(alist :key-type regexp :value-type integer))
(defvar iimage-mode-map
(let ((map (make-sparse-keymap)))
(define-key map "\C-l" 'iimage-recenter)
(define-key map "\C-l" #'iimage-recenter)
map)
"Keymap used in `iimage-mode'.")

View file

@ -67,9 +67,9 @@
;;
;; * For `image-dired-get-exif-data' and `image-dired-set-exif-data' to work,
;; the command line tool `exiftool' is needed. It can be found here:
;; http://www.sno.phy.queensu.ca/~phil/exiftool/. These two functions
;; are, among other things, used for writing comments to image files
;; using `image-dired-thumbnail-set-image-description' and to create
;; https://exiftool.org/. These two functions are, among other
;; things, used for writing comments to image files using
;; `image-dired-thumbnail-set-image-description' and to create
;; "unique" file names using `image-dired-get-exif-file-name' (used by
;; `image-dired-copy-with-exif-file-name').
;;

View file

@ -43,12 +43,6 @@
;;; Code:
;; Unused.
;;; (defgroup ccl nil
;;; "CCL (Code Conversion Language) compiler."
;;; :prefix "ccl-"
;;; :group 'i18n)
(defconst ccl-command-table
[if branch loop break repeat write-repeat write-read-repeat
read read-if read-branch write call end

View file

@ -1524,7 +1524,7 @@ To deactivate it programmatically, use `deactivate-input-method'."
(interactive
(let* ((default (or (car input-method-history) default-input-method)))
(list (read-input-method-name
(if default "Select input method (default %s): " "Select input method: ")
(format-prompt "Select input method" default)
default t)
t)))
(activate-input-method input-method)
@ -1569,7 +1569,7 @@ which marks the variable `default-input-method' as set for Custom buffers."
(if (or arg (not default))
(progn
(read-input-method-name
(if default "Input method (default %s): " "Input method: " )
(format-prompt "Input method" default)
default t))
default))
(unless default-input-method
@ -1620,7 +1620,7 @@ If `default-transient-input-method' was not yet defined, prompt for it."
"Describe input method INPUT-METHOD."
(interactive
(list (read-input-method-name
"Describe input method (default current choice): ")))
(format-prompt "Describe input method" current-input-method))))
(if (and input-method (symbolp input-method))
(setq input-method (symbol-name input-method)))
(help-setup-xref (list #'describe-input-method
@ -1929,7 +1929,7 @@ runs the hook `exit-language-environment-hook'. After setting up
the new language environment, it runs `set-language-environment-hook'."
(interactive (list (read-language-name
nil
"Set language environment (default English): ")))
(format-prompt "Set language environment" "English"))))
(if language-name
(if (symbolp language-name)
(setq language-name (symbol-name language-name)))
@ -2144,7 +2144,7 @@ See `set-language-info-alist' for use in programs."
(interactive
(list (read-language-name
'documentation
"Describe language environment (default current choice): ")))
(format-prompt "Describe language environment" current-language-environment))))
(if (null language-name)
(setq language-name current-language-environment))
(if (or (null language-name)
@ -2245,7 +2245,7 @@ See `set-language-info-alist' for use in programs."
;; LANGUAGE is a language code taken from ISO 639:1988 (E/F)
;; with additions from ISO 639/RA Newsletter No.1/1989;
;; see Internet RFC 2165 (1997-06) and
;; http://www.evertype.com/standards/iso639/iso639-en.html
;; https://www.evertype.com/standards/iso639/iso639-en.html
;; TERRITORY is a country code taken from ISO 3166
;; http://www.din.de/gremien/nas/nabd/iso3166ma/codlstp1/en_listp1.html.
;; CODESET and MODIFIER are implementation-dependent.

View file

@ -41,7 +41,7 @@
;; Standards docs equivalent to iso-2022 and iso-8859 are at
;; https://www.ecma.ch/.
;; FWIW, http://www.microsoft.com/globaldev/ lists the following for
;; FWIW, https://www.microsoft.com/globaldev/ lists the following for
;; MS Windows, which are presumably the only charsets we really need
;; to worry about on such systems:
;; `OEM codepages': 437, 720, 737, 775, 850, 852, 855, 857, 858, 862, 866
@ -358,7 +358,7 @@
:code-offset #x130000
:unify-map "BIG5")
;; Fixme: AKA cp950 according to
;; <URL:http://www.microsoft.com/globaldev/reference/WinCP.asp>. Is
;; <URL:https://www.microsoft.com/globaldev/reference/WinCP.asp>. Is
;; that correct?
(define-charset 'chinese-big5-1
@ -708,7 +708,7 @@
;; Original name for cp1125, says Serhii Hlodin <hlodin@lutsk.bank.gov.ua>
(define-charset-alias 'cp866u 'cp1125)
;; Fixme: C.f. iconv, http://czyborra.com/charsets/codepages.html
;; Fixme: C.f. iconv, https://czyborra.com/charsets/codepages.html
;; shows this as not ASCII compatible, with various graphics in
;; 0x01-0x1F.
(define-charset 'cp437

View file

@ -26,7 +26,7 @@
;; This is a library for parsing and generating JSON (JavaScript Object
;; Notation).
;; Learn all about JSON here: <URL:http://json.org/>.
;; Learn all about JSON here: <URL:https://json.org/>.
;; The user-serviceable entry points for the parser are the functions
;; `json-read' and `json-read-from-string'. The encoder has a single

View file

@ -33,7 +33,7 @@
;; are converted to Unicode internally. See
;; <URL:http://www.ecma.ch/ecma1/STAND/ECMA-113.HTM>. For more info
;; on Cyrillic charsets, see
;; <URL:http://czyborra.com/charsets/cyrillic.html>. The KOI and
;; <URL:https://czyborra.com/charsets/cyrillic.html>. The KOI and
;; Alternativnyj coding systems should live in code-pages.el, but
;; they've always been preloaded and the coding system autoload
;; mechanism didn't get accepted, so they have to stay here and

View file

@ -36007,7 +36007,7 @@ Add a description of the problem and include a reproducible test case.
Feel free to send questions and enhancement requests to <reto@gnu.org>.
Official distribution is at
URL `http://www.iis.ee.ethz.ch/~zimmi/emacs/vera-mode.html'
URL `https://www.iis.ee.ethz.ch/~zimmi/emacs/vera-mode.html'
The Vera Mode Maintainer

View file

@ -35,7 +35,7 @@
"ipa-praat" "IPA" "IPAP" t
"International Phonetic Alphabet input method.
This follows the input method of the phonetic analysis program
Praat (http://www.fon.hum.uva.nl/praat/).
Praat (https://www.fon.hum.uva.nl/praat/).
* Vowels

View file

@ -336,12 +336,12 @@ exchange in environments where Unicode is not available. This input method
uses this transliteration to allow you to produce the IPA in your editor
with a keyboard that's limited to ASCII.
See http://www.phon.ucl.ac.uk/home/sampa/ipasam-x.pdf for a full definition
See https://www.phon.ucl.ac.uk/home/sampa/ipasam-x.pdf for a full definition
of the mapping.")
(quail-define-rules
;; Table taken from https://en.wikipedia.org/wiki/X-SAMPA, checked with
;; http://www.phon.ucl.ac.uk/home/sampa/ipasam-x.pdf
;; https://www.phon.ucl.ac.uk/home/sampa/ipasam-x.pdf
("d`" "ɖ") ;; Voiced retroflex plosive U+0256
("g" "ɡ") ;; Voiced velar plosive U+0261

View file

@ -744,7 +744,7 @@ Doubling the postfix separates the letter and postfix: e.g. a\\='\\=' -> a\\='
;;; correctly on most displays.
;;; This reference is an authoritative guide to Hawaiian orthography:
;;; http://www2.hawaii.edu/~strauch/tips/HawaiianOrthography.html
;;; https://www2.hawaii.edu/~strauch/tips/HawaiianOrthography.html
;;; Initial coding 2018-09-08 Bob Newell, Honolulu, Hawaiʻi
;;; Comments to bobnewell@bobnewell.net

View file

@ -1294,7 +1294,7 @@ of characters from a single Latin-N charset.
;;; correctly on most displays.
;;; This reference is an authoritative guide to Hawaiian orthography:
;;; http://www2.hawaii.edu/~strauch/tips/HawaiianOrthography.html
;;; https://www2.hawaii.edu/~strauch/tips/HawaiianOrthography.html
;;; Initial coding 2018-09-08 Bob Newell, Honolulu, Hawaiʻi
;;; Comments to bobnewell@bobnewell.net

View file

@ -24,7 +24,7 @@
;;; Commentary:
;;; This file provides an input method for the programmers Dvorak keyboard
;;; layout by Roland Kaufman (<http://www.kaufmann.no/roland/dvorak/>).
;;; layout by Roland Kaufman (<https://www.kaufmann.no/roland/dvorak/>).
;;; Code:

View file

@ -163,7 +163,7 @@
;; (autoload 'feedmail-buffer-to-smtpmail "feedmail" nil t)
;; (setq feedmail-buffer-eating-function 'feedmail-buffer-to-smtpmail)
;;
;; Alternatively, the FLIM <http://www.m17n.org/FLIM/> project
;; Alternatively, the FLIM <https://www.m17n.org/FLIM/> project
;; provides a library called smtp.el. If you want to use that, the above lines
;; would be:
;;

View file

@ -1,4 +1,4 @@
;;; master.el --- make a buffer the master over another buffer
;;; master.el --- make a buffer the master over another buffer -*- lexical-binding: t -*-
;; Copyright (C) 1999-2021 Free Software Foundation, Inc.
@ -23,7 +23,7 @@
;;; Commentary:
;; master-mode is a minor mode which enables you to scroll another
;; `master-mode' is a minor mode which enables you to scroll another
;; buffer (the slave) without leaving your current buffer (the master).
;; It can be used by sql.el, for example: The SQL buffer is the master
@ -47,17 +47,8 @@
;;
;; Rob Riepel <networking.stanford.edu>
;;; History:
;;
;;; Code:
;; Unused.
;;; (defgroup master nil
;;; "Support for master/slave relationships between buffers."
;;; :version "22.1"
;;; :group 'convenience)
;; Variables that don't need initialization.
(defvar master-of nil
@ -93,7 +84,7 @@ yourself the value of `master-of' by calling `master-show-slave'."
;; Initialize Master mode by setting a slave buffer.
(defun master-set-slave (buffer)
"Makes BUFFER the slave of the current buffer.
"Make BUFFER the slave of the current buffer.
Use \\[master-mode] to toggle control of the slave buffer."
(interactive "bSlave: ")
(setq-local master-of buffer)

View file

@ -604,7 +604,7 @@ Do the same for the keys of the same name."
(define-key global-map [f20] 'clipboard-kill-region)
(define-key global-map [f16] 'clipboard-kill-ring-save)
(define-key global-map [f18] 'clipboard-yank)
;; X11R6 versions:
;; X11 versions:
(define-key global-map [cut] 'clipboard-kill-region)
(define-key global-map [copy] 'clipboard-kill-ring-save)
(define-key global-map [paste] 'clipboard-yank))

View file

@ -1,4 +1,4 @@
;;; mh-alias.el --- MH-E mail alias completion and expansion
;;; mh-alias.el --- MH-E mail alias completion and expansion -*- lexical-binding: t; -*-
;; Copyright (C) 1994-1997, 2001-2021 Free Software Foundation, Inc.
@ -42,8 +42,8 @@
"Time aliases were last loaded.")
(defvar mh-alias-read-address-map
(let ((map (copy-keymap minibuffer-local-completion-map)))
(define-key map "," 'mh-alias-minibuffer-confirm-address)
(define-key map " " 'self-insert-command)
(define-key map "," #'mh-alias-minibuffer-confirm-address)
(define-key map " " #'self-insert-command)
map))
(defcustom mh-alias-system-aliases
@ -270,9 +270,9 @@ Blind aliases or users from /etc/passwd are not expanded."
(t (split-string
(completing-read prompt mh-alias-alist nil nil) ",")))))
(if (not mh-alias-expand-aliases-flag)
(mapconcat 'identity the-answer ", ")
(mapconcat #'identity the-answer ", ")
;; Loop over all elements, checking if in passwd alias or blind first
(mapconcat 'mh-alias-expand the-answer ",\n ")))))
(mapconcat #'mh-alias-expand the-answer ",\n ")))))
;;;###mh-autoload
(defun mh-alias-minibuffer-confirm-address ()
@ -427,10 +427,10 @@ contains it."
(if (or (not alias)
(string-equal alias (mh-alias-ali alias))) ;alias doesn't exist
(completing-read "Alias file: "
(mapcar 'list mh-alias-insert-file) nil t)
(mapcar #'list mh-alias-insert-file) nil t)
(or (mh-alias-which-file-has-alias alias mh-alias-insert-file)
(completing-read "Alias file: "
(mapcar 'list mh-alias-insert-file) nil t)))))
(mapcar #'list mh-alias-insert-file) nil t)))))
((and mh-alias-insert-file (stringp mh-alias-insert-file))
mh-alias-insert-file)
(t
@ -449,11 +449,10 @@ set `mh-alias-insert-file' or the \"Aliasfile:\" profile component"))
(car autolist))
((or (not alias)
(string-equal alias (mh-alias-ali alias))) ;alias doesn't exist
(completing-read "Alias file: " (mapcar 'list autolist) nil t))
(completing-read "Alias file: " autolist nil t))
(t
(or (mh-alias-which-file-has-alias alias autolist)
(completing-read "Alias file: "
(mapcar 'list autolist) nil t))))))))
(completing-read "Alias file: " autolist nil t))))))))
;;;###mh-autoload
(defun mh-alias-address-to-alias (address)

View file

@ -1,4 +1,4 @@
;;; mh-buffers.el --- MH-E buffer constants and utilities
;;; mh-buffers.el --- MH-E buffer constants and utilities -*- lexical-binding: t; -*-
;; Copyright (C) 1993, 1995, 1997, 2000-2021 Free Software Foundation,
;; Inc.

View file

@ -1,4 +1,4 @@
;;; mh-comp.el --- MH-E functions for composing and sending messages
;;; mh-comp.el --- MH-E functions for composing and sending messages -*- lexical-binding: t; -*-
;; Copyright (C) 1993, 1995, 1997, 2000-2021 Free Software Foundation,
;; Inc.
@ -719,12 +719,14 @@ message and scan line."
(mh-insert-fields field value)))))
(mh-components-to-list components-file))
(delete-file components-file))
(mh-insert-fields "Resent-To:" (mapconcat 'identity (list to comp-to) ", ")
"Resent-Cc:" (mapconcat 'identity (list cc comp-cc) ", ")
"Resent-Fcc:" (mapconcat 'identity (list fcc
comp-fcc) ", ")
"Resent-Bcc:" (mapconcat 'identity (list bcc
comp-bcc) ", ")
(mh-insert-fields "Resent-To:" (mapconcat #'identity (list to comp-to)
", ")
"Resent-Cc:" (mapconcat #'identity (list cc comp-cc)
", ")
"Resent-Fcc:" (mapconcat #'identity (list fcc comp-fcc)
", ")
"Resent-Bcc:" (mapconcat #'identity (list bcc comp-bcc)
", ")
"Resent-From:" from)
(save-buffer)
(message "Redistributing...")
@ -1096,7 +1098,7 @@ letter."
(setq mode-line-buffer-identification (list " {%b}"))
(mh-logo-display)
(mh-make-local-hook 'kill-buffer-hook)
(add-hook 'kill-buffer-hook 'mh-tidy-draft-buffer nil t)
(add-hook 'kill-buffer-hook #'mh-tidy-draft-buffer nil t)
(run-hook-with-args 'mh-compose-letter-function to subject cc))
(defun mh-insert-x-mailer ()
@ -1165,7 +1167,7 @@ This should be the last function called when composing the draft."
MSG can be a message number, a list of message numbers, or a sequence.
The hook `mh-annotate-msg-hook' is run after annotating; see its
documentation for variables it can use."
(apply 'mh-exec-cmd "anno" folder
(apply #'mh-exec-cmd "anno" folder
(if (listp msg) (append msg args) (cons msg args)))
(save-excursion
(cond ((get-buffer folder) ; Buffer may be deleted

View file

@ -42,7 +42,7 @@
(eval-when-compile (require 'mh-acros))
(mh-do-in-gnu-emacs
(defalias 'mh-require 'require))
(defalias 'mh-require #'require))
(mh-do-in-xemacs
(defun mh-require (feature &optional filename noerror)

View file

@ -522,7 +522,7 @@ parsed by MH-E."
(let* ((initial-size (mh-truncate-log-buffer))
(start (point))
(args (mh-list-to-string args)))
(apply 'call-process (expand-file-name command mh-progs) nil t nil args)
(apply #'call-process (expand-file-name command mh-progs) nil t nil args)
(when (> (buffer-size) initial-size)
(save-excursion
(goto-char start)
@ -560,7 +560,7 @@ ARGS are passed to COMMAND as command line arguments."
(with-current-buffer (get-buffer-create mh-log-buffer)
(mh-truncate-log-buffer))
(let* ((process-connection-type nil)
(process (apply 'start-process
(process (apply #'start-process
command nil
(expand-file-name command mh-progs)
(mh-list-to-string args))))
@ -602,7 +602,7 @@ RAISE-ERROR is non-nil, in which case an error is signaled if
(set-buffer (get-buffer-create mh-temp-buffer))
(erase-buffer)
(let ((value
(apply 'call-process
(apply #'call-process
(expand-file-name command mh-progs) nil t nil
args)))
(goto-char (point-min))
@ -616,7 +616,7 @@ Put the output into buffer after point.
Set mark after inserted text.
Output is expected to be shown to user, not parsed by MH-E."
(push-mark (point) t)
(apply 'call-process
(apply #'call-process
(expand-file-name command mh-progs) nil t display
(mh-list-to-string args))
@ -650,7 +650,7 @@ preserves whether the mark is active or not."
"Execute MH library command COMMAND with ARGS.
Put the output into buffer after point.
Set mark after inserted text."
(apply 'mh-exec-cmd-output (expand-file-name command mh-lib-progs) nil args))
(apply #'mh-exec-cmd-output (expand-file-name command mh-lib-progs) nil args))
(defun mh-handle-process-error (command status)
"Raise error if COMMAND returned non-zero STATUS, otherwise return STATUS."
@ -974,7 +974,7 @@ necessary and can actually cause problems."
:set (lambda (symbol value)
(set-default symbol value) ;Done in mh-variant-set-variant!
(mh-variant-set value))
:initialize 'custom-initialize-default
:initialize #'custom-initialize-default
:group 'mh-e
:package-version '(MH-E . "8.0"))
@ -1548,7 +1548,7 @@ as the result is undefined."
'(radio)
(mapcar
(lambda (arg) `(const ,arg))
(mapcar 'car mh-identity-list))))
(mapcar #'car mh-identity-list))))
(cons :tag "Fcc Field"
(const "fcc")
(string :tag "Value"))
@ -1575,7 +1575,7 @@ See `mh-identity-list'."
'(radio)
(cons '(const :tag "None" nil)
(mapcar (lambda (arg) `(const ,arg))
(mapcar 'car mh-identity-list))))
(mapcar #'car mh-identity-list))))
:group 'mh-identity
:package-version '(MH-E . "7.1"))
@ -1744,7 +1744,7 @@ bogofilter, then you can set this option to \"Bogofilter\"."
(const :tag "SpamAssassin" spamassassin)
(const :tag "Bogofilter" bogofilter)
(const :tag "SpamProbe" spamprobe))
:set 'mh-junk-choose
:set #'mh-junk-choose
:group 'mh-junk
:package-version '(MH-E . "7.3"))
@ -1907,7 +1907,7 @@ white image, can be generated using the \"compface\" command (see URL
`ftp://ftp.cs.indiana.edu/pub/faces/compface/compface.tar.Z'). The
\"Online X-Face Converter\" is a useful resource for quick conversion
of images into \"X-Face:\" header fields (see URL
`http://www.dairiki.org/xface/').
`https://www.dairiki.org/xface/').
Use the \"make-face\" script to convert a JPEG image to the higher
resolution, color, \"Face:\" header field (see URL
@ -2005,7 +2005,7 @@ call `mh-set-cmd-note' with the width specified by your format file
you would use \"(mh-set-cmd-note 4)\"."
:type 'boolean
:group 'mh-scan-line-formats
:set 'mh-adaptive-cmd-note-flag-check
:set #'mh-adaptive-cmd-note-flag-check
:package-version '(MH-E . "7.0"))
(defun mh-scan-format-file-check (symbol value)
@ -2044,7 +2044,7 @@ Emacs start with 0)."
(const :tag "Use Default scan Format" nil)
(file :tag "Specify a scan Format File"))
:group 'mh-scan-line-formats
:set 'mh-scan-format-file-check
:set #'mh-scan-format-file-check
:package-version '(MH-E . "6.0"))
(defun mh-adaptive-cmd-note-flag-check (symbol value)
@ -2466,9 +2466,9 @@ of citations entirely, choose \"None\"."
"Disposition-Notification-Options:" ; RFC 2298
"Disposition-Notification-To:" ; RFC 2298
"Distribution:" ; RFC 1036
"DKIM-" ; http://antispam.yahoo.com/domainkeys
"DKIM-" ; https://en.wikipedia.org/wiki/DomainKeys_Identified_Mail
"DL-Expansion-History:" ; RFC 2156
"DomainKey-" ; http://antispam.yahoo.com/domainkeys
"DomainKey-" ; https://en.wikipedia.org/wiki/DomainKeys_Identified_Mail
"DomainKey-Signature:"
"Encoding:" ; RFC 1505
"Envelope-to:"
@ -2555,7 +2555,7 @@ of citations entirely, choose \"None\"."
"X-Abuse-Info:"
"X-Accept-Language:" ; Netscape/Mozilla
"X-Ack:"
"X-ACL-Warn:" ; http://www.exim.org
"X-ACL-Warn:" ; https://www.exim.org
"X-Admin:" ; https://people.dsv.su.se/~jpalme/ietf/mail-headers/
"X-Administrivia-To:"
"X-AMAZON" ; Amazon.com
@ -2579,8 +2579,8 @@ of citations entirely, choose \"None\"."
"X-BFI:"
"X-Bigfish:"
"X-Bogosity:" ; bogofilter
"X-BPS1:" ; http://www.boggletools.com
"X-BPS2:" ; http://www.boggletools.com
"X-BPS1:" ; http://www.boggletools.com [dead link?]
"X-BPS2:" ; http://www.boggletools.com [dead link?]
"X-Brightmail-Tracker:" ; Brightmail
"X-BrightmailFiltered:" ; Brightmail
"X-Bugzilla-" ; Bugzilla
@ -2596,12 +2596,12 @@ of citations entirely, choose \"None\"."
"X-Confirm-Reading-To:" ; https://people.dsv.su.se/~jpalme/ietf/mail-headers/
"X-Content-Filtered-By:"
"X-ContentStamp:" ; NetZero
"X-Country-Chain:" ; http://www.declude.com/x-note.htm
"X-Country-Chain:" ; http://www.declude.com/x-note.htm [dead link?]
"X-Cr-Hashedpuzzle:"
"X-Cr-Puzzleid:"
"X-Cron-Env:"
"X-DCC-" ; SpamAssassin
"X-Declude-" ; http://www.declude.com/x-note.htm
"X-Declude-" ; http://www.declude.com/x-note.htm [dead link?]
"X-Dedicated:"
"X-Delivered"
"X-Destination-ID:"
@ -2616,7 +2616,7 @@ of citations entirely, choose \"None\"."
"X-EID:"
"X-ELNK-Trace:" ; Earthlink mailer
"X-EM-" ; Some ecommerce software
"X-Email-Type-Id:" ; Paypal http://www.paypal.com
"X-Email-Type-Id:" ; Paypal https://www.paypal.com
"X-Enigmail-Version:"
"X-Envelope-Date:" ; GNU mailutils
"X-Envelope-From:" ; https://people.dsv.su.se/~jpalme/ietf/mail-headers/
@ -2632,21 +2632,21 @@ of citations entirely, choose \"None\"."
"X-Folder:" ; Spam
"X-Forwarded-" ; Google+
"X-From-Line"
"X-FuHaFi:" ; http://www.gmx.net/
"X-FuHaFi:" ; https://www.gmx.net/
"X-Generated-By:" ; launchpad.net
"X-Gmail-" ; Gmail
"X-Gnus-Mail-Source:" ; gnus
"X-Google-" ; Google mail
"X-Google-Sender-Auth:"
"X-Greylist:" ; milter-greylist-1.2.1
"X-Habeas-" ; http://www.returnpath.net
"X-Habeas-" ; https://www.returnpath.net
"X-Hashcash:" ; hashcash
"X-Headers-End:" ; SpamCop
"X-HPL-"
"X-HR-"
"X-HTTP-UserAgent:"
"X-Hz" ; Hertz
"X-Identity:" ; http://www.declude.com/x-note.htm
"X-Identity:" ; http://www.declude.com/x-note.htm [dead link?]
"X-IEEE-UCE-" ; IEEE spam filter
"X-Image-URL:"
"X-IMAP:" ; https://people.dsv.su.se/~jpalme/ietf/mail-headers/
@ -2667,7 +2667,7 @@ of citations entirely, choose \"None\"."
"X-Loop:" ; https://people.dsv.su.se/~jpalme/ietf/mail-headers/
"X-Lrde-Mailscanner:"
"X-Lumos-SenderID:" ; Roving ConstantContact
"X-mail_abuse_inquiries:" ; http://www.salesforce.com
"X-mail_abuse_inquiries:" ; https://www.salesforce.com
"X-Mail-from:" ; fastmail.fm
"X-MAIL-INFO:" ; NetZero
"X-Mailer_"
@ -2680,11 +2680,11 @@ of citations entirely, choose \"None\"."
"X-Mailutils-Message-Id" ; GNU Mailutils
"X-Majordomo:" ; Majordomo mailing list manager
"X-Match:"
"X-MaxCode-Template:" ; Paypal http://www.paypal.com
"X-MaxCode-Template:" ; Paypal https://www.paypal.com
"X-MB-Message-" ; AOL WebMail
"X-MDaemon-Deliver-To:"
"X-MDRemoteIP:"
"X-ME-Bayesian:" ; http://www.newmediadevelopment.net/page.cfm/parent/Client-Area/content/Managing-spam/
"X-ME-Bayesian:" ; https://www.newmediadevelopment.net/page.cfm/parent/Client-Area/content/Managing-spam/
"X-Message-Id"
"X-Message-Type:"
"X-MessageWall-Score:" ; Unknown mailing list manager, AUC TeX
@ -2755,7 +2755,7 @@ of citations entirely, choose \"None\"."
"X-Server-Date:"
"X-Server-Uuid:"
"X-Service-Code:"
"X-SFDC-" ; http://www.salesforce.com
"X-SFDC-" ; https://www.salesforce.com
"X-Sieve:" ; Sieve filtering
"X-SMFBL:"
"X-SMHeaderMap:"
@ -2770,7 +2770,7 @@ of citations entirely, choose \"None\"."
"X-Submissions-To:"
"X-Sun-Charset:"
"X-Telecom-Digest"
"X-TM-IMSS-Message-ID:" ; http://www.trendmicro.com
"X-TM-IMSS-Message-ID:" ; https://www.trendmicro.com
"X-Trace:"
"X-UID"
"X-UIDL:" ; https://people.dsv.su.se/~jpalme/ietf/mail-headers/
@ -2790,10 +2790,10 @@ of citations entirely, choose \"None\"."
"X-WebTV-Signature:"
"X-Wss-Id:" ; Worldtalk gateways
"X-X-Sender:" ; https://people.dsv.su.se/~jpalme/ietf/mail-headers/
"X-XPT-XSL-Name:" ; Paypal http://www.paypal.com
"X-XPT-XSL-Name:" ; Paypal https://www.paypal.com
"X-xsi-"
"X-XWALL-" ; http://www.dataenter.co.at/doc/xwall_undocumented_config.htm
"X-Y-GMX-Trusted:" ; http://www.gmx.net/
"X-XWALL-" ; https://www.dataenter.co.at/doc/xwall_undocumented_config.htm
"X-Y-GMX-Trusted:" ; https://www.gmx.net/
"X-Yahoo"
"X-Yahoo-Newman-"
"X-YMail-"
@ -3039,7 +3039,7 @@ XEmacs. For more information, see URL
`ftp://ftp.cs.indiana.edu/pub/faces/compface/compface.tar.z'). Recent
versions of XEmacs have internal support for \"X-Face:\" images. If
your version of XEmacs does not, then you'll need both \"uncompface\"
and the x-face package (see URL `http://www.jpl.org/ftp/pub/elisp/').
and the x-face package (see URL `https://www.jpl.org/ftp/pub/elisp/').
Finally, MH-E will display images referenced by the \"X-Image-URL:\"
header field if neither the \"Face:\" nor the \"X-Face:\" fields are

View file

@ -1,4 +1,4 @@
;;; mh-folder.el --- MH-Folder mode
;;; mh-folder.el --- MH-Folder mode -*- lexical-binding: t; -*-
;; Copyright (C) 2002-2003, 2005-2021 Free Software Foundation, Inc.
@ -209,10 +209,10 @@ annotation.")
;; Use defalias to make sure the documented primary key bindings
;; appear in menu lists.
(defalias 'mh-alt-show 'mh-show)
(defalias 'mh-alt-refile-msg 'mh-refile-msg)
(defalias 'mh-alt-send 'mh-send)
(defalias 'mh-alt-visit-folder 'mh-visit-folder)
(defalias 'mh-alt-show #'mh-show)
(defalias 'mh-alt-refile-msg #'mh-refile-msg)
(defalias 'mh-alt-send #'mh-send)
(defalias 'mh-alt-visit-folder #'mh-visit-folder)
;; Save the "b" binding for a future `back'. Maybe?
(gnus-define-keys mh-folder-mode-map
@ -650,11 +650,11 @@ perform the operation on all messages in that region.
(auto-save-mode -1)
(setq buffer-offer-save t)
(mh-make-local-hook (mh-write-file-functions))
(add-hook (mh-write-file-functions) 'mh-execute-commands nil t)
(add-hook (mh-write-file-functions) #'mh-execute-commands nil t)
(make-local-variable 'revert-buffer-function)
(make-local-variable 'hl-line-mode) ; avoid pollution
(mh-funcall-if-exists hl-line-mode 1)
(setq revert-buffer-function 'mh-undo-folder)
(setq revert-buffer-function #'mh-undo-folder)
(add-to-list 'minor-mode-alist '(mh-showing-mode " Show"))
(mh-do-in-xemacs
(easy-menu-add mh-folder-sequence-menu)
@ -1117,7 +1117,7 @@ called interactively."
(message "Destination folder: %s" (cdr mh-last-destination)))
(t
(mh-iterate-on-range msg range
(apply 'mh-write-msg-to-file msg (cdr mh-last-destination)))
(apply #'mh-write-msg-to-file msg (cdr mh-last-destination)))
(mh-next-msg interactive-flag))))
;;;###mh-autoload
@ -1606,7 +1606,7 @@ after the commands are processed."
;; Now delete messages
(cond (mh-delete-list
(setq redraw-needed-flag t)
(apply 'mh-exec-cmd "rmm" folder
(apply #'mh-exec-cmd "rmm" folder
(mh-coalesce-msg-list mh-delete-list))
(mh-delete-scan-msgs mh-delete-list)
(setq mh-delete-list nil)))
@ -1620,8 +1620,8 @@ after the commands are processed."
;; (mh-refile-a-msg nil (intern dest))
;; (mh-delete-a-msg nil)))
(if (null dest)
(apply 'mh-exec-cmd "rmm" folder msg-list)
(apply 'mh-exec-cmd "refile" "-src" folder dest msg-list)
(apply #'mh-exec-cmd "rmm" folder msg-list)
(apply #'mh-exec-cmd "refile" "-src" folder dest msg-list)
(push dest folders-changed))
(setq redraw-needed-flag t)
(mh-delete-scan-msgs mh-blacklist)
@ -1703,7 +1703,7 @@ after the commands are processed."
(mh-recenter nil)))
;;;###mh-autoload
(defun mh-make-folder-mode-line (&optional ignored)
(defun mh-make-folder-mode-line (&optional _ignored)
"Set the fields of the mode line for a folder buffer.
The optional argument is now obsolete and IGNORED. It used to be
used to pass in what is now stored in the buffer-local variable

View file

@ -1,4 +1,4 @@
;;; mh-funcs.el --- MH-E functions not everyone will use right away
;;; mh-funcs.el --- MH-E functions not everyone will use right away -*- lexical-binding: t; -*-
;; Copyright (C) 1993, 1995, 2001-2021 Free Software Foundation, Inc.
@ -348,7 +348,7 @@ See `mh-store-msg' for a description of DIRECTORY."
(error "Error occurred during execution of %s" command)))))
;;;###mh-autoload
(defun mh-undo-folder (&rest ignored)
(defun mh-undo-folder (&rest _ignored)
"Undo all refiles and deletes in the current folder.
Arguments are IGNORED (for `revert-buffer')."
(interactive)

View file

@ -1,4 +1,4 @@
;;; mh-gnus.el --- make MH-E compatible with various versions of Gnus
;;; mh-gnus.el --- make MH-E compatible with various versions of Gnus -*- lexical-binding: t; -*-
;; Copyright (C) 2003-2004, 2006-2021 Free Software Foundation, Inc.
@ -129,7 +129,7 @@
(unless default
(setq default (mml-content-disposition type filename)))
(let ((disposition (completing-read
(format "Disposition (default %s): " default)
(format-prompt "Disposition" default)
'(("attachment") ("inline") (""))
nil t nil nil default)))
(if (not (equal disposition ""))

View file

@ -1,4 +1,4 @@
;;; mh-identity.el --- multiple identify support for MH-E
;;; mh-identity.el --- multiple identify support for MH-E -*- lexical-binding: t; -*-
;; Copyright (C) 2002-2021 Free Software Foundation, Inc.
@ -50,7 +50,7 @@ This is normally set as part of an Identity in
(defvar mh-identity-menu nil
"The Identity menu.")
(defalias 'mh-identity-make-menu-no-autoload 'mh-identity-make-menu)
(defalias 'mh-identity-make-menu-no-autoload #'mh-identity-make-menu)
;;;###mh-autoload
(defun mh-identity-make-menu ()
@ -74,7 +74,7 @@ See `mh-identity-add-menu'."
(mapcar (lambda (arg)
`[,arg (mh-insert-identity ,arg) :style radio
:selected (equal mh-identity-local ,arg)])
(mapcar 'car mh-identity-list))
(mapcar #'car mh-identity-list))
'(["None"
(mh-insert-identity "None") :style radio
:selected (not mh-identity-local)]
@ -142,7 +142,7 @@ See `mh-identity-list'."
(completing-read
"Identity: "
(cons '("None")
(mapcar 'list (mapcar 'car mh-identity-list)))
(mapcar #'list (mapcar #'car mh-identity-list)))
nil t default nil default))
(if (eq identity "None")
nil
@ -171,8 +171,8 @@ See `mh-identity-list'."
"Identity: "
(if mh-identity-local
(cons '("None")
(mapcar 'list (mapcar 'car mh-identity-list)))
(mapcar 'list (mapcar 'car mh-identity-list)))
(mapcar #'list (mapcar #'car mh-identity-list)))
(mapcar #'list (mapcar #'car mh-identity-list)))
nil t)
nil))

View file

@ -1,4 +1,4 @@
;;; mh-inc.el --- MH-E "inc" and separate mail spool handling
;;; mh-inc.el --- MH-E "inc" and separate mail spool handling -*- lexical-binding: t; -*-
;; Copyright (C) 2003-2004, 2006-2021 Free Software Foundation, Inc.
@ -58,7 +58,7 @@
(mh-inc-spool-generator folder spool)
(mh-inc-spool-def-key key folder))))))
(defalias 'mh-inc-spool-make-no-autoload 'mh-inc-spool-make)
(defalias 'mh-inc-spool-make-no-autoload #'mh-inc-spool-make)
(defun mh-inc-spool-generator (folder spool)
"Create a command to inc into FOLDER from SPOOL file."

View file

@ -1,4 +1,4 @@
;;; mh-junk.el --- MH-E interface to anti-spam measures
;;; mh-junk.el --- MH-E interface to anti-spam measures -*- lexical-binding: t; -*-
;; Copyright (C) 2003-2021 Free Software Foundation, Inc.

View file

@ -1,4 +1,4 @@
;;; mh-letter.el --- MH-Letter mode
;;; mh-letter.el --- MH-Letter mode -*- lexical-binding: t; -*-
;; Copyright (C) 1993, 1995, 1997, 2000-2021 Free Software Foundation,
;; Inc.
@ -334,15 +334,15 @@ order).
;; Maybe we want to use the existing Mail menu from mail-mode in
;; 9.0; in the mean time, let's remove it since the redundancy will
;; only produce confusion.
(define-key mh-letter-mode-map [menu-bar mail] 'undefined)
(define-key mh-letter-mode-map [menu-bar mail] #'undefined)
(mh-do-in-xemacs (easy-menu-remove mail-menubar-menu))
(setq fill-column mh-letter-fill-column)
(add-hook 'completion-at-point-functions
'mh-letter-completion-at-point nil 'local)
#'mh-letter-completion-at-point nil 'local)
;; If text-mode-hook turned on auto-fill, tune it for messages
(when auto-fill-function
(make-local-variable 'auto-fill-function)
(setq auto-fill-function 'mh-auto-fill-for-letter)))
(setq auto-fill-function #'mh-auto-fill-for-letter)))
@ -390,10 +390,7 @@ This command leaves the mark before the letter and point after it."
(or mh-sent-from-msg (nth 0 (mh-translate-range folder "cur")))
(nth 0 (mh-translate-range folder "cur"))))
(message
(read-string (concat "Message number"
(or (and default
(format " (default %d): " default))
": "))
(read-string (format-prompt "Message number" default)
nil nil
(if (numberp default)
(int-to-string default)
@ -851,7 +848,7 @@ body."
(forward-line)))))
;;;###mh-autoload
(defun mh-position-on-field (field &optional ignored)
(defun mh-position-on-field (field &optional _ignored)
"Move to the end of the FIELD in the header.
Move to end of entire header if FIELD not found.
Returns non-nil if FIELD was found.

View file

@ -1,4 +1,4 @@
;;; mh-limit.el --- MH-E display limits
;;; mh-limit.el --- MH-E display limits -*- lexical-binding: t; -*-
;; Copyright (C) 2001-2003, 2006-2021 Free Software Foundation, Inc.
@ -237,7 +237,7 @@ Return number of messages put in the sequence:
(setq list (cons (mh-get-msg-num t) list)))
(if (assoc 'subject mh-seq-list) (mh-delete-seq 'subject))
;; sort the result into a sequence
(let ((sorted-list (sort (copy-sequence list) 'mh-lessp)))
(let ((sorted-list (sort (copy-sequence list) #'mh-lessp)))
(while sorted-list
(mh-add-msgs-to-seq (car sorted-list) 'subject nil)
(setq sorted-list (cdr sorted-list)))

View file

@ -1,4 +1,4 @@
;;; mh-mime.el --- MH-E MIME support
;;; mh-mime.el --- MH-E MIME support -*- lexical-binding: t; -*-
;; Copyright (C) 1993, 1995, 2001-2021 Free Software Foundation, Inc.
@ -190,9 +190,9 @@ Set from last use.")
;; XEmacs doesn't care.
(set-keymap-parent map mh-show-mode-map))
(mh-do-in-gnu-emacs
(define-key map [mouse-2] 'mh-push-button))
(define-key map [mouse-2] #'mh-push-button))
(mh-do-in-xemacs
(define-key map '(button2) 'mh-push-button))
(define-key map '(button2) #'mh-push-button))
(dolist (c mh-mime-button-commands)
(define-key map (cadr c) (car c)))
map))
@ -214,11 +214,11 @@ Set from last use.")
(let ((map (make-sparse-keymap)))
(unless (>= (string-to-number emacs-version) 21)
(set-keymap-parent map mh-show-mode-map))
(define-key map "\r" 'mh-press-button)
(define-key map "\r" #'mh-press-button)
(mh-do-in-gnu-emacs
(define-key map [mouse-2] 'mh-push-button))
(define-key map [mouse-2] #'mh-push-button))
(mh-do-in-xemacs
(define-key map '(button2) 'mh-push-button))
(define-key map '(button2) #'mh-push-button))
map))
@ -259,9 +259,7 @@ usually reads the file \"/etc/mailcap\"."
(methods (mapcar (lambda (x) (list (cdr (assoc 'viewer x))))
(mailcap-mime-info type 'all)))
(def (caar methods))
(prompt (format "Viewer%s: " (if def
(format " (default %s)" def)
"")))
(prompt (format-prompt "Viewer" def))
(method (completing-read prompt methods nil nil nil nil def))
(folder mh-show-folder-buffer)
(buffer-read-only nil))
@ -395,9 +393,9 @@ do the work."
((and (or prompt
(equal t mh-mime-save-parts-default-directory))
mh-mime-save-parts-directory)
(read-directory-name (format
"Store in directory (default %s): "
mh-mime-save-parts-directory)
(read-directory-name (format-prompt
"Store in directory"
mh-mime-save-parts-directory)
"" mh-mime-save-parts-directory t ""))
((stringp mh-mime-save-parts-default-directory)
mh-mime-save-parts-default-directory)
@ -413,7 +411,7 @@ do the work."
(cd directory)
(setq mh-mime-save-parts-directory directory)
(let ((initial-size (mh-truncate-log-buffer)))
(apply 'call-process
(apply #'call-process
(expand-file-name command mh-progs) nil t nil
(mh-list-to-string (list folder msg "-auto"
(if (not (mh-variant-p 'nmh))
@ -452,7 +450,7 @@ decoding the same message multiple times."
(let ((b (point))
(clean-message-header mh-clean-message-header-flag)
(invisible-headers mh-invisible-header-fields-compiled)
(visible-headers nil))
) ;; (visible-headers nil)
(save-excursion
(save-restriction
(narrow-to-region b b)
@ -474,7 +472,7 @@ decoding the same message multiple times."
(cond (clean-message-header
(mh-clean-msg-header (point-min)
invisible-headers
visible-headers)
nil) ;; visible-headers
(goto-char (point-min)))
(t
(mh-start-of-uncleaned-message)))
@ -1225,7 +1223,7 @@ The option `mh-compose-insertion' controls what type of tags are inserted."
t)
t t)))
(list description folder range)))
(let ((messages (mapconcat 'identity (mh-list-to-string range) " ")))
(let ((messages (mapconcat #'identity (mh-list-to-string range) " ")))
(dolist (message (mh-translate-range folder messages))
(if (equal mh-compose-insertion 'mml)
(mh-mml-forward-message description folder (format "%s" message))
@ -1258,11 +1256,7 @@ See also \\[mh-mh-to-mime]."
(interactive (list
(mml-minibuffer-read-description)
(mh-prompt-for-folder "Message from" mh-sent-from-folder nil)
(read-string (concat "Messages"
(if (numberp mh-sent-from-msg)
(format " (default %d): "
mh-sent-from-msg)
": ")))))
(read-string (format-prompt "Messages" mh-sent-from-msg))))
(beginning-of-line)
(insert "#forw [")
(and description
@ -1596,7 +1590,7 @@ the possible security methods (see `mh-mml-method-default')."
(if current-prefix-arg
(let ((def (or (car mh-mml-cryptographic-method-history)
mh-mml-method-default)))
(completing-read (format "Method (default %s): " def)
(completing-read (format-prompt "Method" def)
'(("pgp") ("pgpmime") ("smime"))
nil t nil 'mh-mml-cryptographic-method-history def))
mh-mml-method-default))
@ -1731,7 +1725,7 @@ Optional argument DEFAULT is returned if a type isn't entered."
(type (or (and (not (equal probed-type "application/octet-stream"))
probed-type)
(completing-read
(format "Content type (default %s): " default)
(format-prompt "Content type" default)
(mapcar #'list (mailcap-mime-types))))))
(if (not (equal type ""))
type

View file

@ -1,4 +1,4 @@
;;; mh-print.el --- MH-E printing support
;;; mh-print.el --- MH-E printing support -*- lexical-binding: t; -*-
;; Copyright (C) 2003-2021 Free Software Foundation, Inc.
@ -207,8 +207,9 @@ Consider using \\[mh-ps-print-msg] instead."
;; Print scan listing if we have more than one message.
(if (> (length msgs) 1)
(let* ((msgs-string
(mapconcat 'identity (mh-list-to-string
(mh-coalesce-msg-list msgs)) " "))
(mapconcat #'identity (mh-list-to-string
(mh-coalesce-msg-list msgs))
" "))
(lpr-command
(format mh-lpr-command-format
(cond ((listp range)

View file

@ -1,4 +1,4 @@
;;; mh-scan.el --- MH-E scan line constants and utilities
;;; mh-scan.el --- MH-E scan line constants and utilities -*- lexical-binding: t; -*-
;; Copyright (C) 1993, 1995, 1997, 2000-2021 Free Software Foundation,
;; Inc.
@ -497,7 +497,7 @@ with `mh-scan-msg-format-string'."
(width 0))
(with-current-buffer tmp-buffer
(erase-buffer)
(apply 'call-process
(apply #'call-process
(expand-file-name mh-scan-prog mh-progs) nil '(t nil) nil
(list folder "last" "-format" "%(msg)"))
(goto-char (point-min))

View file

@ -1,4 +1,4 @@
;;; mh-search --- MH-Search mode
;;; mh-search --- MH-Search mode -*- lexical-binding: t; -*-
;; Copyright (C) 1993, 1995, 2001-2021 Free Software Foundation, Inc.
@ -332,7 +332,7 @@ configuration and is used when the search folder is dismissed."
(interactive (list (mh-prompt-for-folder "Search" mh-current-folder nil nil t)
(current-window-configuration)))
;; FIXME: `pick-folder' is unused!
(let ((pick-folder (if (equal folder "+") mh-current-folder folder)))
(let () ;; (pick-folder (if (equal folder "+") mh-current-folder folder))
(switch-to-buffer-other-window "search-pattern")
(if (or (zerop (buffer-size))
(not (y-or-n-p "Reuse pattern? ")))
@ -356,7 +356,7 @@ configuration and is used when the search folder is dismissed."
"---------\n")
(mh-search-mode)
(goto-char (point-min))
(dotimes (i 5)
(dotimes (_ 5)
(add-text-properties (point) (1+ (point)) '(front-sticky t))
(add-text-properties (- (mh-line-end-position) 2)
(1- (mh-line-end-position))
@ -453,7 +453,7 @@ search all folders."
(defvar mh-flists-search-folders)
(defun mh-flists-execute (&rest ignored)
(defun mh-flists-execute (&rest _ignored)
"Execute flists.
Search for messages belonging to `mh-flists-sequence' in the
folders specified by `mh-flists-search-folders'. If
@ -880,7 +880,7 @@ used to search."
folder-path
(format "%s/" folder-path)))))
(defalias 'mh-swish++-next-result 'mh-swish-next-result)
(defalias 'mh-swish++-next-result #'mh-swish-next-result)
(defun mh-swish++-regexp-builder (regexp-list)
"Generate query for swish++.
@ -1853,7 +1853,7 @@ PROC is used to convert the value to actual data."
(1+ last-slash) (1- last-space)))
(buffer-substring-no-properties (1+ last-space) end))))))
(defalias 'mh-md5-parser 'mh-openssl-parser)
(defalias 'mh-md5-parser #'mh-openssl-parser)
;;;###mh-autoload
(defun mh-index-update-maps (folder &optional origin-map)

View file

@ -1,4 +1,4 @@
;;; mh-seq.el --- MH-E sequences support
;;; mh-seq.el --- MH-E sequences support -*- lexical-binding: t; -*-
;; Copyright (C) 1993, 1995, 2001-2021 Free Software Foundation, Inc.
@ -156,7 +156,7 @@ The list appears in a buffer named \"*MH-E Sequences*\"."
(let ((name (mh-seq-name (car seq-list)))
(sorted-seq-msgs
(mh-coalesce-msg-list
(sort (copy-sequence (mh-seq-msgs (car seq-list))) '<)))
(sort (copy-sequence (mh-seq-msgs (car seq-list))) #'<)))
name-spec)
(insert (setq name-spec (format (format "%%%ss:" max-len) name)))
(while sorted-seq-msgs
@ -191,7 +191,7 @@ MESSAGE appears."
(cond (dest-folder (format " (to be refiled to %s)" dest-folder))
(deleted-flag (format " (to be deleted)"))
(t ""))
(mapconcat 'concat
(mapconcat #'concat
(mh-list-to-string (mh-seq-containing-msg message t))
" "))))
@ -390,10 +390,7 @@ Prompt with PROMPT, raise an error if the sequence is empty and
the NOT-EMPTY flag is non-nil, and supply an optional DEFAULT
sequence. A reply of `%' defaults to the first sequence
containing the current message."
(let* ((input (completing-read (format "%s sequence%s: " prompt
(if default
(format " (default %s)" default)
""))
(let* ((input (completing-read (format-prompt "%s sequence" default prompt)
(mh-seq-names mh-seq-list)
nil nil nil 'mh-sequence-history))
(seq (cond ((equal input "%")
@ -494,13 +491,13 @@ folder buffer are not updated."
;; Add to a SEQUENCE each message the list of MSGS.
(if (and (mh-valid-seq-p seq) (not (mh-folder-name-p seq)))
(if msgs
(apply 'mh-exec-cmd "mark" mh-current-folder "-add"
(apply #'mh-exec-cmd "mark" mh-current-folder "-add"
"-sequence" (symbol-name seq)
(mh-coalesce-msg-list msgs)))))
(defun mh-canonicalize-sequence (msgs)
"Sort MSGS in decreasing order and remove duplicates."
(let* ((sorted-msgs (sort (copy-sequence msgs) '>))
(let* ((sorted-msgs (sort (copy-sequence msgs) #'>))
(head sorted-msgs))
(while (cdr head)
(if (= (car head) (cadr head))
@ -565,7 +562,7 @@ OP is one of `widen' and `unthread'."
(defvar mh-range-seq-names)
(defvar mh-range-history ())
(defvar mh-range-completion-map (copy-keymap minibuffer-local-completion-map))
(define-key mh-range-completion-map " " 'self-insert-command)
(define-key mh-range-completion-map " " #'self-insert-command)
;;;###mh-autoload
(defun mh-interactive-range (range-prompt &optional default)
@ -646,13 +643,10 @@ should be replaced with:
((stringp default) default)
((symbolp default) (symbol-name default))))
(prompt (cond ((and guess large default)
(format "%s (folder has %s messages, default %s)"
prompt (car counts) default))
((and guess large)
(format "%s (folder has %s messages)"
prompt (car counts)))
(format-prompt "%s (folder has %s messages)"
default prompt (car counts)))
(default
(format "%s (default %s)" prompt default))))
(format-prompt prompt default))))
(minibuffer-local-completion-map mh-range-completion-map)
(seq-list (if (eq folder mh-current-folder)
mh-seq-list
@ -662,7 +656,7 @@ should be replaced with:
(mh-seq-names seq-list)))
(input (cond ((and (not ask-flag) unseen) (symbol-name mh-unseen-seq))
((and (not ask-flag) (not large)) "all")
(t (completing-read (format "%s: " prompt)
(t (completing-read prompt
'mh-range-completion-function nil nil
nil 'mh-range-history default))))
msg-list)

View file

@ -1,4 +1,4 @@
;;; mh-show.el --- MH-Show mode
;;; mh-show.el --- MH-Show mode -*- lexical-binding: t; -*-
;; Copyright (C) 1993, 1995, 1997, 2000-2021 Free Software Foundation,
;; Inc.
@ -195,7 +195,7 @@ Sets the current buffer to the show buffer."
(let ((formfile mh-mhl-format-file)
(clean-message-header mh-clean-message-header-flag)
(invisible-headers mh-invisible-header-fields-compiled)
(visible-headers nil)
;; (visible-headers nil)
(msg-filename (mh-msg-filename msg-num folder-name))
(show-buffer mh-show-buffer)
(mm-inline-media-tests mh-mm-inline-media-tests))
@ -241,7 +241,7 @@ Sets the current buffer to the show buffer."
(cond (clean-message-header
(mh-clean-msg-header (point-min)
invisible-headers
visible-headers)
nil) ;; visible-headers
(goto-char (point-min)))
(t
(mh-start-of-uncleaned-message)))
@ -862,7 +862,7 @@ See also `mh-folder-mode'.
(turn-on-font-lock))
(when mh-decode-mime-flag
(mh-make-local-hook 'kill-buffer-hook)
(add-hook 'kill-buffer-hook 'mh-mime-cleanup nil t))
(add-hook 'kill-buffer-hook #'mh-mime-cleanup nil t))
(mh-do-in-xemacs
(easy-menu-add mh-show-sequence-menu)
(easy-menu-add mh-show-message-menu)

View file

@ -1,4 +1,4 @@
;;; mh-speed.el --- MH-E speedbar support
;;; mh-speed.el --- MH-E speedbar support -*- lexical-binding: t; -*-
;; Copyright (C) 2002-2021 Free Software Foundation, Inc.
@ -100,9 +100,9 @@
;; Alphabetical.
(defalias 'mh-speed-contract-folder 'mh-speed-toggle)
(defalias 'mh-speed-contract-folder #'mh-speed-toggle)
(defalias 'mh-speed-expand-folder 'mh-speed-toggle)
(defalias 'mh-speed-expand-folder #'mh-speed-toggle)
(defun mh-speed-refresh ()
"Regenerates the list of folders in the speedbar.
@ -202,9 +202,9 @@ created."
(mh-speed-flists nil))))
;;;###mh-autoload
(defalias 'mh-show-speedbar-buttons 'mh-folder-speedbar-buttons)
(defalias 'mh-show-speedbar-buttons #'mh-folder-speedbar-buttons)
;;;###mh-autoload
(defalias 'mh-letter-speedbar-buttons 'mh-folder-speedbar-buttons)
(defalias 'mh-letter-speedbar-buttons #'mh-folder-speedbar-buttons)
(defmacro mh-speed-select-attached-frame ()
"Compatibility macro to handle speedbar versions 0.11a and 0.14beta4."
@ -431,7 +431,7 @@ flists is run only for that one folder."
(setq mh-speed-flists-folder nil)
(mh-process-kill-without-query mh-speed-flists-process)
(set-process-filter mh-speed-flists-process
'mh-speed-parse-flists-output)))))))
#'mh-speed-parse-flists-output)))))))
;; Copied from mh-make-folder-list-filter...
;; XXX Refactor to use mh-make-folder-list-filer?

View file

@ -1,4 +1,4 @@
;;; mh-thread.el --- MH-E threading support
;;; mh-thread.el --- MH-E threading support -*- lexical-binding: t; -*-
;; Copyright (C) 2002-2004, 2006-2021 Free Software Foundation, Inc.

View file

@ -1,4 +1,4 @@
;;; mh-tool-bar.el --- MH-E tool bar support
;;; mh-tool-bar.el --- MH-E tool bar support -*- lexical-binding: t; -*-
;; Copyright (C) 2002-2003, 2005-2021 Free Software Foundation, Inc.
@ -356,7 +356,7 @@ Use SEQUENCE-MAP if display is limited; DEFAULT-MAP otherwise."
'(list ,@(mapcar (lambda (x) `(quote ,x)) folder-defaults))
"List of buttons to include in MH-Folder tool bar."
:group 'mh-tool-bar
:set 'mh-tool-bar-folder-buttons-set
:set #'mh-tool-bar-folder-buttons-set
:type '(set ,@(cl-loop for x in folder-buttons
for y in folder-docs
collect `(const :tag ,y ,x)))
@ -367,7 +367,7 @@ Use SEQUENCE-MAP if display is limited; DEFAULT-MAP otherwise."
'(list ,@(mapcar (lambda (x) `(quote ,x)) letter-defaults))
"List of buttons to include in MH-Letter tool bar."
:group 'mh-tool-bar
:set 'mh-tool-bar-letter-buttons-set
:set #'mh-tool-bar-letter-buttons-set
:type '(set ,@(cl-loop for x in letter-buttons
for y in letter-docs
collect `(const :tag ,y ,x)))

View file

@ -1,4 +1,4 @@
;;; mh-utils.el --- MH-E general utilities
;;; mh-utils.el --- MH-E general utilities -*- lexical-binding: t; -*-
;; Copyright (C) 1993, 1995, 1997, 2000-2021 Free Software Foundation,
;; Inc.
@ -268,7 +268,7 @@ and displayed in a help buffer."
(interactive)
(let* ((help (or help-messages
(cdr (assoc nil (assoc major-mode mh-help-messages)))))
(text (substitute-command-keys (mapconcat 'identity help ""))))
(text (substitute-command-keys (mapconcat #'identity help ""))))
(with-electric-help
(lambda ()
(insert text))
@ -298,7 +298,7 @@ and displayed in a help buffer."
This is the inverse of `mh-read-msg-list', which expands ranges.
Message lists passed to MH programs should be processed by this
function to avoid exceeding system command line argument limits."
(let ((msgs (sort (copy-sequence messages) 'mh-greaterp))
(let ((msgs (sort (copy-sequence messages) #'mh-greaterp))
(range-high nil)
(prev -1)
(ranges nil))
@ -669,7 +669,7 @@ three arguments so we bind this variable to t or nil.
This variable should never be set.")
(defvar mh-folder-completion-map (copy-keymap minibuffer-local-completion-map))
(define-key mh-folder-completion-map " " 'minibuffer-complete) ;Why???
(define-key mh-folder-completion-map " " #'minibuffer-complete) ;Why???
(defvar mh-speed-flists-inhibit-flag nil)
@ -730,8 +730,7 @@ See Info node `(elisp) Programmed Completion' for details."
(t (file-directory-p path))))))))
;; Shush compiler.
(mh-do-in-xemacs
(defvar completion-root-regexp))
(defvar completion-root-regexp) ;; Apparently used in XEmacs
(defun mh-folder-completing-read (prompt default allow-root-folder-flag)
"Read folder name with PROMPT and default result DEFAULT.
@ -758,10 +757,9 @@ function will accept the folder +, which means all folders when
used in searching."
(if (null default)
(setq default ""))
(let* ((default-string (cond (default-string (format " (default %s)" default-string))
((equal "" default) "")
(t (format " (default %s)" default))))
(prompt (format "%s folder%s: " prompt default-string))
(let* ((default-string (or default-string
(if (equal default "") nil default)))
(prompt (format-prompt "%s folder" default-string prompt))
(mh-current-folder-name mh-current-folder)
read-name folder-name)
(while (and (setq read-name (mh-folder-completing-read
@ -925,10 +923,10 @@ Handle RFC 822 (or later) continuation lines."
(defvar mh-hidden-header-keymap
(let ((map (make-sparse-keymap)))
(mh-do-in-gnu-emacs
(define-key map [mouse-2] 'mh-letter-toggle-header-field-display-button))
(define-key map [mouse-2] #'mh-letter-toggle-header-field-display-button))
(mh-do-in-xemacs
(define-key map '(button2)
'mh-letter-toggle-header-field-display-button))
#'mh-letter-toggle-header-field-display-button))
map))
;;;###mh-autoload

View file

@ -1,4 +1,4 @@
;;; mh-xface.el --- MH-E X-Face and Face header field display
;;; mh-xface.el --- MH-E X-Face and Face header field display -*- lexical-binding: t; -*-
;; Copyright (C) 2002-2003, 2005-2021 Free Software Foundation, Inc.
@ -365,7 +365,7 @@ Replace the ?/ character with a ?! character and append .png.
Also replaces special characters with `mh-url-hexify-string'
since not all characters, such as :, are valid within Windows
filenames. In addition, replaces * with %2a. See URL
`http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/ifaces/iitemnamelimits/GetValidCharacters.asp'."
`https://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/ifaces/iitemnamelimits/GetValidCharacters.asp'."
(format "%s/%s.png" mh-x-image-cache-directory
(mh-replace-regexp-in-string
"\\*" "%2a"

View file

@ -3941,13 +3941,15 @@ it. See `format' for details.
If DEFAULT is a list, the first element is used as the default.
If not, the element is used as is.
If DEFAULT is nil, no \"default value\" string is included in the
return value."
If DEFAULT is nil or an empty string, no \"default value\" string
is included in the return value."
(concat
(if (null format-args)
prompt
(apply #'format prompt format-args))
(and default
(or (not (stringp default))
(length> default 0))
(format minibuffer-default-prompt-format
(if (consp default)
(car default)

View file

@ -4,7 +4,7 @@
;; Author: Ted Zlatanov <tzz@lifelogs.com>
;; Keywords: comm, tls, ssl, encryption
;; Originally-By: Simon Josefsson (See http://josefsson.org/emacs-security/)
;; Originally-By: Simon Josefsson (See https://josefsson.org/emacs-security/)
;; Thanks-To: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; This file is part of GNU Emacs.

View file

@ -67,9 +67,9 @@ considered to be running if the newsticker timer list is not empty."
;; Hard-coding URLs like this is a recipe for propagating obsolete info.
(defconst newsticker--raw-url-list-defaults
'(("Debian Security Advisories"
"http://www.debian.org/security/dsa.en.rdf")
"https://www.debian.org/security/dsa.en.rdf")
("Debian Security Advisories - Long format"
"http://www.debian.org/security/dsa-long.en.rdf")
"https://www.debian.org/security/dsa-long.en.rdf")
("Emacs Wiki"
"https://www.emacswiki.org/emacs?action=rss"
nil
@ -77,7 +77,7 @@ considered to be running if the newsticker timer list is not empty."
("LWN (Linux Weekly News)"
"https://lwn.net/headlines/rss")
("Quote of the day"
"http://feeds.feedburner.com/quotationspage/qotd"
"https://feeds.feedburner.com/quotationspage/qotd"
"07:00"
86400)
("The Register"
@ -1012,7 +1012,7 @@ Argument BUFFER is the buffer of the retrieval process."
;; And another one (20050702)! If description is HTML
;; encoded and starts with a `<', wrap the whole
;; description in a CDATA expression. This happened for
;; http://www.thefreedictionary.com/_/WoD/rss.aspx?type=quote
;; https://www.thefreedictionary.com/_/WoD/rss.aspx?type=quote
(goto-char (point-min))
(while (re-search-forward
"<description>\\(<img.*?\\)</description>" nil t)
@ -1176,7 +1176,7 @@ URL `http://www.atompub.org/2005/08/17/draft-ietf-atompub-format-11.html'"
;; unxml the content or the summary node. Atom
;; allows for integrating (x)html into the atom
;; structure but we need the raw html string.
;; e.g. http://www.heise.de/open/news/news-atom.xml
;; e.g. https://www.heise.de/open/news/news-atom.xml
;; http://feeds.feedburner.com/ru_nix_blogs
(or (newsticker--unxml
(car (xml-node-children

View file

@ -4,7 +4,7 @@
;; Author: Ulf Jasper <ulf.jasper@web.de>
;; Filename: newst-plainview.el
;; URL: http://www.nongnu.org/newsticker
;; URL: https://www.nongnu.org/newsticker
;; Package: newsticker
;; ======================================================================

View file

@ -640,7 +640,7 @@ References:
[1]: Sotirov A, Stevens M et al (2008). \"MD5 considered harmful today
- Creating a rogue CA certificate\",
`http://www.win.tue.nl/hashclash/rogue-ca/'
`https://www.win.tue.nl/hashclash/rogue-ca/'
[2]: Turner S, Chen L (2011). \"Updated Security Considerations for
the MD5 Message-Digest and the HMAC-MD5 Algorithms\",
`https://tools.ietf.org/html/rfc6151'"

View file

@ -49,6 +49,7 @@
(defvar recentf-exclude)
(defvar tramp-current-connection)
(defvar tramp-postfix-host-format)
(defvar tramp-use-ssh-controlmaster-options)
;;; Fontification of `read-file-name':

View file

@ -3686,18 +3686,6 @@ Fall back to normal file name handler if no Tramp handler exists."
'(created changed changes-done-hint moved deleted))
((memq 'attribute-change flags) '(attribute-changed)))
sequence `(,command "monitor" ,localname)))
;; "gvfs-monitor-dir".
((setq command (tramp-get-remote-gvfs-monitor-dir v))
(setq filter #'tramp-sh-gvfs-monitor-dir-process-filter
events
(cond
((and (memq 'change flags) (memq 'attribute-change flags))
'(created changed changes-done-hint moved deleted
attribute-changed))
((memq 'change flags)
'(created changed changes-done-hint moved deleted))
((memq 'attribute-change flags) '(attribute-changed)))
sequence `(,command ,localname)))
;; None.
(t (tramp-error
v 'file-notify-error
@ -3795,56 +3783,6 @@ Fall back to normal file name handler if no Tramp handler exists."
(when string (tramp-message proc 10 "Rest string:\n%s" string))
(process-put proc 'rest-string string)))
(defun tramp-sh-gvfs-monitor-dir-process-filter (proc string)
"Read output from \"gvfs-monitor-dir\" and add corresponding \
`file-notify' events."
(let ((events (process-get proc 'events))
(remote-prefix
(with-current-buffer (process-buffer proc)
(file-remote-p default-directory)))
(rest-string (process-get proc 'rest-string)))
(when rest-string
(tramp-message proc 10 "Previous string:\n%s" rest-string))
(tramp-message proc 6 "%S\n%s" proc string)
(setq string (concat rest-string string)
;; Attribute change is returned in unused wording.
string (tramp-compat-string-replace
"ATTRIB CHANGED" "ATTRIBUTE_CHANGED" string))
(while (string-match
(concat "^[\n\r]*"
"Directory Monitor Event:[\n\r]+"
"Child = \\([^\n\r]+\\)[\n\r]+"
"\\(Other = \\([^\n\r]+\\)[\n\r]+\\)?"
"Event = \\([^[:blank:]]+\\)[\n\r]+")
string)
(let* ((file (match-string 1 string))
(file1 (match-string 3 string))
(object
(list
proc
(list
(intern-soft
(tramp-compat-string-replace
"_" "-" (downcase (match-string 4 string)))))
;; File names are returned as absolute paths. We must
;; add the remote prefix.
(concat remote-prefix file)
(when file1 (concat remote-prefix file1)))))
(setq string (replace-match "" nil nil string))
;; Usually, we would add an Emacs event now. Unfortunately,
;; `unread-command-events' does not accept several events at
;; once. Therefore, we apply the handler directly.
(when (member (cl-caadr object) events)
(tramp-compat-funcall
(lookup-key special-event-map [file-notify])
`(file-notify ,object file-notify-callback)))))
;; Save rest of the string.
(when (zerop (length string)) (setq string nil))
(when string (tramp-message proc 10 "Rest string:\n%s" string))
(process-put proc 'rest-string string)))
(defun tramp-sh-inotifywait-process-filter (proc string)
"Read output from \"inotifywait\" and add corresponding `file-notify' events."
(let ((events (process-get proc 'events)))
@ -5658,7 +5596,7 @@ This command is returned only if `delete-by-moving-to-trash' is non-nil."
;; linked libraries of libgio.
(when (tramp-send-command-and-check vec (concat "ldd " gio))
(goto-char (point-min))
(when (re-search-forward "\\S-+/libgio\\S-+")
(when (re-search-forward "\\S-+/\\(libgio\\|cyggio\\)\\S-+")
(when (tramp-send-command-and-check
vec (concat "strings " (match-string 0)))
(goto-char (point-min))
@ -5666,23 +5604,12 @@ This command is returned only if `delete-by-moving-to-trash' is non-nil."
(format
"^%s$"
(regexp-opt
'("GFamFileMonitor" "GFenFileMonitor"
"GInotifyFileMonitor" "GKqueueFileMonitor")))
'("GFamFileMonitor" "GFamDirectoryMonitor" "GFenFileMonitor"
"GInotifyFileMonitor" "GKqueueFileMonitor"
"GPollFileMonitor")))
nil 'noerror)
(intern (match-string 0)))))))))
(defun tramp-get-remote-gvfs-monitor-dir (vec)
"Determine remote `gvfs-monitor-dir' command."
(with-tramp-connection-property vec "gvfs-monitor-dir"
(tramp-message vec 5 "Finding a suitable `gvfs-monitor-dir' command")
;; We distinguish "gvfs-monitor-dir.exe" from cygwin in order to
;; establish better timeouts in filenotify-tests.el. Any better
;; distinction approach would be welcome!
(or (tramp-find-executable
vec "gvfs-monitor-dir.exe" (tramp-get-remote-path vec) t t)
(tramp-find-executable
vec "gvfs-monitor-dir" (tramp-get-remote-path vec) t t))))
(defun tramp-get-remote-inotifywait (vec)
"Determine remote `inotifywait' command."
(with-tramp-connection-property vec "inotifywait"

View file

@ -1,4 +1,4 @@
;;; notifications.el --- Client interface to desktop notifications.
;;; notifications.el --- Client interface to desktop notifications. -*- lexical-binding: t -*-
;; Copyright (C) 2010-2021 Free Software Foundation, Inc.
@ -229,56 +229,69 @@ of another `notifications-notify' call."
id)
;; Build hints array
(when urgency
(add-to-list 'hints `(:dict-entry
"urgency"
(:variant :byte ,(pcase urgency
('low 0)
('critical 2)
(_ 1)))) t))
(push `(:dict-entry
"urgency"
(:variant :byte ,(pcase urgency
('low 0)
('critical 2)
(_ 1))))
hints))
(when category
(add-to-list 'hints `(:dict-entry
"category"
(:variant :string ,category)) t))
(push `(:dict-entry
"category"
(:variant :string ,category))
hints))
(when desktop-entry
(add-to-list 'hints `(:dict-entry
"desktop-entry"
(:variant :string ,desktop-entry)) t))
(push `(:dict-entry
"desktop-entry"
(:variant :string ,desktop-entry))
hints))
(when image-data
(add-to-list 'hints `(:dict-entry
"image-data"
(:variant :struct ,image-data)) t))
(push `(:dict-entry
"image-data"
(:variant :struct ,image-data))
hints))
(when image-path
(add-to-list 'hints `(:dict-entry
"image-path"
(:variant :string ,image-path)) t))
(push `(:dict-entry
"image-path"
(:variant :string ,image-path))
hints))
(when action-items
(add-to-list 'hints `(:dict-entry
"action-items"
(:variant :boolean ,action-items)) t))
(push `(:dict-entry
"action-items"
(:variant :boolean ,action-items))
hints))
(when sound-file
(add-to-list 'hints `(:dict-entry
"sound-file"
(:variant :string ,sound-file)) t))
(push `(:dict-entry
"sound-file"
(:variant :string ,sound-file))
hints))
(when sound-name
(add-to-list 'hints `(:dict-entry
"sound-name"
(:variant :string ,sound-name)) t))
(push `(:dict-entry
"sound-name"
(:variant :string ,sound-name))
hints))
(when suppress-sound
(add-to-list 'hints `(:dict-entry
"suppress-sound"
(:variant :boolean ,suppress-sound)) t))
(push `(:dict-entry
"suppress-sound"
(:variant :boolean ,suppress-sound))
hints))
(when resident
(add-to-list 'hints `(:dict-entry
"resident"
(:variant :boolean ,resident)) t))
(push `(:dict-entry
"resident"
(:variant :boolean ,resident))
hints))
(when transient
(add-to-list 'hints `(:dict-entry
"transient"
(:variant :boolean ,transient)) t))
(push `(:dict-entry
"transient"
(:variant :boolean ,transient))
hints))
(when x
(add-to-list 'hints `(:dict-entry "x" (:variant :int32 ,x)) t))
(push `(:dict-entry "x" (:variant :int32 ,x)) hints))
(when y
(add-to-list 'hints `(:dict-entry "y" (:variant :int32 ,y)) t))
(push `(:dict-entry "y" (:variant :int32 ,y)) hints))
(setq hints (nreverse hints))
;; Call Notify method.
(setq id
@ -313,8 +326,8 @@ of another `notifications-notify' call."
(on-close (plist-get params :on-close))
(unique-name (dbus-get-name-owner bus notifications-service)))
(when on-action
(add-to-list 'notifications-on-action-map
(list (list bus unique-name id) on-action))
(push (list (list bus unique-name id) on-action)
notifications-on-action-map)
(unless notifications-on-action-object
(setq notifications-on-action-object
(dbus-register-signal
@ -326,8 +339,8 @@ of another `notifications-notify' call."
'notifications-on-action-signal))))
(when on-close
(add-to-list 'notifications-on-close-map
(list (list bus unique-name id) on-close))
(push (list (list bus unique-name id) on-close)
notifications-on-close-map)
(unless notifications-on-close-object
(setq notifications-on-close-object
(dbus-register-signal

View file

@ -1,4 +1,4 @@
;;; novice.el --- handling of disabled commands ("novice mode") for Emacs
;;; novice.el --- handling of disabled commands ("novice mode") for Emacs -*- lexical-binding: t -*-
;; Copyright (C) 1985-1987, 1994, 2001-2021 Free Software Foundation,
;; Inc.

View file

@ -26,7 +26,7 @@
;; specified in rng-pttrn.el.
;;
;; RELAX NG Compact Syntax is specified by
;; http://relaxng.org/compact.html
;; https://relaxng.org/compact.html
;;
;; This file uses the prefix "rng-c-".

View file

@ -24,14 +24,14 @@
;; The main entry point is `rng-xsd-compile'. The validator
;; knows to use this for the datatype library with URI
;; http://www.w3.org/2001/XMLSchema-datatypes because it
;; https://www.w3.org/2001/XMLSchema-datatypes because it
;; is the value of the rng-dt-compile property on that URI
;; as a symbol.
;;
;; W3C XML Schema Datatypes are specified by
;; http://www.w3.org/TR/xmlschema-2/
;; https://www.w3.org/TR/xmlschema-2/
;; Guidelines for using them with RELAX NG are described in
;; http://relaxng.org/xsd.html
;; https://relaxng.org/xsd.html
;;; Code:

View file

@ -30,7 +30,7 @@
;; Decency Act of 1996. This Act bans "indecent speech", whatever that is,
;; from the Internet. For more on the CDA, see Richard Stallman's essay on
;; censorship, included in the etc directory of emacs distributions 19.34
;; and up. See also http://www.eff.org/blueribbon.html.
;; and up. See also https://www.eff.org/blueribbon.html.
;; For many years, emacs has included a program called Spook. This program
;; adds a series of "keywords" to email just before it goes out. On the

View file

@ -454,7 +454,7 @@ If it is a URL, wget will be used for download.
Optional argument VERSION will restrict the list of available versions
to the file matching VERSION exactly, or nil."
;;DIRECTORY should also allow a URL:
;; \"http://ftp1.sourceforge.net/PACKAGE\"
;; \"https://ftp1.sourceforge.net/PACKAGE\"
;; but then I can get file listings easily.
(if (symbolp package) (setq package (symbol-name package)))
(directory-files directory t

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