From: Mark Wooding Date: Tue, 22 Mar 2016 01:52:40 +0000 (+0000) Subject: el/dot-emacs.el: Distinguish whether diary entries are processed for Org. X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/profile/commitdiff_plain/aede9fd7de7f8f21202482825873cc885d185e94 el/dot-emacs.el: Distinguish whether diary entries are processed for Org. If not, then strip off Orgish hyperlink markup. If so, then more whitespace trimming is wanted for entries with times attached. Also, add a diary sexp hack for hiding drivellous things from the Org mode agenda. --- diff --git a/el/dot-emacs.el b/el/dot-emacs.el index b307dc2..d254154 100644 --- a/el/dot-emacs.el +++ b/el/dot-emacs.el @@ -259,6 +259,11 @@ (defadvice exchange-point-and-mark ;; Functions for sexp diary entries. +(defun mdw-not-org-mode (form) + "As FORM, but not in Org mode agenda." + (and (not mdw-diary-for-org-mode-p) + (eval form))) + (defun mdw-weekday (l) "Return non-nil if `date' falls on one of the days of the week in L. L is a list of day numbers (from 0 to 6 for Sunday through to @@ -333,13 +338,33 @@ (defun mdw-todo (&optional when) (nth 2 when)))))))) (eq w d))) +(defvar mdw-diary-for-org-mode-p nil) + +(defadvice org-agenda-list (around mdw-preserve-links activate) + (let ((mdw-diary-for-org-mode-p t)) + ad-do-it)) + (defadvice diary-add-to-list (before mdw-trim-leading-space activate) "Trim leading space from the diary entry string." (save-match-data (let ((str (ad-get-arg 1))) - (if (and str (string-match "^[ \t]+" str)) - (let ((new (replace-match "" nil nil str))) - (ad-set-arg 1 new)))))) + (ad-set-arg 1 + (cond ((null str) nil) + ((and mdw-diary-for-org-mode-p + (string-match (concat + "^[ \t]*" + "\\(" diary-time-regexp + "\\(-" diary-time-regexp "\\)?" + "\\)[ \t]+") + str)) + (replace-match "\\1 " nil nil str)) + ((string-match "^[ \t]+" str) + (replace-match "" nil nil str)) + ((and (not mdw-diary-for-org-mode-p) + (string-match "\\[\\[[^][]*]\\[\\([^][]*\\)]]" + str)) + (replace-match "\\1" nil nil str)) + (t str)))))) ;; Fighting with Org-mode's evil key maps.