Re: Tagging and selectrum+prescient

2021-10-13 Thread inwit


Sorry for this empty messaging happening again. :( There's some problem in my 
mail configuration. I'm onto fixing it.

I just wrote to let you know about this question I wrote for the prescient 
software community [0], in case someone is interested or has some clues about 
it.

Regards,

[0] https://github.com/raxod502/prescient.el/issues/115

On Wed Oct 13, 2021 at 6:27 PM CEST, inwit wrote:
>
> ___
> notmuch mailing list -- notmuch@notmuchmail.org
> To unsubscribe send an email to notmuch-le...@notmuchmail.org
___
notmuch mailing list -- notmuch@notmuchmail.org
To unsubscribe send an email to notmuch-le...@notmuchmail.org


Tagging and selectrum+prescient

2021-10-13 Thread inwit


___
notmuch mailing list -- notmuch@notmuchmail.org
To unsubscribe send an email to notmuch-le...@notmuchmail.org


Re: [RFC 3/5] lib: remove commented out NOTMUCH_DEPRECATED()

2021-10-13 Thread Jani Nikula
On Wed, 13 Oct 2021, David Bremner  wrote:
> Jani Nikula  writes:
>
>> Having comments between the documentation comment and the object being
>> documented throws Hawkmoth off. Remove the placeholder
>> NOTMUCH_DEPRECATED() comments.
>>
>> ---
>>
>> They were added in commit e5f3c3ed5024 ("lib: add stub for
>> notmuch_database_open_with_config"); maybe the comment markers should
>> be removed instead?
>
> Yes, those should be uncommented, I think.

Thanks, sent separately. Though it does give deprecation warnings now.

BR,
Jani.
___
notmuch mailing list -- notmuch@notmuchmail.org
To unsubscribe send an email to notmuch-le...@notmuchmail.org


Re: [RFC 2/5] lib: remove enum names from typedefs

2021-10-13 Thread Jani Nikula
On Wed, 13 Oct 2021, Tomi Ollila  wrote:
> On Wed, Oct 13 2021, David Bremner wrote:
>
>> Jani Nikula  writes:
>>
>>> Given the named enum typedef:
>>>
>>> typedef enum _name_t { ... } name_t;
>>>
>>> Hawkmoth uses _name_t as the name for documentation. Typedef the
>>> anonymous enum:
>>>
>>> typedef enum { ... } name_t;
>>>
>>> instead to use name_t. We don't really need the enum names for
>>> anything, and not all of the enum typedefs have them anyway.
>>> ---
>> I guess that change would be fine independent of the rest?
>
> I had the same thought.

Added more typedef enums outside of notmuch.h, removed hawkmoth
references, and resent separately.

BR,
Jani.
___
notmuch mailing list -- notmuch@notmuchmail.org
To unsubscribe send an email to notmuch-le...@notmuchmail.org


Emacs notmuch extracts text attachments as if they had Windows (CRLF) encoding

2021-10-13 Thread Martin Jambor
Hi,

I have stumbled upon strange behavior of emacs-notmuch.  When I extract
(some?) plain text attachments into files using notmuch-show-save-part
(by pressing ".s"), the file they end up in has Windows encoding of line
ends (CRLF) even though both the machine used to send and receive the
email are Linux ones.

I can reproduce the issue with the attached example email.  Emacs
notmuch extracts the attachment into a windows encoding file while mutt
or metamail does not.

Can anyone else reproduce this behavior?  Any ideas how to fix it?

Thanks a lot,

Martin





1633684554.29424_1.virgil.gz
Description: 1633684554.29424_1.virgil.gz
___
notmuch mailing list -- notmuch@notmuchmail.org
To unsubscribe send an email to notmuch-le...@notmuchmail.org


[PATCH] lib: fix commented out NOTMUCH_DEPRECATED()

2021-10-13 Thread Jani Nikula
Remove the comment markers from the placeholder NOTMUCH_DEPRECATED(),
added in commit e5f3c3ed5024 ("lib: add stub for
notmuch_database_open_with_config").

---

This does lead to deprecation warnings now.
---
 lib/notmuch.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lib/notmuch.h b/lib/notmuch.h
index 546643e80cbb..b2227daef6ad 100644
--- a/lib/notmuch.h
+++ b/lib/notmuch.h
@@ -323,7 +323,7 @@ typedef enum {
  * config_path="" and error_message=NULL
  * @deprecated Deprecated as of libnotmuch 5.4 (notmuch 0.32)
  */
-/* NOTMUCH_DEPRECATED(5, 4) */
+NOTMUCH_DEPRECATED(5, 4)
 notmuch_status_t
 notmuch_database_open (const char *path,
   notmuch_database_mode_t mode,
@@ -335,7 +335,7 @@ notmuch_database_open (const char *path,
  * @deprecated Deprecated as of libnotmuch 5.4 (notmuch 0.32)
  *
  */
-/* NOTMUCH_DEPRECATED(5, 4) */
+NOTMUCH_DEPRECATED(5, 4)
 notmuch_status_t
 notmuch_database_open_verbose (const char *path,
   notmuch_database_mode_t mode,
-- 
2.30.2
___
notmuch mailing list -- notmuch@notmuchmail.org
To unsubscribe send an email to notmuch-le...@notmuchmail.org


[PATCH 2/2] cli: remove enum names from typedefs

2021-10-13 Thread Jani Nikula
There are some enum typedefs with the enum name:

typedef enum _name_t { ... } name_t;

We don't need or use the enum names _name_t for anything, and not all
of the enum typedefs have them. We have the typedefs specifically to
use the typedef name.

Use the anonymous enum in the typedefs:

typedef enum { ... } name_t;
---
 notmuch-client.h  | 4 ++--
 util/hex-escape.h | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/notmuch-client.h b/notmuch-client.h
index 96d81166d2f5..82ae44e429fc 100644
--- a/notmuch-client.h
+++ b/notmuch-client.h
@@ -426,13 +426,13 @@ mime_node_seek_dfs (mime_node_t *node, int n);
 const _notmuch_message_crypto_t *
 mime_node_get_message_crypto_status (mime_node_t *node);
 
-typedef enum dump_formats {
+typedef enum {
 DUMP_FORMAT_AUTO,
 DUMP_FORMAT_BATCH_TAG,
 DUMP_FORMAT_SUP
 } dump_format_t;
 
-typedef enum dump_includes {
+typedef enum {
 DUMP_INCLUDE_TAGS  = 1,
 DUMP_INCLUDE_CONFIG= 2,
 DUMP_INCLUDE_PROPERTIES= 4
diff --git a/util/hex-escape.h b/util/hex-escape.h
index 8703334cda8d..83a4c6f146fe 100644
--- a/util/hex-escape.h
+++ b/util/hex-escape.h
@@ -5,7 +5,7 @@
 extern "C" {
 #endif
 
-typedef enum hex_status {
+typedef enum {
 HEX_SUCCESS = 0,
 HEX_SYNTAX_ERROR,
 HEX_OUT_OF_MEMORY
-- 
2.30.2
___
notmuch mailing list -- notmuch@notmuchmail.org
To unsubscribe send an email to notmuch-le...@notmuchmail.org


[PATCH 1/2] lib: remove enum names from typedefs

2021-10-13 Thread Jani Nikula
There are some enum typedefs with the enum name:

typedef enum _name_t { ... } name_t;

We don't need or use the enum names _name_t for anything, and not all
of the enum typedefs have them. We have the typedefs specifically to
use the typedef name.

Use the anonymous enum in the typedefs:

typedef enum { ... } name_t;
---
 lib/database-private.h | 2 +-
 lib/notmuch-private.h  | 4 ++--
 lib/notmuch.h  | 6 +++---
 3 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/lib/database-private.h b/lib/database-private.h
index 8b9d67feec70..7a0450515f44 100644
--- a/lib/database-private.h
+++ b/lib/database-private.h
@@ -160,7 +160,7 @@ operator&= (_notmuch_features &a, _notmuch_features b)
 
 /*
  * Configuration options for xapian database fields */
-typedef enum notmuch_field_flags {
+typedef enum {
 NOTMUCH_FIELD_NO_FLAGS = 0,
 NOTMUCH_FIELD_EXTERNAL = 1 << 0,
 NOTMUCH_FIELD_PROBABILISTIC = 1 << 1,
diff --git a/lib/notmuch-private.h b/lib/notmuch-private.h
index 093c29b1bbc5..e9ce74a4b178 100644
--- a/lib/notmuch-private.h
+++ b/lib/notmuch-private.h
@@ -121,7 +121,7 @@ typedef enum {
  */
 #define NOTMUCH_MESSAGE_ID_MAX (200 - sizeof 
(NOTMUCH_METADATA_THREAD_ID_PREFIX))
 
-typedef enum _notmuch_private_status {
+typedef enum {
 /* First, copy all the public status values. */
 NOTMUCH_PRIVATE_STATUS_SUCCESS = 
NOTMUCH_STATUS_SUCCESS,
 NOTMUCH_PRIVATE_STATUS_OUT_OF_MEMORY   = 
NOTMUCH_STATUS_OUT_OF_MEMORY,
@@ -173,7 +173,7 @@ typedef enum _notmuch_private_status {
  (notmuch_status_t) private_status)
 
 /* Flags shared by various lookup functions. */
-typedef enum _notmuch_find_flags {
+typedef enum {
 /* Lookup without creating any documents.  This is the default
  * behavior. */
 NOTMUCH_FIND_LOOKUP = 0,
diff --git a/lib/notmuch.h b/lib/notmuch.h
index 546643e80cbb..ca5878a949bc 100644
--- a/lib/notmuch.h
+++ b/lib/notmuch.h
@@ -112,7 +112,7 @@ typedef int notmuch_bool_t;
  * A zero value (NOTMUCH_STATUS_SUCCESS) indicates that the function
  * completed without error. Any other value indicates an error.
  */
-typedef enum _notmuch_status {
+typedef enum {
 /**
  * No error occurred.
  */
@@ -1678,7 +1678,7 @@ notmuch_message_reindex (notmuch_message_t *message,
 /**
  * Message flags.
  */
-typedef enum _notmuch_message_flag {
+typedef enum {
 NOTMUCH_MESSAGE_FLAG_MATCH,
 NOTMUCH_MESSAGE_FLAG_EXCLUDED,
 
@@ -2524,7 +2524,7 @@ notmuch_config_list_destroy (notmuch_config_list_t 
*config_list);
 /**
  * Configuration keys known to libnotmuch
  */
-typedef enum _notmuch_config_key {
+typedef enum {
 NOTMUCH_CONFIG_FIRST,
 NOTMUCH_CONFIG_DATABASE_PATH = NOTMUCH_CONFIG_FIRST,
 NOTMUCH_CONFIG_MAIL_ROOT,
-- 
2.30.2
___
notmuch mailing list -- notmuch@notmuchmail.org
To unsubscribe send an email to notmuch-le...@notmuchmail.org


Re: [RFC 0/5] doc: api docs overhaul

2021-10-13 Thread David Bremner
Jani Nikula  writes:

>
> I'm afraid I don't have an answer to that. What do projects do when they
> depend on packages from PyPI? It's a kind of chicken and egg problem.

I would say python projects would happily _only_ depend on pypi (witness
the requests to package notmuch for pypi) but we're not such a project.

>
> I saw that you made the Debian packaging request; many thanks! But is
> that enough?

No, it's actually relatively unlikely that someone will volunteer to
package it. I could do it myself, but I'd be happier if someone more up
on the latest python-in-debian practices would handle it.

> What is your stance on imposing new dependencies on other
> distros?
>

Well I just did it with sfsexp. My reasoning was that it was for an
optional (for now) new feature, so people were no worse off than
before. It's not quite the same thing here, since there is some API docs
now. I don't know how many people refer to them. A very rough estimate
from Debian [1] is that about 10% of the people who install notmuch also
install libnotmuch-dev, which contains the API docs. I guess most people
would be happy with a Web version of the API docs, which we don't do
now, but which would automagically happen if it was in the sphinx doctree.


[1]: https://qa.debian.org/popcon.php?package=notmuch 
___
notmuch mailing list -- notmuch@notmuchmail.org
To unsubscribe send an email to notmuch-le...@notmuchmail.org


Re: [RFC 0/5] doc: api docs overhaul

2021-10-13 Thread Jani Nikula
On Wed, 13 Oct 2021, David Bremner  wrote:
> Jani Nikula  writes:
>
>> The main downside is that Hawkmoth is not available via distro
>> packaging, only PyPI.
>
> I guess another issue is the new dependency on Clang +
> bindings. Although maybe that's a fair trade for dropping doxygen.

Doxygen already depends on libclang:

$ dpkg -s doxygen | grep "^Depends:"
Depends: libc6 (>= 2.29), libclang-cpp11 (>= 1:11.0.1), libclang1-11 (>=
  1:5.0~svn298832-1~), libgcc-s1 (>= 3.0), libllvm11 (>=
  1:9~svn298832-1~), libstdc++6 (>= 7), libxapian30 (>= 1.4.14~)

The difference is that the libclang python bindings depend on the dev
packages:

$ dpkg -s python3-clang-11 | grep "^Depends:"
Depends: python3, libclang-11-dev

$ dpkg -s libclang-11-dev | grep "^Depends:"
Depends: libstdc++-10-dev, libgcc-10-dev, libobjc-10-dev, libclang1-11
  (= 1:11.0.1-2), libclang-common-11-dev (= 1:11.0.1-2)

I think you're probably in a better position to judge the relative sizes
of the dependency trees than me, but the libclang dependency is already
there with Doxygen. The Python parts are pretty small, it's the dev
packages vs. Doxygen that makes the difference.

> What would be the plan for transition while distros package hawkmoth?
> Embed it in notmuch? Ship the compiled docs?

I'm afraid I don't have an answer to that. What do projects do when they
depend on packages from PyPI? It's a kind of chicken and egg problem.

I saw that you made the Debian packaging request; many thanks! But is
that enough? What is your stance on imposing new dependencies on other
distros?


BR,
Jani.
___
notmuch mailing list -- notmuch@notmuchmail.org
To unsubscribe send an email to notmuch-le...@notmuchmail.org


Re: [RFC 2/5] lib: remove enum names from typedefs

2021-10-13 Thread Tomi Ollila
On Wed, Oct 13 2021, David Bremner wrote:

> Jani Nikula  writes:
>
>> Given the named enum typedef:
>>
>> typedef enum _name_t { ... } name_t;
>>
>> Hawkmoth uses _name_t as the name for documentation. Typedef the
>> anonymous enum:
>>
>> typedef enum { ... } name_t;
>>
>> instead to use name_t. We don't really need the enum names for
>> anything, and not all of the enum typedefs have them anyway.
>> ---
> I guess that change would be fine independent of the rest?

I had the same thought.

Tomi
___
notmuch mailing list -- notmuch@notmuchmail.org
To unsubscribe send an email to notmuch-le...@notmuchmail.org


Re: [RFC 1/5] doc: replace doxygen with hawkmoth sphinx extension for api docs

2021-10-13 Thread David Bremner
Jani Nikula  writes:
>  
> -have_doxygen=0
> -if [ $WITH_API_DOCS = "1" ] ; then
> -printf "Checking if doxygen is available... "
> -if command -v doxygen > /dev/null; then
> - printf "Yes.\n"
> - have_doxygen=1
> -else
> - printf "No (so will not install api docs)\n"
> -fi
> -fi
> -

I guess it's an important point that missing hawkmoth only blocks
building the api docs, not all of the docs.

d
___
notmuch mailing list -- notmuch@notmuchmail.org
To unsubscribe send an email to notmuch-le...@notmuchmail.org


Re: [RFC 3/5] lib: remove commented out NOTMUCH_DEPRECATED()

2021-10-13 Thread David Bremner
Jani Nikula  writes:

> Having comments between the documentation comment and the object being
> documented throws Hawkmoth off. Remove the placeholder
> NOTMUCH_DEPRECATED() comments.
>
> ---
>
> They were added in commit e5f3c3ed5024 ("lib: add stub for
> notmuch_database_open_with_config"); maybe the comment markers should
> be removed instead?

Yes, those should be uncommented, I think.

d
___
notmuch mailing list -- notmuch@notmuchmail.org
To unsubscribe send an email to notmuch-le...@notmuchmail.org


Re: [RFC 2/5] lib: remove enum names from typedefs

2021-10-13 Thread David Bremner
Jani Nikula  writes:

> Given the named enum typedef:
>
> typedef enum _name_t { ... } name_t;
>
> Hawkmoth uses _name_t as the name for documentation. Typedef the
> anonymous enum:
>
> typedef enum { ... } name_t;
>
> instead to use name_t. We don't really need the enum names for
> anything, and not all of the enum typedefs have them anyway.
> ---
I guess that change would be fine independent of the rest?
___
notmuch mailing list -- notmuch@notmuchmail.org
To unsubscribe send an email to notmuch-le...@notmuchmail.org


Bug#996357: RFP: python3-hawkmoth -- minimalistic Sphinx C Domain autodoc directive extension

2021-10-13 Thread David Bremner
Package: wnpp
Severity: wishlist
X-Debbugs-Cc: notmuch@notmuchmail.org

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA256

* Package name: python3-hawkmoth
  Version : 0.9.0
  Upstream Author : Jani Nikula
* URL : https://github.com/jnikula/hawkmoth
* License : BSD 2 clause
  Programming Lang: Python
  Description : minimalistic Sphinx C Domain autodoc directive extension

Incorporate formatted C source code comments written in
reStructuredText into Sphinx based documentation.  Hawkmoth focuses on
simplicity of design, implementation and use.

Roughly speaking, it's replacement for Doxygen that integrates nicer with 
documentation written in Sphinx.
It seems useful in general. We're considering using it in notmuch.

-BEGIN PGP SIGNATURE-

iQIzBAEBCAAdFiEEkiyHYXwaY0SiY6fqA0U5G1WqFSEFAmFmz1kACgkQA0U5G1Wq
FSFVkg//Z+n9KDTUvMeZNQBSKWFOmoNYiYy1M6lM0S03Nzj73S9iaW3x5TWN21oo
81LwE3obciclnI49E2arychNYFHbIqL9NfkhxLAB15ngJLdo1/UmICLJqzeHNnhr
1/rEqnXs/kpzqQVh3IfFI9t6NwvmGb1iOgPv8RWzOl4BuytrIjuNBHYj7OYX4JKd
BZHAM7aWY4Becnn4r8rjt+iWiIhbdZbB5ozIFtEXQgcs4kCmJPY6kjsl57eFJQMh
Y+OUInLxB1mLGRcBRRVXHaFPSvkO3fjzl8YQmre5LBzYkFKwykKAL8OMIwMabBor
5/hPUVxHBkbnX4+B54G7J2esISrRCaRRGL9CIHeebmwz+lX0ugK0j4H7HlTqW7Z8
cGM9HW5pGN2CZGUukJNbLS+r6pca2l0cDP3NjFgI6GDdEmq4mWe1PQxmHIqN6XWI
tnH18GoApKayMAhzQaZoxMGsSry15xqowl4mypOvm+z2elcXkJm/afreFv7mCqD0
3PZokDvN5SqsrbDrmkHXr0cqwq5FjeC9HO0HlWAhQ/53i/bp35Yqg/RizcTXwgup
sm7AFMCbp60DxvjGVKUzskdV8GypvO18oMMle+KaQSTDwbJ0oqe8vAECY3Og14/1
WdInOBdRe16Zs/zP+2bWe0jsiVC6EXoutQAoKAeihev5E1c56S0=
=/KZP
-END PGP SIGNATURE-
___
notmuch mailing list -- notmuch@notmuchmail.org
To unsubscribe send an email to notmuch-le...@notmuchmail.org


Re: [RFC 0/5] doc: api docs overhaul

2021-10-13 Thread David Bremner
Jani Nikula  writes:


> The main downside is that Hawkmoth is not available via distro
> packaging, only PyPI.

I guess another issue is the new dependency on Clang +
bindings. Although maybe that's a fair trade for dropping doxygen.

What would be the plan for transition while distros package hawkmoth?
Embed it in notmuch? Ship the compiled docs?

d
___
notmuch mailing list -- notmuch@notmuchmail.org
To unsubscribe send an email to notmuch-le...@notmuchmail.org


Re: [RFC 1/5] doc: replace doxygen with hawkmoth sphinx extension for api docs

2021-10-13 Thread Jani Nikula
On Wed, 13 Oct 2021, Tomi Ollila  wrote:
> Interesting stuff...
>
> On Tue, Oct 12 2021, Jani Nikula wrote:
>
>> Hawkmoth is a Sphinx extension for incorporating documentation
>> comments from C source to Sphinx. For Notmuch API documentation needs,
>> Doxygen is overkill, and Hawkmoth also directly integrates with
>> Sphinx.
>
> // stuff deleted //
>
>> +
>>  # -- Options for HTML output --
>>  
>>  # The theme to use for HTML and HTML Help pages.  See the documentation for
>> @@ -172,6 +178,13 @@ man_pages = [
>>   [notmuch_authors], 1),
>>  ]
>>  
>> +if tags.has('WITH_API_DOCS'):
>> +man_pages += [
>> +('man3/notmuch', 'notmuch',
>> + u'notmuch library',
>
> öld stuff...??? (the u'' i mean) :O

Yeah, it's still used throughout in man_pages, decided to follow suit
instead of making that cleanup now.

BR,
Jani.

>
> Tomi 
>
>
>> + [notmuch_authors], 3),
>> +]
>> +
>>  # If true, show URL addresses after external links.
>>  #man_show_urls = False
___
notmuch mailing list -- notmuch@notmuchmail.org
To unsubscribe send an email to notmuch-le...@notmuchmail.org