Function: org-agenda-kill
org-agenda-kill is an interactive and byte-compiled function defined
in org-agenda.el.gz.
Signature
(org-agenda-kill)
Documentation
Kill the entry or subtree belonging to the current agenda entry.
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/org/org-agenda.el.gz
(defun org-agenda-kill ()
"Kill the entry or subtree belonging to the current agenda entry."
(interactive)
(or (eq major-mode 'org-agenda-mode) (user-error "Not in agenda"))
(org-agenda-maybe-loop
#'org-agenda-kill nil nil t
(let* ((bufname-orig (buffer-name))
(marker (or (org-get-at-bol 'org-marker)
(org-agenda-error)))
(buffer (marker-buffer marker))
(type (org-get-at-bol 'type))
dbeg dend (n 0))
(org-with-remote-undo buffer
(org-with-point-at marker
(if (and (derived-mode-p 'org-mode) (not (member type '("sexp"))))
(setq dbeg (progn (org-back-to-heading t) (point))
dend (org-end-of-subtree t t))
(setq dbeg (line-beginning-position)
dend (min (point-max) (1+ (line-end-position)))))
(goto-char dbeg)
(while (re-search-forward "^[ \t]*\\S-" dend t) (setq n (1+ n))))
(when (or (eq t org-agenda-confirm-kill)
(and (numberp org-agenda-confirm-kill)
(> n org-agenda-confirm-kill)))
(let ((win-conf (current-window-configuration)))
(unwind-protect
(and
(prog2
(org-agenda-tree-to-indirect-buffer nil)
(not (y-or-n-p
(format "Delete entry with %d lines in buffer \"%s\"? "
n (buffer-name buffer))))
(kill-buffer org-last-indirect-buffer))
(error "Abort"))
(set-window-configuration win-conf))))
(let ((org-agenda-buffer-name bufname-orig))
(org-remove-subtree-entries-from-agenda buffer dbeg dend))
(org-with-point-at marker (delete-region dbeg dend))
(message "Agenda item and source killed")))))