X-Git-Url: https://git.distorted.org.uk/~mdw/profile/blobdiff_plain/9f58a8d25ff4410032f840c6a50d276a7d2b7836..fda9b27ae6d639f6fb66238e03189fe47a585b45:/el/dot-emacs.el diff --git a/el/dot-emacs.el b/el/dot-emacs.el index e50d773..d254154 100644 --- a/el/dot-emacs.el +++ b/el/dot-emacs.el @@ -259,6 +259,11 @@ it's currently off." ;; 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 @@ as output rather than a string." (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. @@ -508,6 +533,27 @@ so that it can be used for convenient filtering." (setenv "REAL_MOVEMAIL" try)) (setq path (cdr path))))) +;; AUTHINFO GENERIC kludge. + +(defvar nntp-authinfo-generic nil + "Set to the `NNTPAUTH' string to pass on to `authinfo-kludge'. + +Use this to arrange for per-server settings.") + +(defun nntp-open-authinfo-kludge (buffer) + "Open a connection to SERVER using `authinfo-kludge'." + (let ((proc (start-process "nntpd" buffer + "env" (concat "NNTPAUTH=" + (or nntp-authinfo-generic + (getenv "NNTPAUTH") + (error "NNTPAUTH unset"))) + "authinfo-kludge" nntp-address))) + (set-buffer buffer) + (nntp-wait-for-string "^\r*200") + (beginning-of-line) + (delete-region (point-min) (point)) + proc)) + (eval-after-load "erc" '(load "~/.ercrc.el"))