emacs: Fix indentation

This commit is contained in:
Jonas Bernoulli 2020-08-08 13:49:38 +02:00 committed by David Bremner
parent 6fb7d35069
commit caaa108760
15 changed files with 312 additions and 309 deletions

View file

@ -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)

View file

@ -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

View file

@ -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

View file

@ -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,

View file

@ -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."

View file

@ -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)

View file

@ -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

View file

@ -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)))

View file

@ -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.

View file

@ -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."

View file

@ -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

View file

@ -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))

View file

@ -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.

View file

@ -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))

View file

@ -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"