Function: todo-edit-item--diary-inclusion

todo-edit-item--diary-inclusion is a byte-compiled function defined in todo-mode.el.gz.

Signature

(todo-edit-item--diary-inclusion &optional NONMARKING)

Documentation

Function providing diary marking facilities of todo-edit-item.

Source Code

;; Defined in /usr/src/emacs/lisp/calendar/todo-mode.el.gz
(defun todo-edit-item--diary-inclusion (&optional nonmarking)
  "Function providing diary marking facilities of `todo-edit-item'."
  (let ((inhibit-read-only t)
	(marked (assoc (todo-current-category) todo-categories-with-marks)))
    (when marked (todo--user-error-if-marked-done-item))
    (catch 'stop
      (save-excursion
	(when marked (goto-char (point-min)))
	(while (not (eobp))
	  (unless (and marked (not (todo-marked-item-p)))
	    (let* ((_beg (todo-item-start))
		   (lim (save-excursion (todo-item-end)))
		   (end (save-excursion
			  (or (todo-time-string-matcher lim)
			      (todo-date-string-matcher lim)))))
	      (if nonmarking
		  (if (looking-at (regexp-quote diary-nonmarking-symbol))
		      (replace-match "")
		    (when (looking-at (regexp-quote todo-nondiary-start))
		      (save-excursion
			(replace-match "")
			(search-forward todo-nondiary-end (1+ end) t)
			(replace-match "")
			(todo-update-count 'diary 1)))
		    (insert diary-nonmarking-symbol))
		(if (looking-at (regexp-quote todo-nondiary-start))
		    (progn
		      (replace-match "")
		      (search-forward todo-nondiary-end (1+ end) t)
		      (replace-match "")
		      (todo-update-count 'diary 1))
		  (when end
		    (when (looking-at (regexp-quote diary-nonmarking-symbol))
		      (replace-match "")
		      (setq end (1- end))) ; Since we deleted nonmarking symbol.
		    (insert todo-nondiary-start)
		    (goto-char (1+ end))
		    (insert todo-nondiary-end)
		    (todo-update-count 'diary -1))))))
	  (unless marked (throw 'stop nil))
	  (todo-forward-item)))))
  (todo-update-categories-sexp))