emacs: document/defcustom notmuch-multipart/alternative-discouraged

This variable is important for people who want to change the default
behaviour when displaying multipart/alternative messages.  Previously
it was undocumented.  Add a defcustom to help users and copy some
documentation from the wiki. The usual machinery of re-using
docstrings is a bit tricky to use here because it mangles the example
lisp code, and the link to the info node should not be in e.g. the
html page.

Add a simple test to make sure the switch from defvar to defcustom did
not break something obvious.
This commit is contained in:
David Bremner 2022-05-14 08:26:38 -03:00
parent 306b7028d2
commit fd46fc1977
4 changed files with 97 additions and 2 deletions

View file

@ -238,6 +238,27 @@ Display of messages can be controlled by the following variables
:index:`notmuch-show-header-line`
|docstring::notmuch-show-header-line|
:index:`notmuch-multipart/alternative-discouraged`
Which mime types to hide by default for multipart messages.
Can either be a list of mime types (as strings) or a function
mapping a plist representing the current message to such a list.
The following example function would discourage `text/html` and
`multipart/related` generally, but discourage `text/plain` should
the message be sent from `whatever@example.com`.
.. code:: lisp
(defun my--determine-discouraged (msg)
(let* ((headers (plist-get msg :headers))
(from (or (plist-get headers :From) "")))
(cond
((string-match "whatever@example.com" from)
(list "text/plain"))
(t
(list "text/html" "multipart/related")))))
.. _show-copy:
Copy to kill-ring

View file

@ -567,12 +567,20 @@ Take wildcards into account."
(string= (downcase t1)
(downcase t2))))))
(defvar notmuch-multipart/alternative-discouraged
(defcustom notmuch-multipart/alternative-discouraged
'(;; Avoid HTML parts.
"text/html"
;; multipart/related usually contain a text/html part and some
;; associated graphics.
"multipart/related"))
"multipart/related")
"Which mime types to hide by default for multipart messages.
Can either be a list of mime types (as strings) or a function
mapping a plist representing the current message to such a list.
See Info node `(notmuch-emacs) notmuch-show' for a sample function."
:group 'notmuch-show
:type '(radio (repeat :tag "MIME Types" string)
(function :tag "Function")))
(defun notmuch-multipart/alternative-determine-discouraged (msg)
"Return the discouraged alternatives for the specified message."

View file

@ -209,6 +209,10 @@ test_emacs '(notmuch-show "id:'$gen_msg_id'")
output=$(head -1 OUTPUT.raw|cut -f1-4 -d' ')
test_expect_equal "$output" "Notmuch Test Suite <test_suite@notmuchmail.org>"
test_begin_subtest "multipart/alternative hides html by default"
test_emacs '(notmuch-show "id:cf0c4d610911171136h1713aa59w9cf9aa31f052ad0a@mail.gmail.com")
(test-visible-output)'
test_expect_equal_file $EXPECTED/notmuch-show-multipart-alternative OUTPUT
# switching to the crypto corpus, using gpg from here on:
add_gnupg_home

View file

@ -0,0 +1,62 @@
Alex Botero-Lowry <alex.boterolowry@gmail.com> (2009-11-17) (attachment inbox)
Subject: [notmuch] preliminary FreeBSD support
To: notmuch@notmuchmail.org
Date: Tue, 17 Nov 2009 11:36:14 -0800
[ multipart/mixed ]
[ multipart/alternative ]
[ text/plain ]
I saw the announcement this morning, and was very excited, as I had been
hoping sup would be turned into a library,
since I like the concept more than the UI (I'd rather an emacs interface).
I did a preliminary compile which worked out fine, but
sysconf(_SC_SC_GETPW_R_SIZE_MAX) returns -1 on
FreeBSD, so notmuch_config_open segfaulted.
Attached is a patch that supplies a default buffer size of 64 in cases where
-1 is returned.
http://www.opengroup.org/austin/docs/austin_328.txt - seems to indicate this
is acceptable behavior,
and
http://mail-index.netbsd.org/pkgsrc-bugs/2006/06/07/msg016808.htmlspecifically
uses 64 as the
buffer size.
[ text/html (hidden) ]
[ 0001-Deal-with-situation-where-sysconf-_SC_GETPW_R_SIZE_M.patch: application/octet-stream (as text/x-diff) ]
From e3bc4bbd7b9d0d086816ab5f8f2d6ffea1dd3ea4 Mon Sep 17 00:00:00 2001
From: Alexander Botero-Lowry <alex.boterolowry@gmail.com>
Date: Tue, 17 Nov 2009 11:30:39 -0800
Subject: [PATCH] Deal with situation where sysconf(_SC_GETPW_R_SIZE_MAX) returns -1
---
notmuch-config.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/notmuch-config.c b/notmuch-config.c
index 248149c..e7220d8 100644
--- a/notmuch-config.c
+++ b/notmuch-config.c
@@ -77,6 +77,7 @@ static char *
get_name_from_passwd_file (void *ctx)
{
long pw_buf_size = sysconf(_SC_GETPW_R_SIZE_MAX);
+ if (pw_buf_size == -1) pw_buf_size = 64;
char *pw_buf = talloc_zero_size (ctx, pw_buf_size);
struct passwd passwd, *ignored;
char *name;
@@ -101,6 +102,7 @@ static char *
get_username_from_passwd_file (void *ctx)
{
long pw_buf_size = sysconf(_SC_GETPW_R_SIZE_MAX);
+ if (pw_buf_size == -1) pw_buf_size = 64;
char *pw_buf = talloc_zero_size (ctx, pw_buf_size);
struct passwd passwd, *ignored;
char *name;
--
1.6.5.2
[ text/plain ]
[ 4-line signature. Click/Enter to show. ]
Carl Worth <cworth@cworth.org> (2009-11-17) (inbox unread)