# HG changeset patch # User cvs # Date 1186992880 -7200 # Node ID 85a06df23a9a9f5cc1bb2c441c7e0f8f8ee0b301 # Parent 946e7f6ce37998b7807b0c020e6ba5d8568715ce Import from CVS: tag r20-5b16 diff -r 946e7f6ce379 -r 85a06df23a9a CHANGES-beta --- a/CHANGES-beta Mon Aug 13 10:14:17 2007 +0200 +++ b/CHANGES-beta Mon Aug 13 10:14:40 2007 +0200 @@ -1,5 +1,11 @@ -*- indented-text -*- +to 20.5 beta16 "Canindé" +-- Package interface updates +-- Reload updated and new auto-autoloads files at startup +-- Miscellaneous bug fixes + to 20.5 beta15 "British Alpine" +-- MS Windows menu fixes courtesy of Kirill Katsnelson -- autoloads are now loaded into impure storage and can be deleted at runtime -- loadhist.el is now dumped with XEmacs -- XEmacs running in place as a login shell now works diff -r 946e7f6ce379 -r 85a06df23a9a ChangeLog --- a/ChangeLog Mon Aug 13 10:14:17 2007 +0200 +++ b/ChangeLog Mon Aug 13 10:14:40 2007 +0200 @@ -1,3 +1,7 @@ +1997-01-03 SL Baur + + * XEmacs 20.5-beta16 is released. + 1997-12-30 SL Baur * XEmacs 20.5-beta15 is released. diff -r 946e7f6ce379 -r 85a06df23a9a lisp/ChangeLog --- a/lisp/ChangeLog Mon Aug 13 10:14:17 2007 +0200 +++ b/lisp/ChangeLog Mon Aug 13 10:14:40 2007 +0200 @@ -1,3 +1,53 @@ +1998-01-02 Colin Rafferty + + * build-report.el (build-report-delete-regexp): Added a rule for + the main tarball shadowing anything past it. + +1998-01-02 SL Baur + + * packages.el (package-provide): Delete a previous provide. + + * package-info.el: New file. + + * package-get.el: New file. + From Pete Ware + (package-get): Fix md5 computation to work with Mule. + +1997-12-11 Jens-Ulrik Holger Petersen + + * simple.el (log-message-*): Quote symbols in docstrings properly. + +1998-01-01 SL Baur + + * packages.el (packages-new-autoloads): Ignore symbolic links. + + * cus-face.el (face-custom-attributes-get): Fix typo. + From Jens-Ulrik Holger Petersen + +1997-12-31 SL Baur + + * startup.el (load-init-file): Reload new or changed autoloads + unless inhibited. Reload modified dumped lisp (stubbed). + + * packages.el (packages-new-autoloads): New function. + (packages-reload-autoloads): New function. + (packages-reload-dumped-lisp): New (stub) function. + + * loadup.el: Inhibit reloading dumped files when running temacs. + + * loadhist.el (file-provides): Extend to handle variant + extensions. + + * replace.el (query-replace): Fix typo. + +1997-12-30 SL Baur + + * make-docfile.el: list-autoloads-path has been renamed. + * update-elc.el: list-autoloads has been renamed. + + * packages.el (packages-list-autoloads): Renamed. + (packages-list-autoloads-path): Ditto. + 1997-12-29 Colin Rafferty * packages.el (packages-find-packages-1): Made it signal a warning diff -r 946e7f6ce379 -r 85a06df23a9a lisp/build-report.el --- a/lisp/build-report.el Mon Aug 13 10:14:17 2007 +0200 +++ b/lisp/build-report.el Mon Aug 13 10:14:40 2007 +0200 @@ -83,7 +83,8 @@ (defcustom build-report-delete-regexp (list - "confl.*with.*auto-inlining") + "confl.*with.*auto-inlining" + (concat (regexp-quote (gethash 'blddir (config-value-hash-table))) "/lisp/[^ \t\n]+ hides ")) "Regexp of make process output lines to delete from the report." :type '(repeat regexp) :group 'build-report) diff -r 946e7f6ce379 -r 85a06df23a9a lisp/cus-face.el --- a/lisp/cus-face.el Mon Aug 13 10:14:17 2007 +0200 +++ b/lisp/cus-face.el Mon Aug 13 10:14:40 2007 +0200 @@ -137,7 +137,7 @@ atts (cdr atts) get (nth 3 att)) (condition-case nil - ;; This may fail if w3 doesn't exists. + ;; This may fail if w3 doesn't exist. (when get (let ((answer (funcall get face frame))) (unless (equal answer (funcall get 'default frame)) diff -r 946e7f6ce379 -r 85a06df23a9a lisp/loadhist.el --- a/lisp/loadhist.el Mon Aug 13 10:14:17 2007 +0200 +++ b/lisp/loadhist.el Mon Aug 13 10:14:40 2007 +0200 @@ -65,7 +65,11 @@ (defun file-provides (file) "Return the list of features provided by FILE." - (let ((symbols (cdr (assoc file load-history))) (provides nil)) + (let ((symbols (or (cdr (assoc file load-history)) + (cdr (assoc (file-name-sans-extension file) load-history)) + (cdr (assoc (concat file ".el") load-history)) + (cdr (assoc (concat file ".elc") load-history)))) + (provides nil)) (mapcar (function (lambda (x) (if (and (consp x) (eq (car x) 'provide)) diff -r 946e7f6ce379 -r 85a06df23a9a lisp/loadup.el --- a/lisp/loadup.el Mon Aug 13 10:14:17 2007 +0200 +++ b/lisp/loadup.el Mon Aug 13 10:14:40 2007 +0200 @@ -185,6 +185,8 @@ (message "\nBootstrapping from temacs...") (setq purify-flag nil) (setq inhibit-package-init t) + (setq inhibit-update-dumped-lisp t) + (setq inhibit-update-autoloads t) ;; Remove all args up to and including "run-temacs" (apply #'run-emacs-from-temacs (cdr (member "run-temacs" command-line-args))) ;; run-emacs-from-temacs doesn't actually return anyway. diff -r 946e7f6ce379 -r 85a06df23a9a lisp/make-docfile.el --- a/lisp/make-docfile.el Mon Aug 13 10:14:17 2007 +0200 +++ b/lisp/make-docfile.el Mon Aug 13 10:14:40 2007 +0200 @@ -1,6 +1,5 @@ ;;; make-docfile.el --- Cache docstrings in external file - ;; Copyright (C) 1985, 1986, 1992-1995, 1997 Free Software Foundation, Inc. ;; Author: Unknown @@ -126,7 +125,7 @@ (setq processed (cons arg processed))))) (setq site-load-packages (cdr site-load-packages))))) -(let ((autoloads (list-autoloads-path))) +(let ((autoloads (packages-list-autoloads-path))) ;; (print (concat "Autoloads: " (prin1-to-string autoloads))) (while autoloads (let ((arg (car autoloads))) diff -r 946e7f6ce379 -r 85a06df23a9a lisp/package-get.el --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lisp/package-get.el Mon Aug 13 10:14:40 2007 +0200 @@ -0,0 +1,385 @@ +;;; package-get.el --- Retrieve XEmacs package + +;; Copyright (C) 1998 by Pete Ware + +;; Author: Pete Ware +;; Keywords: internal + +;; This file is part of XEmacs. + +;; XEmacs is free software; you can redistribute it and/or modify it +;; under the terms of the GNU General Public License as published by +;; the Free Software Foundation; either version 2, or (at your option) +;; any later version. + +;; XEmacs is distributed in the hope that it will be useful, but +;; WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with XEmacs; see the file COPYING. If not, write to the Free +;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +;; 02111-1307, USA. + +;;; Synched up with: Not in FSF + +;;; Commentary: + +;; package-get - +;; Retrieve a package and any other required packages from an archive +;; +;; The idea: +;; A new XEmacs lisp-only release is generated with the following steps: +;; 1. The maintainer runs some yet to be written program that +;; generates all the dependency information. This should +;; determine all the require and provide statements and associate +;; them with a package. +;; 2. All the packages are then bundled into their own tar balls +;; (or whatever format) +;; 3. Maintainer automatically generates a new `package-get-base' +;; data structure which contains information such as the +;; package name, the file to be retrieved, an md5 checksum, +;; etc (see `package-get-base'). +;; 4. The maintainer posts an announcement with the new version +;; of `package-get-base'. +;; 5. A user/system manager saves this posting and runs +;; `package-get-update' which uses the previously saved list +;; of packages, `package-get-here' that the user/site +;; wants to determine what new versions to download and +;; install. +;; +;; A user/site manager can generate a new `package-get-here' structure +;; by using `package-get-setup' which generates a customize like +;; interface to the list of packages. The buffer looks something +;; like: +;; +;; gnus - a mail and news reader +;; [] Always install +;; [] Needs updating +;; [] Required by other [packages] +;; version: 2.0 +;; +;; vm - a mail reader +;; [] Always install +;; [] Needs updating +;; [] Required by other [packages] +;; +;; Where `[]' indicates a toggle box +;; +;; - Clicking on "Always install" puts this into +;; `package-get-here' list. "Needs updating" indicates a new +;; version is available. Anything already in +;; `package-get-here' has this enabled. +;; - "Required by other" means some other packages are going to force +;; this to be installed. Clicking on [packages] gives a list +;; of packages that require this. +;; +;; The `package-get-base' should be installed in a file in +;; `data-directory'. The `package-get-here' should be installed in +;; site-lisp. Both are then read at run time. +;; +;; TODO: +;; - Implement `package-get-setup' +;; - Actually put `package-get-base' and `package-get-here' into +;; files that are read. +;; - Allow users to have their own packages that they want installed +;; in ~/.xemacs/. +;; - SOMEONE needs to write the programs that generate the +;; provides/requires database and makes it into a lisp data +;; structure suitable for `package-get-base' +;; - Handle errors such as no package providing a required symbol. +;; - Tie this into the `require' function to download packages +;; transparently. + +;;; Change Log + +;;; Code: + +(provide 'package-get) +(require 'package-admin) + +(defvar package-get-base nil + "List of packages that are installed at this site. +For each element in the alist, car is the package name and the cdr is +a plist containing information about the package. Typical fields +kept in the plist are: + +version - version of this package +provides - list of symbols provided +requires - list of symbols that are required. + These in turn are provided by other packages. +filename - name of the file. +size - size of the file (aka the bundled package) +md5sum - computed md5 checksum +description - What this package is for. +type - Whether this is a 'binary (default) or 'single file package + +More fields may be added as needed. An example: + +'( + (name + (version \"\" + file \"filename\" + description \"what this package is about.\" + provides () + requires () + size + md5sum \"\" + file \"filename\" + description \"what this package is about.\" + provides () + requires () + size + md5sum \" +;; Keywords: internal + +;; This file is part of XEmacs. + +;; XEmacs is free software; you can redistribute it and/or modify it +;; under the terms of the GNU General Public License as published by +;; the Free Software Foundation; either version 2, or (at your option) +;; any later version. + +;; XEmacs is distributed in the hope that it will be useful, but +;; WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with XEmacs; see the file COPYING. If not, write to the Free +;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +;; 02111-1307, USA. + +;;; Synched up with: Not in FSF + +;;; Commentary: + +;; This file is used for building package distributions. + +;;; Change Log: + +;;; Code: + +(defvar package-info "package-info" + "File used to write out Package info") + +(defvar package-info-template "package-info.in" + "Template file for package-get info.") + +;; Loses with Mule +;(defun pi-md5sum (file) +; (let (result) +; (with-temp-buffer +; (let ((buffer-file-coding-system-for-read 'binary)) +; (insert-file-contents-literally file)) +; ;; (write-file "/tmp/x.x") +; (setq result (md5 (current-buffer)))) +; result)) + +(defun pi-md5sum (file) + (with-temp-buffer + (call-process "md5sum" file t) + (goto-char (point-min)) + (looking-at "[a-z0-9]+") + (buffer-substring (match-beginning 0) (match-end 0)))) + +(defun pi-update-key (key value) + (save-excursion + (goto-char (point-min)) + (let ((case-fold-search nil)) + (when (search-forward key) + (replace-match value t))))) + +(defun batch-update-package-info () + "Generate a package-info file for use by package-get.el. +Parameters are: +version -- Package version number +filename -- Filename of tarball to generate info for." + (unless noninteractive + (error "`batch-update-package-info' is to be used only with -batch")) + (let ((version (nth 0 command-line-args-left)) + (filename (nth 1 command-line-args-left))) + (find-file package-info) + (erase-buffer) + (insert-file-contents-literally package-info-template) + (goto-char (point-min)) + (pi-update-key "VERSION" version) + (pi-update-key "MD5SUM" (format "\"%s\"" + (pi-md5sum filename))) + (pi-update-key "FILENAME" (format "\"%s\"" + (file-name-nondirectory filename))) + (pi-update-key "SIZE" (format "%d" + (nth 7 (file-attributes filename)))) + (save-buffers-kill-emacs 0))) + +(provide 'package-info) + +;;; package-info.el ends here diff -r 946e7f6ce379 -r 85a06df23a9a lisp/packages.el --- a/lisp/packages.el Mon Aug 13 10:14:17 2007 +0200 +++ b/lisp/packages.el Mon Aug 13 10:14:40 2007 +0200 @@ -3,6 +3,7 @@ ;; Copyright (C) 1997 Free Software Foundation, Inc. ;; Author: Steven L Baur +;; Maintainer: Steven L Baur ;; Keywords: internal, lisp, dumped ;; This file is part of XEmacs. @@ -55,10 +56,27 @@ (defvar packages-package-list nil "database of loaded packages and version numbers") -(defun package-provide (name version) - (if (not (assq name packages-package-list)) - (setq packages-package-list - (cons (cons name version) packages-package-list)))) +(defun package-get-key-1 (info key) + "Locate keyword `key' in list." + (cond ((null info) + nil) + ((eq (car info) key) + (nth 1 info)) + (t (package-get-key-1 (cddr info) key)))) + +(defun package-get-key (name key) + "Get info `key' from package `name'." + (let ((info (assq name packages-package-list))) + (when info + (package-get-key-1 (cdr info) key)))) + +(defun package-provide (name &rest attributes) + (let ((info (if (and attributes (floatp (car attributes))) + (list :version (car attributes)) + attributes))) + (remassq name packages-package-list) + (setq packages-package-list + (cons (cons name info) packages-package-list)))) (defun package-require (name version) (let ((pkg (assq name packages-package-list))) @@ -140,7 +158,7 @@ (concat str ".elc") str)) -(defun list-autoloads-path () +(defun packages-list-autoloads-path () "List autoloads from precomputed load-path." (let ((path load-path) autoloads) @@ -153,7 +171,7 @@ (setq path (cdr path))) autoloads)) -(defun list-autoloads () +(defun packages-list-autoloads () "List autoload files in (what will be) the normal lisp search path. This function is used during build to find where the global symbol files so they can be perused for their useful information." @@ -161,7 +179,8 @@ ;; (print (prin1-to-string load-path)) (if (null source-directory) (setq source-directory (concat (car load-path) "./"))) - (let ((files (directory-files (file-name-as-directory source-directory) t ".*")) + (let ((files (directory-files (file-name-as-directory source-directory) + t ".*")) file autolist) ;; (print (prin1-to-string source-directory)) ;; (print (prin1-to-string files)) @@ -173,6 +192,59 @@ (setq files (cdr files))) autolist)) +;; The following function cannot be called from a bare temacs +(defun packages-new-autoloads () + "Return autoloads files that have been added or modified since XEmacs dump." + (require 'loadhist) + (let ((me (concat invocation-directory invocation-name)) + (path load-path) + result dir) + (while path + (setq dir (file-truename (car path))) + (let ((autoload-file (file-name-sans-extension (concat + dir + autoload-file-name)))) + ;; Check for: + ;; 1. An auto-autoload file that hasn't provided a feature (because + ;; it has been installed since XEmacs was dumped). + ;; 2. auto-autoload.el being newer than the executable + ;; 3. auto-autoload.elc being newer than the executable (the .el + ;; could be missing or compressed) + (when (or (and (null (file-provides autoload-file)) + (or (file-exists-p (concat autoload-file ".elc")) + (file-exists-p (concat autoload-file ".el")))) + (and (file-newer-than-file-p (concat autoload-file ".el") me) + (setq autoload-file (concat autoload-file ".el"))) + (and (file-newer-than-file-p (concat autoload-file + ".elc") + me) + (setq autoload-file (concat autoload-file ".elc")))) + (push autoload-file result))) + (setq path (cdr path))) + result)) + +;; The following function cannot be called from a bare temacs +(defun packages-reload-autoloads () + "Reload new or updated auto-autoloads files. +This is an extremely dangerous function to call after the user-init-files +is run. Don't call it or you'll be sorry." + (let ((autoload-list (packages-new-autoloads))) + (while autoload-list + (let* ((autoload-file (car autoload-list)) + (feature (car-safe (file-provides autoload-file)))) + (when feature + ;; (message "(unload-feature %S)" feature) + (unload-feature feature)) + (load autoload-file)) + (setq autoload-list (cdr autoload-list))))) + +;; The following function cannot be called from a bare temacs +(defun packages-reload-dumped-lisp () + "Reload new or updated dumped lisp files (with exceptions). +This is an extremely dangerous function to call at any time." + ;; Nothing for the moment + nil) + ;; The following function is called from temacs (defun packages-find-packages-1 (package path-only append-p user-package) "Search the supplied directory for associated directories. @@ -256,7 +328,8 @@ (append preloaded-file-list package-lisp))) (if (fboundp 'load-gc) (setq dumped-lisp-packages - (append dumped-lisp-packages package-lisp))))))) + (append dumped-lisp-packages + package-lisp))))))) (if user-package (condition-case error diff -r 946e7f6ce379 -r 85a06df23a9a lisp/replace.el --- a/lisp/replace.el Mon Aug 13 10:14:17 2007 +0200 +++ b/lisp/replace.el Mon Aug 13 10:14:40 2007 +0200 @@ -93,7 +93,7 @@ (save-excursion (narrow-to-region (point) (mark)) (goto-char (point-min)) - (query-replace from-string to-string arg))) + (perform-replace from-string to-string t nil arg))) (perform-replace from-string to-string t nil arg))) (defun query-replace-regexp (regexp to-string &optional arg) diff -r 946e7f6ce379 -r 85a06df23a9a lisp/simple.el --- a/lisp/simple.el Mon Aug 13 10:14:17 2007 +0200 +++ b/lisp/simple.el Mon Aug 13 10:14:40 2007 +0200 @@ -3483,9 +3483,9 @@ 'log-message-filter-errors-only.") (defun log-message-filter (label message) - "Default value of log-message-filter-function. -Mesages whose text matches one of the log-message-ignore-regexps -or whose label appears in log-message-ignore-labels are not saved." + "Default value of `log-message-filter-function'. +Messages whose text matches one of the `log-message-ignore-regexps' +or whose label appears in `log-message-ignore-labels' are not saved." (let ((r log-message-ignore-regexps) (ok (not (memq label log-message-ignore-labels)))) (save-match-data @@ -3496,14 +3496,14 @@ ok)) (defun log-message-filter-errors-only (label message) - "For use as the log-message-filter-function. Only logs error messages." + "For use as the `log-message-filter-function'. Only logs error messages." (eq label 'error)) (defun log-message (label message) "Stuff a copy of the message into the \" *Message-Log*\" buffer, -if it satisfies the log-message-filter-function. - -For use on remove-message-hook." +if it satisfies the `log-message-filter-function'. + +For use on `remove-message-hook'." (when (and (not noninteractive) (funcall log-message-filter-function label message)) (with-current-buffer (get-buffer-create " *Message-Log*") diff -r 946e7f6ce379 -r 85a06df23a9a lisp/startup.el --- a/lisp/startup.el Mon Aug 13 10:14:17 2007 +0200 +++ b/lisp/startup.el Mon Aug 13 10:14:40 2007 +0200 @@ -615,6 +615,13 @@ (when site-start-file (load site-start-file t t)) + ;; Disabled for now + (unless inhibit-update-dumped-lisp + (packages-reload-dumped-lisp)) + + (unless inhibit-update-autoloads + (packages-reload-autoloads)) + ;; Sites should not disable this. Only individuals should disable ;; the startup message. (setq inhibit-startup-message nil) diff -r 946e7f6ce379 -r 85a06df23a9a lisp/update-elc.el --- a/lisp/update-elc.el Mon Aug 13 10:14:17 2007 +0200 +++ b/lisp/update-elc.el Mon Aug 13 10:14:40 2007 +0200 @@ -65,7 +65,7 @@ (define-function 'defalias 'define-function) (require 'packages) -(let ((autol (list-autoloads))) +(let ((autol (packages-list-autoloads))) ;; (print (prin1-to-string autol)) (while autol (let ((src (car autol))) diff -r 946e7f6ce379 -r 85a06df23a9a src/ChangeLog --- a/src/ChangeLog Mon Aug 13 10:14:17 2007 +0200 +++ b/src/ChangeLog Mon Aug 13 10:14:40 2007 +0200 @@ -1,3 +1,32 @@ +1998-01-02 Charles G. Waldman + + * frame.h: fix erroneous FRAME_RIGHT_BORDER_START macro. + Corrects display glitch when toolbar is on the right. + +1998-01-02 Kirill M. Katsnelson + + * emacs.c (make_arg_list_1): On Win32 platforms, GetModuleFileName + is consulted instead of argv[0] to get full path to the xemacs + executable. + +1998-01-01 SL Baur + + * m/sparc.h: Cleans up some warnings about unused variables in + getloadavg.c under Sparc/Linux. + From Stephen J. Turnbull + + * fileio.c (vars_of_fileio): Enable directory-sep-char always for + compatibility. + + * emacs.c (main_1): Inhibit reloading dumped lisp when using + `-batch' or `-vanilla'. + +1997-12-31 SL Baur + + * emacs.c: New variables `inhibit-update-dumped-lisp' and + `inhibit-update-autoloads'. + (vars_of_emacs): Initialize them. + 1997-12-29 Kirill M. Katsnelson * msw-proc.c (mswindows_enqueue_magic_event): Made extern. User by diff -r 946e7f6ce379 -r 85a06df23a9a src/emacs.c --- a/src/emacs.c Mon Aug 13 10:14:17 2007 +0200 +++ b/src/emacs.c Mon Aug 13 10:14:40 2007 +0200 @@ -58,8 +58,7 @@ #endif #endif -#if defined (_WIN32) && defined (DEBUG_XEMACS) -/* For DebugBreak in asserf_failed() */ +#if defined (_WIN32) #include #endif @@ -162,6 +161,12 @@ /* Nonzero means don't perform package searches at startup */ int inhibit_package_init; +/* Nonzero means don't reload changed dumped lisp files at startup */ +int inhibit_update_dumped_lisp; + +/* Nonzero means don't reload changed or new auto-autoloads files at startup */ +int inhibit_update_autoloads; + /* Save argv and argc. */ char **initial_argv; int initial_argc; @@ -304,7 +309,20 @@ for (i = argc - 1; i >= 0; i--) { if (i == 0 || i > skip_args) - result = Fcons (build_ext_string (argv [i], FORMAT_FILENAME), result); + { +#ifdef _WIN32 + if (i == 0) + { + /* Do not trust to what crt0 has stuffed into argv[0] */ + char full_exe_path [MAX_PATH]; + GetModuleFileName (NULL, full_exe_path, MAX_PATH); + result = Fcons (build_ext_string (full_exe_path, FORMAT_FILENAME), + result); + } + else +#endif + result = Fcons (build_ext_string (argv [i], FORMAT_FILENAME), result); + } } return result; } @@ -615,18 +633,29 @@ /* Handle the -batch switch, which means don't do interactive display. */ if (argmatch (argv, argc, "-batch", "--batch", 5, NULL, &skip_args)) - noninteractive = 1; + { + inhibit_update_autoloads = 1; + inhibit_update_dumped_lisp = 1; + noninteractive = 1; + } /* Partially handle -no-packages and -vanilla. Packages are searched */ /* prior to the rest of the command line being parsed in startup.el */ if (argmatch (argv, argc, "-no-packages", "--no-packages", - 6, NULL, &skip_args) || - argmatch (argv, argc, "-vanilla", "--vanilla", - 7, NULL, &skip_args)) + 6, NULL, &skip_args)) { inhibit_package_init = 1; skip_args--; } + if (argmatch (argv, argc, "-vanilla", "--vanilla", + 7, NULL, &skip_args)) + { + inhibit_package_init = 1; + inhibit_update_autoloads = 1; + inhibit_update_dumped_lisp = 1; + skip_args--; + } + /* Partially handle the -version and -help switches: they imply -batch, but are not removed from the list. */ @@ -2420,6 +2449,16 @@ Set to non-nil when the package-path should not be searched at startup. */ ); + DEFVAR_BOOL ("inhibit-update-dumped-lisp", &inhibit_update_dumped_lisp /* +Set to non-nil when modified dumped lisp should not be reloaded at startup. +*/ ); + inhibit_update_dumped_lisp = 1; + + DEFVAR_BOOL ("inhibit-update-autoloads", &inhibit_update_autoloads /* +Set to non-nil when modified or new autoloads files should not be reloaded. +*/ ); + inhibit_update_autoloads = 0; + DEFVAR_INT ("emacs-priority", &emacs_priority /* Priority for XEmacs to run at. This value is effective only if set before XEmacs is dumped, diff -r 946e7f6ce379 -r 85a06df23a9a src/fileio.c --- a/src/fileio.c Mon Aug 13 10:14:17 2007 +0200 +++ b/src/fileio.c Mon Aug 13 10:14:40 2007 +0200 @@ -113,9 +113,6 @@ Lisp_Object Qfile_name_handler_alist; -#ifdef DOS_NT -/* Until we can figure out how to deal with the functions in this file in - a civilized fashion, this will remain #ifdef'ed out. -slb */ /* Syncing with FSF 19.34.6 note: although labelled as NT-specific, these two lisp variables are compiled in even when not defined(DOS_NT). Need to check if we should bracket them between #ifdef's. @@ -125,8 +122,11 @@ This needs to be initialized statically, because file name functions are called during initialization. */ -Lisp_Object Vdirectory_sep_char = '/'; - +Lisp_Object Vdirectory_sep_char; + +#ifdef DOS_NT +/* Until we can figure out how to deal with the functions in this file in + a civilized fashion, this will remain #ifdef'ed out. -slb */ /* For the benefit of backwards compatability with earlier versions of Emacs on DOS_NT, provide a way to disable the REPLACE option support in insert-file-contents. */ @@ -4684,7 +4684,7 @@ Saving the buffer normally turns auto-save back on. */ ); disable_auto_save_when_buffer_shrinks = 1; -#ifdef DOS_NT + DEFVAR_LISP ("directory-sep-char", &Vdirectory_sep_char /* *Directory separator character for built-in functions that return file names. The value should be either ?/ or ?\\ (any other value is treated as ?\\). @@ -4692,8 +4692,9 @@ on other platforms, it is initialized so that Lisp code can find out what the normal separator is. */ ); - Vdirectory_sep_char = '/'; - + Vdirectory_sep_char = make_char('/'); + +#ifdef DOS_NT DEFVAR_LISP ("insert-file-contents-allow-replace", &Vinsert_file_contents_allow_replace /* *Allow REPLACE option of insert-file-contents to preserve markers. If non-nil, the REPLACE option works as described, preserving markers. diff -r 946e7f6ce379 -r 85a06df23a9a src/frame.h --- a/src/frame.h Mon Aug 13 10:14:17 2007 +0200 +++ b/src/frame.h Mon Aug 13 10:14:40 2007 +0200 @@ -545,7 +545,8 @@ #define FRAME_RIGHT_BORDER_START(f) \ (FRAME_PIXWIDTH (f) - FRAME_BORDER_WIDTH (f) - \ - 2 * FRAME_REAL_RIGHT_TOOLBAR_WIDTH (f)) + FRAME_REAL_RIGHT_TOOLBAR_WIDTH(f) - \ + 2 * FRAME_REAL_RIGHT_TOOLBAR_BORDER_WIDTH (f)) #define FRAME_RIGHT_BORDER_END(f) \ (FRAME_PIXWIDTH (f) - FRAME_REAL_RIGHT_TOOLBAR_WIDTH (f) - \ 2 * FRAME_REAL_RIGHT_TOOLBAR_BORDER_WIDTH(f)) diff -r 946e7f6ce379 -r 85a06df23a9a src/m/sparc.h --- a/src/m/sparc.h Mon Aug 13 10:14:17 2007 +0200 +++ b/src/m/sparc.h Mon Aug 13 10:14:40 2007 +0200 @@ -46,6 +46,13 @@ #define EXPLICIT_SIGN_EXTEND +/* Mask for address bits within a memory segment */ + +#define SEGMENT_MASK (SEGSIZ - 1) + +#if ! defined (__NetBSD__) && ! defined (__linux__) +/* This really belongs in s/sun.h. */ + /* Data type of load average, as read out of kmem. */ #define LOAD_AVE_TYPE long @@ -54,13 +61,6 @@ #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) -/* Mask for address bits within a memory segment */ - -#define SEGMENT_MASK (SEGSIZ - 1) - -#if ! defined (__NetBSD__) && ! defined (__linux__) -/* This really belongs in s/sun.h. */ - /* Say that the text segment of a.out includes the header; the header actually occupies the first few bytes of the text segment and is counted in hdr.a_text. */ diff -r 946e7f6ce379 -r 85a06df23a9a version.sh --- a/version.sh Mon Aug 13 10:14:17 2007 +0200 +++ b/version.sh Mon Aug 13 10:14:40 2007 +0200 @@ -1,5 +1,5 @@ #!/bin/sh emacs_major_version=20 emacs_minor_version=5 -emacs_beta_version=15 -xemacs_codename="British Alpine" +emacs_beta_version=16 +xemacs_codename="Caninde"