[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#68232: [PATCH] Fix range-intersection implementation
From: |
Stefan Kangas |
Subject: |
bug#68232: [PATCH] Fix range-intersection implementation |
Date: |
Thu, 11 Jan 2024 12:56:13 -0800 |
Zachary Romero <zacromero@posteo.net> writes:
> Hello Emacs maintainers,
>
> I was using the range package when I encountered a bug in the
> implementation of range-intersection. The bug seems to occur when the
> ranges involve a mix of integers and cons pairs. The following are some
> cases where the current implementation fails to compute the correct
> intersection:
>
> (range-intersection '((1 . 10) 11) '((11 . 12)))
> ;; Expects (11), returns nil
>
> (range-intersection '(11 (13 . 15)) '((13 . 15)))
> ;; Expects (13 . 15), returns nil
>
> (range-intersection '(1 11 13 15) '((1 . 2) (10 . 20)))
> ;; Expects (1 11 13 15), returns (1)
>
>
> I also refactored this function using pcase to try to make the steps of
> the algorithm more understandable.
>
> Let me know you thoughts and if there's any further changes I should
> make.
Thanks for the patch. Could you please add tests for this as well?
See the file range-tests.el.
Did you check that the existing tests all still pass?