el/dot-emacs.el: Fix C comment indentation.
[profile] / el / dot-emacs.el
index 1fc5263..f0d41c3 100644 (file)
@@ -706,10 +706,13 @@ With a prefix argument, clear the designated window."
   (interactive "P")
   (let ((window (selected-window)))
     (cond (cancel
-          (setq mdw-designated-window nil)
-          (unless (mdw-emacs-version-p 24)
-            (setq display-buffer-function nil))
-          (message "Window designation cleared."))
+          (cond (mdw-designated-window
+                 (setq mdw-designated-window nil)
+                 (unless (mdw-emacs-version-p 24)
+                   (setq display-buffer-function nil))
+                 (message "Window designation cleared."))
+                (t
+                 (message "No designated window active."))))
          ((window-dedicated-p window)
           (error "Window is dedicated to its buffer."))
          (t
@@ -766,9 +769,47 @@ Pretend they don't exist.  They might be on other display devices."
   (ad-set-arg 2 nil))
 
 (setq even-window-sizes nil
-      even-window-heights nil)
-
-(setq display-buffer-reuse-frames nil)
+      even-window-heights nil
+      display-buffer-reuse-frames nil)
+
+(defvar mdw-fallback-window-alist nil
+  "Alist mapping frames to fallback windows.")
+
+(defun mdw-cleanup-fallback-window-alist ()
+  "Remove entries for dead frames and windows from the fallback alist."
+  (let ((prev nil)
+       (cursor mdw-fallback-window-alist))
+    (while cursor
+      (let* ((assoc (car cursor))
+            (tail (cdr cursor)))
+       (cond ((and (frame-live-p (car assoc))
+                   (window-live-p (cdr assoc)))
+              (setq prev cursor))
+             ((null prev)
+              (setq mdw-fallback-window-alist tail))
+             (t
+              (setcdr prev tail)))
+       (setq cursor tail)))))
+
+(defun mdw-set-fallback-window (cancel)
+  "Prefer the selected window for pop-up buffers in this frame.
+With a prefix argument, clear the fallback window."
+  (interactive "P")
+  (let* ((frame (selected-frame)) (window (selected-window))
+        (assoc (assq (selected-frame) mdw-fallback-window-alist)))
+    (cond (cancel
+          (cond (assoc
+                 (setcdr assoc nil)
+                 (message "Fallback window cleared."))
+                (t
+                 (message "No fallback window active in this frame."))))
+         ((window-dedicated-p window)
+          (error "Window is dedicated to its buffer."))
+         (t
+          (if assoc (setcdr assoc window)
+            (push (cons frame window) mdw-fallback-window-alist))
+          (message "Fallback window set.")))
+    (mdw-cleanup-fallback-window-alist)))
 
 (defun mdw-last-window-in-frame-p (window)
   "Return whether WINDOW is the last in its frame."
@@ -788,10 +829,18 @@ Begone, foul DWIMmerlaik!
 This is all totally subject to arbitrary change in the future, but the
 emphasis is on predictability rather than crazy DWIMmery."
   (let* ((selected (selected-window)) chosen
+        (fallback (assq (selected-frame) mdw-fallback-window-alist))
         (full-height-p (window-full-height-p selected))
         (full-width-p (window-full-width-p selected)))
     (cond
 
+     ((and fallback (window-live-p (cdr fallback)))
+      ;; There's a fallback window set for this frame.  Use it.
+
+      (setq chosen (cdr fallback)
+           selected nil)
+      (display-buffer-record-window 'window chosen buffer))
+
      ((and full-height-p full-width-p)
       ;; We're basically the only window in the frame.  If we want to get
       ;; anywhere, we'll have to split the window.
@@ -1360,7 +1409,8 @@ If NEW-SESSION-P, start a new session."
   '(define-key w3m-mode-map [?\e ?\r] 'w3m-view-this-url-new-session))
 
 (defcustom mdw-good-url-browsers
-  '(browse-url-mozilla
+  '(browse-url-firefox
+    browse-url-mozilla
     browse-url-generic
     (w3m . mdw-w3m-browse-url)
     browse-url-w3)
@@ -2166,6 +2216,10 @@ doesn't match any of the regular expressions in
 (mdw-define-face magit-hash
   (((min-colors 64)) :foreground "grey40")
   (((class color)) :foreground "blue"))
+(mdw-define-face magit-popup-argument
+  (((min-colors 64)) :foreground "SeaGreen1")
+  (((class color)) :foreground "green")
+  (t :weight bold))
 (mdw-define-face magit-diff-hunk-heading
   (((min-colors 64)) :foreground "grey70" :background "grey25")
   (((class color)) :foreground "yellow"))
@@ -2201,8 +2255,16 @@ doesn't match any of the regular expressions in
   (((min-colors 64)) :background "NavyBlue")
   (((class color)) :background "blue"))
 
+(mdw-define-face erc-my-nick-face
+  (t :foreground "yellow" :weight bold))
+(mdw-define-face erc-current-nick-face
+  (t :foreground "yellow" :weight bold))
 (mdw-define-face erc-input-face
-  (t :foreground "red"))
+  (t :foreground "yellow"))
+(mdw-define-face erc-action-face
+  ())
+(mdw-define-face erc-button
+  (t :foreground "cyan" :underline t :weight semi-bold))
 
 (mdw-define-face woman-bold
   (t :weight bold))
@@ -2462,6 +2524,10 @@ set."
   (c-class-key . "class")
   (c-backslash-column . 72)
   (c-label-minimum-indentation . 0)
+  (c-indent-comments-syntactically-p t)
+  (c-indent-comment-alist (end-block . (column . nil))
+                         (cpp-end-block . (column . nil))
+                         (other . (column . nil)))
   (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-lineup-arglist)
@@ -3398,6 +3464,7 @@ name, as a symbol."
   (modify-syntax-entry ?$ "\\" font-lock-syntax-table)
   (modify-syntax-entry ?: "." font-lock-syntax-table)
   (mdw-standard-fill-prefix "\\([ \t]*#+[ \t]*\\)")
+  (setq auto-fill-function #'do-auto-fill)
 
   ;; Now define fontification things.
   (make-local-variable 'font-lock-keywords)