]> code.delx.au - gnu-emacs/commitdiff
(command-line): Call before-init-hook earlier.
authorRichard M. Stallman <rms@gnu.org>
Fri, 28 Oct 2005 15:43:15 +0000 (15:43 +0000)
committerRichard M. Stallman <rms@gnu.org>
Fri, 28 Oct 2005 15:43:15 +0000 (15:43 +0000)
Warn about some bad characters in -u user name.

lisp/startup.el

index 28a29fd6a2ebe2f52d1b597861ba39d681eb4a3e..a9535eed881fd030f2af94ef58f33c5273ed3224 100644 (file)
@@ -731,6 +731,8 @@ or `CVS', and any subdirectory that contains a file named `.nosearch'."
     (and command-line-args
          (setcdr command-line-args args)))
 
+  (run-hooks 'before-init-hook)
+
   ;; Under X Window, this creates the X frame and deletes the terminal frame.
   (when (fboundp 'frame-initialize)
     (frame-initialize))
@@ -788,8 +790,6 @@ or `CVS', and any subdirectory that contains a file named `.nosearch'."
        (old-font-list-limit font-list-limit)
        (old-face-ignored-fonts face-ignored-fonts))
 
-    (run-hooks 'before-init-hook)
-
     ;; Run the site-start library if it exists.  The point of this file is
     ;; that it is run before .emacs.  There is no point in doing this after
     ;; .emacs; that is useless.
@@ -801,12 +801,18 @@ or `CVS', and any subdirectory that contains a file named `.nosearch'."
     (setq inhibit-startup-message nil)
 
     ;; Warn for invalid user name.
-    (and init-file-user
-        (not (file-directory-p (expand-file-name (concat "~" init-file-user))))
-        (display-warning 'initialization
-                         (format "User %s has no home directory"
-                                 init-file-user)
-                         :error))
+    (when init-file-user
+      (if (string-match "[~/:\n]" init-file-user)
+         (display-warning 'initialization
+                          (format "Invalid user name %s"
+                                  init-file-user)
+                          :error)
+       (if (file-directory-p (expand-file-name (concat "~" init-file-user)))
+           nil
+         (display-warning 'initialization
+                          (format "User %s has no home directory"
+                                  init-file-user)
+                          :error))))
 
     ;; Load that user's init file, or the default one, or none.
     (let (debug-on-error-from-init-file