Merge branch 'master' of metalzone:etc/profile
authorMark Wooding <mdw@distorted.org.uk>
Sat, 26 Dec 2009 11:26:37 +0000 (11:26 +0000)
committerMark Wooding <mdw@distorted.org.uk>
Sat, 26 Dec 2009 11:26:37 +0000 (11:26 +0000)
* 'master' of metalzone:etc/profile:
  dot/emacs, el/dot-emacs.el: Fix patterns for root prompt.

dot/emacs
el/dot-emacs.el

index c291fdd..b2c35ec 100644 (file)
--- a/dot/emacs
+++ b/dot/emacs
 ;;; Rootly editingness.
 
 (eval-after-load "tramp"
-  '(progn
+  '(let ((fix-args (if (mdw-version-< tramp-version "2.1")
+                      #'append #'identity)))
      (setq tramp-methods
           (mdw-uniquify-alist
            `(("become"
               (tramp-copy-program nil)
               (tramp-copy-args nil)
               (tramp-copy-keep-date-arg nil)
-              (tramp-login-args (("TERM=dumb" "%u"))))
+              (tramp-login-args ,(funcall fix-args `("TERM=dumb" "%u"))))
              ("really"
               (tramp-connection-function tramp-open-connection-su)
               (tramp-login-program "really")
-              (tramp-login-args (("-u" "%u")
-                                 ("--")
-                                 ("env" "TERM=dumb" "/bin/sh")))
+              (tramp-login-args ,(funcall fix-args
+                                          `("-u" "%u")
+                                          `("--")
+                                          `("env" "TERM=dumb" "/bin/sh")))
               (tramp-copy-program nil)
               (tramp-copy-args nil)
               (tramp-copy-keep-date-arg nil)
              ,@tramp-methods)))
      (setq tramp-default-method "ssh")
      (setq tramp-default-method-alist
-          `(("\\`localhost\\'" ""
+          `(("\\`\\(localhost\\|\\)\\'" ""
              ,(cond ((executable-find "become") "become")
                     ((executable-find "really") "really")
                     (t "su")))))))
index e6b00c0..c0ab9a7 100644 (file)
@@ -418,6 +418,21 @@ in REST."
              (insert "\nNP: ")
              (insert-file-contents np-file)))))
 
+(defun mdw-version-< (ver-a ver-b)
+  "Answer whether VER-A is strictly earlier than VER-B.
+VER-A and VER-B are version numbers, which are strings containing digit
+sequences separated by `.'."
+  (let* ((la (mapcar (lambda (x) (car (read-from-string x)))
+                    (split-string ver-a "\\.")))
+        (lb (mapcar (lambda (x) (car (read-from-string x)))
+                    (split-string ver-b "\\."))))
+    (catch 'done
+      (while t
+       (cond ((null la) (throw 'done lb))
+             ((null lb) (throw 'done nil))
+             ((< (car la) (car lb)) (throw 'done t))
+             ((= (car la) (car lb)) (setq la (cdr la) lb (cdr lb))))))))
+
 (defun mdw-check-autorevert ()
   "Sets global-auto-revert-ignore-buffer appropriately for this buffer.
 This takes into consideration whether it's been found using