Function: org-agenda-redo

org-agenda-redo is an interactive and byte-compiled function defined in org-agenda.el.gz.

Signature

(org-agenda-redo &optional ALL)

Documentation

Rebuild possibly ALL agenda view(s) in the current buffer.

Key Bindings

Source Code

;; Defined in /usr/src/emacs/lisp/org/org-agenda.el.gz
(defun org-agenda-redo (&optional all)
  "Rebuild possibly ALL agenda view(s) in the current buffer."
  (interactive "P")
  (defvar org-agenda-tag-filter-while-redo) ;FIXME: Where is this var used?
  (let* ((p (or (and (looking-at "\\'") (1- (point))) (point)))
	 (cpa (unless (eq all t) current-prefix-arg))
	 (org-agenda-doing-sticky-redo org-agenda-sticky)
	 (org-agenda-sticky nil)
	 (org-agenda-buffer-name (or org-agenda-this-buffer-name
				     org-agenda-buffer-name))
	 (org-agenda-keep-modes t)
	 (tag-filter org-agenda-tag-filter)
	 (tag-preset (assoc-default 'tag org-agenda-filters-preset))
	 (top-hl-filter org-agenda-top-headline-filter)
	 (cat-filter org-agenda-category-filter)
	 (cat-preset (assoc-default 'category org-agenda-filters-preset))
	 (re-filter org-agenda-regexp-filter)
	 (re-preset (assoc-default 'regexp org-agenda-filters-preset))
	 (effort-filter org-agenda-effort-filter)
	 (effort-preset (assoc-default 'effort org-agenda-filters-preset))
	 (org-agenda-tag-filter-while-redo (or tag-filter tag-preset))
	 (cols org-agenda-columns-active)
	 (line (org-current-line))
	 (window-line (- line (org-current-line (window-start))))
	 (lprops (get-text-property p 'org-lprops))
	 (redo-cmd (get-text-property p 'org-redo-cmd))
	 (last-args (get-text-property p 'org-last-args))
	 (org-agenda-overriding-cmd (get-text-property p 'org-series-cmd))
	 (org-agenda-overriding-cmd-arguments
	  (unless (eq all t)
	    (cond ((listp last-args)
		   (cons (or cpa (car last-args)) (cdr last-args)))
		  ((stringp last-args)
		   last-args))))
	 (series-redo-cmd (get-text-property p 'org-series-redo-cmd)))
    (and cols (org-columns-quit))
    (message "Rebuilding agenda buffer...")
    (if series-redo-cmd
	(eval series-redo-cmd t)
      (cl-progv
	  (mapcar #'car lprops)
	  (mapcar (lambda (binding) (eval (cadr binding) t)) lprops)
	(eval redo-cmd t))
      (let ((inhibit-read-only t))
	(add-text-properties (point-min) (point-max) `(org-lprops ,lprops))))
    (setq org-agenda-undo-list nil
	  org-agenda-pending-undo-list nil
	  org-agenda-tag-filter tag-filter
	  org-agenda-category-filter cat-filter
	  org-agenda-regexp-filter re-filter
	  org-agenda-effort-filter effort-filter
	  org-agenda-top-headline-filter top-hl-filter)
    (message "Rebuilding agenda buffer...done")
    (let ((tag (or tag-filter tag-preset))
	  (cat (or cat-filter cat-preset))
	  (effort (or effort-filter effort-preset))
	  (re (or re-filter re-preset)))
      (when tag (org-agenda-filter-apply tag 'tag t))
      (when cat (org-agenda-filter-apply cat 'category))
      (when effort (org-agenda-filter-apply effort 'effort))
      (when re  (org-agenda-filter-apply re 'regexp)))
    (and top-hl-filter (org-agenda-filter-top-headline-apply top-hl-filter))
    (and cols (called-interactively-p 'any) (org-agenda-columns))
    (org-goto-line line)
    (when (called-interactively-p 'any) (recenter window-line))))