17 lines
527 B
Common Lisp
17 lines
527 B
Common Lisp
(require 'gnus-range)
|
|
|
|
(defun rangext (lst)
|
|
(mapconcat (lambda (item)
|
|
(if (consp item)
|
|
(if (= (+ 1 (car item)) (cdr item))
|
|
(format "%d,%d" (car item) (cdr item))
|
|
(format "%d-%d" (car item) (cdr item)))
|
|
(format "%d" item)))
|
|
(gnus-compress-sequence lst)
|
|
","))
|
|
|
|
(rangext '(0 1 2 4 6 7 8 11 12 14
|
|
15 16 17 18 19 20 21 22 23 24
|
|
25 27 28 29 30 31 32 33 35 36
|
|
37 38 39))
|
|
;; => "0-2,4,6-8,11,12,14-25,27-33,35-39"
|