branch: elpa/isl
commit 1c7a95769438888e501b1774b93b1a2bcfbe2924
Author: Thierry Volpiatto <[email protected]>
Commit: Thierry Volpiatto <[email protected]>

    Use take instead of butlast
    
    Not tested but I guess it is faster.
---
 isl.el | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/isl.el b/isl.el
index 0fb3397185b..64fb7f19035 100644
--- a/isl.el
+++ b/isl.el
@@ -811,14 +811,15 @@ you try to modify other elements externally."
                                  (changing-direction nil))
       ()
     (let ((elm (car tmp-seq))
-          revlist queue)
+          revlist queue index)
       (if changing-direction
           (setq revlist (reverse seq)
                 queue (memql element revlist)
                 direction (pcase direction
                             ('left 'right)
                             ('right 'left))
-                seq (append queue (butlast revlist (length queue)))
+                index (- (length seq) (length queue))
+                seq (append queue (take index revlist))
                 tmp-seq (cddr seq)
                 elm (cadr seq)
                 changing-direction nil)
@@ -835,8 +836,9 @@ you try to modify other elements externally."
 
 (defun isl-set-iterator ()
   "Build `isl--iterator' against `isl--item-overlays'."
-  (let* ((lst (memql isl--last-overlay isl--item-overlays))
-         (ovs (append lst (butlast isl--item-overlays (length lst)))))
+  (let* ((queue (memql isl--last-overlay isl--item-overlays))
+         (index (- (length isl--item-overlays) (length queue)))
+         (ovs   (append queue (take index isl--item-overlays))))
     (setq isl--iterator (isl-iter-circular ovs))))
 
 (defun isl-delete-overlays ()

Reply via email to