mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-12-22 01:14:53 +01:00
emacs: Fix indentation
This commit is contained in:
parent
6fb7d35069
commit
caaa108760
15 changed files with 312 additions and 309 deletions
|
@ -108,11 +108,11 @@ If the line should not be broken, return nil; point remains on the
|
|||
line."
|
||||
(move-to-column fill-column)
|
||||
(if (and (re-search-forward "[^ ]" (line-end-position) 1)
|
||||
(> (current-column) fill-column))
|
||||
(> (current-column) fill-column))
|
||||
;; This line is too long. Can we break it?
|
||||
(or (coolj-find-break-backward prefix)
|
||||
(progn (move-to-column fill-column)
|
||||
(coolj-find-break-forward)))))
|
||||
(progn (move-to-column fill-column)
|
||||
(coolj-find-break-forward)))))
|
||||
|
||||
(defun coolj-find-break-backward (prefix)
|
||||
"Move point backward to the first available breakpoint and return t.
|
||||
|
@ -135,12 +135,12 @@ If no breakpoint is found, return nil."
|
|||
If no break point is found, return nil."
|
||||
(and (search-forward " " (line-end-position) 1)
|
||||
(progn (skip-chars-forward " " (line-end-position))
|
||||
(null (eolp)))
|
||||
(null (eolp)))
|
||||
(if (and fill-nobreak-predicate
|
||||
(run-hook-with-args-until-success
|
||||
'fill-nobreak-predicate))
|
||||
(coolj-find-break-forward)
|
||||
t)))
|
||||
(run-hook-with-args-until-success
|
||||
'fill-nobreak-predicate))
|
||||
(coolj-find-break-forward)
|
||||
t)))
|
||||
|
||||
(provide 'coolj)
|
||||
|
||||
|
|
|
@ -153,14 +153,14 @@ matching `notmuch-address-completion-headers-regexp'."
|
|||
|
||||
(defun notmuch-address-setup ()
|
||||
(let* ((setup-company (and notmuch-address-use-company
|
||||
(require 'company nil t)))
|
||||
(require 'company nil t)))
|
||||
(pair (cons notmuch-address-completion-headers-regexp
|
||||
#'notmuch-address-expand-name)))
|
||||
(when setup-company
|
||||
(notmuch-company-setup))
|
||||
(unless (member pair message-completion-alist)
|
||||
(setq message-completion-alist
|
||||
(push pair message-completion-alist)))))
|
||||
#'notmuch-address-expand-name)))
|
||||
(when setup-company
|
||||
(notmuch-company-setup))
|
||||
(unless (member pair message-completion-alist)
|
||||
(setq message-completion-alist
|
||||
(push pair message-completion-alist)))))
|
||||
|
||||
(defun notmuch-address-toggle-internal-completion ()
|
||||
"Toggle use of internal completion for current buffer.
|
||||
|
@ -323,7 +323,7 @@ execution, CALLBACK is called when harvesting finishes."
|
|||
,query)))
|
||||
(if synchronous
|
||||
(mapc #'notmuch-address-harvest-addr
|
||||
(apply 'notmuch-call-notmuch-sexp args))
|
||||
(apply 'notmuch-call-notmuch-sexp args))
|
||||
;; Asynchronous
|
||||
(let* ((current-proc (if addr-prefix
|
||||
(car notmuch-address-harvest-procs)
|
||||
|
@ -390,7 +390,7 @@ to be a saved address hash."
|
|||
(defun notmuch-address--save-address-hash ()
|
||||
(when notmuch-address-save-filename
|
||||
(if (or (not (file-exists-p notmuch-address-save-filename))
|
||||
;; The file exists, check it is a file we saved
|
||||
;; The file exists, check it is a file we saved
|
||||
(notmuch-address--get-address-hash))
|
||||
(with-temp-file notmuch-address-save-filename
|
||||
(let ((save-plist
|
||||
|
|
|
@ -35,7 +35,7 @@ Backport of setq-local for emacs without setq-local (pre 24.3)."
|
|||
(if (fboundp 'read-char-choice)
|
||||
(defalias 'notmuch-read-char-choice 'read-char-choice)
|
||||
(defun notmuch-read-char-choice (prompt chars &optional inhibit-keyboard-quit)
|
||||
"Read and return one of CHARS, prompting for PROMPT.
|
||||
"Read and return one of CHARS, prompting for PROMPT.
|
||||
Any input that is not one of CHARS is ignored.
|
||||
|
||||
If optional argument INHIBIT-KEYBOARD-QUIT is non-nil, ignore
|
||||
|
@ -44,49 +44,49 @@ keyboard-quit events while waiting for a valid input.
|
|||
This is an exact copy of this function from emacs 24 for use on
|
||||
emacs 23, except with the one emacs 24 only function it calls
|
||||
inlined."
|
||||
(unless (consp chars)
|
||||
(error "Called `read-char-choice' without valid char choices"))
|
||||
(let (char done show-help (helpbuf " *Char Help*"))
|
||||
(let ((cursor-in-echo-area t)
|
||||
(executing-kbd-macro executing-kbd-macro)
|
||||
(esc-flag nil))
|
||||
(save-window-excursion ; in case we call help-form-show
|
||||
(while (not done)
|
||||
(unless (get-text-property 0 'face prompt)
|
||||
(setq prompt (propertize prompt 'face 'minibuffer-prompt)))
|
||||
(setq char (let ((inhibit-quit inhibit-keyboard-quit))
|
||||
(read-key prompt)))
|
||||
(and show-help (buffer-live-p (get-buffer helpbuf))
|
||||
(kill-buffer helpbuf))
|
||||
(cond
|
||||
((not (numberp char)))
|
||||
;; If caller has set help-form, that's enough.
|
||||
;; They don't explicitly have to add help-char to chars.
|
||||
((and help-form
|
||||
(eq char help-char)
|
||||
(setq show-help t)
|
||||
;; This is an inlined copy of help-form-show as that
|
||||
;; was introduced in emacs 24 too.
|
||||
(let ((msg (eval help-form)))
|
||||
(if (stringp msg)
|
||||
(with-output-to-temp-buffer " *Char Help*"
|
||||
(princ msg))))))
|
||||
((memq char chars)
|
||||
(setq done t))
|
||||
((and executing-kbd-macro (= char -1))
|
||||
;; read-event returns -1 if we are in a kbd macro and
|
||||
;; there are no more events in the macro. Attempt to
|
||||
;; get an event interactively.
|
||||
(setq executing-kbd-macro nil))
|
||||
((not inhibit-keyboard-quit)
|
||||
(unless (consp chars)
|
||||
(error "Called `read-char-choice' without valid char choices"))
|
||||
(let (char done show-help (helpbuf " *Char Help*"))
|
||||
(let ((cursor-in-echo-area t)
|
||||
(executing-kbd-macro executing-kbd-macro)
|
||||
(esc-flag nil))
|
||||
(save-window-excursion ; in case we call help-form-show
|
||||
(while (not done)
|
||||
(unless (get-text-property 0 'face prompt)
|
||||
(setq prompt (propertize prompt 'face 'minibuffer-prompt)))
|
||||
(setq char (let ((inhibit-quit inhibit-keyboard-quit))
|
||||
(read-key prompt)))
|
||||
(and show-help (buffer-live-p (get-buffer helpbuf))
|
||||
(kill-buffer helpbuf))
|
||||
(cond
|
||||
((and (null esc-flag) (eq char ?\e))
|
||||
(setq esc-flag t))
|
||||
((memq char '(?\C-g ?\e))
|
||||
(keyboard-quit))))))))
|
||||
;; Display the question with the answer. But without cursor-in-echo-area.
|
||||
(message "%s%s" prompt (char-to-string char))
|
||||
char)))
|
||||
((not (numberp char)))
|
||||
;; If caller has set help-form, that's enough.
|
||||
;; They don't explicitly have to add help-char to chars.
|
||||
((and help-form
|
||||
(eq char help-char)
|
||||
(setq show-help t)
|
||||
;; This is an inlined copy of help-form-show as that
|
||||
;; was introduced in emacs 24 too.
|
||||
(let ((msg (eval help-form)))
|
||||
(if (stringp msg)
|
||||
(with-output-to-temp-buffer " *Char Help*"
|
||||
(princ msg))))))
|
||||
((memq char chars)
|
||||
(setq done t))
|
||||
((and executing-kbd-macro (= char -1))
|
||||
;; read-event returns -1 if we are in a kbd macro and
|
||||
;; there are no more events in the macro. Attempt to
|
||||
;; get an event interactively.
|
||||
(setq executing-kbd-macro nil))
|
||||
((not inhibit-keyboard-quit)
|
||||
(cond
|
||||
((and (null esc-flag) (eq char ?\e))
|
||||
(setq esc-flag t))
|
||||
((memq char '(?\C-g ?\e))
|
||||
(keyboard-quit))))))))
|
||||
;; Display the question with the answer. But without cursor-in-echo-area.
|
||||
(message "%s%s" prompt (char-to-string char))
|
||||
char)))
|
||||
|
||||
;; End of compatibility functions
|
||||
|
||||
|
|
|
@ -153,17 +153,17 @@ Used when a new version is saved, or the message is sent."
|
|||
|
||||
`notmuch-draft-save-plaintext' controls the behaviour."
|
||||
(cl-case notmuch-draft-save-plaintext
|
||||
((ask)
|
||||
(unless (yes-or-no-p
|
||||
"(Customize `notmuch-draft-save-plaintext' to avoid this warning)
|
||||
((ask)
|
||||
(unless (yes-or-no-p
|
||||
"(Customize `notmuch-draft-save-plaintext' to avoid this warning)
|
||||
This message contains mml tags that suggest it is intended to be encrypted.
|
||||
Really save and index an unencrypted copy? ")
|
||||
(error "Save aborted")))
|
||||
((nil)
|
||||
(error "Refusing to save draft with encryption tags (see `%s')"
|
||||
'notmuch-draft-save-plaintext))
|
||||
((t)
|
||||
(ignore))))
|
||||
(error "Save aborted")))
|
||||
((nil)
|
||||
(error "Refusing to save draft with encryption tags (see `%s')"
|
||||
'notmuch-draft-save-plaintext))
|
||||
((t)
|
||||
(ignore))))
|
||||
|
||||
(defun notmuch-draft--make-message-id ()
|
||||
;; message-make-message-id gives the id inside a "<" ">" pair,
|
||||
|
|
|
@ -147,9 +147,9 @@ a plist. Supported properties are
|
|||
|
||||
Other accepted forms are a cons cell of the form (NAME . QUERY)
|
||||
or a list of the form (NAME QUERY COUNT-QUERY)."
|
||||
;; The saved-search format is also used by the all-tags notmuch-hello
|
||||
;; section. This section generates its own saved-search list in one of
|
||||
;; the latter two forms.
|
||||
;; The saved-search format is also used by the all-tags notmuch-hello
|
||||
;; section. This section generates its own saved-search list in one of
|
||||
;; the latter two forms.
|
||||
:get 'notmuch-hello--saved-searches-to-plist
|
||||
:type '(repeat notmuch-saved-search-plist)
|
||||
:tag "List of Saved Searches"
|
||||
|
@ -382,10 +382,10 @@ afterwards.")
|
|||
(setq n (/ n 1000)))
|
||||
(setq result (or result '(0)))
|
||||
(apply #'concat
|
||||
(number-to-string (car result))
|
||||
(mapcar (lambda (elem)
|
||||
(format "%s%03d" notmuch-hello-thousands-separator elem))
|
||||
(cdr result)))))
|
||||
(number-to-string (car result))
|
||||
(mapcar (lambda (elem)
|
||||
(format "%s%03d" notmuch-hello-thousands-separator elem))
|
||||
(cdr result)))))
|
||||
|
||||
(defun notmuch-hello-trim (search)
|
||||
"Trim whitespace."
|
||||
|
@ -540,7 +540,7 @@ options will be handled as specified for
|
|||
(notmuch-hello-filtered-query count-query
|
||||
(or (plist-get options :filter-count)
|
||||
(plist-get options :filter))))
|
||||
"\n")))
|
||||
"\n")))
|
||||
(unless (= (call-process-region (point-min) (point-max) notmuch-command
|
||||
t t nil "count" "--batch") 0)
|
||||
(notmuch-logged-error
|
||||
|
@ -690,7 +690,7 @@ with `notmuch-hello-query-counts'."
|
|||
(fset 'notmuch-hello-mode-map notmuch-hello-mode-map)
|
||||
|
||||
(define-derived-mode notmuch-hello-mode fundamental-mode "notmuch-hello"
|
||||
"Major mode for convenient notmuch navigation. This is your entry portal into notmuch.
|
||||
"Major mode for convenient notmuch navigation. This is your entry portal into notmuch.
|
||||
|
||||
Saved searches are \"bookmarks\" for arbitrary queries. Hit RET
|
||||
or click on a saved search to view matching threads. Edit saved
|
||||
|
@ -720,9 +720,9 @@ The screen may be customized via `\\[customize]'.
|
|||
Complete list of currently available key bindings:
|
||||
|
||||
\\{notmuch-hello-mode-map}"
|
||||
(setq notmuch-buffer-refresh-function #'notmuch-hello-update)
|
||||
;;(setq buffer-read-only t)
|
||||
)
|
||||
(setq notmuch-buffer-refresh-function #'notmuch-hello-update)
|
||||
;;(setq buffer-read-only t)
|
||||
)
|
||||
|
||||
(defun notmuch-hello-generate-tag-alist (&optional hide-tags)
|
||||
"Return an alist from tags to queries to display in the all-tags section."
|
||||
|
|
|
@ -211,7 +211,7 @@ Otherwise the output will be returned."
|
|||
(unless (notmuch-cli-sane-p)
|
||||
(notmuch-logged-error
|
||||
"notmuch cli seems misconfigured or unconfigured."
|
||||
"Perhaps you haven't run \"notmuch setup\" yet? Try running this
|
||||
"Perhaps you haven't run \"notmuch setup\" yet? Try running this
|
||||
on the command line, and then retry your notmuch command")))
|
||||
|
||||
(defun notmuch-cli-version ()
|
||||
|
@ -321,7 +321,7 @@ It does not prepend if ACTUAL-KEY is already listed in TAIL."
|
|||
(and (functionp binding)
|
||||
(notmuch-documentation-first-line binding))))
|
||||
tail)))
|
||||
tail)
|
||||
tail)
|
||||
|
||||
(defun notmuch-describe-remaps (remap-keymap ua-keys base-keymap prefix tail)
|
||||
;; Remappings are represented as a binding whose first "event" is
|
||||
|
@ -413,8 +413,8 @@ of its command symbol."
|
|||
"Show help for a subkeymap."
|
||||
(interactive)
|
||||
(let* ((key (this-command-keys-vector))
|
||||
(prefix (make-vector (1- (length key)) nil))
|
||||
(i 0))
|
||||
(prefix (make-vector (1- (length key)) nil))
|
||||
(i 0))
|
||||
(while (< i (length prefix))
|
||||
(aset prefix i (aref key i))
|
||||
(setq i (1+ i)))
|
||||
|
@ -527,7 +527,7 @@ This replaces spaces, percents, and double quotes in STR with
|
|||
(let (out)
|
||||
(while list
|
||||
(when (funcall predicate (car list))
|
||||
(push (car list) out))
|
||||
(push (car list) out))
|
||||
(setq list (cdr list)))
|
||||
(nreverse out)))
|
||||
|
||||
|
@ -835,24 +835,24 @@ You may need to restart Emacs or upgrade your notmuch package."))
|
|||
command " "))
|
||||
(extra
|
||||
(concat "command: " command-string "\n"
|
||||
(if (integerp exit-status)
|
||||
(format "exit status: %s\n" exit-status)
|
||||
(format "exit signal: %s\n" exit-status))
|
||||
(when err
|
||||
(concat "stderr:\n" err))
|
||||
(when output
|
||||
(concat "stdout:\n" output)))))
|
||||
(if err
|
||||
;; We have an error message straight from the CLI.
|
||||
(notmuch-logged-error
|
||||
(replace-regexp-in-string "[ \n\r\t\f]*\\'" "" err) extra)
|
||||
;; We only have combined output from the CLI; don't inundate
|
||||
;; the user with it. Mimic `process-lines'.
|
||||
(notmuch-logged-error (format "%s exited with status %s"
|
||||
(car command) exit-status)
|
||||
extra))
|
||||
;; `notmuch-logged-error' does not return.
|
||||
))))
|
||||
(if (integerp exit-status)
|
||||
(format "exit status: %s\n" exit-status)
|
||||
(format "exit signal: %s\n" exit-status))
|
||||
(when err
|
||||
(concat "stderr:\n" err))
|
||||
(when output
|
||||
(concat "stdout:\n" output)))))
|
||||
(if err
|
||||
;; We have an error message straight from the CLI.
|
||||
(notmuch-logged-error
|
||||
(replace-regexp-in-string "[ \n\r\t\f]*\\'" "" err) extra)
|
||||
;; We only have combined output from the CLI; don't inundate
|
||||
;; the user with it. Mimic `process-lines'.
|
||||
(notmuch-logged-error (format "%s exited with status %s"
|
||||
(car command) exit-status)
|
||||
extra))
|
||||
;; `notmuch-logged-error' does not return.
|
||||
))))
|
||||
|
||||
(defun notmuch-call-notmuch--helper (destination args)
|
||||
"Helper for synchronous notmuch invocation commands.
|
||||
|
@ -925,9 +925,9 @@ invoke `set-process-sentinel' directly on the returned process,
|
|||
as that will interfere with the handling of stderr and the exit
|
||||
status."
|
||||
(let (err-file err-buffer proc err-proc
|
||||
;; Find notmuch using Emacs' `exec-path'
|
||||
(command (or (executable-find notmuch-command)
|
||||
(error "Command not found: %s" notmuch-command))))
|
||||
;; Find notmuch using Emacs' `exec-path'
|
||||
(command (or (executable-find notmuch-command)
|
||||
(error "Command not found: %s" notmuch-command))))
|
||||
(if (fboundp 'make-process)
|
||||
(progn
|
||||
(setq err-buffer (generate-new-buffer " *notmuch-stderr*"))
|
||||
|
@ -1030,8 +1030,8 @@ region if the region is active, or both `point' otherwise."
|
|||
(list (point) (point))))
|
||||
|
||||
(define-obsolete-function-alias
|
||||
'notmuch-search-interactive-region
|
||||
'notmuch-interactive-region
|
||||
'notmuch-search-interactive-region
|
||||
'notmuch-interactive-region
|
||||
"notmuch 0.29")
|
||||
|
||||
(provide 'notmuch-lib)
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
(defvar notmuch-maildir-fcc-count 0)
|
||||
|
||||
(defcustom notmuch-fcc-dirs "sent"
|
||||
"Determines the Fcc Header which says where to save outgoing mail.
|
||||
"Determines the Fcc Header which says where to save outgoing mail.
|
||||
|
||||
Three types of values are permitted:
|
||||
|
||||
|
@ -69,13 +69,13 @@ database.path option in the notmuch configuration file).
|
|||
In all cases you will be prompted to create the folder or
|
||||
directory if it does not exist yet when sending a mail."
|
||||
|
||||
:type '(choice
|
||||
(const :tag "No FCC header" nil)
|
||||
(string :tag "A single folder")
|
||||
(repeat :tag "A folder based on the From header"
|
||||
(cons regexp (string :tag "Folder"))))
|
||||
:require 'notmuch-fcc-initialization
|
||||
:group 'notmuch-send)
|
||||
:type '(choice
|
||||
(const :tag "No FCC header" nil)
|
||||
(string :tag "A single folder")
|
||||
(repeat :tag "A folder based on the From header"
|
||||
(cons regexp (string :tag "Folder"))))
|
||||
:require 'notmuch-fcc-initialization
|
||||
:group 'notmuch-send)
|
||||
|
||||
(defcustom notmuch-maildir-use-notmuch-insert 't
|
||||
"Should fcc use notmuch insert instead of simple fcc."
|
||||
|
@ -267,16 +267,16 @@ If CREATE is non-nil then create the folder if necessary."
|
|||
t))
|
||||
|
||||
(defun notmuch-maildir-fcc-make-uniq-maildir-id ()
|
||||
(let* ((ftime (float-time))
|
||||
(microseconds (mod (* 1000000 ftime) 1000000))
|
||||
(hostname (notmuch-maildir-fcc-host-fixer (system-name))))
|
||||
(setq notmuch-maildir-fcc-count (+ notmuch-maildir-fcc-count 1))
|
||||
(format "%d.%d_%d_%d.%s"
|
||||
ftime
|
||||
(emacs-pid)
|
||||
microseconds
|
||||
notmuch-maildir-fcc-count
|
||||
hostname)))
|
||||
(let* ((ftime (float-time))
|
||||
(microseconds (mod (* 1000000 ftime) 1000000))
|
||||
(hostname (notmuch-maildir-fcc-host-fixer (system-name))))
|
||||
(setq notmuch-maildir-fcc-count (+ notmuch-maildir-fcc-count 1))
|
||||
(format "%d.%d_%d_%d.%s"
|
||||
ftime
|
||||
(emacs-pid)
|
||||
microseconds
|
||||
notmuch-maildir-fcc-count
|
||||
hostname)))
|
||||
|
||||
(defun notmuch-maildir-fcc-dir-is-maildir-p (dir)
|
||||
(and (file-exists-p (concat dir "/cur/"))
|
||||
|
@ -328,17 +328,17 @@ if needed."
|
|||
;; fix it in some way.
|
||||
(let* ((prompt (format "Fcc %s is not a maildir: \
|
||||
\(r)etry, (c)reate folder, (i)gnore, or (e)dit the header? " fcc-header))
|
||||
(response (notmuch-read-char-choice prompt '(?r ?c ?i ?e))))
|
||||
(cl-case response
|
||||
(?r (notmuch-maildir-fcc-file-fcc fcc-header))
|
||||
(?c (if (file-writable-p fcc-header)
|
||||
(notmuch-maildir-fcc-create-maildir fcc-header)
|
||||
(message "No permission to create %s." fcc-header)
|
||||
(sit-for 2))
|
||||
(notmuch-maildir-fcc-file-fcc fcc-header))
|
||||
(?i 't)
|
||||
(?e (notmuch-maildir-fcc-file-fcc
|
||||
(read-from-minibuffer "Fcc header: " fcc-header)))))))
|
||||
(response (notmuch-read-char-choice prompt '(?r ?c ?i ?e))))
|
||||
(cl-case response
|
||||
(?r (notmuch-maildir-fcc-file-fcc fcc-header))
|
||||
(?c (if (file-writable-p fcc-header)
|
||||
(notmuch-maildir-fcc-create-maildir fcc-header)
|
||||
(message "No permission to create %s." fcc-header)
|
||||
(sit-for 2))
|
||||
(notmuch-maildir-fcc-file-fcc fcc-header))
|
||||
(?i 't)
|
||||
(?e (notmuch-maildir-fcc-file-fcc
|
||||
(read-from-minibuffer "Fcc header: " fcc-header)))))))
|
||||
|
||||
(defun notmuch-maildir-fcc-write-buffer-to-maildir (destdir &optional mark-seen)
|
||||
"Writes the current buffer to maildir destdir. If mark-seen is
|
||||
|
|
|
@ -58,7 +58,7 @@ window/frame that will be destroyed when the buffer is killed.
|
|||
You may want to customize `message-kill-buffer-on-exit'
|
||||
accordingly."
|
||||
(when (< emacs-major-version 24)
|
||||
" Due to a known bug in Emacs 23, you should not set
|
||||
" Due to a known bug in Emacs 23, you should not set
|
||||
this to `new-window' if `message-kill-buffer-on-exit' is
|
||||
disabled: this would result in an incorrect behavior."))
|
||||
:group 'notmuch-send
|
||||
|
@ -106,13 +106,13 @@ Note that these functions use `mail-citation-hook' if that is non-nil."
|
|||
This function specifies which parts of a mime message with
|
||||
multiple parts get a header."
|
||||
:type '(radio (const :tag "No part headers"
|
||||
notmuch-show-reply-insert-header-p-never)
|
||||
notmuch-show-reply-insert-header-p-never)
|
||||
(const :tag "All except multipart/* and hidden parts"
|
||||
notmuch-show-reply-insert-header-p-trimmed)
|
||||
notmuch-show-reply-insert-header-p-trimmed)
|
||||
(const :tag "Only for included text parts"
|
||||
notmuch-show-reply-insert-header-p-minimal)
|
||||
notmuch-show-reply-insert-header-p-minimal)
|
||||
(const :tag "Exactly as in show view"
|
||||
notmuch-show-insert-header-p)
|
||||
notmuch-show-insert-header-p)
|
||||
(function :tag "Other"))
|
||||
:group 'notmuch-reply)
|
||||
|
||||
|
@ -472,10 +472,12 @@ the From: address."
|
|||
(let* ((other-headers
|
||||
(when (or prompt-for-sender notmuch-always-prompt-for-sender)
|
||||
(list (cons 'From (notmuch-mua-prompt-for-sender)))))
|
||||
forward-subject ;; Comes from the first message and is
|
||||
;; applied later.
|
||||
forward-references ;; List of accumulated message-references of forwarded messages
|
||||
forward-queries) ;; List of corresponding message-query
|
||||
;; Comes from the first message and is applied later.
|
||||
forward-subject
|
||||
;; List of accumulated message-references of forwarded messages.
|
||||
forward-references
|
||||
;; List of corresponding message-query.
|
||||
forward-queries)
|
||||
;; Generate the template for the outgoing message.
|
||||
(notmuch-mua-mail nil "" other-headers nil (notmuch-mua-get-switch-function))
|
||||
(save-excursion
|
||||
|
@ -529,17 +531,17 @@ the From: address."
|
|||
If PROMPT-FOR-SENDER is non-nil, the user will be prompted for
|
||||
the From: address first. If REPLY-ALL is non-nil, the message
|
||||
will be addressed to all recipients of the source message."
|
||||
;; In current emacs (24.3) select-active-regions is set to t by
|
||||
;; default. The reply insertion code sets the region to the quoted
|
||||
;; message to make it easy to delete (kill-region or C-w). These two
|
||||
;; things combine to put the quoted message in the primary selection.
|
||||
;;
|
||||
;; This is not what the user wanted and is a privacy risk (accidental
|
||||
;; pasting of the quoted message). We can avoid some of the problems
|
||||
;; by let-binding select-active-regions to nil. This fixes if the
|
||||
;; primary selection was previously in a non-emacs window but not if
|
||||
;; it was in an emacs window. To avoid the problem in the latter case
|
||||
;; we deactivate mark.
|
||||
;; In current emacs (24.3) select-active-regions is set to t by
|
||||
;; default. The reply insertion code sets the region to the quoted
|
||||
;; message to make it easy to delete (kill-region or C-w). These two
|
||||
;; things combine to put the quoted message in the primary selection.
|
||||
;;
|
||||
;; This is not what the user wanted and is a privacy risk (accidental
|
||||
;; pasting of the quoted message). We can avoid some of the problems
|
||||
;; by let-binding select-active-regions to nil. This fixes if the
|
||||
;; primary selection was previously in a non-emacs window but not if
|
||||
;; it was in an emacs window. To avoid the problem in the latter case
|
||||
;; we deactivate mark.
|
||||
(let ((sender
|
||||
(when prompt-for-sender
|
||||
(notmuch-mua-prompt-for-sender)))
|
||||
|
|
|
@ -42,9 +42,9 @@ is a possibly empty forest of replies."
|
|||
"Private function to do the actual mapping and flattening."
|
||||
(apply 'append
|
||||
(mapcar
|
||||
(lambda (tree)
|
||||
(funcall mapper function tree))
|
||||
seq)))
|
||||
(lambda (tree)
|
||||
(funcall mapper function tree))
|
||||
seq)))
|
||||
|
||||
(defun notmuch-query-map-threads (fn threads)
|
||||
"Apply FN to every thread in THREADS. Flatten results to a list.
|
||||
|
|
|
@ -272,7 +272,7 @@ position of the message in the thread."
|
|||
`(save-excursion
|
||||
(let ((id (notmuch-show-get-message-id)))
|
||||
(let ((buf (generate-new-buffer (concat "*notmuch-msg-" id "*"))))
|
||||
(with-current-buffer buf
|
||||
(with-current-buffer buf
|
||||
(let ((coding-system-for-read 'no-conversion))
|
||||
(call-process notmuch-command nil t nil "show" "--format=raw" id))
|
||||
,@body)
|
||||
|
@ -303,7 +303,7 @@ position of the message in the thread."
|
|||
("multipart/alternative" ignore identity)
|
||||
("multipart/mixed" ignore identity)
|
||||
("multipart/related" ignore identity)
|
||||
)))
|
||||
)))
|
||||
(mm-display-parts (mm-dissect-buffer)))))
|
||||
|
||||
(defun notmuch-show-save-attachments ()
|
||||
|
@ -406,43 +406,44 @@ operation on the contents of the current buffer."
|
|||
cell of (AUTHOR_EMAIL AUTHOR_NAME). Return (ADDRESS nil) if
|
||||
parsing fails."
|
||||
(condition-case nil
|
||||
(let (p-name p-address)
|
||||
;; It would be convenient to use `mail-header-parse-address',
|
||||
;; but that expects un-decoded mailbox parts, whereas our
|
||||
;; mailbox parts are already decoded (and hence may contain
|
||||
;; UTF-8). Given that notmuch should handle most of the awkward
|
||||
;; cases, some simple string deconstruction should be sufficient
|
||||
;; here.
|
||||
(cond
|
||||
;; "User <user@dom.ain>" style.
|
||||
((string-match "\\(.*\\) <\\(.*\\)>" address)
|
||||
(setq p-name (match-string 1 address)
|
||||
p-address (match-string 2 address)))
|
||||
;; "<user@dom.ain>" style.
|
||||
((string-match "<\\(.*\\)>" address)
|
||||
(setq p-address (match-string 1 address)))
|
||||
;; Everything else.
|
||||
(t
|
||||
(setq p-address address)))
|
||||
(when p-name
|
||||
;; Remove elements of the mailbox part that are not relevant for
|
||||
;; display, even if they are required during transport:
|
||||
;;
|
||||
;; Backslashes.
|
||||
(setq p-name (replace-regexp-in-string "\\\\" "" p-name))
|
||||
;; Outer single and double quotes, which might be nested.
|
||||
(cl-loop with start-of-loop
|
||||
do (setq start-of-loop p-name)
|
||||
when (string-match "^\"\\(.*\\)\"$" p-name)
|
||||
do (setq p-name (match-string 1 p-name))
|
||||
when (string-match "^'\\(.*\\)'$" p-name)
|
||||
do (setq p-name (match-string 1 p-name))
|
||||
until (string= start-of-loop p-name)))
|
||||
;; If the address is 'foo@bar.com <foo@bar.com>' then show just
|
||||
;; 'foo@bar.com'.
|
||||
(when (string= p-name p-address)
|
||||
(setq p-name nil))
|
||||
(cons p-address p-name))
|
||||
(let (p-name p-address)
|
||||
;; It would be convenient to use `mail-header-parse-address',
|
||||
;; but that expects un-decoded mailbox parts, whereas our
|
||||
;; mailbox parts are already decoded (and hence may contain
|
||||
;; UTF-8). Given that notmuch should handle most of the awkward
|
||||
;; cases, some simple string deconstruction should be sufficient
|
||||
;; here.
|
||||
(cond
|
||||
;; "User <user@dom.ain>" style.
|
||||
((string-match "\\(.*\\) <\\(.*\\)>" address)
|
||||
(setq p-name (match-string 1 address)
|
||||
p-address (match-string 2 address)))
|
||||
|
||||
;; "<user@dom.ain>" style.
|
||||
((string-match "<\\(.*\\)>" address)
|
||||
(setq p-address (match-string 1 address)))
|
||||
;; Everything else.
|
||||
(t
|
||||
(setq p-address address)))
|
||||
(when p-name
|
||||
;; Remove elements of the mailbox part that are not relevant for
|
||||
;; display, even if they are required during transport:
|
||||
;;
|
||||
;; Backslashes.
|
||||
(setq p-name (replace-regexp-in-string "\\\\" "" p-name))
|
||||
;; Outer single and double quotes, which might be nested.
|
||||
(cl-loop with start-of-loop
|
||||
do (setq start-of-loop p-name)
|
||||
when (string-match "^\"\\(.*\\)\"$" p-name)
|
||||
do (setq p-name (match-string 1 p-name))
|
||||
when (string-match "^'\\(.*\\)'$" p-name)
|
||||
do (setq p-name (match-string 1 p-name))
|
||||
until (string= start-of-loop p-name)))
|
||||
;; If the address is 'foo@bar.com <foo@bar.com>' then show just
|
||||
;; 'foo@bar.com'.
|
||||
(when (string= p-name p-address)
|
||||
(setq p-name nil))
|
||||
(cons p-address p-name))
|
||||
(error (cons address nil))))
|
||||
|
||||
(defun notmuch-show-clean-address (address)
|
||||
|
@ -607,9 +608,9 @@ will return nil if the CID is unknown or cannot be retrieved."
|
|||
"Instruct w3m how to retrieve content from a \"related\" part of a message."
|
||||
(interactive)
|
||||
(if (boundp 'w3m-cid-retrieve-function-alist)
|
||||
(unless (assq 'notmuch-show-mode w3m-cid-retrieve-function-alist)
|
||||
(push (cons 'notmuch-show-mode #'notmuch-show--cid-w3m-retrieve)
|
||||
w3m-cid-retrieve-function-alist)))
|
||||
(unless (assq 'notmuch-show-mode w3m-cid-retrieve-function-alist)
|
||||
(push (cons 'notmuch-show-mode #'notmuch-show--cid-w3m-retrieve)
|
||||
w3m-cid-retrieve-function-alist)))
|
||||
(setq mm-html-inhibit-images nil))
|
||||
|
||||
(defvar w3m-current-buffer) ;; From `w3m.el'.
|
||||
|
@ -639,8 +640,8 @@ will return nil if the CID is unknown or cannot be retrieved."
|
|||
;; should be chosen if there are more than one that match?
|
||||
(mapc (lambda (inner-part)
|
||||
(let* ((inner-type (plist-get inner-part :content-type))
|
||||
(hide (not (or notmuch-show-all-multipart/alternative-parts
|
||||
(string= chosen-type inner-type)))))
|
||||
(hide (not (or notmuch-show-all-multipart/alternative-parts
|
||||
(string= chosen-type inner-type)))))
|
||||
(notmuch-show-insert-bodypart msg inner-part depth hide)))
|
||||
inner-parts)
|
||||
|
||||
|
@ -1008,7 +1009,7 @@ is t, hide the part initially and show the button."
|
|||
;; Store the computed mime-type for later use (e.g. by attachment handlers).
|
||||
(plist-put part :computed-type mime-type)
|
||||
(if show-part
|
||||
(notmuch-show-insert-bodypart-internal msg part mime-type nth depth button)
|
||||
(notmuch-show-insert-bodypart-internal msg part mime-type nth depth button)
|
||||
(when button
|
||||
(button-put button :notmuch-lazy-part
|
||||
(list msg part mime-type nth depth button))))
|
||||
|
@ -1521,9 +1522,9 @@ All currently available key bindings:
|
|||
(setq buffer-read-only t
|
||||
truncate-lines t)
|
||||
(setq imenu-prev-index-position-function
|
||||
#'notmuch-show-imenu-prev-index-position-function)
|
||||
#'notmuch-show-imenu-prev-index-position-function)
|
||||
(setq imenu-extract-index-name-function
|
||||
#'notmuch-show-imenu-extract-index-name-function))
|
||||
#'notmuch-show-imenu-extract-index-name-function))
|
||||
|
||||
(defun notmuch-tree-from-show-current-query ()
|
||||
"Call notmuch tree with the current query."
|
||||
|
@ -1746,8 +1747,8 @@ We only mark it read once: if it is changed back then that is a
|
|||
user decision and we should not override it."
|
||||
(when (and (notmuch-show-message-visible-p)
|
||||
(not (notmuch-show-get-prop :seen)))
|
||||
(notmuch-show-mark-read)
|
||||
(notmuch-show-set-prop :seen t)))
|
||||
(notmuch-show-mark-read)
|
||||
(notmuch-show-set-prop :seen t)))
|
||||
|
||||
(defvar notmuch-show--seen-has-errored nil)
|
||||
(make-variable-buffer-local 'notmuch-show--seen-has-errored)
|
||||
|
@ -1866,9 +1867,9 @@ any effects from previous calls to
|
|||
(let ((start-of-message (notmuch-show-message-top))
|
||||
(start-of-window (window-start)))
|
||||
(cond
|
||||
;; Either this message is properly aligned with the start of the
|
||||
;; window or the start of this message is not visible on the
|
||||
;; screen - scroll.
|
||||
;; Either this message is properly aligned with the start of the
|
||||
;; window or the start of this message is not visible on the
|
||||
;; screen - scroll.
|
||||
((or (= start-of-message start-of-window)
|
||||
(< start-of-message start-of-window))
|
||||
(scroll-down)
|
||||
|
@ -2512,9 +2513,9 @@ beginning of the line."
|
|||
message."
|
||||
`(save-excursion
|
||||
(save-restriction
|
||||
(let ((extent (notmuch-show-message-extent)))
|
||||
(narrow-to-region (car extent) (cdr extent))
|
||||
,@body))))
|
||||
(let ((extent (notmuch-show-message-extent)))
|
||||
(narrow-to-region (car extent) (cdr extent))
|
||||
,@body))))
|
||||
|
||||
(defun notmuch-show--gather-urls ()
|
||||
"Gather any URLs in the current message."
|
||||
|
|
|
@ -236,7 +236,7 @@ DATA is the content of an SVG picture (e.g., as returned by
|
|||
(defun notmuch-tag-star-icon ()
|
||||
"Return SVG data representing a star icon.
|
||||
This can be used with `notmuch-tag-format-image-data'."
|
||||
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>
|
||||
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>
|
||||
<svg version=\"1.1\" width=\"16\" height=\"16\">
|
||||
<g transform=\"translate(-242.81601,-315.59635)\">
|
||||
<path
|
||||
|
@ -536,7 +536,7 @@ and vice versa."
|
|||
name)
|
||||
(mapconcat #'identity tag-change " "))))
|
||||
(push (list key name-string
|
||||
`(lambda () (,tag-function ',tag-change)))
|
||||
`(lambda () (,tag-function ',tag-change)))
|
||||
action-map)))
|
||||
(push (list notmuch-tag-jump-reverse-key
|
||||
(if reverse
|
||||
|
|
|
@ -245,7 +245,7 @@ This function returns a function (so can be used as a keybinding)
|
|||
which executes function FUNC in the message pane if it is
|
||||
open (if the message pane is closed it does nothing)."
|
||||
`(lambda ()
|
||||
,(concat "(In message pane) " (documentation func t))
|
||||
,(concat "(In message pane) " (documentation func t))
|
||||
(interactive)
|
||||
(when (window-live-p notmuch-tree-message-window)
|
||||
(with-selected-window notmuch-tree-message-window
|
||||
|
@ -273,7 +273,7 @@ This function returns a function (so can be used as a keybinding)
|
|||
which closes the message pane if open and then executes function
|
||||
FUNC."
|
||||
`(lambda ()
|
||||
,(concat "(Close message pane and) " (documentation func t))
|
||||
,(concat "(Close message pane and) " (documentation func t))
|
||||
(interactive)
|
||||
(let ((notmuch-show-process-crypto
|
||||
(notmuch-tree-inherit-from-message-pane 'notmuch-show-process-crypto)))
|
||||
|
@ -891,31 +891,31 @@ A message tree is another name for a single sub-thread: i.e., a
|
|||
message together with all its descendents."
|
||||
(let ((msg (car tree))
|
||||
(replies (cadr tree)))
|
||||
(cond
|
||||
((and (< 0 depth) (not last))
|
||||
(push "├" tree-status))
|
||||
((and (< 0 depth) last)
|
||||
(push "╰" tree-status))
|
||||
((and (eq 0 depth) first last)
|
||||
;; Choice between these two variants is a matter of taste.
|
||||
;; (push "─" tree-status))
|
||||
(push " " tree-status))
|
||||
((and (eq 0 depth) first (not last))
|
||||
(push "┬" tree-status))
|
||||
((and (eq 0 depth) (not first) last)
|
||||
(push "╰" tree-status))
|
||||
((and (eq 0 depth) (not first) (not last))
|
||||
(push "├" tree-status)))
|
||||
(push (concat (if replies "┬" "─") "►") tree-status)
|
||||
(setq msg (plist-put msg :first (and first (eq 0 depth))))
|
||||
(setq msg (plist-put msg :tree-status tree-status))
|
||||
(setq msg (plist-put msg :orig-tags (plist-get msg :tags)))
|
||||
(notmuch-tree-goto-and-insert-msg msg)
|
||||
(pop tree-status)
|
||||
(pop tree-status)
|
||||
(if last
|
||||
(push " " tree-status)
|
||||
(push "│" tree-status))
|
||||
(cond
|
||||
((and (< 0 depth) (not last))
|
||||
(push "├" tree-status))
|
||||
((and (< 0 depth) last)
|
||||
(push "╰" tree-status))
|
||||
((and (eq 0 depth) first last)
|
||||
;; Choice between these two variants is a matter of taste.
|
||||
;; (push "─" tree-status))
|
||||
(push " " tree-status))
|
||||
((and (eq 0 depth) first (not last))
|
||||
(push "┬" tree-status))
|
||||
((and (eq 0 depth) (not first) last)
|
||||
(push "╰" tree-status))
|
||||
((and (eq 0 depth) (not first) (not last))
|
||||
(push "├" tree-status)))
|
||||
(push (concat (if replies "┬" "─") "►") tree-status)
|
||||
(setq msg (plist-put msg :first (and first (eq 0 depth))))
|
||||
(setq msg (plist-put msg :tree-status tree-status))
|
||||
(setq msg (plist-put msg :orig-tags (plist-get msg :tags)))
|
||||
(notmuch-tree-goto-and-insert-msg msg)
|
||||
(pop tree-status)
|
||||
(pop tree-status)
|
||||
(if last
|
||||
(push " " tree-status)
|
||||
(push "│" tree-status))
|
||||
(notmuch-tree-insert-thread replies (1+ depth) tree-status)))
|
||||
|
||||
(defun notmuch-tree-insert-thread (thread depth tree-status)
|
||||
|
@ -966,34 +966,34 @@ Complete list of currently available key bindings:
|
|||
(exit-status (process-exit-status proc))
|
||||
(never-found-target-thread nil))
|
||||
(when (memq status '(exit signal))
|
||||
(kill-buffer (process-get proc 'parse-buf))
|
||||
(if (buffer-live-p buffer)
|
||||
(with-current-buffer buffer
|
||||
(save-excursion
|
||||
(let ((inhibit-read-only t)
|
||||
(atbob (bobp)))
|
||||
(goto-char (point-max))
|
||||
(if (eq status 'signal)
|
||||
(insert "Incomplete search results (tree view process was killed).\n"))
|
||||
(when (eq status 'exit)
|
||||
(insert "End of search results.")
|
||||
(unless (= exit-status 0)
|
||||
(insert (format " (process returned %d)" exit-status)))
|
||||
(insert "\n")))))))))
|
||||
(kill-buffer (process-get proc 'parse-buf))
|
||||
(if (buffer-live-p buffer)
|
||||
(with-current-buffer buffer
|
||||
(save-excursion
|
||||
(let ((inhibit-read-only t)
|
||||
(atbob (bobp)))
|
||||
(goto-char (point-max))
|
||||
(if (eq status 'signal)
|
||||
(insert "Incomplete search results (tree view process was killed).\n"))
|
||||
(when (eq status 'exit)
|
||||
(insert "End of search results.")
|
||||
(unless (= exit-status 0)
|
||||
(insert (format " (process returned %d)" exit-status)))
|
||||
(insert "\n")))))))))
|
||||
|
||||
(defun notmuch-tree-process-filter (proc string)
|
||||
"Process and filter the output of \"notmuch show\" for tree view."
|
||||
(let ((results-buf (process-buffer proc))
|
||||
(parse-buf (process-get proc 'parse-buf))
|
||||
(inhibit-read-only t)
|
||||
done)
|
||||
(parse-buf (process-get proc 'parse-buf))
|
||||
(inhibit-read-only t)
|
||||
done)
|
||||
(if (not (buffer-live-p results-buf))
|
||||
(delete-process proc)
|
||||
(delete-process proc)
|
||||
(with-current-buffer parse-buf
|
||||
;; Insert new data
|
||||
(save-excursion
|
||||
(goto-char (point-max))
|
||||
(insert string))
|
||||
;; Insert new data
|
||||
(save-excursion
|
||||
(goto-char (point-max))
|
||||
(insert string))
|
||||
(notmuch-sexp-parse-partial-list 'notmuch-tree-insert-forest-thread
|
||||
results-buf)))))
|
||||
|
||||
|
@ -1020,8 +1020,8 @@ the same as for the function notmuch-tree."
|
|||
(erase-buffer)
|
||||
(goto-char (point-min))
|
||||
(let* ((search-args (concat basic-query
|
||||
(if query-context (concat " and (" query-context ")"))
|
||||
))
|
||||
(if query-context (concat " and (" query-context ")"))
|
||||
))
|
||||
(message-arg (if unthreaded "--unthreaded" "--entire-thread")))
|
||||
(if (equal (car (process-lines notmuch-command "count" search-args)) "0")
|
||||
(setq search-args basic-query))
|
||||
|
|
|
@ -373,7 +373,7 @@ style prefix in SUBJECT, or nil if such a prefix can't be found."
|
|||
(when (string-match
|
||||
"^ *\\(\\[[^]]*\\] *\\)*\\[[^]]*?\\([0-9]+\\)/[0-9]+[^]]*\\].*"
|
||||
subject)
|
||||
(string-to-number (substring subject (match-beginning 2) (match-end 2)))))
|
||||
(string-to-number (substring subject (match-beginning 2) (match-end 2)))))
|
||||
|
||||
(defun notmuch-wash-subject-to-patch-filename (subject)
|
||||
"Convert a patch mail SUBJECT into a filename.
|
||||
|
|
|
@ -117,23 +117,23 @@ there will be called at other points of notmuch execution."
|
|||
|
||||
(defun notmuch-foreach-mime-part (function mm-handle)
|
||||
(cond ((stringp (car mm-handle))
|
||||
(dolist (part (cdr mm-handle))
|
||||
(notmuch-foreach-mime-part function part)))
|
||||
((bufferp (car mm-handle))
|
||||
(funcall function mm-handle))
|
||||
(t (dolist (part mm-handle)
|
||||
(notmuch-foreach-mime-part function part)))))
|
||||
(dolist (part (cdr mm-handle))
|
||||
(notmuch-foreach-mime-part function part)))
|
||||
((bufferp (car mm-handle))
|
||||
(funcall function mm-handle))
|
||||
(t (dolist (part mm-handle)
|
||||
(notmuch-foreach-mime-part function part)))))
|
||||
|
||||
(defun notmuch-count-attachments (mm-handle)
|
||||
(let ((count 0))
|
||||
(notmuch-foreach-mime-part
|
||||
(lambda (p)
|
||||
(let ((disposition (mm-handle-disposition p)))
|
||||
(and (listp disposition)
|
||||
(or (equal (car disposition) "attachment")
|
||||
(and (equal (car disposition) "inline")
|
||||
(assq 'filename disposition)))
|
||||
(cl-incf count))))
|
||||
(and (listp disposition)
|
||||
(or (equal (car disposition) "attachment")
|
||||
(and (equal (car disposition) "inline")
|
||||
(assq 'filename disposition)))
|
||||
(cl-incf count))))
|
||||
mm-handle)
|
||||
count))
|
||||
|
||||
|
@ -142,13 +142,13 @@ there will be called at other points of notmuch execution."
|
|||
(lambda (p)
|
||||
(let ((disposition (mm-handle-disposition p)))
|
||||
(and (listp disposition)
|
||||
(or (equal (car disposition) "attachment")
|
||||
(and (equal (car disposition) "inline")
|
||||
(assq 'filename disposition)))
|
||||
(or (not queryp)
|
||||
(y-or-n-p
|
||||
(concat "Save '" (cdr (assq 'filename disposition)) "' ")))
|
||||
(mm-save-part p))))
|
||||
(or (equal (car disposition) "attachment")
|
||||
(and (equal (car disposition) "inline")
|
||||
(assq 'filename disposition)))
|
||||
(or (not queryp)
|
||||
(y-or-n-p
|
||||
(concat "Save '" (cdr (assq 'filename disposition)) "' ")))
|
||||
(mm-save-part p))))
|
||||
mm-handle))
|
||||
|
||||
(require 'hl-line)
|
||||
|
@ -272,11 +272,11 @@ there will be called at other points of notmuch execution."
|
|||
(goto-char (point-min)))
|
||||
|
||||
(defface notmuch-message-summary-face
|
||||
'((((class color) (background light)) (:background "#f0f0f0"))
|
||||
(((class color) (background dark)) (:background "#303030")))
|
||||
"Face for the single-line message summary in notmuch-show-mode."
|
||||
:group 'notmuch-show
|
||||
:group 'notmuch-faces)
|
||||
'((((class color) (background light)) (:background "#f0f0f0"))
|
||||
(((class color) (background dark)) (:background "#303030")))
|
||||
"Face for the single-line message summary in notmuch-show-mode."
|
||||
:group 'notmuch-show
|
||||
:group 'notmuch-faces)
|
||||
|
||||
(defface notmuch-search-date
|
||||
'((t :inherit default))
|
||||
|
@ -392,9 +392,9 @@ Complete list of currently available key bindings:
|
|||
(setq truncate-lines t)
|
||||
(setq buffer-read-only t)
|
||||
(setq imenu-prev-index-position-function
|
||||
#'notmuch-search-imenu-prev-index-position-function)
|
||||
#'notmuch-search-imenu-prev-index-position-function)
|
||||
(setq imenu-extract-index-name-function
|
||||
#'notmuch-search-imenu-extract-index-name-function))
|
||||
#'notmuch-search-imenu-extract-index-name-function))
|
||||
|
||||
(defun notmuch-search-get-result (&optional pos)
|
||||
"Return the result object for the thread at POS (or point).
|
||||
|
@ -689,9 +689,9 @@ of the result."
|
|||
(not (string= notmuch-search-target-thread "found")))
|
||||
(set 'never-found-target-thread t)))))
|
||||
(when (and never-found-target-thread
|
||||
notmuch-search-target-line)
|
||||
(goto-char (point-min))
|
||||
(forward-line (1- notmuch-search-target-line)))))))))
|
||||
notmuch-search-target-line)
|
||||
(goto-char (point-min))
|
||||
(forward-line (1- notmuch-search-target-line)))))))))
|
||||
|
||||
(define-widget 'notmuch--custom-face-edit 'lazy
|
||||
"Custom face edit with a tag Edit Face"
|
||||
|
@ -711,7 +711,7 @@ Here is an example of how to color search results based on tags.
|
|||
(the following text would be placed in your ~/.emacs file):
|
||||
|
||||
(setq notmuch-search-line-faces \\='((\"unread\" . (:foreground \"green\"))
|
||||
(\"deleted\" . (:foreground \"red\"
|
||||
(\"deleted\" . (:foreground \"red\"
|
||||
:background \"blue\"))))
|
||||
|
||||
The FACE must be a face name (a symbol or string), a property
|
||||
|
@ -722,7 +722,7 @@ the above settings would have a green foreground and blue
|
|||
background."
|
||||
:type '(alist :key-type (string)
|
||||
:value-type (radio (face :tag "Face name")
|
||||
(notmuch--custom-face-edit)))
|
||||
(notmuch--custom-face-edit)))
|
||||
:group 'notmuch-search
|
||||
:group 'notmuch-faces)
|
||||
|
||||
|
@ -919,15 +919,15 @@ See `notmuch-tag' for information on the format of TAG-CHANGES."
|
|||
PROMPT is the string to prompt with."
|
||||
(let*
|
||||
((all-tags
|
||||
(mapcar (lambda (tag) (notmuch-escape-boolean-term tag))
|
||||
(process-lines notmuch-command "search" "--output=tags" "*")))
|
||||
(mapcar (lambda (tag) (notmuch-escape-boolean-term tag))
|
||||
(process-lines notmuch-command "search" "--output=tags" "*")))
|
||||
(completions
|
||||
(append (list "folder:" "path:" "thread:" "id:" "date:" "from:" "to:"
|
||||
"subject:" "attachment:")
|
||||
(mapcar (lambda (tag) (concat "tag:" tag)) all-tags)
|
||||
(mapcar (lambda (tag) (concat "is:" tag)) all-tags)
|
||||
(mapcar (lambda (mimetype) (concat "mimetype:" mimetype))
|
||||
(mailcap-mime-types)))))
|
||||
(append (list "folder:" "path:" "thread:" "id:" "date:" "from:" "to:"
|
||||
"subject:" "attachment:")
|
||||
(mapcar (lambda (tag) (concat "tag:" tag)) all-tags)
|
||||
(mapcar (lambda (tag) (concat "is:" tag)) all-tags)
|
||||
(mapcar (lambda (mimetype) (concat "mimetype:" mimetype))
|
||||
(mailcap-mime-types)))))
|
||||
(let ((keymap (copy-keymap minibuffer-local-map))
|
||||
(current-query (cl-case major-mode
|
||||
(notmuch-search-mode (notmuch-search-get-query))
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
(defun notmuch-test-address-cleaning-1 ()
|
||||
(notmuch-test-expect-equal (notmuch-show-clean-address "dme@dme.org")
|
||||
"dme@dme.org"))
|
||||
"dme@dme.org"))
|
||||
|
||||
(defun notmuch-test-address-cleaning-2 ()
|
||||
(let* ((input '("foo@bar.com"
|
||||
|
|
Loading…
Reference in a new issue