]> code.delx.au - gnu-emacs/blobdiff - lisp/startup.el
* lisp/emacs-lisp/autoload.el (autoload-generate-file-autoloads):
[gnu-emacs] / lisp / startup.el
index b7b4c156f02842205ac5464695e82cf0ffad9d5d..3f4923afb2e4d791fe2325732525ac2b9239f0b4 100644 (file)
@@ -1,7 +1,6 @@
 ;;; startup.el --- process Emacs shell arguments  -*- lexical-binding: t -*-
 
-;; Copyright (C) 1985-1986, 1992, 1994-2013 Free Software Foundation,
-;; Inc.
+;; Copyright (C) 1985-1986, 1992, 1994-2013 Free Software Foundation, Inc.
 
 ;; Maintainer: FSF
 ;; Keywords: internal
@@ -53,7 +52,8 @@ or directory when no target file is specified."
          (const     :tag "Startup screen" nil)
          (directory :tag "Directory" :value "~/")
          (file      :tag "File" :value "~/.emacs")
-          (function  :tag "Function")
+         (const     :tag "Notes buffer" remember-notes)
+         (function  :tag "Function")
          (const     :tag "Lisp scratch buffer" t))
   :version "24.4"
   :group 'initialization)
@@ -397,8 +397,6 @@ from being initialized."
 
 (defvar no-blinking-cursor nil)
 
-(defvar default-frame-background-mode)
-
 (defvar pure-space-overflow nil
   "Non-nil if building Emacs overflowed pure space.")
 
@@ -413,14 +411,20 @@ Warning Warning!!!  Pure space overflow    !!!Warning Warning
   :type 'directory
   :initialize 'custom-initialize-delay)
 
-(defconst package-subdirectory-regexp
-  "\\([^.].*?\\)-\\([0-9]+\\(?:[.][0-9]+\\|\\(?:pre\\|beta\\|alpha\\)[0-9]+\\)*\\)"
-  "Regular expression matching the name of a package subdirectory.
-The first subexpression is the package name.
-The second subexpression is the version string.
-
-The regexp should not contain a starting \"\\`\" or a trailing
- \"\\'\"; those are added automatically by callers.")
+(defvar package--builtin-versions
+  ;; Mostly populated by loaddefs.el via autoload-builtin-package-versions.
+  (purecopy `((emacs . ,(version-to-list emacs-version))))
+  "Alist giving the version of each versioned builtin package.
+I.e. each element of the list is of the form (NAME . VERSION) where
+NAME is the package name as a symbol, and VERSION is its version
+as a list.")
+
+(defun package--description-file (dir)
+  (concat (let ((subdir (file-name-nondirectory
+                         (directory-file-name dir))))
+            (if (string-match "\\([^.].*?\\)-\\([0-9]+\\(?:[.][0-9]+\\|\\(?:pre\\|beta\\|alpha\\)[0-9]+\\)*\\)" subdir)
+                (match-string 1 subdir) subdir))
+          "-pkg.el"))
 
 (defun normal-top-level-add-subdirs-to-load-path ()
   "Add all subdirectories of `default-directory' to `load-path'.
@@ -437,8 +441,8 @@ or `CVS', and any subdirectory that contains a file named `.nosearch'."
       (let* ((this-dir (car dirs))
             (contents (directory-files this-dir))
             (default-directory this-dir)
-            (canonicalized (if (fboundp 'untranslated-canonical-name)
-                               (untranslated-canonical-name this-dir))))
+            (canonicalized (if (fboundp 'w32-untranslated-canonical-name)
+                               (w32-untranslated-canonical-name this-dir))))
        ;; The Windows version doesn't report meaningful inode numbers, so
        ;; use the canonicalized absolute file name of the directory instead.
        (setq attrs (or canonicalized
@@ -487,6 +491,7 @@ It is the default value of the variable `top-level'."
     (setq command-line-processed t)
     (let ((dir default-directory))
       (with-current-buffer "*Messages*"
+        (messages-buffer-mode)
         ;; Make it easy to do like "tail -f".
         (set (make-local-variable 'window-point-insertion-type) t)
         ;; Give *Messages* the same default-directory as *scratch*,
@@ -715,7 +720,7 @@ opening the first frame (e.g. open a connection to an X server).")
                      default-frame-alist))
              (t
                (push argi rest)))))
-    (nreverse rest)))
+    (nconc (nreverse rest) args)))
 
 (declare-function x-get-resource "frame.c"
                  (attribute class &optional component subclass))
@@ -1194,10 +1199,12 @@ the `--debug-init' option to view a complete error backtrace."
           (dolist (dir dirs)
             (when (file-directory-p dir)
               (dolist (subdir (directory-files dir))
-                (when (and (file-directory-p (expand-file-name subdir dir))
-                           (string-match
-                            (concat "\\`" package-subdirectory-regexp "\\'")
-                            subdir))
+                (when (let ((subdir (expand-file-name subdir dir)))
+                         (and (file-directory-p subdir)
+                              (file-exists-p
+                               (expand-file-name
+                                (package--description-file subdir)
+                                subdir))))
                   (throw 'package-dir-found t)))))))
        (package-initialize))
 
@@ -1532,7 +1539,7 @@ a face or button specification."
                           (t "splash.pbm")))
         (img (create-image image-file))
         (image-width (and img (car (image-size img))))
-        (window-width (window-width (selected-window))))
+        (window-width (window-width)))
     (when img
       (when (> window-width image-width)
        ;; Center the image in the window.