commit 7973c83bbc49d8c122dd4e074572541e62bfee1c (HEAD, refs/remotes/origin/master) Author: Glenn Morris Date: Mon Jun 22 00:02:34 2015 -0700 * doc/misc/efaq-w32.texi (Downloading): Copyedits. (Bug#20851) diff --git a/doc/misc/efaq-w32.texi b/doc/misc/efaq-w32.texi index f8a188d..28cf680 100644 --- a/doc/misc/efaq-w32.texi +++ b/doc/misc/efaq-w32.texi @@ -159,26 +159,25 @@ instructions (requires DJGPP). @node Downloading @section Where can I download Emacs? -@cindex precompiled binaries -@cindex where to get Emacs binaries -Pre-compiled versions are distributed from -@uref{http://ftpmirror.gnu.org/emacs/windows/, ftp.gnu.org mirrors}. -Emacs binaries are distributed as zip files, digitally signed by the -developer who built them. Generally most users will want the file -@file{emacs-@value{EMACSVER}-bin-i686-pc-mingw.zip} for the 32-bit -build, and @file{emacs-@value{EMACSVER}-bin-x86_64-w64-mingw32.zip} -for the 64-bit build. The zip archive contains everything you need to -get started. - +@cindex getting Emacs @cindex where to get sources @cindex Emacs source code @cindex source for Emacs -The latest source is available from -@uref{http://ftpmirror.gnu.org/emacs/, ftp.gnu.org mirrors}. It is -distributed as a compressed tar file, digitally signed by the maintainer -who made the release. +You can download Emacs releases from +@uref{http://ftpmirror.gnu.org/emacs/, ftp.gnu.org mirrors}. They +are distributed as compressed tar files, digitally signed by the +maintainer who made the release. + +@cindex precompiled binaries +@cindex where to get Emacs binaries +Pre-compiled binaries for MS Windows may be made available on a +best-effort basis in the @file{windows} subdirectory of the above ftp +site (as zip files digitally signed by the person who built them). +See the @file{README} file in that directory for more information. +Building Emacs from source yourself should be straightforward, +following the instructions in @file{nt/INSTALL}, so we encourage you +to give it a try. @xref{Compiling}. -@cindex getting Emacs @cindex latest development version of Emacs @cindex Emacs Development The development version of Emacs is available from commit f3cec81955d48f2b3b5d25d5b1b69117b9fdc119 Author: Paul Eggert Date: Sun Jun 21 23:09:34 2015 -0700 Port tests to help-quote-translation * test/automated/ert-x-tests.el (ert-test-describe-test): * test/automated/package-test.el (package-test-describe-package) (package-test-signed): Allow straight quotes, too. diff --git a/test/automated/ert-x-tests.el b/test/automated/ert-x-tests.el index 6172133..11b7ed4 100644 --- a/test/automated/ert-x-tests.el +++ b/test/automated/ert-x-tests.el @@ -196,8 +196,8 @@ (should (string-match (concat "\\`ert-test-describe-test is a test" " defined in" - " [`‘]ert-x-tests.elc?['’]\\.\n\n" - "Tests [`‘]ert-describe-test['’]\\.\n\\'") + " ['`‘]ert-x-tests.elc?['’]\\.\n\n" + "Tests ['`‘]ert-describe-test['’]\\.\n\\'") (buffer-string))))))))) (ert-deftest ert-test-message-log-truncation () diff --git a/test/automated/package-test.el b/test/automated/package-test.el index e908635..0e2f2106 100644 --- a/test/automated/package-test.el +++ b/test/automated/package-test.el @@ -394,7 +394,7 @@ Must called from within a `tar-mode' buffer." (goto-char (point-min)) (should (search-forward "simple-single is an installed package." nil t)) (should (re-search-forward - "Status: Installed in [`‘]~/simple-single-1.3/['’] (unsigned)." + "Status: Installed in ['`‘]~/simple-single-1.3/['’] (unsigned)." nil t)) (should (search-forward "Version: 1.3" nil t)) (should (search-forward "Summary: A single-file package with no dependencies" @@ -467,7 +467,7 @@ Must called from within a `tar-mode' buffer." (should (re-search-forward "signed-good is an? \\(\\S-+\\) package." nil t)) (should (string-equal (match-string-no-properties 1) "installed")) (should (re-search-forward - "Status: Installed in [`‘]~/signed-good-1.0/['’]." + "Status: Installed in ['`‘]~/signed-good-1.0/['’]." nil t)))))) commit 0cee2fbc7db279c8e2a0e5719b1bc14b6cbb420b Author: Dmitry Gutov Date: Mon Jun 22 03:23:38 2015 +0300 Make find-function-on-key use the current window * lisp/emacs-lisp/find-func.el (find-function-on-key-do-it): Extract from `find-function-on-key', add a second argument. (find-function-on-key): Use it (bug#19679). (find-function-on-key-other-window) (find-function-on-key-other-frame): New commands. diff --git a/lisp/emacs-lisp/find-func.el b/lisp/emacs-lisp/find-func.el index 54f8340..cd23cd7 100644 --- a/lisp/emacs-lisp/find-func.el +++ b/lisp/emacs-lisp/find-func.el @@ -550,11 +550,11 @@ See also `find-function-recenter-line' and `find-function-after-hook'." (interactive (find-function-read 'defface)) (find-function-do-it face 'defface 'switch-to-buffer)) -;;;###autoload -(defun find-function-on-key (key) +(defun find-function-on-key-do-it (key find-fn) "Find the function that KEY invokes. KEY is a string. -Set mark before moving, if the buffer already existed." - (interactive "kFind function on key: ") +Set mark before moving, if the buffer already existed. + +FIND-FN is the function to call to navigate to the function." (let (defn) (save-excursion (let* ((event (and (eventp key) (aref key 0))) ; Null event OK below. @@ -575,7 +575,28 @@ Set mark before moving, if the buffer already existed." (message "%s is unbound" key-desc) (if (consp defn) (message "%s runs %s" key-desc (prin1-to-string defn)) - (find-function-other-window defn)))))) + (funcall find-fn defn)))))) + +;;;###autoload +(defun find-function-on-key (key) + "Find the function that KEY invokes. KEY is a string. +Set mark before moving, if the buffer already existed." + (interactive "kFind function on key: ") + (find-function-on-key-do-it key #'find-function)) + +;;;###autoload +(defun find-function-on-key-other-window (key) + "Find, in the other window, the function that KEY invokes. +See `find-function-on-key'." + (interactive "kFind function on key: ") + (find-function-on-key-do-it key #'find-function-other-window)) + +;;;###autoload +(defun find-function-on-key-other-frame (key) + "Find, in the other frame, the function that KEY invokes. +See `find-function-on-key'." + (interactive "kFind function on key: ") + (find-function-on-key-do-it key #'find-function-other-frame)) ;;;###autoload (defun find-function-at-point () @@ -600,6 +621,8 @@ Set mark before moving, if the buffer already existed." (define-key ctl-x-4-map "F" 'find-function-other-window) (define-key ctl-x-5-map "F" 'find-function-other-frame) (define-key ctl-x-map "K" 'find-function-on-key) + (define-key ctl-x-4-map "K" 'find-function-on-key-other-window) + (define-key ctl-x-5-map "K" 'find-function-on-key-other-frame) (define-key ctl-x-map "V" 'find-variable) (define-key ctl-x-4-map "V" 'find-variable-other-window) (define-key ctl-x-5-map "V" 'find-variable-other-frame)) commit fa52edd4c4eb9e2d8ae2e43821460cfd594593b5 Author: Nicolas Petton Date: Sun Jun 21 23:44:50 2015 +0200 Revert "Define `map-elt' as a generalized variable" This reverts commit 8b6d82d3ca86f76ed964063b3941a7c6ab0bf1c6. diff --git a/lisp/emacs-lisp/map.el b/lisp/emacs-lisp/map.el index 8759616..1d8a312 100644 --- a/lisp/emacs-lisp/map.el +++ b/lisp/emacs-lisp/map.el @@ -82,21 +82,25 @@ The following keyword types are meaningful: `:list', An error is thrown if MAP is neither a list, hash-table nor array. -Return RESULT if non-nil or the result of evaluation of the form. +Return RESULT if non-nil or the result of evaluation of the +form. \(fn (VAR MAP [RESULT]) &rest ARGS)" (declare (debug t) (indent 1)) (unless (listp spec) (setq spec `(,spec ,spec))) - (let ((map-var (car spec))) - `(let* ,(unless (eq map-var (cadr spec)) `((,map-var ,(cadr spec)))) - (cond ((listp ,map-var) ,(plist-get args :list)) - ((hash-table-p ,map-var) ,(plist-get args :hash-table)) - ((arrayp ,map-var) ,(plist-get args :array)) - (t (error "Unsupported map: %s" ,map-var))) - ,@(cddr spec)))) - -(put 'map--raw-place 'gv-expander #'funcall) + (let ((map-var (car spec)) + (result-var (make-symbol "result"))) + `(let ((,map-var ,(cadr spec)) + ,result-var) + (setq ,result-var + (cond ((listp ,map-var) ,(plist-get args :list)) + ((hash-table-p ,map-var) ,(plist-get args :hash-table)) + ((arrayp ,map-var) ,(plist-get args :array)) + (t (error "Unsupported map: %s" ,map-var)))) + ,@(when (cddr spec) + `((setq ,result-var ,@(cddr spec)))) + ,result-var))) (defun map-elt (map key &optional default) "Perform a lookup in MAP of KEY and return its associated value. @@ -105,34 +109,26 @@ If KEY is not found, return DEFAULT which defaults to nil. If MAP is a list, `eql' is used to lookup KEY. MAP can be a list, hash-table or array." - (declare - (gv-expander - (lambda (do) - (gv-letplace (mgetter msetter) map - (macroexp-let2* nil - ;; Eval them once and for all in the right order. - ((key key) (default default)) - `(map--dispatch ,mgetter - :list ,(gv-get `(alist-get ,key (map--raw-place ,mgetter ,msetter) - ,default) - do) - :hash-table ,(gv-get `(gethash ,key (map--raw-place ,mgetter ,msetter) - ,default)) - :array ,(gv-get (aref (map--raw-place ,mgetter ,msetter) ,key) - do))))))) (map--dispatch map :list (alist-get key map default) :hash-table (gethash key map default) :array (map--elt-array map key default))) -(defun map-put (map key value) +(defmacro map-put (map key value) "In MAP, associate KEY with VALUE and return MAP. If KEY is already present in MAP, replace the associated value with VALUE. MAP can be a list, hash-table or array." - (setf (map-elt map key) value) - map) + (declare (debug t)) + (let ((symbol (symbolp map))) + `(progn + (map--dispatch (m ,map m) + :list (if ,symbol + (setq ,map (cons (cons ,key ,value) m)) + (error "Literal lists are not allowed, %s must be a symbol" ',map)) + :hash-table (puthash ,key ,value m) + :array (aset m ,key ,value))))) (defmacro map-delete (map key) "In MAP, delete the key KEY if present and return MAP. diff --git a/test/automated/map-tests.el b/test/automated/map-tests.el index 402fead..abda03d 100644 --- a/test/automated/map-tests.el +++ b/test/automated/map-tests.el @@ -40,11 +40,11 @@ Evaluate BODY for each created map. (let ((alist (make-symbol "alist")) (vec (make-symbol "vec")) (ht (make-symbol "ht"))) - `(let ((,alist (list (cons 0 3) - (cons 1 4) - (cons 2 5))) - (,vec (make-vector 3 nil)) - (,ht (make-hash-table))) + `(let ((,alist '((0 . 3) + (1 . 4) + (2 . 5))) + (,vec (make-vector 3 nil)) + (,ht (make-hash-table))) (aset ,vec 0 '3) (aset ,vec 1 '4) (aset ,vec 2 '5) @@ -87,13 +87,13 @@ Evaluate BODY for each created map. (let ((vec [3 4 5])) (should-error (map-put vec 3 6)))) -;; (ert-deftest test-map-put-literal () -;; (should (= (map-elt (map-put [1 2 3] 1 4) 1) -;; 4)) -;; (should (= (map-elt (map-put (make-hash-table) 'a 2) 'a) -;; 2)) -;; (should-error (map-put '((a . 1)) 'b 2)) -;; (should-error (map-put '() 'a 1))) +(ert-deftest test-map-put-literal () + (should (= (map-elt (map-put [1 2 3] 1 4) 1) + 4)) + (should (= (map-elt (map-put (make-hash-table) 'a 2) 'a) + 2)) + (should-error (map-put '((a . 1)) 'b 2)) + (should-error (map-put '() 'a 1))) (ert-deftest test-map-put-return-value () (let ((ht (make-hash-table))) commit 5fac0dee87ea5d4aa90ee93606c19785919da105 Author: Ken Brown Date: Sun Jun 21 16:18:48 2015 -0400 Drop support for CPU profiling on Cygwin * src/syssignal.h (PROFILER_CPU_SUPPORT): Don't define on Cygwin. (Bug#20843) diff --git a/src/syssignal.h b/src/syssignal.h index b536eb5..2882400 100644 --- a/src/syssignal.h +++ b/src/syssignal.h @@ -36,7 +36,9 @@ extern void unblock_tty_out_signal (sigset_t const *); # define HAVE_ITIMERSPEC #endif -#if (defined SIGPROF && !defined PROFILING \ +/* On Cygwin, setitimer does not support ITIMER_PROF, so we can't + support CPU profiling. */ +#if (defined SIGPROF && !defined PROFILING && !defined CYGWIN \ && (defined HAVE_SETITIMER || defined HAVE_ITIMERSPEC)) # define PROFILER_CPU_SUPPORT #endif commit 38bb9ff0f4b92836199d8b3a0ee3903428bb7851 Author: Paul Eggert Date: Sun Jun 21 12:34:11 2015 -0700 Fix some “nested” quoting confusion in doc strings * lisp/emacs-lisp/advice.el (ad-map-arglists): * lisp/kermit.el (kermit-clean-on): * lisp/mh-e/mh-comp.el (mh-repl-group-formfile): * src/keyboard.c (Frecursive_edit): Use curved quotes when quoting text containing apostrophe, so that the apostrophe isn't curved in the output. diff --git a/lisp/emacs-lisp/advice.el b/lisp/emacs-lisp/advice.el index 907f03b..1915d94 100644 --- a/lisp/emacs-lisp/advice.el +++ b/lisp/emacs-lisp/advice.el @@ -2412,14 +2412,14 @@ The assignment starts at position INDEX." ;; The mapping should work for any two argument lists. (defun ad-map-arglists (source-arglist target-arglist) - "Make `funcall/apply' form to map SOURCE-ARGLIST to TARGET-ARGLIST. + "Make ‘funcall/apply’ form to map SOURCE-ARGLIST to TARGET-ARGLIST. The arguments supplied to TARGET-ARGLIST will be taken from SOURCE-ARGLIST just as if they had been supplied to a function with TARGET-ARGLIST directly. Excess source arguments will be neglected, missing source arguments will be -supplied as nil. Returns a `funcall' or `apply' form with the second element -being `function' which has to be replaced by an actual function argument. -Example: `(ad-map-arglists '(a &rest args) '(w x y z))' will return - `(funcall ad--addoit-function a (car args) (car (cdr args)) (nth 2 args))'." +supplied as nil. Returns a ‘funcall’ or ‘apply’ form with the second element +being ‘function’ which has to be replaced by an actual function argument. +Example: ‘(ad-map-arglists '(a &rest args) '(w x y z))’ will return + ‘(funcall ad--addoit-function a (car args) (car (cdr args)) (nth 2 args))’." (let* ((parsed-source-arglist (ad-parse-arglist source-arglist)) (source-reqopt-args (append (nth 0 parsed-source-arglist) (nth 1 parsed-source-arglist))) diff --git a/lisp/kermit.el b/lisp/kermit.el index e8a4ccd..d4a21f4 100644 --- a/lisp/kermit.el +++ b/lisp/kermit.el @@ -135,7 +135,7 @@ In this state, use LFD to send a line and end it with a carriage-return." (defun kermit-clean-on () "Delete all null characters and ^M's from the kermit output. Note that another (perhaps better) way to do this is to use the -command `kermit | tr -d '\\015''." +command ‘kermit | tr -d '\\015'’." (interactive) (set-process-filter (get-buffer-process (current-buffer)) 'kermit-clean-filter)) diff --git a/lisp/mh-e/mh-comp.el b/lisp/mh-e/mh-comp.el index 5875b41..a8c5e33 100644 --- a/lisp/mh-e/mh-comp.el +++ b/lisp/mh-e/mh-comp.el @@ -91,7 +91,7 @@ user's MH directory, then in the system MH lib directory.") Default is \"replgroupcomps\". This file is used to form replies to the sender and all recipients of -a message. Only used if `(mh-variant-p 'nmh)' is non-nil. +a message. Only used if ‘(mh-variant-p 'nmh)’ is non-nil. If not an absolute file name, the file is searched for first in the user's MH directory, then in the system MH lib directory.") diff --git a/src/keyboard.c b/src/keyboard.c index 23f7ce7..9f42ad1 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -758,11 +758,11 @@ force_auto_save_soon (void) DEFUN ("recursive-edit", Frecursive_edit, Srecursive_edit, 0, 0, "", doc: /* Invoke the editor command loop recursively. -To get out of the recursive edit, a command can throw to `exit' -- for -instance `(throw 'exit nil)'. -If you throw a value other than t, `recursive-edit' returns normally +To get out of the recursive edit, a command can throw to ‘exit’ -- for +instance ‘(throw 'exit nil)’. +If you throw a value other than t, ‘recursive-edit’ returns normally to the function that called it. Throwing a t value causes -`recursive-edit' to quit, so that control returns to the command loop +‘recursive-edit’ to quit, so that control returns to the command loop one level up. This function is called by the editor initialization to begin editing. */) commit 8b6d82d3ca86f76ed964063b3941a7c6ab0bf1c6 Author: Nicolas Petton Date: Sun Jun 21 20:46:08 2015 +0200 Define `map-elt' as a generalized variable * lisp/emacs-lisp/map.el (map-elt): Define a gv-expander. * lisp/emacs-lisp/map.el (map--dispatch): Tighten the code. * lisp/emacs-lisp/map.el (map-put): Redefine it as a function using a `setf' with `map-elt'. * test/automated/map-tests.el: Comment out `test-map-put-literal'. diff --git a/lisp/emacs-lisp/map.el b/lisp/emacs-lisp/map.el index 1d8a312..8759616 100644 --- a/lisp/emacs-lisp/map.el +++ b/lisp/emacs-lisp/map.el @@ -82,25 +82,21 @@ The following keyword types are meaningful: `:list', An error is thrown if MAP is neither a list, hash-table nor array. -Return RESULT if non-nil or the result of evaluation of the -form. +Return RESULT if non-nil or the result of evaluation of the form. \(fn (VAR MAP [RESULT]) &rest ARGS)" (declare (debug t) (indent 1)) (unless (listp spec) (setq spec `(,spec ,spec))) - (let ((map-var (car spec)) - (result-var (make-symbol "result"))) - `(let ((,map-var ,(cadr spec)) - ,result-var) - (setq ,result-var - (cond ((listp ,map-var) ,(plist-get args :list)) - ((hash-table-p ,map-var) ,(plist-get args :hash-table)) - ((arrayp ,map-var) ,(plist-get args :array)) - (t (error "Unsupported map: %s" ,map-var)))) - ,@(when (cddr spec) - `((setq ,result-var ,@(cddr spec)))) - ,result-var))) + (let ((map-var (car spec))) + `(let* ,(unless (eq map-var (cadr spec)) `((,map-var ,(cadr spec)))) + (cond ((listp ,map-var) ,(plist-get args :list)) + ((hash-table-p ,map-var) ,(plist-get args :hash-table)) + ((arrayp ,map-var) ,(plist-get args :array)) + (t (error "Unsupported map: %s" ,map-var))) + ,@(cddr spec)))) + +(put 'map--raw-place 'gv-expander #'funcall) (defun map-elt (map key &optional default) "Perform a lookup in MAP of KEY and return its associated value. @@ -109,26 +105,34 @@ If KEY is not found, return DEFAULT which defaults to nil. If MAP is a list, `eql' is used to lookup KEY. MAP can be a list, hash-table or array." + (declare + (gv-expander + (lambda (do) + (gv-letplace (mgetter msetter) map + (macroexp-let2* nil + ;; Eval them once and for all in the right order. + ((key key) (default default)) + `(map--dispatch ,mgetter + :list ,(gv-get `(alist-get ,key (map--raw-place ,mgetter ,msetter) + ,default) + do) + :hash-table ,(gv-get `(gethash ,key (map--raw-place ,mgetter ,msetter) + ,default)) + :array ,(gv-get (aref (map--raw-place ,mgetter ,msetter) ,key) + do))))))) (map--dispatch map :list (alist-get key map default) :hash-table (gethash key map default) :array (map--elt-array map key default))) -(defmacro map-put (map key value) +(defun map-put (map key value) "In MAP, associate KEY with VALUE and return MAP. If KEY is already present in MAP, replace the associated value with VALUE. MAP can be a list, hash-table or array." - (declare (debug t)) - (let ((symbol (symbolp map))) - `(progn - (map--dispatch (m ,map m) - :list (if ,symbol - (setq ,map (cons (cons ,key ,value) m)) - (error "Literal lists are not allowed, %s must be a symbol" ',map)) - :hash-table (puthash ,key ,value m) - :array (aset m ,key ,value))))) + (setf (map-elt map key) value) + map) (defmacro map-delete (map key) "In MAP, delete the key KEY if present and return MAP. diff --git a/test/automated/map-tests.el b/test/automated/map-tests.el index abda03d..402fead 100644 --- a/test/automated/map-tests.el +++ b/test/automated/map-tests.el @@ -40,11 +40,11 @@ Evaluate BODY for each created map. (let ((alist (make-symbol "alist")) (vec (make-symbol "vec")) (ht (make-symbol "ht"))) - `(let ((,alist '((0 . 3) - (1 . 4) - (2 . 5))) - (,vec (make-vector 3 nil)) - (,ht (make-hash-table))) + `(let ((,alist (list (cons 0 3) + (cons 1 4) + (cons 2 5))) + (,vec (make-vector 3 nil)) + (,ht (make-hash-table))) (aset ,vec 0 '3) (aset ,vec 1 '4) (aset ,vec 2 '5) @@ -87,13 +87,13 @@ Evaluate BODY for each created map. (let ((vec [3 4 5])) (should-error (map-put vec 3 6)))) -(ert-deftest test-map-put-literal () - (should (= (map-elt (map-put [1 2 3] 1 4) 1) - 4)) - (should (= (map-elt (map-put (make-hash-table) 'a 2) 'a) - 2)) - (should-error (map-put '((a . 1)) 'b 2)) - (should-error (map-put '() 'a 1))) +;; (ert-deftest test-map-put-literal () +;; (should (= (map-elt (map-put [1 2 3] 1 4) 1) +;; 4)) +;; (should (= (map-elt (map-put (make-hash-table) 'a 2) 'a) +;; 2)) +;; (should-error (map-put '((a . 1)) 'b 2)) +;; (should-error (map-put '() 'a 1))) (ert-deftest test-map-put-return-value () (let ((ht (make-hash-table))) commit 8d4f1e3bd742278d6a3d4c42811845b860d0d104 Author: Michael Albinus Date: Sun Jun 21 20:36:14 2015 +0200 Improve error handling in tramp-adb.el * lisp/net/tramp-adb.el (tramp-adb-handle-file-local-copy): Improve error handling. diff --git a/lisp/net/tramp-adb.el b/lisp/net/tramp-adb.el index 7c509e1..6305921 100644 --- a/lisp/net/tramp-adb.el +++ b/lisp/net/tramp-adb.el @@ -575,8 +575,10 @@ Emacs dired can't find files." (let ((tmpfile (tramp-compat-make-temp-file filename))) (with-tramp-progress-reporter v 3 (format "Fetching %s to tmp file %s" filename tmpfile) - (when (tramp-adb-execute-adb-command v "pull" localname tmpfile) - (delete-file tmpfile) + ;; "adb pull ..." does not always return an error code. + (when (or (tramp-adb-execute-adb-command v "pull" localname tmpfile) + (not (file-exists-p tmpfile))) + (ignore-errors (delete-file tmpfile)) (tramp-error v 'file-error "Cannot make local copy of file `%s'" filename)) (set-file-modes commit a94202b78a8a1ecbb623e76f7feeb3bffc954f12 Author: Nicolas Petton Date: Sun Jun 21 20:25:28 2015 +0200 Reuse `alist-get' in map.el * lisp/emacs-lisp/map.el (map-elt): Use `alist-get' to retrieve alist elements. diff --git a/lisp/emacs-lisp/map.el b/lisp/emacs-lisp/map.el index f5a9fd9..1d8a312 100644 --- a/lisp/emacs-lisp/map.el +++ b/lisp/emacs-lisp/map.el @@ -106,11 +106,11 @@ form. "Perform a lookup in MAP of KEY and return its associated value. If KEY is not found, return DEFAULT which defaults to nil. -If MAP is a list, `equal' is used to lookup KEY. +If MAP is a list, `eql' is used to lookup KEY. MAP can be a list, hash-table or array." (map--dispatch map - :list (map--elt-list map key default) + :list (alist-get key map default) :hash-table (gethash key map default) :array (map--elt-array map key default))) @@ -324,14 +324,6 @@ MAP can be a list, hash-table or array." (setq index (1+ index)))) map))) -(defun map--elt-list (map key &optional default) - "Lookup, in the list MAP, the value associated with KEY and return it. -If KEY is not found, return DEFAULT which defaults to nil." - (let ((pair (assoc key map))) - (if pair - (cdr pair) - default))) - (defun map--elt-array (map key &optional default) "Return the element of the array MAP at the index KEY. If KEY is not found, return DEFAULT which defaults to nil." commit 3be98ca53b5de3d6442c9318663a8f3cb4dbfed0 Author: Eli Zaretskii Date: Sun Jun 21 20:27:48 2015 +0300 Fix bytecomp-tests--warnings when $TMPDIR has a long name * test/automated/bytecomp-tests.el (bytecomp-tests--warnings): Allow the warning to begin on the 3rd, not only 2nd line, which happens if temporary-file-directory has a very long name. diff --git a/test/automated/bytecomp-tests.el b/test/automated/bytecomp-tests.el index f51710a..c65009c 100644 --- a/test/automated/bytecomp-tests.el +++ b/test/automated/bytecomp-tests.el @@ -376,8 +376,12 @@ Subtests signal errors if something goes wrong." (with-current-buffer (get-buffer-create "*Compile-Log*") (goto-char (point-min)) ;; Should warn that mt--test1[12] are first used as functions. - (should (re-search-forward "my--test11:\n.*macro" nil t)) - (should (re-search-forward "my--test12:\n.*macro" nil t)) + ;; The second alternative is for when the file name is so long + ;; that pretty-printing starts the message on the next line. + (should (or (re-search-forward "my--test11:\n.*macro" nil t) + (re-search-forward "my--test11:\n.*:\n.*macro" nil t))) + (should (or (re-search-forward "my--test12:\n.*macro" nil t) + (re-search-forward "my--test12:\n.*:\n.*macro" nil t))) (goto-char (point-min)) ;; Should not warn that mt--test2 is not known to be defined. (should-not (re-search-forward "my--test2" nil t)))) commit 8bc4185d647df4313eada79311c07313139d9b4f Author: Eli Zaretskii Date: Sun Jun 21 18:10:49 2015 +0300 Expect 2 icalendar tests to fail on MS-Windows * test/automated/icalendar-tests.el (icalendar-import-with-timezone) (icalendar-real-world): Make them expected failures on MS-Windows. diff --git a/test/automated/icalendar-tests.el b/test/automated/icalendar-tests.el index 68d0a40..3614c7a 100644 --- a/test/automated/icalendar-tests.el +++ b/test/automated/icalendar-tests.el @@ -1318,6 +1318,11 @@ DTEND;VALUE=DATE-TIME:20030919T113000" "&9/19/2003 09:00-11:30 non-recurring\n UID: 1234567890uid\n")) (ert-deftest icalendar-import-with-timezone () + ;; This is known to fail on MS-Windows, because the test assumes + ;; Posix features of specifying DST rules. + :expected-result (if (memq system-type '(windows-nt ms-dos)) + :failed + :passed) ;; bug#11473 (icalendar-tests--test-import "BEGIN:VCALENDAR @@ -1446,6 +1451,11 @@ SUMMARY:and diary-anniversary ;; ====================================================================== (ert-deftest icalendar-real-world () "Perform real-world tests, as gathered from problem reports." + ;; This is known to fail on MS-Windows, since it doesn't support DST + ;; specification with month and day. + :expected-result (if (memq system-type '(windows-nt ms-dos)) + :failed + :passed) ;; 2003-05-29 (icalendar-tests--test-import "BEGIN:VCALENDAR commit 821a3633564f36857968c7fe2b8bb6681a895905 Author: Glenn Morris Date: Sun Jun 21 06:24:05 2015 -0400 ; Auto-commit of ChangeLog files. diff --git a/ChangeLog.2 b/ChangeLog.2 index b8e1e38..717a65c 100644 --- a/ChangeLog.2 +++ b/ChangeLog.2 @@ -1,3 +1,511 @@ +2015-06-20 Paul Eggert + + Improve port of settings UI to older displays + * lisp/cus-start.el (standard): Don't assume curved quotes are + easily distinguishable when users are tinkering with a setting + that affects how curved quotes are generated. + + Fix quoting in electric-quote-mode doc string + * lisp/electric.el (electric-quote-mode): Fix quoting. + This is a fallout from the recent change introducing + ‘help-quote-translation’. + + Spelling fix + + * doc/misc/texinfo.tex, lib/set-permissions.c: Merge from gnulib. + + * src/doc.c (syms_of_doc): Remove unused symbols. + +2015-06-20 Martin Rudalics + + In ‘window-state-put’ undedicate target window. (Bug#20848) + * lisp/window.el (window-state-put): Undedicate target window + before putting STATE into it. (Bug#20848) + +2015-06-19 Paul Eggert + + Merge from origin/emacs-24 + a5e6f33 Fixes: debbugs:20832 + b9f02cf Fixes: debbugs:20832 + +2015-06-19 Eli Zaretskii + + Fix file-in-directory-p when the directory is UNC + * lisp/files.el (file-in-directory-p): Support files and + directories that begin with "//". (Bug#20844) + +2015-06-19 Stephen Berman + + (Bug#20832) + * lisp/calendar/todo-mode.el (todo-show): Don't visit todo file + in the minibuffer. + +2015-06-19 Nicolas Richard + + (Bug#20832) + * lisp/calendar/todo-mode.el (todo-show): Signal an error + if buffer for adding new todo file is empty but modified. + +2015-06-19 Stefan Monnier + + (filepos-to-bufferpos): Further tweaks to the utf-16 code + * lisp/international/mule-util.el (filepos-to-bufferpos): + Fix typo. Move non-exact check to the utf-16 branch (the only one + affected). Don't use byte-to-position for the utf-16 case. + +2015-06-19 Eli Zaretskii + + Minor fixes in filepos-to-bufferpos + * lisp/international/mule-util.el (filepos-to-bufferpos): Remove + test for utf-8-emacs. Exempt single-byte encodings from the + 'use-exact' path when QUALITY is 'exact'. Test UTF-16 encodings + for BOM before subtracting 2 bytes. Use 'identity' when adjusting + UTF-16 encoded files for CR-LF EOLs. + +2015-06-19 Paul Eggert + + Improve the optional translation of quotes + Fix several problems with the recently-added custom variable + help-quote-translation where the code would quote inconsistently + in help buffers. Add support for quoting 'like this', which + is common in other GNU programs in ASCII environments. Change + help-quote-translation to use more mnemonic values: values are now the + initial quoting char, e.g., (setq help-quote-translation ?`) gets the + traditional Emacs help-buffer quoting style `like this'. Change the + default behavior of substitute-command-keys to match what's done in + set-locale-environment, i.e., quote ‘like this’ if displayable, + 'like this' otherwise. + * doc/lispref/help.texi (Keys in Documentation): Document + new behavior of substitute-command-keys, and document + help-quote-translation. + * doc/lispref/tips.texi (Documentation Tips): + Mention the effect of help-quote-translation. + * etc/NEWS: Mention new behavior of substitute-command-keys, + and merge help-quote-translation news into it. + When talking about doc strings, mention new ways to type quotes. + * lisp/cedet/mode-local.el (overload-docstring-extension): + Revert my recent change to this function, which shouldn't be + needed as the result is a doc string. + * lisp/cedet/mode-local.el (mode-local-print-binding) + (mode-local-describe-bindings-2): + * lisp/cedet/srecode/srt-mode.el (srecode-macro-help): + * lisp/cus-theme.el (describe-theme-1): + * lisp/descr-text.el (describe-text-properties-1, describe-char): + * lisp/emacs-lisp/cl-generic.el (cl--generic-describe): + * lisp/emacs-lisp/eieio-opt.el (eieio-help-class) + (eieio-help-constructor): + * lisp/emacs-lisp/package.el (describe-package-1): + * lisp/faces.el (describe-face): + * lisp/help-fns.el (help-fns--key-bindings) + (help-fns--compiler-macro, help-fns--parent-mode) + (help-fns--obsolete, help-fns--interactive-only) + (describe-function-1, describe-variable): + * lisp/help.el (describe-mode): + Use substitute-command-keys to ensure a more-consistent quoting + style in help buffers. + * lisp/cus-start.el (standard): + Document new help-quote-translation behavior. + * lisp/emacs-lisp/lisp-mode.el (lisp-fdefs): + * lisp/help-mode.el (help-xref-symbol-regexp, help-xref-info-regexp) + (help-xref-url-regexp): + * lisp/international/mule-cmds.el (help-xref-mule-regexp-template): + * lisp/wid-edit.el (widget-documentation-link-regexp): + Also match 'foo', in case we're in a help buffer generated when + help-quote-translation is ?'. + * src/doc.c: Include disptab.h, for DISP_CHAR_VECTOR. + (LEFT_SINGLE_QUOTATION_MARK, uLSQM0, uLSQM1, uLSQM2, uRSQM0) + (uRSQM1, uRSQM2, LSQM, RSQM): New constants. + (Fsubstitute_command_keys): Document and implement new behavior. + (Vhelp_quote_translation): Document new behavior. + +2015-06-18 Glenn Morris + + * lisp/cus-start.el (help-quote-translation): Add :version. + + * src/doc.c (Fsubstitute_command_keys): Make previous change compile. + +2015-06-18 Alan Mackenzie + + Make translation of quotes to curly in doc strings optional. + src/doc.c (traditional, prefer-unicode): new symbols. + (help-quote-translation): new variable. + (Fsubstitute_command_keys): make translation of quotes dependent on + `help-quote-translation'; also translate curly quotes back to ASCII + ones. + lisp/cus-start.el (top-level): Add a customization entry for + `help-quote-translation'. + +2015-06-18 Artur Malabarba + + * lisp/emacs-lisp/package.el: Don't always propagate async errors + (package--with-work-buffer-async): Only propagate the error if the + callback returns non-nil. + (package--download-one-archive): Return nil on the signature + checking callback if we accept unsigned. + (package--download-and-read-archives): Return non-nil on the + archive download callback. + +2015-06-18 Martin Rudalics + + Fix last fix" + + Set image_cache_refcount before x_default_parameter calls. (Bug#20802) + * src/nsfns.m (Fx_create_frame): + * src/xfns.c (Fx_create_frame, x_create_tip_frame): Move setting + image_cache_refcount before first x_default_parameter call. + +2015-06-18 Eli Zaretskii + + Improve and extend filepos-to-bufferpos + * lisp/international/mule-util.el (filepos-to-bufferpos--dos): + Don't barf if F returns nil for some argument. + (filepos-to-bufferpos): Expand to support UTF-16 and not assume + that every encoding of type 'charset' is single-byte. + +2015-06-18 Artur Malabarba + + * lisp/emacs-lisp/package.el (package-menu--perform-transaction): + Properly delete packages. (Bug#20836) + +2015-06-18 Eli Zaretskii + + Update data files from just-released Unicode 8.0 + * etc/NEWS: Update wording since Unicode 8.0 is no longer in draft + status. + * test/BidiCharacterTest.txt: Update from Unicode 8.0. + * admin/unidata/BidiMirroring.txt: + * admin/unidata/BidiBrackets.txt: + * admin/unidata/UnicodeData.txt: Update from Unicode 8.0. + +2015-06-18 Paul Eggert + + Document curved quotes a bit better + * doc/emacs/basic.texi (Inserting Text): + Mention C-x 8. Change example to use curved quote rather + than infinity, as this lets us give more ways to do it. + * doc/emacs/mule.texi (International Chars): Mention C-x 8 shortcuts + and quotation marks. + * doc/emacs/text.texi (Quotation Marks): + * doc/lispref/tips.texi (Documentation Tips): + Add "curly quotes" and "curved quotes" to the index. + * doc/emacs/text.texi (Quotation Marks): + Give the C-x 8 shorthands for curved quotes. + Cross-reference to "Quotation Marks". + +2015-06-17 Daiki Ueno + + Add pinentry.el for better GnuPG integration + * lisp/pinentry.el: New file. + * etc/NEWS: Add entry about pinentry.el. + * lisp/epg.el (epg--start): Set INSIDE_EMACS envvar. + (Bug#20550) + +2015-06-17 Artur Malabarba + + * lisp/emacs-lisp/package.el: Slightly better error reporting. + +2015-06-17 Stefan Monnier + + (define-minor-mode): Use setq-default for :global minor modes + * lisp/emacs-lisp/easy-mmode.el (define-minor-mode): + Use setq-default for :global minor modes (bug#20712). + +2015-06-17 Eli Zaretskii + + Avoid infloop in redisplay with tall images + * src/xdisp.c (try_scrolling): Prevent an infloop when scrolling + down near ZV. (Bug#20808) + Call bidi_unshelve_cache to avoid memory leaks. Use IT_CHARPOS + instead of CHARPOS. + +2015-06-17 Artur Malabarba + + * lisp/emacs-lisp/package.el (package--with-work-buffer-async): + Fix error reporting. + + * lisp/let-alist.el: move to lisp/emacs-lisp/let-alist.el + + * lisp/emacs-lisp/package.el: Revert buffer after any operation + Call `package-menu--post-refresh' after any operation that changes + the package database (`package-install' and `package-delete'). To + avoid performance issues in large transactions, these functions + add `post-refresh' to `post-command-hook' instead of calling it + immediately. + (package-menu--mark-or-notify-upgrades): New function. + (list-packages): Add it to `package--post-download-archives-hook'. + (package-menu--post-refresh): Lose the upgrade-checking code, add + code to remove itself from `post-command-hook'. + (package-install, package-delete): Add it to `post-command-hook'. + (package-menu-execute): Don't call `package-menu--post-refresh'. + +2015-06-17 Stephen Leake + + Add missing function xref-location-group for elisp-mode. + * lisp/progmodes/elisp-mode.el: Add missing function xref-location-group. + +2015-06-17 Wolfgang Jenkner + + * src/editfns.c (Fbyte_to_position): Fix bytepos not at char boundary. + The behavior now matches the description in the manual. (Bug#20783) + +2015-06-17 Xue Fuqiao + + Update tutorials/TUTORIAL.cn + * etc/tutorials/TUTORIAL.cn: Update; synchronize with TUTORIAL. + +2015-06-17 Glenn Morris + + Generate char-script-table from Unicode source. (Bug#20789) + * admin/unidata/Makefile.in (AWK): New, set by configure. + (all): Add charscript.el. + (blocks): New variable. + (charscript.el, ${unidir}/charscript.el): New targets. + (extraclean): Also remove generated charscript.el. + * admin/unidata/blocks.awk: New script. + * admin/unidata/Blocks.txt: New data file, from unicode.org. + * lisp/international/characters.el: Load charscript. + * src/Makefile.in (charscript): New variable. + (${charscript}): New target. + (${lispintdir}/characters.elc): Depend on charscript.elc. + (temacs$(EXEEXT)): Depend on charscript. + + * lisp/international/characters.el (char-script-table): Tweak + some ranges to better match the source. (Bug#20789#17) + + Remove "no-byte-compile: t" from a few files. + * lisp/obsolete/bruce.el, lisp/obsolete/keyswap.el: + * lisp/obsolete/patcomp.el: No reason not to compile these. + +2015-06-16 Glenn Morris + + Fix some typos in copied Unicode data. (Bug#20789) + * lisp/international/characters.el (char-script-table): + * lisp/international/fontset.el (script-representative-chars) + (setup-default-fontset): Fix typos. + + * lisp/emacs-lisp/check-declare.el (check-declare-warn): + Don't print filename twice (it's in the prefix now). + + * lisp/emacs-lisp/pcase.el (pcase--u1): Revert earlier workaround. + No longer needed. + + Address a compilation warning. + * lisp/emacs-lisp/bytecomp.el (byte-compile-file-form-defalias): + Replace 't' with '_' in pcase. + + Address some check-declare warnings. + * lisp/simple.el (tabulated-list-print): + * lisp/progmodes/elisp-mode.el (xref-collect-matches): + * lisp/term/ns-win.el (ns-selection-owner-p, ns-selection-exists-p) + (ns-get-selection): Update declarations. + + Address some compilation warnings. + * lisp/elec-pair.el (electric-pair-post-self-insert-function): + * lisp/vc/vc-git.el (vc-git-file-type-as-string): + Replace 't' with '_' in pcase. + + Address some compilation warnings. + * lisp/face-remap.el (text-scale-adjust): + * lisp/menu-bar.el (popup-menu-normalize-position): + * lisp/emacs-lisp/byte-opt.el (byte-compile-inline-expand): + * lisp/emacs-lisp/bytecomp.el (byte-compile-arglist-warn): + * lisp/emacs-lisp/generator.el (cps--transform-1): + * lisp/emacs-lisp/macroexp.el (macroexp--expand-all): + * lisp/obsolete/vc-arch.el (vc-arch-mode-line-string): + * lisp/progmodes/octave.el (octave-goto-function-definition) + (octave-find-definition-default-filename): + Replace 't' with '_' in pcase. + + * lisp/emacs-lisp/pcase.el (pcase--u1): + Paper-over today's bootstrap failure. + +2015-06-16 Nicolas Petton + + * lisp/emacs-lisp/seq.el: Fix a byte-compiler warnings related to pcase. + + * lisp/emacs-lisp/map.el (map-into): Fix a byte-compiler warning. + + Better confirmation message in `find-alternate-file' (Bug#20830) + * lisp/files.el (find-alternate-file'): Improve the confirmation + message to show the buffer name. + + Better docstring for null. (Bug#20815) + * src/data.c (null): Improves the docstring, saying what null returns + when OBJECT is non-nil. + +2015-06-16 Stefan Monnier + + * lisp/net/newst-treeview.el: Use lexical-binding. + + (filepos-to-bufferpos): Add missing cases. Make sure it terminates. + * lisp/international/mule-util.el (filepos-to-bufferpos--dos): + New auxiliary function, extracted from filepos-to-bufferpos. + Make sure it terminates. + (filepos-to-bufferpos): Use it to fix the latin-1-dos case. + Add support for the `exact' quality. + +2015-06-16 Cédric Chépied + + Identify feeds in newsticker treeview with :nt-feed property + * lisp/net/newst-treeview.el: + (newsticker--treeview-nodes-eq): Use property :nt-feed instead of :tag. + +2015-06-16 Stefan Monnier + + * lisp/emacs-lisp/pcase.el: Improve docs and error handling + (pcase--self-quoting-p): Floats aren't self-quoting. + (pcase): Tweak docstring. + (pcase--u1): Deprecate the t pattern. Improve error detection for + the nil pattern. + (\`): Tweak docstring. Signal an error for unrecognized cases. + (bug#20784) + +2015-06-16 Eli Zaretskii + + Fix infloop in filepos-to-bufferpos + * lisp/international/mule-util.el (filepos-to-bufferpos): Fix EOL + offset calculation, and make it conditional on the eol-type of the + file's encoding. (Bug#20825) + +2015-06-16 Martin Rudalics + + Fix handling of image cache refcounts. (Bug#20802) + This backports Eli Zaretskii's solution of this problem for W32 + to X and NS. + * src/nsfns.m (image_cache_refcount): Define unconditionally. + (unwind_create_frame): If the image cache's reference count + hasn't been updated yet, do that now. + (Fx_create_frame): Set image_cache_refcount unconditionally. + * src/xfns.c (image_cache_refcount): Define unconditionally. + (unwind_create_frame): If the image cache's reference count + hasn't been updated yet, do that now. + (Fx_create_frame, x_create_tip_frame): Set image_cache_refcount + unconditionally. + * src/w32fns.c (image_cache_refcount): Make it a ptrdiff_t as on + X and NS. + +2015-06-16 Nils Ackermann + + Improve reftex-label-regexps default value + * lisp/textmodes/reftex-vars.el (reftex-label-regexps): Make + keyvals label regexp more strict to better cope with unbalanced + brackets common in math documents. + +2015-06-16 Glenn Morris + + * doc/emacs/calendar.texi (Format of Diary File): + Move "nonmarking" from here... + (Displaying the Diary): ... to here. + + * doc/emacs/calendar.texi (Format of Diary File, Displaying the Diary): + Swap the order of these nodes. + * doc/emacs/emacs.texi: Update detailed menu for the above change. + + * doc/emacs/calendar.texi (Specified Dates, Special Diary Entries): + Update date of examples. + (Diary, Format of Diary File): Move example from former to latter. + Reduce duplication. + + No need for cp51932.el, eucjp-ms.el to not be compiled any more. + * admin/charsets/cp51932.awk, admin/charsets/eucjp-ms.awk: + Don't set no-byte-compile in the outputs. + * lisp/loadup.el: Don't specify uncompiled cp51932, eucjp-ms. + +2015-06-15 Glenn Morris + + * lisp/calendar/calendar.el (diary-file): Use locate-user-emacs-file. + * doc/emacs/calendar.texi (Diary, Format of Diary File): + Update for above diary-file change. + : * etc/NEWS: Mention this. + + * lisp/macros.el (name-last-kbd-macro, kbd-macro-query) + (apply-macro-to-region-lines): Use user-error. + + * lisp/textmodes/page-ext.el (add-new-page, pages-directory) + (pages-directory-for-addresses): Doc fixes. + +2015-06-15 Stefan Monnier + + * lisp/info.el: Cleanup bytepos/charpos issues + * lisp/international/mule-util.el: Use lexical-binding. + (filepos-to-bufferpos): New function. + * lisp/info.el (Info-find-in-tag-table-1): Use 0-based file positions. + (Info-find-node-2): Use filepos-to-bufferpos (bug#20704). + (Info-read-subfile, Info-search): Use 0-based file positions. + + * lisp/progmodes/perl-mode.el: Refine handling of /re/ and y/abc/def/ + (perl--syntax-exp-intro-keywords): New var. + (perl--syntax-exp-intro-regexp, perl-syntax-propertize-function): Use it. + (bug#20800). + +2015-06-15 Paul Eggert + + Fix quoting when making derived mode docstring + * lisp/emacs-lisp/derived.el (derived-mode-make-docstring): + Nest regexp-quote inside format, not the reverse. + Problem reported by Artur Malabarba in: + http://lists.gnu.org/archive/html/emacs-devel/2015-06/msg00206.html + +2015-06-15 Eli Zaretskii + + ;* src/fontset.c: Update obsolete commentary. + + Fix current-iso639-language on MS-Windows + * lisp/international/mule-cmds.el (set-locale-environment): + Downcase the locale name before interning it. This is so the + 'current-iso639-language' on MS-Windows matches the ':lang' + property of font-spec objects. + + Limit Symbola usage some more + * lisp/international/fontset.el (setup-default-fontset): Limit + Symbol coverage of Currency Symbols to u+20B6..u+20CF. + (Bug#20727) + +2015-06-15 Nicolas Petton + + * lisp/emacs-lisp/map.el (map-let): Better docstring. + +2015-06-15 Paul Eggert + + Spelling fixes + +2015-06-14 Glenn Morris + + * lisp/version.el (emacs-repository-version-git): Demote errors. + Check result is a hash. + +2015-06-14 Artur Malabarba + + * lisp/emacs-lisp/package.el (package--with-work-buffer-async): + Catch errors that happen before going async. (Bug#20809) + +2015-06-14 Eli Zaretskii + + Another improvement of documentation of set-fontset-font + * doc/lispref/display.texi (Fontsets): Say explicitly that + CHARACTER can be a single codepoint. + * src/fontset.c (Fset_fontset_font): Doc fix. + + Another improvement for symbol and punctuation characters + * lisp/international/fontset.el (setup-default-fontset): Exclude + from Symbola character ranges for symbols and punctuation covered + well by popular Unicode fonts. Prefer fixed-misc Unicode font, if + installed and where its coverage of symbols and punctuation is + known to be good. (Bug#20727) + +2015-06-14 Christoph Wedler + + Some generic support for multi-mode indentation. + * lisp/progmodes/prog-mode.el (prog-indentation-context): New + variable. + (prog-first-column, prog-widen): New convenience functions. + +2015-06-14 Artur Malabarba + + * lisp/emacs-lisp/tabulated-list.el (tabulated-list-print): + Don't assume that `tabulated-list-printer' will leave point at the + end of the buffer. (Bug#20810) + 2015-06-13 Glenn Morris Tweaks for getting repository version; a bit more like it was for bzr. @@ -5933,7 +6441,7 @@ This file records repository revisions from commit 9d56a21e6a696ad19ac65c4b405aeca44785884a (exclusive) to -commit 86076e65524933f7d1c9812cec292fdc7d5dc60c (inclusive). +commit bf32130d7debe3ee6dbd9974e50bb4a2a48047f4 (inclusive). See ChangeLog.1 for earlier changes. ;; Local Variables: