(let ((mdw-diary-for-org-mode-p t))
ad-do-it))
-(defadvice diary-add-to-list (before mdw-trim-leading-space activate)
+(defadvice diary-add-to-list (before mdw-trim-leading-space compile activate)
"Trim leading space from the diary entry string."
(save-match-data
- (let ((str (ad-get-arg 1)))
- (ad-set-arg 1
- (cond ((null str) nil)
+ (let ((str (ad-get-arg 1))
+ (done nil) old)
+ (while (not done)
+ (setq old str)
+ (setq str (cond ((null str) nil)
+ ((string-match "\\(^\\|\n\\)[ \t]+" str)
+ (replace-match "\\1" nil nil str))
((and mdw-diary-for-org-mode-p
(string-match (concat
- "^[ \t]*"
+ "\\(^\\|\n\\)"
"\\(" diary-time-regexp
"\\(-" diary-time-regexp "\\)?"
- "\\)[ \t]+")
+ "\\)"
+ "\\(\t[ \t]*\\| [ \t]+\\)")
str))
- (replace-match "\\1 " nil nil str))
- ((string-match "^[ \t]+" str)
- (replace-match "" nil nil str))
+ (replace-match "\\1\\2 " nil nil str))
((and (not mdw-diary-for-org-mode-p)
(string-match "\\[\\[[^][]*]\\[\\([^][]*\\)]]"
str))
(replace-match "\\1" nil nil str))
- (t str))))))
+ (t str)))
+ (if (equal str old) (setq done t)))
+ (ad-set-arg 1 str))))
+
+(defadvice org-bbdb-anniversaries (after mdw-fixup-list compile activate)
+ "Return a string rather than a list."
+ (with-temp-buffer
+ (let ((anyp nil))
+ (dolist (e (let ((ee ad-return-value))
+ (if (atom ee) (list ee) ee)))
+ (when e
+ (when anyp (insert ?\n))
+ (insert e)
+ (setq anyp t)))
+ (setq ad-return-value
+ (and anyp (buffer-string))))))
;; Fighting with Org-mode's evil key maps.
(mdw-define-face trailing-whitespace
(((class color)) :background "red")
(t :inverse-video t))
+(mdw-define-face whitespace-line
+ (((class color)) :background "darkred")
+ (t :inverse-video :t))
(mdw-define-face mdw-punct-face
(((type tty)) :foreground "yellow") (t :foreground "burlywood2"))
(mdw-define-face mdw-number-face
(mdw-define-face diff-refine-change
(((class color) (type x)) :background "RoyalBlue4")
(t :underline t))
+(mdw-define-face diff-refine-removed
+ (((class color) (type x)) :background "#500")
+ (t :underline t))
+(mdw-define-face diff-refine-added
+ (((class color) (type x)) :background "#050")
+ (t :underline t))
(mdw-define-face dylan-header-background
(((class color) (type x)) :background "NavyBlue")
c-basic-offset
nil)))
+(defun mdw-c-indent-arglist-nested (langelem)
+ "Indent continued argument lists.
+If we've nested more than one argument list, then only introduce a single
+indentation anyway."
+ (let ((context c-syntactic-context)
+ (pos (c-langelem-2nd-pos c-syntactic-element))
+ (should-indent-p t))
+ (while (and context
+ (eq (caar context) 'arglist-cont-nonempty))
+ (when (and (= (caddr (pop context)) pos)
+ context
+ (memq (caar context) '(arglist-intro
+ arglist-cont-nonempty)))
+ (setq should-indent-p nil)))
+ (if should-indent-p '+ 0)))
+
(defvar mdw-define-c-styles-hook nil
"Hook run when `cc-mode' starts up to define styles.")
(eval-after-load "cc-mode"
'(run-hooks 'mdw-define-c-styles-hook))
+(mdw-define-c-style mdw-trustonic-c
+ (c-basic-offset . 4)
+ (comment-column . 0)
+ (c-indent-comment-alist (anchored-comment . (column . 0))
+ (end-block . (space . 1))
+ (cpp-end-block . (space . 1))
+ (other . (space . 1)))
+ (c-class-key . "class")
+ (c-backslash-column . 0)
+ (c-auto-align-backslashes . nil)
+ (c-label-minimum-indentation . 0)
+ (c-offsets-alist (substatement-open . (add 0 c-indent-one-line-block))
+ (defun-open . (add 0 c-indent-one-line-block))
+ (arglist-cont-nonempty . mdw-c-indent-arglist-nested)
+ (topmost-intro . mdw-c-indent-extern-mumble)
+ (cpp-define-intro . 0)
+ (knr-argdecl . 0)
+ (inextern-lang . [0])
+ (label . 0)
+ (case-label . +)
+ (access-label . -)
+ (inclass . +)
+ (inline-open . ++)
+ (statement-cont . +)
+ (statement-case-intro . +)))
+
(mdw-define-c-style mdw-c
(c-basic-offset . 2)
(comment-column . 40)