GNU bug report logs -
#29489
Obsolete gnus-remove-if and gnus-remove-if-not
Previous Next
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
[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.