Merge remote-tracking branch 'savannah/master' into native-comp
This commit is contained in:
commit
c6c7b30e4b
180 changed files with 1982 additions and 1977 deletions
|
@ -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
|
||||
|
|
|
@ -861,6 +861,7 @@ Projects
|
|||
* Project File Commands:: Commands for handling project files.
|
||||
* Project Buffer Commands:: Commands for handling project buffers.
|
||||
* Switching Projects:: Switching between projects.
|
||||
* Managing Projects:: Managing the project list file.
|
||||
|
||||
Change Logs
|
||||
|
||||
|
|
|
@ -1664,6 +1664,7 @@ the project back-end. For example, the VC back-end doesn't consider
|
|||
* Project File Commands:: Commands for handling project files.
|
||||
* Project Buffer Commands:: Commands for handling project buffers.
|
||||
* Switching Projects:: Switching between projects.
|
||||
* Managing Projects:: Managing the project list file.
|
||||
@end menu
|
||||
|
||||
@node Project File Commands
|
||||
|
@ -1843,6 +1844,21 @@ in the menu, and which key invokes each command.
|
|||
records the list of known projects. It defaults to the file
|
||||
@file{projects} in @code{user-emacs-directory} (@pxref{Find Init}).
|
||||
|
||||
@node Managing Projects
|
||||
@subsection Managing the Project List File
|
||||
|
||||
@table @kbd
|
||||
@item M-x project-remove-known-project
|
||||
Remove a known project from the @code{project-list-file}.
|
||||
@end table
|
||||
|
||||
@findex project-remove-known-project
|
||||
Normally Emacs automatically adds and removes projects to and from the
|
||||
@code{project-list-file}, but sometimes you may want to manually edit
|
||||
the available projects. @kbd{M-x project-remove-known-project}
|
||||
prompts you to choose one of the available projects, and then removes
|
||||
it from the file.
|
||||
|
||||
@node Change Log
|
||||
@section Change Logs
|
||||
|
||||
|
|
|
@ -82,7 +82,9 @@ after a recursive minibuffer has been opened in the current command
|
|||
(@pxref{Recursive Mini,,, elisp}). This option is mainly to retain
|
||||
(approximately) the behavior prior to Emacs 28.1. Note that the
|
||||
effect of the command, when you finally finish using the minibuffer,
|
||||
always takes place in the frame where you first opened it.
|
||||
always takes place in the frame where you first opened it. The sole
|
||||
exception is that when that frame no longer exists, the action takes
|
||||
place in the currently selected frame.
|
||||
|
||||
@node Minibuffer File
|
||||
@section Minibuffers for File Names
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -1935,13 +1935,13 @@ when you're online.
|
|||
|
||||
Let's talk about Unix systems first: For the news part,
|
||||
the easiest solution is a small nntp server like
|
||||
@uref{http://www.leafnode.org/, Leafnode} or
|
||||
@uref{https://www.leafnode.org/, Leafnode} or
|
||||
@uref{http://patrik.iki.fi/sn/, sn},
|
||||
of course you can also install a full featured news
|
||||
server like
|
||||
@uref{https://www.isc.org/othersoftware/, inn}.
|
||||
Then you want to fetch your Mail, popular choices
|
||||
are @uref{http://www.fetchmail.info/, fetchmail}
|
||||
are @uref{https://www.fetchmail.info/, fetchmail}
|
||||
and @uref{http://pyropus.ca/software/getmail/, getmail}.
|
||||
You should tell those to write the mail to your disk and
|
||||
Gnus to read it from there. Last but not least the mail
|
||||
|
|
|
@ -82,7 +82,7 @@ documents.
|
|||
To get validation and schema-sensitive editing, you need a RELAX NG Compact
|
||||
Syntax (RNC) schema for your document (@pxref{Locating a schema}). The
|
||||
@file{etc/schema} directory includes some schemas for popular document
|
||||
types. See @url{http://relaxng.org/} for more information on RELAX NG@.
|
||||
types. See @url{https://relaxng.org/} for more information on RELAX NG@.
|
||||
You can use the @samp{Trang} program from
|
||||
@url{http://www.thaiopensource.com/relaxng/trang.html} to
|
||||
automatically create RNC schemas. This program can:
|
||||
|
|
|
@ -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
|
||||
|
|
35
etc/NEWS
35
etc/NEWS
|
@ -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
|
||||
|
||||
|
|
|
@ -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];
|
||||
|
|
|
@ -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:
|
||||
;;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
;; This collection of functions implements the features of calendar.el
|
||||
;; and diary-lib.el that deal with the Bahá’í calendar.
|
||||
|
||||
;; The Bahá’í (http://www.bahai.org) calendar system is based on a
|
||||
;; The Bahá’í (https://www.bahai.org) calendar system is based on a
|
||||
;; solar cycle of 19 months with 19 days each. The four remaining
|
||||
;; "intercalary" days are called the Ayyám-i-Há (days of Há), and are
|
||||
;; placed between the 18th and 19th months. They are meant as a time
|
||||
|
|
|
@ -66,7 +66,7 @@
|
|||
;; 0.02:
|
||||
;; - Should work in XEmacs now. Thanks to Len Trigg for the XEmacs patches!
|
||||
;; - Added exporting from Emacs diary to ical.
|
||||
;; - Some bugfixes, after testing with calendars from http://icalshare.com.
|
||||
;; - Some bugfixes, after testing with calendars from https://icalshare.com.
|
||||
;; - Tested with Emacs 21.3.2 and XEmacs 21.4.12
|
||||
|
||||
;; 0.01: (2003-03-21)
|
||||
|
|
|
@ -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:
|
||||
;;
|
||||
|
|
|
@ -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))
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -421,7 +421,7 @@ in the next one.")
|
|||
|
||||
(defun scheme-load-file (file-name)
|
||||
"Load a Scheme file FILE-NAME into the inferior Scheme process."
|
||||
(interactive (comint-get-source "Load Scheme file: " scheme-prev-l/c-dir/file
|
||||
(interactive (comint-get-source "Load Scheme file" scheme-prev-l/c-dir/file
|
||||
scheme-source-modes t)) ; t because `load'
|
||||
; needs an exact name
|
||||
(comint-check-source file-name) ; Check to see if buffer needs saved.
|
||||
|
@ -433,7 +433,7 @@ in the next one.")
|
|||
|
||||
(defun scheme-compile-file (file-name)
|
||||
"Compile a Scheme file FILE-NAME in the inferior Scheme process."
|
||||
(interactive (comint-get-source "Compile Scheme file: "
|
||||
(interactive (comint-get-source "Compile Scheme file"
|
||||
scheme-prev-l/c-dir/file
|
||||
scheme-source-modes
|
||||
nil)) ; nil because COMPILE doesn't
|
||||
|
|
|
@ -2946,7 +2946,7 @@ two arguments are used for determining defaults.) If MUSTMATCH-P is true,
|
|||
then the filename reader will only accept a file that exists.
|
||||
|
||||
A typical use:
|
||||
(interactive (comint-get-source \"Compile file: \" prev-lisp-dir/file
|
||||
(interactive (comint-get-source \"Compile file\" prev-lisp-dir/file
|
||||
\\='(lisp-mode) t))"
|
||||
(let* ((def (comint-source-default prev-dir/file source-modes))
|
||||
(stringfile (comint-extract-string))
|
||||
|
@ -2959,9 +2959,7 @@ A typical use:
|
|||
(car def)))
|
||||
(deffile (if sfile-p (file-name-nondirectory stringfile)
|
||||
(cdr def)))
|
||||
(ans (read-file-name (if deffile (format "%s(default %s) "
|
||||
prompt deffile)
|
||||
prompt)
|
||||
(ans (read-file-name (format-prompt prompt deffile)
|
||||
defdir
|
||||
(concat defdir deffile)
|
||||
mustmatch-p)))
|
||||
|
|
|
@ -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)))
|
||||
|
|
|
@ -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"))
|
||||
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -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."
|
||||
|
|
|
@ -168,15 +168,12 @@ There can be any number of :example/:result elements."
|
|||
(replace-regexp-in-string
|
||||
:eval (replace-regexp-in-string "[a-z]+" "_" "*foo*"))
|
||||
(string-trim
|
||||
:no-manual t
|
||||
:args (string)
|
||||
:doc "Trim STRING of leading and trailing white space."
|
||||
:eval (string-trim " foo "))
|
||||
(string-trim-left
|
||||
:no-manual t
|
||||
:eval (string-trim-left "oofoo" "o+"))
|
||||
(string-trim-right
|
||||
:no-manual t
|
||||
:eval (string-trim-right "barkss" "s+"))
|
||||
(string-truncate-left
|
||||
:no-manual t
|
||||
|
|
|
@ -63,7 +63,7 @@
|
|||
;; building the 2D precedence tables and then computing the precedence levels
|
||||
;; from it) can be found in pages 187-194 of "Parsing techniques" by Dick Grune
|
||||
;; and Ceriel Jacobs (BookBody.pdf available at
|
||||
;; http://dickgrune.com/Books/PTAPG_1st_Edition/).
|
||||
;; https://dickgrune.com/Books/PTAPG_1st_Edition/).
|
||||
;;
|
||||
;; OTOH we had to kill many chickens, read many coffee grounds, and practice
|
||||
;; untold numbers of black magic spells, to come up with the indentation code.
|
||||
|
|
|
@ -215,28 +215,6 @@ The variable list SPEC is the same as in `if-let'."
|
|||
|
||||
(define-obsolete-function-alias 'string-reverse 'reverse "25.1")
|
||||
|
||||
(defsubst string-trim-left (string &optional regexp)
|
||||
"Trim STRING of leading string matching REGEXP.
|
||||
|
||||
REGEXP defaults to \"[ \\t\\n\\r]+\"."
|
||||
(if (string-match (concat "\\`\\(?:" (or regexp "[ \t\n\r]+") "\\)") string)
|
||||
(substring string (match-end 0))
|
||||
string))
|
||||
|
||||
(defsubst string-trim-right (string &optional regexp)
|
||||
"Trim STRING of trailing string matching REGEXP.
|
||||
|
||||
REGEXP defaults to \"[ \\t\\n\\r]+\"."
|
||||
(let ((i (string-match-p (concat "\\(?:" (or regexp "[ \t\n\r]+") "\\)\\'")
|
||||
string)))
|
||||
(if i (substring string 0 i) string)))
|
||||
|
||||
(defsubst string-trim (string &optional trim-left trim-right)
|
||||
"Trim STRING of leading and trailing strings matching TRIM-LEFT and TRIM-RIGHT.
|
||||
|
||||
TRIM-LEFT and TRIM-RIGHT default to \"[ \\t\\n\\r]+\"."
|
||||
(string-trim-left (string-trim-right string trim-right) trim-left))
|
||||
|
||||
;;;###autoload
|
||||
(defun string-truncate-left (string length)
|
||||
"Truncate STRING to LENGTH, replacing initial surplus with \"...\"."
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)))
|
||||
|
|
|
@ -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))))
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)))
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
((emacs-lisp-mode . ((show-trailing-whitespace . t))))
|
||||
;; Local Variables:
|
||||
;; no-byte-compile: t
|
||||
;; End:
|
|
@ -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)
|
||||
|
||||
|
|
|
@ -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))
|
||||
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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."
|
||||
|
|
|
@ -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.
|
||||
;;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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:
|
||||
|
||||
|
|
|
@ -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:
|
||||
|
||||
|
|
|
@ -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'.")
|
||||
|
||||
|
|
|
@ -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').
|
||||
;;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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:
|
||||
|
||||
|
|
|
@ -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:
|
||||
;;
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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 ""))
|
||||
|
|
|
@ -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))
|
||||
|
||||
|
|
|
@ -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."
|
||||
|
|
|
@ -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.
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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)))
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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?
|
||||
|
|
|
@ -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.
|
||||
|
||||
|
|
|
@ -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)))
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
;; ======================================================================
|
||||
|
|
|
@ -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'"
|
||||
|
|
|
@ -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':
|
||||
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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-".
|
||||
|
||||
|
|
|
@ -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:
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
Loading…
Add table
Reference in a new issue