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.
;; Functions for sexp diary entries.
;; 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
(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
(nth 2 when))))))))
(eq w d)))
(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)))
(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.
;; Fighting with Org-mode's evil key maps.