Re: [PATCH 00/32] [emacs] Add outline headings and switch to lexical scope

Subject: Re: [PATCH 00/32] [emacs] Add outline headings and switch to lexical scope

Date: Sun, 27 Dec 2020 12:14:25 +0200

To: Jonas Bernoulli,


From: Tomi Ollila

On Mon, Dec 14 2020, Jonas Bernoulli wrote:

> Hello,
> This patch serious changes a number of things, including boring
> cleanup, but the big changes are the following.  The respective
> commits are also marked in the list below.  See these commits
> for longer descriptions.
> 1. Split all libraries into sections by adding new headings or
>    formatting existing headings properly to be compatible with
>    outline-minor-mode.
> 2. Use lexical-scope in all libraries.  This is potentially faster
>    and is recommended for all new code (and old code someone cares
>    about enough).  It also has the advantage that it can reveal
>    subtle bugs.

The patch series did not apply for me (fully) anymore. First had to
be skipped, then two of more of the last, therefore I did not put
this into use for now (as, if it fails I don't know whether the
reason is dropped changes or my way of building it...)

I like the series (on paper), 2 comments

In patch 23/32, line
 +	    (y-or-n-p (format "Fcc header %s is an absolute path%s%s" subdir
should be
 +	    (y-or-n-p (format "Fcc header %s is an absolute path %s %s" subdir

(I.e. spaces around %s's)

Then, I personally don't see enough point for requiring subr-x
just just for changing (string= foo "") to (string-empty-p). If
there were more features picked from subr-x then that would be

> Among the many more commits that do not concern these two big
> changes, there are a few that might need special attention.
> (Again see the commits for details.)
> 3. No longer use Ido in notmuch-mua-prompt-for-sender.  Might be
>    controversial.
> 4. Stop using unnecessary let-bindings, though how "unnecessary"
>    these bindings are is somewhat subjective.

I like these two changes.

>      Cheers,
>      Jonas


PS: I used the following code to drop cr's (\r) from base64-encoded
    text blobs; just enough to work in this particular case.

# -*- mode: cperl; cperl-indent-level: 4 -*-

use 5.8.1;
use strict;
use warnings;
use MIME::Base64;

while (<STDIN>) {
    print $_;
    if (/^Content-Transfer-Encoding: base64/) {
	while (<STDIN>) { print $_; last if /^\s*$/ }
	my @lines;
	while (<STDIN>) { last if /^\s*$/; push @lines, $_ }
	my $decoded = decode_base64 join('', @lines);
	$decoded =~ tr/\r//d;
	print(encode_base64 $decoded);
	print "\n"
notmuch mailing list --
To unsubscribe send an email to