dot/xinitrc: Factor out the common Emacs size parameters.
[profile] / el / dot-emacs.el
index 8b24c35..d883666 100644 (file)
@@ -370,27 +370,45 @@ as output rather than a string."
   (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.
 
@@ -1219,6 +1237,9 @@ doesn't match any of the regular expressions in
 (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
@@ -1335,6 +1356,12 @@ doesn't match any of the regular expressions in
 (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")
@@ -1450,6 +1477,22 @@ doesn't match any of the regular expressions in
        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.")
 
@@ -1470,6 +1513,32 @@ set."
 (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)