From 4e053fceed58d72c5670556ec0537610d52d6fa7 Mon Sep 17 00:00:00 2001 From: Artur Malabarba Date: Mon, 20 Apr 2015 20:53:16 +0100 Subject: Move sx-sorted-insert-skip-first --- sx-question.el | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'sx-question.el') diff --git a/sx-question.el b/sx-question.el index f5c7e86..7c2b1e9 100644 --- a/sx-question.el +++ b/sx-question.el @@ -122,6 +122,19 @@ See `sx-question--user-read-list'." (>= (or (cdr (assoc .question_id ql)) 0) .last_activity_date))))) +(defmacro sx-sorted-insert-skip-first (newelt list &optional predicate) + "Inserted NEWELT into LIST sorted by PREDICATE. +This is designed for the (site id id ...) lists. So the first car +is intentionally skipped." + `(let ((tail ,list) + (x ,newelt)) + (while (and ;; We're not at the end. + (cdr-safe tail) + ;; We're not at the right place. + (funcall (or #',predicate #'<) x (cadr tail))) + (setq tail (cdr tail))) + (setcdr tail (cons x (cdr tail))))) + (defun sx-question--mark-read (question) "Mark QUESTION as being read until it is updated again. Returns nil if question (in its current state) was already marked -- cgit v1.2.3