summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Goaziou <mail@nicolasgoaziou.fr>2020-05-01 15:51:43 +0200
committerNicolas Goaziou <mail@nicolasgoaziou.fr>2020-05-01 15:51:43 +0200
commit609e4f004b6dec83a55dd76fa60c80bdaf0cc1bb (patch)
tree658a4e3fa4a0037cf50f53f4317e95456d3eeb7a
parentce10179cc28986d9260d0f66f42499e66b96e82d (diff)
downloadorg-mode-609e4f004b6dec83a55dd76fa60c80bdaf0cc1bb.tar.gz
list: Refactor `mapc' + `lambda' into `dolist'
* lisp/org-list.el (org-list-get-subtree): (org-list-struct-fix-box): (org-list-struct-fix-item-end): (org-apply-on-list): (org-list-set-item-visibility): (org-toggle-checkbox): (org-list-indent-item-generic): Use `dolist', or `pcase-dolist' instead of `mapc' + `lambda'.
-rw-r--r--lisp/org-list.el92
1 files changed, 43 insertions, 49 deletions
diff --git a/lisp/org-list.el b/lisp/org-list.el
index f5168ea..3b8a5c3 100644
--- a/lisp/org-list.el
+++ b/lisp/org-list.el
@@ -910,13 +910,13 @@ items, as returned by `org-list-prevs-alist'."
STRUCT is the list structure."
(let* ((item-end (org-list-get-item-end item struct))
(sub-struct (cdr (member (assq item struct) struct)))
- subtree)
- (catch 'exit
- (mapc (lambda (e)
- (let ((pos (car e)))
- (if (< pos item-end) (push pos subtree) (throw 'exit nil))))
- sub-struct))
- (nreverse subtree)))
+ items)
+ (catch :exit
+ (pcase-dolist (`(,pos . ,_) sub-struct)
+ (if (< pos item-end)
+ (push pos items)
+ (throw :exit nil))))
+ (nreverse items)))
(defun org-list-get-all-items (item struct prevs)
"List all items in the same sub-list as ITEM.
@@ -1788,10 +1788,9 @@ This function modifies STRUCT."
;; There are boxes checked after an unchecked one: fix that.
(when (member "[X]" after-unchecked)
(let ((index (- (length struct) (length after-unchecked))))
- (mapc (lambda (e)
- (when (org-list-get-checkbox e struct)
- (org-list-set-checkbox e struct "[ ]")))
- (nthcdr index all-items))
+ (dolist (e (nthcdr index all-items))
+ (when (org-list-get-checkbox e struct)
+ (org-list-set-checkbox e struct "[ ]")))
;; Verify once again the structure, without ORDERED.
(org-list-struct-fix-box struct parents prevs nil)
;; Return blocking item.
@@ -1802,24 +1801,22 @@ This function modifies STRUCT."
This function modifies STRUCT."
(let (end-list acc-end)
- (mapc (lambda (e)
- (let* ((pos (car e))
- (ind-pos (org-list-get-ind pos struct))
- (end-pos (org-list-get-item-end pos struct)))
- (unless (assq end-pos struct)
- ;; To determine real ind of an ending position that is
- ;; not at an item, we have to find the item it belongs
- ;; to: it is the last item (ITEM-UP), whose ending is
- ;; further than the position we're interested in.
- (let ((item-up (assoc-default end-pos acc-end '>)))
- (push (cons
- ;; Else part is for the bottom point.
- (if item-up (+ (org-list-get-ind item-up struct) 2) 0)
- end-pos)
- end-list)))
- (push (cons ind-pos pos) end-list)
- (push (cons end-pos pos) acc-end)))
- struct)
+ (pcase-dolist (`(,pos . ,_) struct)
+ (let ((ind-pos (org-list-get-ind pos struct))
+ (end-pos (org-list-get-item-end pos struct)))
+ (unless (assq end-pos struct)
+ ;; To determine real ind of an ending position that is not
+ ;; at an item, we have to find the item it belongs to: it is
+ ;; the last item (ITEM-UP), whose ending is further than the
+ ;; position we're interested in.
+ (let ((item-up (assoc-default end-pos acc-end #'>)))
+ (push (cons
+ ;; Else part is for the bottom point.
+ (if item-up (+ (org-list-get-ind item-up struct) 2) 0)
+ end-pos)
+ end-list)))
+ (push (cons ind-pos pos) end-list)
+ (push (cons end-pos pos) acc-end)))
(setq end-list (sort end-list (lambda (e1 e2) (< (cdr e1) (cdr e2)))))
(org-list-struct-assoc-end struct end-list)))
@@ -2016,10 +2013,9 @@ beginning of the item."
(item (copy-marker (point-at-bol)))
(all (org-list-get-all-items (marker-position item) struct prevs))
(value init-value))
- (mapc (lambda (e)
- (goto-char e)
- (setq value (apply function value args)))
- (nreverse all))
+ (dolist (e (nreverse all))
+ (goto-char e)
+ (setq value (apply function value args)))
(goto-char item)
(move-marker item nil)
value))
@@ -2041,9 +2037,8 @@ Possible values are: `folded', `children' or `subtree'. See
;; Then fold every child.
(let* ((parents (org-list-parents-alist struct))
(children (org-list-get-children item struct parents)))
- (mapc (lambda (e)
- (org-list-set-item-visibility e struct 'folded))
- children)))
+ (dolist (child children)
+ (org-list-set-item-visibility child struct 'folded))))
((eq view 'subtree)
;; Show everything
(let ((item-end (org-list-get-item-end item struct)))
@@ -2423,15 +2418,15 @@ subtree, ignoring planning line and any drawer following it."
(items-to-toggle (cl-remove-if
(lambda (e) (or (< e lim-up) (> e lim-down)))
(mapcar #'car struct))))
- (mapc (lambda (e) (org-list-set-checkbox
- e struct
- ;; If there is no box at item, leave as-is
- ;; unless function was called with C-u prefix.
- (let ((cur-box (org-list-get-checkbox e struct)))
- (if (or cur-box (equal toggle-presence '(4)))
- ref-checkbox
- cur-box))))
- items-to-toggle)
+ (dolist (e items-to-toggle)
+ (org-list-set-checkbox
+ e struct
+ ;; If there is no box at item, leave as-is unless
+ ;; function was called with C-u prefix.
+ (let ((cur-box (org-list-get-checkbox e struct)))
+ (if (or cur-box (equal toggle-presence '(4)))
+ ref-checkbox
+ cur-box))))
(setq block-item (org-list-struct-fix-box
struct parents prevs orderedp))
;; Report some problems due to ORDERED status of subtree.
@@ -2679,10 +2674,9 @@ Return t if successful."
(org-list-bullet-string "-")))
;; Shift every item by OFFSET and fix bullets. Then
;; apply changes to buffer.
- (mapc (lambda (e)
- (let ((ind (org-list-get-ind (car e) struct)))
- (org-list-set-ind (car e) struct (+ ind offset))))
- struct)
+ (pcase-dolist (`(,pos . ,_) struct)
+ (let ((ind (org-list-get-ind pos struct)))
+ (org-list-set-ind pos struct (+ ind offset))))
(org-list-struct-fix-bul struct prevs)
(org-list-struct-apply-struct struct old-struct))))
;; Forbidden move: