GNU bug report logs - #29489
Obsolete gnus-remove-if and gnus-remove-if-not

Previous Next

Packages: gnus, emacs;

Reported by: Eric Abrahamsen <eric <at> ericabrahamsen.net>

Date: Tue, 28 Nov 2017 17:03:05 UTC

Severity: normal

Tags: patch

Found in version 5.13

Done: Eric Abrahamsen <eric <at> ericabrahamsen.net>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Eric Abrahamsen <eric <at> ericabrahamsen.net>
To: 29489 <at> debbugs.gnu.org
Subject: bug#29489: Obsolete gnus-remove-if and gnus-remove-if-not
Date: Thu, 30 Nov 2017 10:29:44 -0800
[Message part 1 (text/plain, inline)]
Eric Abrahamsen <eric <at> ericabrahamsen.net> writes:

> Noam Postavsky <npostavs <at> users.sourceforge.net> writes:
>
>> Eric Abrahamsen <eric <at> ericabrahamsen.net> writes:
>>
>>> For the interim, all that matters is consistency:
>>>
>>> (let ((list nil)
>>>       (ob (make-vector 3 0)))
>>>   (intern "foo" ob)
>>>   (intern "bar" ob)
>>>   (intern "xxx" ob)
>>>   (gnus-remove-if-not (lambda (_) t) ob)) ;=> (xxx 0 0)
>>
>> But:
>>
>> (let ((list nil)
>>       (ob (make-vector 3 0)))
>>   (intern "foo" ob)
>>   (intern "bar" ob)
>>   (intern "xxx" ob)
>>   (gnus-remove-if-not (lambda (_) t)
>>                       ob t)) ;=> (xxx bar foo)
>
> Good catch! Thanks for that. I was too hasty, and had already moved on
> to running the next patch.
>
> There are only two places in the code where that third argument is
> passed. I can rework those two locations so that they work properly,
> until the next step is taken.

For a brief, amusing moment, I thought I could write a seq-filter method
that specialized on obarrays, but unfortunately there's no specializer
for obarrays. Oh well. Here's another version of the patch. It's not
pretty, but I do hope it's temporary.

[0001-Obsolete-gnus-remove-if-and-gnus-remove-if-not.patch (text/x-diff, attachment)]

This bug report was last modified 7 years and 168 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.