Now on revision 114063. ------------------------------------------------------------ revno: 114063 committer: Stefan Monnier branch nick: trunk timestamp: Wed 2013-08-28 23:49:10 -0400 message: * lisp/emacs-lisp/cl-macs.el (cl-defsubst): Make it clear that args are immutable. Don't use `unsafe' any more. (cl--defsubst-expand): Don't substitute at the same time as keeping a residual unused let-binding. Don't use `unsafe' any more. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-08-29 03:21:33 +0000 +++ lisp/ChangeLog 2013-08-29 03:49:10 +0000 @@ -1,3 +1,10 @@ +2013-08-29 Stefan Monnier + + * emacs-lisp/cl-macs.el (cl-defsubst): Make it clear that args + are immutable. Don't use `unsafe' any more. + (cl--defsubst-expand): Don't substitute at the same time as keeping + a residual unused let-binding. Don't use `unsafe' any more. + 2013-08-29 Glenn Morris * calendar/cal-china.el (calendar-chinese-year-cache): === modified file 'lisp/emacs-lisp/cl-macs.el' --- lisp/emacs-lisp/cl-macs.el 2013-08-13 02:30:52 +0000 +++ lisp/emacs-lisp/cl-macs.el 2013-08-29 03:49:10 +0000 @@ -2693,15 +2693,16 @@ ;;;###autoload (defmacro cl-defsubst (name args &rest body) "Define NAME as a function. -Like `defun', except the function is automatically declared `inline', +Like `defun', except the function is automatically declared `inline' and +the arguments are immutable. ARGLIST allows full Common Lisp conventions, and BODY is implicitly surrounded by (cl-block NAME ...). +The function's arguments should be treated as immutable. \(fn NAME ARGLIST [DOCSTRING] BODY...)" (declare (debug cl-defun) (indent 2)) (let* ((argns (cl--arglist-args args)) (p argns) - (pbody (cons 'progn body)) - (unsafe (not (cl--safe-expr-p pbody)))) + (pbody (cons 'progn body))) (while (and p (eq (cl--expr-contains args (car p)) 1)) (pop p)) `(progn ,(if p nil ; give up if defaults refer to earlier args @@ -2717,10 +2718,10 @@ ;; does not pay attention to the argvs (and ;; cl-expr-access-order itself is also too naive). nil - ,(and (memq '&key args) 'cl-whole) ,unsafe ,@argns))) + ,(and (memq '&key args) 'cl-whole) nil ,@argns))) (cl-defun ,name ,args ,@body)))) -(defun cl--defsubst-expand (argns body simple whole unsafe &rest argvs) +(defun cl--defsubst-expand (argns body simple whole _unsafe &rest argvs) (if (and whole (not (cl--safe-expr-p (cons 'progn argvs)))) whole (if (cl--simple-exprs-p argvs) (setq simple t)) (let* ((substs ()) @@ -2728,7 +2729,7 @@ (cl-mapcar (lambda (argn argv) (if (or simple (macroexp-const-p argv)) (progn (push (cons argn argv) substs) - (and unsafe (list argn argv))) + nil) (list argn argv))) argns argvs)))) ;; FIXME: `sublis/subst' will happily substitute the symbol ------------------------------------------------------------ revno: 114062 committer: Glenn Morris branch nick: trunk timestamp: Wed 2013-08-28 20:21:33 -0700 message: * calendar/cal-china.el (calendar-chinese-year-cache): Recenter on 2015. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-08-29 01:20:05 +0000 +++ lisp/ChangeLog 2013-08-29 03:21:33 +0000 @@ -1,5 +1,8 @@ 2013-08-29 Glenn Morris + * calendar/cal-china.el (calendar-chinese-year-cache): + Recenter on 2015. + * nxml/nxml-util.el (nxml-debug-clear-inside): Use cl-loop rather than loop. === modified file 'lisp/calendar/cal-china.el' --- lisp/calendar/cal-china.el 2013-01-01 09:11:05 +0000 +++ lisp/calendar/cal-china.el 2013-08-29 03:21:33 +0000 @@ -327,19 +327,7 @@ (defvar calendar-chinese-year-cache ;; Maintainers: delete existing value, position point at start of ;; empty line, then call M-: (calendar-chinese-year-cache-init N) - '((2000 (12 730126) (1 730155) (2 730185) (3 730215) (4 730244) (5 730273) - (6 730303) (7 730332) (8 730361) (9 730391) (10 730420) (11 730450)) - (2001 (12 730480) (1 730509) (2 730539) (3 730569) (4 730598) (4.5 730628) - (5 730657) (6 730687) (7 730716) (8 730745) (9 730775) (10 730804) - (11 730834)) - (2002 (12 730863) (1 730893) (2 730923) (3 730953) (4 730982) (5 731012) - (6 731041) (7 731071) (8 731100) (9 731129) (10 731159) (11 731188)) - (2003 (12 731218) (1 731247) (2 731277) (3 731307) (4 731336) (5 731366) - (6 731396) (7 731425) (8 731455) (9 731484) (10 731513) (11 731543)) - (2004 (12 731572) (1 731602) (2 731631) (2.5 731661) (3 731690) (4 731720) - (5 731750) (6 731779) (7 731809) (8 731838) (9 731868) (10 731897) - (11 731927)) - (2005 (12 731956) (1 731986) (2 732015) (3 732045) (4 732074) (5 732104) + '((2005 (12 731956) (1 731986) (2 732015) (3 732045) (4 732074) (5 732104) (6 732133) (7 732163) (8 732193) (9 732222) (10 732252) (11 732281)) (2006 (12 732311) (1 732340) (2 732370) (3 732399) (4 732429) (5 732458) (6 732488) (7 732517) (7.5 732547) (8 732576) (9 732606) (10 732636) @@ -376,7 +364,19 @@ (6 737243) (7 737272) (8 737301) (9 737331) (10 737360) (11 737389)) (2020 (12 737419) (1 737449) (2 737478) (3 737508) (4 737538) (4.5 737568) (5 737597) (6 737627) (7 737656) (8 737685) (9 737715) (10 737744) - (11 737774))) + (11 737774)) + (2021 (12 737803) (1 737833) (2 737862) (3 737892) (4 737922) (5 737951) + (6 737981) (7 738010) (8 738040) (9 738069) (10 738099) (11 738128)) + (2022 (12 738158) (1 738187) (2 738217) (3 738246) (4 738276) (5 738305) + (6 738335) (7 738365) (8 738394) (9 738424) (10 738453) (11 738483)) + (2023 (12 738512) (1 738542) (2 738571) (2.5 738601) (3 738630) (4 738659) + (5 738689) (6 738719) (7 738748) (8 738778) (9 738808) (10 738837) + (11 738867)) + (2024 (12 738896) (1 738926) (2 738955) (3 738985) (4 739014) (5 739043) + (6 739073) (7 739102) (8 739132) (9 739162) (10 739191) (11 739221)) + (2025 (12 739251) (1 739280) (2 739310) (3 739339) (4 739369) (5 739398) + (6 739427) (6.5 739457) (7 739486) (8 739516) (9 739545) (10 739575) + (11 739605))) "Alist of Chinese year structures as determined by `chinese-year'. The default can be nil, but some values are precomputed for efficiency.") ------------------------------------------------------------ revno: 114061 committer: Glenn Morris branch nick: trunk timestamp: Wed 2013-08-28 21:20:05 -0400 message: * nxml/nxml-util.el (nxml-debug-clear-inside): Use cl-loop rather than loop. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-08-29 01:17:10 +0000 +++ lisp/ChangeLog 2013-08-29 01:20:05 +0000 @@ -1,5 +1,8 @@ 2013-08-29 Glenn Morris + * nxml/nxml-util.el (nxml-debug-clear-inside): + Use cl-loop rather than loop. + * net/eww.el (eww-mode-map): Lower-case menu bar entries look bad. * progmodes/sh-script.el (sh-builtins) : Add some bash4-isms. === modified file 'lisp/nxml/nxml-util.el' --- lisp/nxml/nxml-util.el 2013-08-09 21:22:44 +0000 +++ lisp/nxml/nxml-util.el 2013-08-29 01:20:05 +0000 @@ -45,7 +45,7 @@ (defmacro nxml-debug-clear-inside (start end) (when nxml-debug - `(loop for overlay in (overlays-in ,start ,end) + `(cl-loop for overlay in (overlays-in ,start ,end) if (overlay-get overlay 'nxml-inside-debug) do (delete-overlay overlay) finally (nxml-debug-change "nxml-clear-inside" ,start ,end)))) ------------------------------------------------------------ revno: 114060 committer: Glenn Morris branch nick: trunk timestamp: Wed 2013-08-28 21:18:51 -0400 message: * admin/notes/bzr: Mention origin of commit email From header. diff: === modified file 'admin/notes/bzr' --- admin/notes/bzr 2013-06-07 03:41:10 +0000 +++ admin/notes/bzr 2013-08-29 01:18:51 +0000 @@ -347,6 +347,9 @@ config' to set post_commit_to option for a branch. See `bzr help email' (if you have the plugin installed) for other options. +The From: address will be that of your Savannah account, rather than +your `bzr whoami' information. + Note: if you have the bzr-email plugin installed locally, then when you commit to the Emacs repository it will also try to send a commit email from your local machine. If your machine is not configured to ------------------------------------------------------------ revno: 114059 committer: Glenn Morris branch nick: trunk timestamp: Wed 2013-08-28 21:17:10 -0400 message: * lisp/net/eww.el (eww-mode-map): Lower-case menu bar entries look bad. (If "eww" is supposed to be an acronym then maybe capitalize the whole thing.) diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-08-29 01:02:46 +0000 +++ lisp/ChangeLog 2013-08-29 01:17:10 +0000 @@ -1,5 +1,7 @@ 2013-08-29 Glenn Morris + * net/eww.el (eww-mode-map): Lower-case menu bar entries look bad. + * progmodes/sh-script.el (sh-builtins) : Add some bash4-isms. 2013-08-28 Glenn Morris === modified file 'lisp/net/eww.el' --- lisp/net/eww.el 2013-08-13 18:09:50 +0000 +++ lisp/net/eww.el 2013-08-29 01:17:10 +0000 @@ -345,7 +345,7 @@ (define-key map [(meta p)] 'eww-previous-bookmark) (easy-menu-define nil map "" - '("eww" + '("Eww" ["Quit" eww-quit t] ["Reload" eww-reload t] ["Back to previous page" eww-back-url ------------------------------------------------------------ revno: 114058 committer: Glenn Morris branch nick: trunk timestamp: Wed 2013-08-28 21:12:51 -0400 message: * admin/notes/hydra: Misc small edits diff: === modified file 'admin/notes/hydra' --- admin/notes/hydra 2013-08-15 06:23:40 +0000 +++ admin/notes/hydra 2013-08-29 01:12:51 +0000 @@ -5,15 +5,14 @@ NOTES FOR EMACS CONTINUOUS BUILD ON HYDRA -A continuous build for Emacs trunk can be found at +A continuous build for Emacs can be found at http://hydra.nixos.org/jobset/gnu/emacs-trunk +http://hydra.nixos.org/jobset/gnu/emacs-24 -* It builds (and runs ERT tests) on these platforms: -i686-cygwin -i686-freebsd -i686-linux -x86_64-darwin -x86_64-linux +* It builds Emacs on various platforms. +Sometimes jobs fail due to hydra problems rather than Emacs problems. +Eg it seems like the cygwin build will never work again. +http://lists.gnu.org/archive/html/hydra-users/2013-08/msg00000.html * Mail notifications In addition to the web interface, Hydra can send notifications by @@ -27,15 +26,15 @@ * The Emacs jobset consists of the following jobs: ** The `tarball' job -which gets the source tree as input, and is just a `make dist' after -some autoconf/-make or bootstrap script. +which gets a checkout from bzr, and does a bootstrap followed +by running make-dist to create a tarball. If this job fails, all the +others will too (because they use the tarball as input). ** The `build' job -which gets the result of the tarball job as input, together with -system identifier, this job basically does a normal make and make install. +which starts from the tarball and does a normal build ** The 'coverage' job -is now running `make check'. +does a gcov build and then runs `make check'. Fails if any test fails. * Nix expressions The recipe for GNU Emacs are available via Git: ------------------------------------------------------------ revno: 114057 committer: Glenn Morris branch nick: trunk timestamp: Wed 2013-08-28 21:05:19 -0400 message: * etc/spook.lines: Minor commentary update diff: === modified file 'etc/spook.lines' Binary files etc/spook.lines 2013-07-26 01:45:52 +0000 and etc/spook.lines 2013-08-29 01:05:19 +0000 differ ------------------------------------------------------------ revno: 114056 committer: Glenn Morris branch nick: trunk timestamp: Wed 2013-08-28 21:02:46 -0400 message: * lisp/progmodes/sh-script.el (sh-builtins) : Add some bash4-isms. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-08-28 23:32:25 +0000 +++ lisp/ChangeLog 2013-08-29 01:02:46 +0000 @@ -1,3 +1,7 @@ +2013-08-29 Glenn Morris + + * progmodes/sh-script.el (sh-builtins) : Add some bash4-isms. + 2013-08-28 Glenn Morris * progmodes/antlr-mode.el: No need to require cc-mode twice. === modified file 'lisp/progmodes/sh-script.el' --- lisp/progmodes/sh-script.el 2013-08-21 01:16:27 +0000 +++ lisp/progmodes/sh-script.el 2013-08-29 01:02:46 +0000 @@ -1,7 +1,6 @@ ;;; sh-script.el --- shell-script editing commands for Emacs -;; Copyright (C) 1993-1997, 1999, 2001-2013 Free Software Foundation, -;; Inc. +;; Copyright (C) 1993-1997, 1999, 2001-2013 Free Software Foundation, Inc. ;; Author: Daniel Pfeiffer ;; Version: 2.0f @@ -673,7 +672,9 @@ "." "alias" "bg" "bind" "builtin" "caller" "compgen" "complete" "declare" "dirs" "disown" "enable" "fc" "fg" "help" "history" "jobs" "kill" "let" "local" "popd" "printf" "pushd" "shopt" - "source" "suspend" "typeset" "unalias") + "source" "suspend" "typeset" "unalias" + ;; bash4 + "mapfile" "readarray") ;; The next entry is only used for defining the others (bourne sh-append shell @@ -737,6 +738,7 @@ :type '(repeat (cons (symbol :tag "Shell") (choice (repeat string) (sexp :format "Evaluate: %v")))) + :version "24.4" ; bash4 additions :group 'sh-script) ------------------------------------------------------------ revno: 114055 committer: Glenn Morris branch nick: trunk timestamp: Wed 2013-08-28 19:32:25 -0400 message: * lisp/progmodes/antlr-mode.el: No need to require cc-mode twice. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-08-28 23:31:52 +0000 +++ lisp/ChangeLog 2013-08-28 23:32:25 +0000 @@ -1,5 +1,7 @@ 2013-08-28 Glenn Morris + * progmodes/antlr-mode.el: No need to require cc-mode twice. + * progmodes/cc-bytecomp.el (cc-require): Handle uncompiled case. * progmodes/cc-mode.el (c-define-abbrev-table): Handle NAME unbound. === modified file 'lisp/progmodes/antlr-mode.el' --- lisp/progmodes/antlr-mode.el 2013-01-01 09:11:05 +0000 +++ lisp/progmodes/antlr-mode.el 2013-08-28 23:32:25 +0000 @@ -178,10 +178,6 @@ (set-buffer-modified-p nil))))))) (put 'save-buffer-state-x 'lisp-indent-function 0) -;; get rid of byte-compile warnings -(eval-when-compile - (require 'cc-mode)) - (defvar outline-level) (defvar imenu-use-markers) (defvar imenu-create-index-function) ------------------------------------------------------------ revno: 114054 committer: Glenn Morris branch nick: trunk timestamp: Wed 2013-08-28 19:31:52 -0400 message: * lisp/progmodes/cc-bytecomp.el (cc-require): Handle uncompiled case. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-08-28 23:31:06 +0000 +++ lisp/ChangeLog 2013-08-28 23:31:52 +0000 @@ -1,5 +1,7 @@ 2013-08-28 Glenn Morris + * progmodes/cc-bytecomp.el (cc-require): Handle uncompiled case. + * progmodes/cc-mode.el (c-define-abbrev-table): Handle NAME unbound. 2013-08-28 Stefan Monnier === modified file 'lisp/progmodes/cc-bytecomp.el' --- lisp/progmodes/cc-bytecomp.el 2013-05-30 23:20:05 +0000 +++ lisp/progmodes/cc-bytecomp.el 2013-08-28 23:31:52 +0000 @@ -244,7 +244,9 @@ somewhat intentional." `(progn (eval-when-compile - (setq cc-bytecomp-noruntime-functions byte-compile-noruntime-functions) + (if (boundp 'byte-compile-noruntime-functions) ; in case load uncompiled + (setq cc-bytecomp-noruntime-functions + byte-compile-noruntime-functions)) (cc-bytecomp-load (symbol-name ,cc-part))) ;; Hack to suppress spurious "might not be defined at runtime" warnings. ;; The basic issue is that ------------------------------------------------------------ revno: 114053 committer: Glenn Morris branch nick: trunk timestamp: Wed 2013-08-28 19:31:06 -0400 message: * lisp/progmodes/cc-mode.el (c-define-abbrev-table): Handle NAME unbound. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-08-28 21:19:54 +0000 +++ lisp/ChangeLog 2013-08-28 23:31:06 +0000 @@ -1,3 +1,7 @@ +2013-08-28 Glenn Morris + + * progmodes/cc-mode.el (c-define-abbrev-table): Handle NAME unbound. + 2013-08-28 Stefan Monnier * simple.el (repeat-complex-command--called-interactively-skip): === modified file 'lisp/progmodes/cc-mode.el' --- lisp/progmodes/cc-mode.el 2013-08-28 20:24:18 +0000 +++ lisp/progmodes/cc-mode.el 2013-08-28 23:31:06 +0000 @@ -221,7 +221,7 @@ ;; Compatibility wrapper for `define-abbrev' which passes a non-nil ;; sixth argument for SYSTEM-FLAG in emacsen that support it ;; (currently only Emacs >= 21.2). - (let ((table (or (symbol-value name) + (let ((table (or (and (boundp name) (symbol-value name)) (progn (condition-case nil (define-abbrev-table name nil doc) (wrong-number-of-arguments ;E.g. Emacs<23. ------------------------------------------------------------ revno: 114052 fixes bug: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=14136 committer: Stefan Monnier branch nick: trunk timestamp: Wed 2013-08-28 17:19:54 -0400 message: * lisp/simple.el (repeat-complex-command--called-interactively-skip): New function. (repeat-complex-command): Use it. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-08-28 20:24:18 +0000 +++ lisp/ChangeLog 2013-08-28 21:19:54 +0000 @@ -1,5 +1,9 @@ 2013-08-28 Stefan Monnier + * simple.el (repeat-complex-command--called-interactively-skip): + New function. + (repeat-complex-command): Use it (bug#14136). + * progmodes/cc-mode.el: Minor cleanup of var declarations. (c-define-abbrev-table): Add `doc' argument. (c-mode-abbrev-table, c++-mode-abbrev-table) === modified file 'lisp/simple.el' --- lisp/simple.el 2013-08-16 08:27:49 +0000 +++ lisp/simple.el 2013-08-28 21:19:54 +0000 @@ -1404,11 +1404,25 @@ ;; add it to the history. (or (equal newcmd (car command-history)) (setq command-history (cons newcmd command-history))) - (eval newcmd)) + (unwind-protect + (progn + ;; Trick called-interactively-p into thinking that `newcmd' is + ;; an interactive call (bug#14136). + (add-hook 'called-interactively-p-functions + #'repeat-complex-command--called-interactively-skip) + (eval newcmd)) + (remove-hook 'called-interactively-p-functions + #'repeat-complex-command--called-interactively-skip))) (if command-history (error "Argument %d is beyond length of command history" arg) (error "There are no previous complex commands to repeat"))))) +(defun repeat-complex-command--called-interactively-skip (i _frame1 frame2) + (and (eq 'eval (cadr frame2)) + (eq 'repeat-complex-command + (cadr (backtrace-frame i #'called-interactively-p))) + 1)) + (defvar extended-command-history nil) (defun read-extended-command () ------------------------------------------------------------ revno: 114051 committer: Stefan Monnier branch nick: trunk timestamp: Wed 2013-08-28 16:24:18 -0400 message: * lisp/progmodes/cc-mode.el: Minor cleanup of var declarations. (c-define-abbrev-table): Add `doc' argument. (c-mode-abbrev-table, c++-mode-abbrev-table) (objc-mode-abbrev-table, java-mode-abbrev-table) (idl-mode-abbrev-table, pike-mode-abbrev-table) (awk-mode-abbrev-table): Use it. (c-mode-syntax-table, c-mode-map, c++-mode-syntax-table) (c++-mode-map, objc-mode-syntax-table, objc-mode-map) (java-mode-syntax-table, java-mode-map, idl-mode-syntax-table) (idl-mode-map, pike-mode-syntax-table, pike-mode-map, awk-mode-map): Move initialization into the declaration; and remove any autoload cookie. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-08-28 19:28:30 +0000 +++ lisp/ChangeLog 2013-08-28 20:24:18 +0000 @@ -1,5 +1,18 @@ 2013-08-28 Stefan Monnier + * progmodes/cc-mode.el: Minor cleanup of var declarations. + (c-define-abbrev-table): Add `doc' argument. + (c-mode-abbrev-table, c++-mode-abbrev-table) + (objc-mode-abbrev-table, java-mode-abbrev-table) + (idl-mode-abbrev-table, pike-mode-abbrev-table) + (awk-mode-abbrev-table): Use it. + (c-mode-syntax-table, c-mode-map, c++-mode-syntax-table) + (c++-mode-map, objc-mode-syntax-table, objc-mode-map) + (java-mode-syntax-table, java-mode-map, idl-mode-syntax-table) + (idl-mode-map, pike-mode-syntax-table, pike-mode-map, awk-mode-map): + Move initialization into the declaration; and remove any + autoload cookie. + * epg.el (epg--process-filter): Use with-current-buffer, save-excursion and dynamic let binding. === modified file 'lisp/progmodes/cc-mode.el' --- lisp/progmodes/cc-mode.el 2013-06-01 18:19:29 +0000 +++ lisp/progmodes/cc-mode.el 2013-08-28 20:24:18 +0000 @@ -217,12 +217,16 @@ (t (error "CC Mode is incompatible with this version of Emacs"))) map)) -(defun c-define-abbrev-table (name defs) +(defun c-define-abbrev-table (name defs &optional doc) ;; Compatibility wrapper for `define-abbrev' which passes a non-nil ;; sixth argument for SYSTEM-FLAG in emacsen that support it ;; (currently only Emacs >= 21.2). (let ((table (or (symbol-value name) - (progn (define-abbrev-table name nil) + (progn (condition-case nil + (define-abbrev-table name nil doc) + (wrong-number-of-arguments ;E.g. Emacs<23. + (eval `(defvar ,name nil ,doc)) + (define-abbrev-table name nil))) (symbol-value name))))) (while defs (condition-case nil @@ -1235,27 +1239,22 @@ ;; Support for C -;;;###autoload -(defvar c-mode-syntax-table nil +(defvar c-mode-syntax-table + (funcall (c-lang-const c-make-mode-syntax-table c)) "Syntax table used in c-mode buffers.") -(or c-mode-syntax-table - (setq c-mode-syntax-table - (funcall (c-lang-const c-make-mode-syntax-table c)))) -(defvar c-mode-abbrev-table nil +(c-define-abbrev-table 'c-mode-abbrev-table + '(("else" "else" c-electric-continued-statement 0) + ("while" "while" c-electric-continued-statement 0)) "Abbreviation table used in c-mode buffers.") -(c-define-abbrev-table 'c-mode-abbrev-table - '(("else" "else" c-electric-continued-statement 0) - ("while" "while" c-electric-continued-statement 0))) -(defvar c-mode-map () +(defvar c-mode-map + (let ((map (c-make-inherited-keymap))) + ;; Add bindings which are only useful for C. + (define-key map "\C-c\C-e" 'c-macro-expand) + map) "Keymap used in c-mode buffers.") -(if c-mode-map - nil - (setq c-mode-map (c-make-inherited-keymap)) - ;; add bindings which are only useful for C - (define-key c-mode-map "\C-c\C-e" 'c-macro-expand) - ) + (easy-menu-define c-c-menu c-mode-map "C Mode Commands" (cons "C" (c-lang-const c-mode-menu c))) @@ -1320,30 +1319,25 @@ ;; Support for C++ -;;;###autoload -(defvar c++-mode-syntax-table nil +(defvar c++-mode-syntax-table + (funcall (c-lang-const c-make-mode-syntax-table c++)) "Syntax table used in c++-mode buffers.") -(or c++-mode-syntax-table - (setq c++-mode-syntax-table - (funcall (c-lang-const c-make-mode-syntax-table c++)))) -(defvar c++-mode-abbrev-table nil +(c-define-abbrev-table 'c++-mode-abbrev-table + '(("else" "else" c-electric-continued-statement 0) + ("while" "while" c-electric-continued-statement 0) + ("catch" "catch" c-electric-continued-statement 0)) "Abbreviation table used in c++-mode buffers.") -(c-define-abbrev-table 'c++-mode-abbrev-table - '(("else" "else" c-electric-continued-statement 0) - ("while" "while" c-electric-continued-statement 0) - ("catch" "catch" c-electric-continued-statement 0))) -(defvar c++-mode-map () +(defvar c++-mode-map + (let ((map (c-make-inherited-keymap))) + ;; Add bindings which are only useful for C++. + (define-key map "\C-c\C-e" 'c-macro-expand) + (define-key map "\C-c:" 'c-scope-operator) + (define-key map "<" 'c-electric-lt-gt) + (define-key map ">" 'c-electric-lt-gt) + map) "Keymap used in c++-mode buffers.") -(if c++-mode-map - nil - (setq c++-mode-map (c-make-inherited-keymap)) - ;; add bindings which are only useful for C++ - (define-key c++-mode-map "\C-c\C-e" 'c-macro-expand) - (define-key c++-mode-map "\C-c:" 'c-scope-operator) - (define-key c++-mode-map "<" 'c-electric-lt-gt) - (define-key c++-mode-map ">" 'c-electric-lt-gt)) (easy-menu-define c-c++-menu c++-mode-map "C++ Mode Commands" (cons "C++" (c-lang-const c-mode-menu c++))) @@ -1380,26 +1374,21 @@ ;; Support for Objective-C -;;;###autoload -(defvar objc-mode-syntax-table nil +(defvar objc-mode-syntax-table + (funcall (c-lang-const c-make-mode-syntax-table objc)) "Syntax table used in objc-mode buffers.") -(or objc-mode-syntax-table - (setq objc-mode-syntax-table - (funcall (c-lang-const c-make-mode-syntax-table objc)))) -(defvar objc-mode-abbrev-table nil +(c-define-abbrev-table 'objc-mode-abbrev-table + '(("else" "else" c-electric-continued-statement 0) + ("while" "while" c-electric-continued-statement 0)) "Abbreviation table used in objc-mode buffers.") -(c-define-abbrev-table 'objc-mode-abbrev-table - '(("else" "else" c-electric-continued-statement 0) - ("while" "while" c-electric-continued-statement 0))) -(defvar objc-mode-map () +(defvar objc-mode-map + (let ((map (c-make-inherited-keymap))) + ;; Add bindings which are only useful for Objective-C. + (define-key map "\C-c\C-e" 'c-macro-expand) + map) "Keymap used in objc-mode buffers.") -(if objc-mode-map - nil - (setq objc-mode-map (c-make-inherited-keymap)) - ;; add bindings which are only useful for Objective-C - (define-key objc-mode-map "\C-c\C-e" 'c-macro-expand)) (easy-menu-define c-objc-menu objc-mode-map "ObjC Mode Commands" (cons "ObjC" (c-lang-const c-mode-menu objc))) @@ -1438,28 +1427,22 @@ ;; Support for Java -;;;###autoload -(defvar java-mode-syntax-table nil +(defvar java-mode-syntax-table + (funcall (c-lang-const c-make-mode-syntax-table java)) "Syntax table used in java-mode buffers.") -(or java-mode-syntax-table - (setq java-mode-syntax-table - (funcall (c-lang-const c-make-mode-syntax-table java)))) -(defvar java-mode-abbrev-table nil - "Abbreviation table used in java-mode buffers.") (c-define-abbrev-table 'java-mode-abbrev-table '(("else" "else" c-electric-continued-statement 0) ("while" "while" c-electric-continued-statement 0) ("catch" "catch" c-electric-continued-statement 0) - ("finally" "finally" c-electric-continued-statement 0))) + ("finally" "finally" c-electric-continued-statement 0)) + "Abbreviation table used in java-mode buffers.") -(defvar java-mode-map () +(defvar java-mode-map + (let ((map (c-make-inherited-keymap))) + ;; Add bindings which are only useful for Java. + map) "Keymap used in java-mode buffers.") -(if java-mode-map - nil - (setq java-mode-map (c-make-inherited-keymap)) - ;; add bindings which are only useful for Java - ) ;; Regexp trying to describe the beginning of a Java top-level ;; definition. This is not used by CC Mode, nor is it maintained @@ -1504,24 +1487,18 @@ ;; Support for CORBA's IDL language -;;;###autoload -(defvar idl-mode-syntax-table nil +(defvar idl-mode-syntax-table + (funcall (c-lang-const c-make-mode-syntax-table idl)) "Syntax table used in idl-mode buffers.") -(or idl-mode-syntax-table - (setq idl-mode-syntax-table - (funcall (c-lang-const c-make-mode-syntax-table idl)))) -(defvar idl-mode-abbrev-table nil +(c-define-abbrev-table 'idl-mode-abbrev-table nil "Abbreviation table used in idl-mode buffers.") -(c-define-abbrev-table 'idl-mode-abbrev-table nil) -(defvar idl-mode-map () +(defvar idl-mode-map + (let ((map (c-make-inherited-keymap))) + ;; Add bindings which are only useful for IDL. + map) "Keymap used in idl-mode buffers.") -(if idl-mode-map - nil - (setq idl-mode-map (c-make-inherited-keymap)) - ;; add bindings which are only useful for IDL - ) (easy-menu-define c-idl-menu idl-mode-map "IDL Mode Commands" (cons "IDL" (c-lang-const c-mode-menu idl))) @@ -1558,26 +1535,21 @@ ;; Support for Pike -;;;###autoload -(defvar pike-mode-syntax-table nil +(defvar pike-mode-syntax-table + (funcall (c-lang-const c-make-mode-syntax-table pike)) "Syntax table used in pike-mode buffers.") -(or pike-mode-syntax-table - (setq pike-mode-syntax-table - (funcall (c-lang-const c-make-mode-syntax-table pike)))) -(defvar pike-mode-abbrev-table nil +(c-define-abbrev-table 'pike-mode-abbrev-table + '(("else" "else" c-electric-continued-statement 0) + ("while" "while" c-electric-continued-statement 0)) "Abbreviation table used in pike-mode buffers.") -(c-define-abbrev-table 'pike-mode-abbrev-table - '(("else" "else" c-electric-continued-statement 0) - ("while" "while" c-electric-continued-statement 0))) -(defvar pike-mode-map () +(defvar pike-mode-map + (let ((map (c-make-inherited-keymap))) + ;; Additional bindings. + (define-key map "\C-c\C-e" 'c-macro-expand) + map) "Keymap used in pike-mode buffers.") -(if pike-mode-map - nil - (setq pike-mode-map (c-make-inherited-keymap)) - ;; additional bindings - (define-key pike-mode-map "\C-c\C-e" 'c-macro-expand)) (easy-menu-define c-pike-menu pike-mode-map "Pike Mode Commands" (cons "Pike" (c-lang-const c-mode-menu pike))) @@ -1626,28 +1598,26 @@ ;;; autoload form instead. ;;;###autoload (autoload 'awk-mode "cc-mode" "Major mode for editing AWK code." t) -(defvar awk-mode-abbrev-table nil +(c-define-abbrev-table 'awk-mode-abbrev-table + '(("else" "else" c-electric-continued-statement 0) + ("while" "while" c-electric-continued-statement 0)) "Abbreviation table used in awk-mode buffers.") -(c-define-abbrev-table 'awk-mode-abbrev-table - '(("else" "else" c-electric-continued-statement 0) - ("while" "while" c-electric-continued-statement 0))) -(defvar awk-mode-map () +(defvar awk-mode-map + (let ((map (c-make-inherited-keymap))) + ;; Add bindings which are only useful for awk. + (define-key map "#" 'self-insert-command) + (define-key map "/" 'self-insert-command) + (define-key map "*" 'self-insert-command) + (define-key map "\C-c\C-n" 'undefined) ; #if doesn't exist in awk. + (define-key map "\C-c\C-p" 'undefined) + (define-key map "\C-c\C-u" 'undefined) + (define-key map "\M-a" 'c-beginning-of-statement) ; 2003/10/7 + (define-key map "\M-e" 'c-end-of-statement) ; 2003/10/7 + (define-key map "\C-\M-a" 'c-awk-beginning-of-defun) + (define-key map "\C-\M-e" 'c-awk-end-of-defun) + map) "Keymap used in awk-mode buffers.") -(if awk-mode-map - nil - (setq awk-mode-map (c-make-inherited-keymap)) - ;; add bindings which are only useful for awk. - (define-key awk-mode-map "#" 'self-insert-command) - (define-key awk-mode-map "/" 'self-insert-command) - (define-key awk-mode-map "*" 'self-insert-command) - (define-key awk-mode-map "\C-c\C-n" 'undefined) ; #if doesn't exist in awk. - (define-key awk-mode-map "\C-c\C-p" 'undefined) - (define-key awk-mode-map "\C-c\C-u" 'undefined) - (define-key awk-mode-map "\M-a" 'c-beginning-of-statement) ; 2003/10/7 - (define-key awk-mode-map "\M-e" 'c-end-of-statement) ; 2003/10/7 - (define-key awk-mode-map "\C-\M-a" 'c-awk-beginning-of-defun) - (define-key awk-mode-map "\C-\M-e" 'c-awk-end-of-defun)) (easy-menu-define c-awk-menu awk-mode-map "AWK Mode Commands" (cons "AWK" (c-lang-const c-mode-menu awk))) ------------------------------------------------------------ revno: 114050 committer: Stefan Monnier branch nick: trunk timestamp: Wed 2013-08-28 15:28:30 -0400 message: * lisp/epg.el (epg--process-filter): Use with-current-buffer, save-excursion and dynamic let binding. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-08-28 19:26:18 +0000 +++ lisp/ChangeLog 2013-08-28 19:28:30 +0000 @@ -1,5 +1,8 @@ 2013-08-28 Stefan Monnier + * epg.el (epg--process-filter): Use with-current-buffer, save-excursion + and dynamic let binding. + * vc/smerge-mode.el: Remove redundant :group args. * emacs-lisp/package.el (package-activate-1): Don't add unnecessarily === modified file 'lisp/epg.el' --- lisp/epg.el 2013-08-09 21:22:44 +0000 +++ lisp/epg.el 2013-08-28 19:28:30 +0000 @@ -1278,37 +1278,34 @@ (defun epg--process-filter (process input) (if epg-debug - (save-excursion - (unless epg-debug-buffer - (setq epg-debug-buffer (generate-new-buffer " *epg-debug*"))) - (set-buffer epg-debug-buffer) + (with-current-buffer + (or epg-debug-buffer + (setq epg-debug-buffer (generate-new-buffer " *epg-debug*"))) (goto-char (point-max)) (insert input))) (if (buffer-live-p (process-buffer process)) (with-current-buffer (process-buffer process) - (goto-char (point-max)) - (insert input) - (unless epg-process-filter-running - (unwind-protect - (progn - (setq epg-process-filter-running t) - (goto-char epg-read-point) - (beginning-of-line) - (while (looking-at ".*\n") ;the input line finished - (if (looking-at "\\[GNUPG:] \\([A-Z_]+\\) ?\\(.*\\)") - (let* ((status (match-string 1)) - (string (match-string 2)) - (symbol (intern-soft (concat "epg--status-" - status)))) - (if (member status epg-pending-status-list) - (setq epg-pending-status-list nil)) - (if (and symbol - (fboundp symbol)) - (funcall symbol epg-context string)) - (setq epg-last-status (cons status string)))) - (forward-line) - (setq epg-read-point (point)))) - (setq epg-process-filter-running nil)))))) + (save-excursion + (goto-char (point-max)) + (insert input) + (unless epg-process-filter-running + (let ((epg-process-filter-running t)) + (goto-char epg-read-point) + (beginning-of-line) + (while (looking-at ".*\n") ;the input line finished + (if (looking-at "\\[GNUPG:] \\([A-Z_]+\\) ?\\(.*\\)") + (let* ((status (match-string 1)) + (string (match-string 2)) + (symbol (intern-soft (concat "epg--status-" + status)))) + (if (member status epg-pending-status-list) + (setq epg-pending-status-list nil)) + (if (and symbol + (fboundp symbol)) + (funcall symbol epg-context string)) + (setq epg-last-status (cons status string)))) + (forward-line) + (setq epg-read-point (point))))))))) (defun epg-read-output (context) "Read the output file CONTEXT and return the content as a string." ------------------------------------------------------------ revno: 114049 committer: Stefan Monnier branch nick: trunk timestamp: Wed 2013-08-28 15:26:18 -0400 message: * lisp/vc/smerge-mode.el: Remove redundant :group args. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-08-28 17:57:12 +0000 +++ lisp/ChangeLog 2013-08-28 19:26:18 +0000 @@ -1,5 +1,7 @@ 2013-08-28 Stefan Monnier + * vc/smerge-mode.el: Remove redundant :group args. + * emacs-lisp/package.el (package-activate-1): Don't add unnecessarily to load-path. === modified file 'lisp/vc/smerge-mode.el' --- lisp/vc/smerge-mode.el 2013-01-01 09:11:05 +0000 +++ lisp/vc/smerge-mode.el 2013-08-28 19:26:18 +0000 @@ -57,7 +57,6 @@ (defcustom smerge-diff-buffer-name "*vc-diff*" "Buffer name to use for displaying diffs." - :group 'smerge :type '(choice (const "*vc-diff*") (const "*cvs-diff*") @@ -69,12 +68,10 @@ (if (listp diff-switches) diff-switches (list diff-switches))) "A list of strings specifying switches to be passed to diff. Used in `smerge-diff-base-mine' and related functions." - :group 'smerge :type '(repeat string)) (defcustom smerge-auto-leave t "Non-nil means to leave `smerge-mode' when the last conflict is resolved." - :group 'smerge :type 'boolean) (defface smerge-mine @@ -84,8 +81,7 @@ :background "#553333") (((class color)) :foreground "red")) - "Face for your code." - :group 'smerge) + "Face for your code.") (define-obsolete-face-alias 'smerge-mine-face 'smerge-mine "22.1") (defvar smerge-mine-face 'smerge-mine) @@ -96,8 +92,7 @@ :background "#335533") (((class color)) :foreground "green")) - "Face for the other code." - :group 'smerge) + "Face for the other code.") (define-obsolete-face-alias 'smerge-other-face 'smerge-other "22.1") (defvar smerge-other-face 'smerge-other) @@ -108,8 +103,7 @@ :background "#888833") (((class color)) :foreground "yellow")) - "Face for the base code." - :group 'smerge) + "Face for the base code.") (define-obsolete-face-alias 'smerge-base-face 'smerge-base "22.1") (defvar smerge-base-face 'smerge-base) @@ -118,15 +112,13 @@ (:background "grey85")) (((background dark)) (:background "grey30"))) - "Face for the conflict markers." - :group 'smerge) + "Face for the conflict markers.") (define-obsolete-face-alias 'smerge-markers-face 'smerge-markers "22.1") (defvar smerge-markers-face 'smerge-markers) (defface smerge-refined-change '((t nil)) - "Face used for char-based changes shown by `smerge-refine'." - :group 'smerge) + "Face used for char-based changes shown by `smerge-refine'.") (defface smerge-refined-removed '((default @@ -137,7 +129,6 @@ :background "#aa2222") (t :inverse-video t)) "Face used for removed characters shown by `smerge-refine'." - :group 'smerge :version "24.3") (defface smerge-refined-added @@ -149,7 +140,6 @@ :background "#22aa22") (t :inverse-video t)) "Face used for added characters shown by `smerge-refine'." - :group 'smerge :version "24.3") (easy-mmode-defmap smerge-basic-map @@ -172,7 +162,6 @@ (defcustom smerge-command-prefix "\C-c^" "Prefix for `smerge-mode' commands." - :group 'smerge :type '(choice (const :tag "ESC" "\e") (const :tag "C-c ^" "\C-c^" ) (const :tag "none" "") ------------------------------------------------------------ revno: 114048 fixes bug: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11258 committer: Stefan Monnier branch nick: trunk timestamp: Wed 2013-08-28 14:27:26 -0400 message: * src/eval.c (Ffuncall): Fix handling of ((lambda ..) ..) in lexically scoped code. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-08-28 16:20:15 +0000 +++ src/ChangeLog 2013-08-28 18:27:26 +0000 @@ -1,3 +1,8 @@ +2013-08-28 Stefan Monnier + + * eval.c (Ffuncall): Fix handling of ((lambda ..) ..) in lexically + scoped code (bug#11258). + 2013-08-28 Davor Cubranic (tiny change) * nsterm.m (last_window): New variable. @@ -12,8 +17,8 @@ (SINGLE_BYTE_CHAR_P, SAME_CHARSET_P, MAKE_CHAR, BYTE8_TO_CHAR): Remove unused macro definitions. (CHARSET_RANGE_TABLE_BITS, EXTEND_RANGE_TABLE) - (SET_RANGE_TABLE_WORK_AREA_BIT, SET_RANGE_TABLE_WORK_AREA): Only - define if emacs. + (SET_RANGE_TABLE_WORK_AREA_BIT, SET_RANGE_TABLE_WORK_AREA): + Only define if emacs. 2013-08-28 Dmitry Antipov === modified file 'src/eval.c' --- src/eval.c 2013-08-12 07:12:07 +0000 +++ src/eval.c 2013-08-28 18:27:26 +0000 @@ -2149,6 +2149,8 @@ if (SYMBOLP (fun) && !NILP (fun) && (fun = XSYMBOL (fun)->function, SYMBOLP (fun))) fun = indirect_function (fun); + else + fun = Ffunction (Fcons (fun, Qnil)); if (SUBRP (fun)) { @@ -3151,20 +3153,17 @@ return 0; } -/* `specpdl_ptr->symbol' is a field which describes which variable is +/* `specpdl_ptr' describes which variable is let-bound, so it can be properly undone when we unbind_to. - It can have the following two shapes: - - SYMBOL : if it's a plain symbol, it means that we have let-bound - a symbol that is not buffer-local (at least at the time - the let binding started). Note also that it should not be + It can be either a plain SPECPDL_LET or a SPECPDL_LET_LOCAL/DEFAULT. + - SYMBOL is the variable being bound. Note that it should not be aliased (i.e. when let-binding V1 that's aliased to V2, we want to record V2 here). - - (SYMBOL WHERE . BUFFER) : this means that it is a let-binding for - variable SYMBOL which can be buffer-local. WHERE tells us - which buffer is affected (or nil if the let-binding affects the - global value of the variable) and BUFFER tells us which buffer was - current (i.e. if WHERE is non-nil, then BUFFER==WHERE, otherwise - BUFFER did not yet have a buffer-local value). */ + - WHERE tells us in which buffer the binding took place. + This is used for SPECPDL_LET_LOCAL bindings (i.e. bindings to a + buffer-local variable) as well as for SPECPDL_LET_DEFAULT bindings, + i.e. bindings to the default value of a variable which can be + buffer-local. */ void specbind (Lisp_Object symbol, Lisp_Object value) ------------------------------------------------------------ revno: 114047 committer: Stefan Monnier branch nick: trunk timestamp: Wed 2013-08-28 13:57:12 -0400 message: * lisp/emacs-lisp/package.el (package-activate-1): Don't add unnecessarily to load-path. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-08-28 16:39:51 +0000 +++ lisp/ChangeLog 2013-08-28 17:57:12 +0000 @@ -1,3 +1,8 @@ +2013-08-28 Stefan Monnier + + * emacs-lisp/package.el (package-activate-1): Don't add unnecessarily + to load-path. + 2013-08-28 Juri Linkov * isearch.el (isearch-reread-key-sequence-naturally): Use non-nil === modified file 'lisp/emacs-lisp/package.el' --- lisp/emacs-lisp/package.el 2013-08-27 08:01:13 +0000 +++ lisp/emacs-lisp/package.el 2013-08-28 17:57:12 +0000 @@ -457,19 +457,26 @@ (defun package-activate-1 (pkg-desc) (let* ((name (package-desc-name pkg-desc)) - (pkg-dir (package-desc-dir pkg-desc))) + (pkg-dir (package-desc-dir pkg-desc)) + (pkg-dir-dir (file-name-as-directory pkg-dir))) (unless pkg-dir (error "Internal error: unable to find directory for `%s'" (package-desc-full-name pkg-desc))) + ;; Add to load path, add autoloads, and activate the package. + (let ((old-lp load-path)) + (load (expand-file-name (format "%s-autoloads" name) pkg-dir) nil t) + (when (and (eq old-lp load-path) + (not (or (member pkg-dir load-path) + (member pkg-dir-dir load-path)))) + ;; Old packages don't add themselves to the `load-path', so we have to + ;; do it ourselves. + (push pkg-dir load-path))) ;; Add info node. (when (file-exists-p (expand-file-name "dir" pkg-dir)) ;; FIXME: not the friendliest, but simple. (require 'info) (info-initialize) (push pkg-dir Info-directory-list)) - ;; Add to load path, add autoloads, and activate the package. - (push pkg-dir load-path) - (load (expand-file-name (format "%s-autoloads" name) pkg-dir) nil t) (push name package-activated-list) ;; Don't return nil. t)) ------------------------------------------------------------ revno: 114046 fixes bug: http://debbugs.gnu.org/15200 committer: Juri Linkov branch nick: trunk timestamp: Wed 2013-08-28 19:39:51 +0300 message: * lisp/isearch.el (isearch-reread-key-sequence-naturally): Use non-nil arg DONT-DOWNCASE-LAST of `read-key-sequence'. (isearch-other-meta-char): Handle an undefined shifted printing character by downshifting it. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-08-28 16:33:02 +0000 +++ lisp/ChangeLog 2013-08-28 16:39:51 +0000 @@ -1,5 +1,12 @@ 2013-08-28 Juri Linkov + * isearch.el (isearch-reread-key-sequence-naturally): Use non-nil + arg DONT-DOWNCASE-LAST of `read-key-sequence'. + (isearch-other-meta-char): Handle an undefined shifted printing + character by downshifting it. (Bug#15200) + +2013-08-28 Juri Linkov + * isearch.el (isearch-search): Change regexp error message for non-regexp searches. (Bug#15166) === modified file 'lisp/isearch.el' --- lisp/isearch.el 2013-08-28 16:33:02 +0000 +++ lisp/isearch.el 2013-08-28 16:39:51 +0000 @@ -2249,7 +2249,9 @@ Return the key sequence as a string/vector." (isearch-unread-key-sequence keylist) (let (overriding-terminal-local-map) - (read-key-sequence nil))) ; This will go through function-key-map, if nec. + ;; This will go through function-key-map, if nec. + ;; The arg DONT-DOWNCASE-LAST prevents premature shift-translation. + (read-key-sequence nil nil t))) (defun isearch-lookup-scroll-key (key-seq) "If KEY-SEQ is bound to a scrolling command, return it as a symbol. @@ -2307,6 +2309,16 @@ (lookup-key local-function-key-map key))) (while keylist (setq key (car keylist)) + ;; Handle an undefined shifted printing character + ;; by downshifting it if that makes it printing. + ;; (As read-key-sequence would normally do, + ;; if we didn't have a default definition.) + (if (and (integerp key) + (memq 'shift (event-modifiers key)) + (>= key (+ ?\s (- ?\S-a ?a))) + (/= key (+ 127 (- ?\S-a ?a))) + (< key (+ 256 (- ?\S-a ?a)))) + (setq key (- key (- ?\S-a ?a)))) ;; If KEY is a printing char, we handle it here ;; directly to avoid the input method and keyboard ;; coding system translating it. ------------------------------------------------------------ revno: 114045 fixes bug: http://debbugs.gnu.org/15166 committer: Juri Linkov branch nick: trunk timestamp: Wed 2013-08-28 19:33:02 +0300 message: * lisp/isearch.el (isearch-search): Change regexp error message for non-regexp searches. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-08-28 06:01:52 +0000 +++ lisp/ChangeLog 2013-08-28 16:33:02 +0000 @@ -1,3 +1,8 @@ +2013-08-28 Juri Linkov + + * isearch.el (isearch-search): Change regexp error message for + non-regexp searches. (Bug#15166) + 2013-08-28 Paul Eggert * Makefile.in (SHELL): Now @SHELL@, not /bin/sh, === modified file 'lisp/isearch.el' --- lisp/isearch.el 2013-08-27 16:06:16 +0000 +++ lisp/isearch.el 2013-08-28 16:33:02 +0000 @@ -2784,10 +2784,18 @@ (invalid-regexp (setq isearch-error (car (cdr lossage))) - (if (string-match - "\\`Premature \\|\\`Unmatched \\|\\`Invalid " - isearch-error) - (setq isearch-error "incomplete input"))) + (cond + ((string-match + "\\`Premature \\|\\`Unmatched \\|\\`Invalid " + isearch-error) + (setq isearch-error "incomplete input")) + ((and (not isearch-regexp) + (string-match "\\`Regular expression too big" isearch-error)) + (cond + (isearch-word + (setq isearch-error "Too many words")) + ((and isearch-lax-whitespace search-whitespace-regexp) + (setq isearch-error "Too many spaces for whitespace matching")))))) (search-failed (setq isearch-success nil) ------------------------------------------------------------ revno: 114044 fixes bug: http://debbugs.gnu.org/6888 committer: Jan D. branch nick: trunk timestamp: Wed 2013-08-28 18:20:15 +0200 message: * nsterm.m (last_window): New variable. (EV_TRAILER2): New macro. (EV_TRAILER): Call EV_TRAILER2. (mouseMoved:): Add support for mouse-autoselect-window on nextstep. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-08-28 13:50:55 +0000 +++ src/ChangeLog 2013-08-28 16:20:15 +0000 @@ -1,3 +1,11 @@ +2013-08-28 Davor Cubranic (tiny change) + + * nsterm.m (last_window): New variable. + (EV_TRAILER2): New macro. + (EV_TRAILER): Call EV_TRAILER2. + (mouseMoved:): Add support for mouse-autoselect-window + on nextstep (Bug#6888). + 2013-08-28 Andreas Schwab * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE, CHAR_HEAD_P) === modified file 'src/nsterm.m' --- src/nsterm.m 2013-08-28 11:00:03 +0000 +++ src/nsterm.m 2013-08-28 16:20:15 +0000 @@ -184,6 +184,9 @@ Lisp_Object ns_display_name_list; long context_menu_value = 0; +/* Last window where we saw the mouse. Used by mouse-autoselect-window. */ +static Lisp_Object last_window; + /* display update */ NSPoint last_mouse_motion_position; static NSRect last_mouse_glyph; @@ -308,8 +311,13 @@ /* This is a piece of code which is common to all the event handling methods. Maybe it should even be a function. */ #define EV_TRAILER(e) \ - { \ - XSETFRAME (emacs_event->frame_or_window, emacsframe); \ + { \ + XSETFRAME (emacs_event->frame_or_window, emacsframe); \ + EV_TRAILER2 (e); \ + } + +#define EV_TRAILER2(e) \ + { \ if (e) emacs_event->timestamp = EV_TIMESTAMP (e); \ if (q_event_ptr) \ { \ @@ -5465,6 +5473,27 @@ previous_help_echo_string = help_echo_string; help_echo_string = Qnil; + if (!NILP (Vmouse_autoselect_window)) + { + NSTRACE (mouse_autoselect_window); + Lisp_Object window; + window = window_from_coordinates(emacsframe, last_mouse_motion_position.x, + last_mouse_motion_position.y, 0, 0); + if (WINDOWP (window) + && !EQ (window, last_window) + && !EQ (window, selected_window) + && (focus_follows_mouse + || (EQ (XWINDOW (window)->frame, + XWINDOW (selected_window)->frame)))) + { + NSTRACE (in_window); + emacs_event->kind = SELECT_WINDOW_EVENT; + emacs_event->frame_or_window = window; + EV_TRAILER2 (e); + } + last_window = window; + } + if (!note_mouse_movement (emacsframe, last_mouse_motion_position.x, last_mouse_motion_position.y)) help_echo_string = previous_help_echo_string; ------------------------------------------------------------ revno: 114043 committer: Andreas Schwab branch nick: emacs timestamp: Wed 2013-08-28 15:50:55 +0200 message: * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE, CHAR_HEAD_P) (SINGLE_BYTE_CHAR_P, SAME_CHARSET_P, MAKE_CHAR, BYTE8_TO_CHAR): Remove unused macro definitions. (CHARSET_RANGE_TABLE_BITS, EXTEND_RANGE_TABLE) (SET_RANGE_TABLE_WORK_AREA_BIT, SET_RANGE_TABLE_WORK_AREA): Only define if emacs. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-08-28 11:00:03 +0000 +++ src/ChangeLog 2013-08-28 13:50:55 +0000 @@ -1,3 +1,12 @@ +2013-08-28 Andreas Schwab + + * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE, CHAR_HEAD_P) + (SINGLE_BYTE_CHAR_P, SAME_CHARSET_P, MAKE_CHAR, BYTE8_TO_CHAR): + Remove unused macro definitions. + (CHARSET_RANGE_TABLE_BITS, EXTEND_RANGE_TABLE) + (SET_RANGE_TABLE_WORK_AREA_BIT, SET_RANGE_TABLE_WORK_AREA): Only + define if emacs. + 2013-08-28 Dmitry Antipov Prefer enum glyph_row_area to int where appropriate. === modified file 'src/regex.c' --- src/regex.c 2013-08-26 21:31:50 +0000 +++ src/regex.c 2013-08-28 13:50:55 +0000 @@ -257,15 +257,10 @@ enum syntaxcode { Swhitespace = 0, Sword = 1, Ssymbol = 2 }; /* Dummy macros for non-Emacs environments. */ -# define CHAR_CHARSET(c) 0 -# define CHARSET_LEADING_CODE_BASE(c) 0 # define MAX_MULTIBYTE_LENGTH 1 # define RE_MULTIBYTE_P(x) 0 # define RE_TARGET_MULTIBYTE_P(x) 0 # define WORD_BOUNDARY_P(c1, c2) (0) -# define CHAR_HEAD_P(p) (1) -# define SINGLE_BYTE_CHAR_P(c) (1) -# define SAME_CHARSET_P(c1, c2) (1) # define BYTES_BY_CHAR_HEAD(p) (1) # define PREV_CHAR_BOUNDARY(p, limit) ((p)--) # define STRING_CHAR(p) (*(p)) @@ -279,8 +274,6 @@ (c = ((p) == (str2) ? *((end1) - 1) : *((p) - 1))) # define GET_CHAR_AFTER(c, p, len) \ (c = *p, len = 1) -# define MAKE_CHAR(charset, c1, c2) (c1) -# define BYTE8_TO_CHAR(c) (c) # define CHAR_BYTE8_P(c) (0) # define CHAR_LEADING_CODE(c) (c) @@ -775,10 +768,12 @@ and the 2 bytes of flags at the start of the range table. */ #define CHARSET_RANGE_TABLE(p) (&(p)[4 + CHARSET_BITMAP_SIZE (p)]) +#ifdef emacs /* Extract the bit flags that start a range table. */ #define CHARSET_RANGE_TABLE_BITS(p) \ ((p)[2 + CHARSET_BITMAP_SIZE (p)] \ + (p)[3 + CHARSET_BITMAP_SIZE (p)] * 0x100) +#endif /* Return the address of end of RANGE_TABLE. COUNT is number of ranges (which is a pair of (start, end)) in the RANGE_TABLE. `* 2' @@ -1830,6 +1825,8 @@ int bits; /* flag to record character classes */ }; +#ifdef emacs + /* Make sure that WORK_AREA can hold more N multibyte characters. This is used only in set_image_of_range and set_image_of_range_1. It expects WORK_AREA to be a pointer. @@ -1848,15 +1845,6 @@ #define SET_RANGE_TABLE_WORK_AREA_BIT(work_area, bit) \ (work_area).bits |= (bit) -/* Bits used to implement the multibyte-part of the various character classes - such as [:alnum:] in a charset's range table. */ -#define BIT_WORD 0x1 -#define BIT_LOWER 0x2 -#define BIT_PUNCT 0x4 -#define BIT_SPACE 0x8 -#define BIT_UPPER 0x10 -#define BIT_MULTIBYTE 0x20 - /* Set a range (RANGE_START, RANGE_END) to WORK_AREA. */ #define SET_RANGE_TABLE_WORK_AREA(work_area, range_start, range_end) \ do { \ @@ -1865,6 +1853,8 @@ (work_area).table[(work_area).used++] = (range_end); \ } while (0) +#endif /* emacs */ + /* Free allocated memory for WORK_AREA. */ #define FREE_RANGE_TABLE_WORK_AREA(work_area) \ do { \ @@ -1876,6 +1866,15 @@ #define RANGE_TABLE_WORK_USED(work_area) ((work_area).used) #define RANGE_TABLE_WORK_BITS(work_area) ((work_area).bits) #define RANGE_TABLE_WORK_ELT(work_area, i) ((work_area).table[i]) + +/* Bits used to implement the multibyte-part of the various character classes + such as [:alnum:] in a charset's range table. */ +#define BIT_WORD 0x1 +#define BIT_LOWER 0x2 +#define BIT_PUNCT 0x4 +#define BIT_SPACE 0x8 +#define BIT_UPPER 0x10 +#define BIT_MULTIBYTE 0x20 /* Set the bit for character C in a list. */ ------------------------------------------------------------ revno: 114042 committer: Dmitry Antipov branch nick: trunk timestamp: Wed 2013-08-28 15:00:03 +0400 message: Prefer enum glyph_row_area to int where appropriate. * dispextern.h (enum glyph_row_area): Add ANY_AREA member. Fix comment. (window_box, window_box_width, window_box_left, window_box_left_offset) (window_box_right, window_box_right_offset): Adjust prototypes. * xdisp.c (window_box, window_box_width, window_box_left) (window_box_left_offset, window_box_right, window_box_right_offset): Use enum glyph_row_area. Adjust users and tweak comment where needed. (window_box_edges): Likewise. Lost 2nd arg since it is always ANY_AREA. * nsterm.m (ns_clip_to_row): * w32term.c (w32_clip_to_row): * xterm.c (x_clip_to_row): Likewise. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-08-28 08:33:12 +0000 +++ src/ChangeLog 2013-08-28 11:00:03 +0000 @@ -1,5 +1,20 @@ 2013-08-28 Dmitry Antipov + Prefer enum glyph_row_area to int where appropriate. + * dispextern.h (enum glyph_row_area): Add ANY_AREA member. + Fix comment. + (window_box, window_box_width, window_box_left, window_box_left_offset) + (window_box_right, window_box_right_offset): Adjust prototypes. + * xdisp.c (window_box, window_box_width, window_box_left) + (window_box_left_offset, window_box_right, window_box_right_offset): + Use enum glyph_row_area. Adjust users and tweak comment where needed. + (window_box_edges): Likewise. Lost 2nd arg since it is always ANY_AREA. + * nsterm.m (ns_clip_to_row): + * w32term.c (w32_clip_to_row): + * xterm.c (x_clip_to_row): Likewise. + +2013-08-28 Dmitry Antipov + * buffer.c (Foverlays_at, Foverlays_in, Fnext_overlay_change) (Fprevious_overlay_change): Fast path for buffer with no overlays. === modified file 'src/dispextern.h' --- src/dispextern.h 2013-08-28 05:45:38 +0000 +++ src/dispextern.h 2013-08-28 11:00:03 +0000 @@ -751,11 +751,12 @@ Glyph Rows ***********************************************************************/ -/* Area in window glyph matrix. If values are added or removed, the - function mark_object in alloc.c has to be changed. */ +/* Area in window glyph matrix. If values are added or removed, + the function mark_glyph_matrix in alloc.c may need to be changed. */ enum glyph_row_area { + ANY_AREA = -1, LEFT_MARGIN_AREA, TEXT_AREA, RIGHT_MARGIN_AREA, @@ -3163,14 +3164,15 @@ void set_vertical_scroll_bar (struct window *); #endif int try_window (Lisp_Object, struct text_pos, int); -void window_box (struct window *, int, int *, int *, int *, int *); +void window_box (struct window *, enum glyph_row_area, + int *, int *, int *, int *); int window_box_height (struct window *); int window_text_bottom_y (struct window *); -int window_box_width (struct window *, int); -int window_box_left (struct window *, int); -int window_box_left_offset (struct window *, int); -int window_box_right (struct window *, int); -int window_box_right_offset (struct window *, int); +int window_box_width (struct window *, enum glyph_row_area); +int window_box_left (struct window *, enum glyph_row_area); +int window_box_left_offset (struct window *, enum glyph_row_area); +int window_box_right (struct window *, enum glyph_row_area); +int window_box_right_offset (struct window *, enum glyph_row_area); int estimate_mode_line_height (struct frame *, enum face_id); void pixel_to_glyph_coords (struct frame *, int, int, int *, int *, NativeRectangle *, int); === modified file 'src/dispnew.c' --- src/dispnew.c 2013-08-28 05:45:38 +0000 +++ src/dispnew.c 2013-08-28 11:00:03 +0000 @@ -413,7 +413,7 @@ Get W's size. */ if (w) { - window_box (w, -1, 0, 0, &window_width, &window_height); + window_box (w, ANY_AREA, 0, 0, &window_width, &window_height); header_line_p = WINDOW_WANTS_HEADER_LINE_P (w); header_line_changed_p = header_line_p != matrix->header_line_p; === modified file 'src/nsterm.m' --- src/nsterm.m 2013-08-28 05:45:38 +0000 +++ src/nsterm.m 2013-08-28 11:00:03 +0000 @@ -885,7 +885,8 @@ static void -ns_clip_to_row (struct window *w, struct glyph_row *row, int area, BOOL gc) +ns_clip_to_row (struct window *w, struct glyph_row *row, + enum glyph_row_area area, BOOL gc) /* -------------------------------------------------------------------------- Internal (but parallels other terms): Focus drawing on given row -------------------------------------------------------------------------- */ @@ -2044,7 +2045,7 @@ /* Get frame-relative bounding box of the text display area of W, without mode lines. Include in this box the left and right fringe of W. */ - window_box (w, -1, &x, &y, &width, &height); + window_box (w, ANY_AREA, &x, &y, &width, &height); from_y = WINDOW_TO_FRAME_PIXEL_Y (w, run->current_y); to_y = WINDOW_TO_FRAME_PIXEL_Y (w, run->desired_y); @@ -2219,7 +2220,7 @@ } /* Must clip because of partially visible lines. */ - ns_clip_to_row (w, row, -1, YES); + ns_clip_to_row (w, row, ANY_AREA, YES); if (!p->overlay_p) { @@ -2399,7 +2400,7 @@ /* TODO: only needed in rare cases with last-resort font in HELLO.. should we do this more efficiently? */ - ns_clip_to_row (w, glyph_row, -1, NO); /* do ns_focus(f, &r, 1); if remove */ + ns_clip_to_row (w, glyph_row, ANY_AREA, NO); /* do ns_focus(f, &r, 1); if remove */ face = FACE_FROM_ID (f, phys_cursor_glyph->face_id); @@ -3710,7 +3711,7 @@ NSTRACE (ns_set_vertical_scroll_bar); /* Get dimensions. */ - window_box (window, -1, 0, &window_y, 0, &window_height); + window_box (window, ANY_AREA, 0, &window_y, 0, &window_height); top = window_y; height = window_height; width = WINDOW_CONFIG_SCROLL_BAR_COLS (window) * FRAME_COLUMN_WIDTH (f); === modified file 'src/w32term.c' --- src/w32term.c 2013-08-28 05:45:38 +0000 +++ src/w32term.c 2013-08-28 11:00:03 +0000 @@ -240,7 +240,8 @@ static void x_draw_hollow_cursor (struct window *, struct glyph_row *); static void x_draw_bar_cursor (struct window *, struct glyph_row *, int, enum text_cursor_kinds); -static void w32_clip_to_row (struct window *, struct glyph_row *, int, HDC); +static void w32_clip_to_row (struct window *, struct glyph_row *, + enum glyph_row_area, HDC); static BOOL my_show_window (struct frame *, HWND, int); static void my_set_window_pos (HWND, HWND, int, int, int, int, UINT); #if 0 @@ -848,7 +849,7 @@ } /* Must clip because of partially visible lines. */ - w32_clip_to_row (w, row, -1, hdc); + w32_clip_to_row (w, row, ANY_AREA, hdc); if (p->which && p->which < max_fringe_bmp) { @@ -2731,7 +2732,7 @@ /* Get frame-relative bounding box of the text display area of W, without mode lines. Include in this box the left and right fringes of W. */ - window_box (w, -1, &x, &y, &width, &height); + window_box (w, ANY_AREA, &x, &y, &width, &height); /* If the fringe is adjacent to the left (right) scroll bar of a leftmost (rightmost, respectively) window, then extend its @@ -3825,7 +3826,7 @@ bool fringe_extended_p; /* Get window dimensions. */ - window_box (w, -1, 0, &window_y, 0, &window_height); + window_box (w, ANY_AREA, 0, &window_y, 0, &window_height); top = window_y; width = WINDOW_CONFIG_SCROLL_BAR_COLS (w) * FRAME_COLUMN_WIDTH (f); height = window_height; @@ -5118,7 +5119,8 @@ mode lines must be clipped to the whole window. */ static void -w32_clip_to_row (struct window *w, struct glyph_row *row, int area, HDC hdc) +w32_clip_to_row (struct window *w, struct glyph_row *row, + enum glyph_row_area area, HDC hdc) { RECT clip_rect; int window_x, window_y, window_width; === modified file 'src/xdisp.c' --- src/xdisp.c 2013-08-28 05:45:38 +0000 +++ src/xdisp.c 2013-08-28 11:00:03 +0000 @@ -966,12 +966,12 @@ return height; } -/* Return the pixel width of display area AREA of window W. AREA < 0 - means return the total width of W, not including fringes to - the left and right of the window. */ +/* Return the pixel width of display area AREA of window W. + ANY_AREA means return the total width of W, not including + fringes to the left and right of the window. */ int -window_box_width (struct window *w, int area) +window_box_width (struct window *w, enum glyph_row_area area) { int cols = w->total_cols; int pixels = 0; @@ -1049,11 +1049,11 @@ } /* Return the window-relative coordinate of the left edge of display - area AREA of window W. AREA < 0 means return the left edge of the + area AREA of window W. ANY_AREA means return the left edge of the whole window, to the right of the left fringe of W. */ int -window_box_left_offset (struct window *w, int area) +window_box_left_offset (struct window *w, enum glyph_row_area area) { int x; @@ -1081,21 +1081,21 @@ /* Return the window-relative coordinate of the right edge of display - area AREA of window W. AREA < 0 means return the right edge of the + area AREA of window W. ANY_AREA means return the right edge of the whole window, to the left of the right fringe of W. */ int -window_box_right_offset (struct window *w, int area) +window_box_right_offset (struct window *w, enum glyph_row_area area) { return window_box_left_offset (w, area) + window_box_width (w, area); } /* Return the frame-relative coordinate of the left edge of display - area AREA of window W. AREA < 0 means return the left edge of the + area AREA of window W. ANY_AREA means return the left edge of the whole window, to the right of the left fringe of W. */ int -window_box_left (struct window *w, int area) +window_box_left (struct window *w, enum glyph_row_area area) { struct frame *f = XFRAME (w->frame); int x; @@ -1111,25 +1111,25 @@ /* Return the frame-relative coordinate of the right edge of display - area AREA of window W. AREA < 0 means return the right edge of the + area AREA of window W. ANY_AREA means return the right edge of the whole window, to the left of the right fringe of W. */ int -window_box_right (struct window *w, int area) +window_box_right (struct window *w, enum glyph_row_area area) { return window_box_left (w, area) + window_box_width (w, area); } /* Get the bounding box of the display area AREA of window W, without - mode lines, in frame-relative coordinates. AREA < 0 means the + mode lines, in frame-relative coordinates. ANY_AREA means the whole window, not including the left and right fringes of the window. Return in *BOX_X and *BOX_Y the frame-relative pixel coordinates of the upper-left corner of the box. Return in *BOX_WIDTH, and *BOX_HEIGHT the pixel width and height of the box. */ void -window_box (struct window *w, int area, int *box_x, int *box_y, - int *box_width, int *box_height) +window_box (struct window *w, enum glyph_row_area area, int *box_x, + int *box_y, int *box_width, int *box_height) { if (box_width) *box_width = window_box_width (w, area); @@ -1147,19 +1147,18 @@ /* Get the bounding box of the display area AREA of window W, without - mode lines. AREA < 0 means the whole window, not including the - left and right fringe of the window. Return in *TOP_LEFT_X + mode lines and both fringes of the window. Return in *TOP_LEFT_X and TOP_LEFT_Y the frame-relative pixel coordinates of the upper-left corner of the box. Return in *BOTTOM_RIGHT_X, and *BOTTOM_RIGHT_Y the coordinates of the bottom-right corner of the box. */ static void -window_box_edges (struct window *w, int area, int *top_left_x, int *top_left_y, - int *bottom_right_x, int *bottom_right_y) +window_box_edges (struct window *w, int *top_left_x, int *top_left_y, + int *bottom_right_x, int *bottom_right_y) { - window_box (w, area, top_left_x, top_left_y, bottom_right_x, - bottom_right_y); + window_box (w, ANY_AREA, top_left_x, top_left_y, + bottom_right_x, bottom_right_y); *bottom_right_x += *top_left_x; *bottom_right_y += *top_left_y; } @@ -28727,7 +28726,7 @@ { int x0, x1, y0, y1; - window_box_edges (w, -1, &x0, &y0, &x1, &y1); + window_box_edges (w, &x0, &y0, &x1, &y1); y1 -= 1; if (WINDOW_LEFT_FRINGE_WIDTH (w) == 0) @@ -28740,7 +28739,7 @@ { int x0, x1, y0, y1; - window_box_edges (w, -1, &x0, &y0, &x1, &y1); + window_box_edges (w, &x0, &y0, &x1, &y1); y1 -= 1; if (WINDOW_LEFT_FRINGE_WIDTH (w) == 0) === modified file 'src/xterm.c' --- src/xterm.c 2013-08-28 05:45:38 +0000 +++ src/xterm.c 2013-08-28 11:00:03 +0000 @@ -314,7 +314,8 @@ static void x_draw_bar_cursor (struct window *, struct glyph_row *, int, enum text_cursor_kinds); -static void x_clip_to_row (struct window *, struct glyph_row *, int, GC); +static void x_clip_to_row (struct window *, struct glyph_row *, + enum glyph_row_area, GC); static void x_flush (struct frame *f); static void x_update_begin (struct frame *); static void x_update_window_begin (struct window *); @@ -715,7 +716,7 @@ struct face *face = p->face; /* Must clip because of partially visible lines. */ - x_clip_to_row (w, row, -1, gc); + x_clip_to_row (w, row, ANY_AREA, gc); if (!p->overlay_p) { @@ -3247,7 +3248,7 @@ /* Get frame-relative bounding box of the text display area of W, without mode lines. Include in this box the left and right fringe of W. */ - window_box (w, -1, &x, &y, &width, &height); + window_box (w, ANY_AREA, &x, &y, &width, &height); #ifdef USE_TOOLKIT_SCROLL_BARS /* If the fringe is adjacent to the left (right) scroll bar of a @@ -5147,7 +5148,7 @@ #endif /* Get window dimensions. */ - window_box (w, -1, 0, &window_y, 0, &window_height); + window_box (w, ANY_AREA, 0, &window_y, 0, &window_height); top = window_y; width = WINDOW_CONFIG_SCROLL_BAR_COLS (w) * FRAME_COLUMN_WIDTH (f); height = window_height; @@ -7170,7 +7171,8 @@ mode lines must be clipped to the whole window. */ static void -x_clip_to_row (struct window *w, struct glyph_row *row, int area, GC gc) +x_clip_to_row (struct window *w, struct glyph_row *row, + enum glyph_row_area area, GC gc) { struct frame *f = XFRAME (WINDOW_FRAME (w)); XRectangle clip_rect; ------------------------------------------------------------ revno: 114041 committer: Glenn Morris branch nick: trunk timestamp: Wed 2013-08-28 06:17:39 -0400 message: Auto-commit of generated files. diff: === modified file 'autogen/Makefile.in' --- autogen/Makefile.in 2013-08-27 10:17:45 +0000 +++ autogen/Makefile.in 2013-08-28 10:17:39 +0000 @@ -423,11 +423,7 @@ DEPDIR = @DEPDIR@ DEPFLAGS = @DEPFLAGS@ DESLIB = @DESLIB@ -DOCMISC_DVI_W32 = @DOCMISC_DVI_W32@ -DOCMISC_HTML_W32 = @DOCMISC_HTML_W32@ -DOCMISC_INFO_W32 = @DOCMISC_INFO_W32@ -DOCMISC_PDF_W32 = @DOCMISC_PDF_W32@ -DOCMISC_PS_W32 = @DOCMISC_PS_W32@ +DOCMISC_W32 = @DOCMISC_W32@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ === modified file 'autogen/configure' --- autogen/configure 2013-08-27 10:17:45 +0000 +++ autogen/configure 2013-08-28 10:17:39 +0000 @@ -1397,11 +1397,7 @@ C_SWITCH_MACHINE LD_SWITCH_SYSTEM CANNOT_DUMP -DOCMISC_PS_W32 -DOCMISC_PDF_W32 -DOCMISC_INFO_W32 -DOCMISC_HTML_W32 -DOCMISC_DVI_W32 +DOCMISC_W32 INFO_OPTS INFO_EXT HAVE_MAKEINFO @@ -8761,25 +8757,13 @@ if test $opsys = mingw32; then - DOCMISC_DVI_W32=efaq-w32.dvi - DOCMISC_HTML_W32=efaq-w32.html - DOCMISC_INFO_W32=efaq-w32.info - DOCMISC_PDF_W32=efaq-w32.pdf - DOCMISC_PS_W32=efaq-w32.ps + DOCMISC_W32=efaq-w32 else - DOCMISC_DVI_W32= - DOCMISC_HTML_W32= - DOCMISC_INFO_W32= - DOCMISC_PDF_W32= - DOCMISC_PS_W32= + DOCMISC_W32= fi - - - - if test x$GCC = xyes; then test "x$GCC_LINK_TEST_OPTIONS" != x && \ ac_link="$ac_link $GCC_LINK_TEST_OPTIONS" ------------------------------------------------------------ revno: 114040 committer: Katsumi Yamaoka branch nick: trunk timestamp: Wed 2013-08-28 08:38:28 +0000 message: lisp/gnus/mm-decode.el (mm-temp-files-delete): Fix file deletion logic diff: === modified file 'lisp/gnus/ChangeLog' --- lisp/gnus/ChangeLog 2013-08-19 05:10:33 +0000 +++ lisp/gnus/ChangeLog 2013-08-28 08:38:28 +0000 @@ -1,3 +1,7 @@ +2013-08-28 Katsumi Yamaoka + + * mm-decode.el (mm-temp-files-delete): Fix file deletion logic. + 2013-08-19 Katsumi Yamaoka * mm-util.el (mm-coding-system-priorities): Exclude iso-2022-jp-2 and === modified file 'lisp/gnus/mm-decode.el' --- lisp/gnus/mm-decode.el 2013-08-12 05:59:47 +0000 +++ lisp/gnus/mm-decode.el 2013-08-28 08:38:28 +0000 @@ -607,19 +607,19 @@ (split-string (buffer-string) "\n" t)))) fails) (dolist (temp (append cache mm-temp-files-to-be-deleted)) - (unless (and (file-exists-p temp) - (if (file-directory-p temp) - ;; A parent directory left at the previous time. + (when (and (file-exists-p temp) + (if (file-directory-p temp) + ;; A parent directory left at the previous time. + (progn + (ignore-errors (delete-directory temp)) + (file-exists-p temp)) + ;; Delete a temporary file and its parent directory. + (ignore-errors (delete-file temp)) + (or (file-exists-p temp) (progn + (setq temp (file-name-directory temp)) (ignore-errors (delete-directory temp)) - (not (file-exists-p temp))) - ;; Delete a temporary file and its parent directory. - (ignore-errors (delete-file temp)) - (and (not (file-exists-p temp)) - (progn - (setq temp (file-name-directory temp)) - (ignore-errors (delete-directory temp)) - (not (file-exists-p temp)))))) + (file-exists-p temp))))) (push temp fails))) (if fails ;; Schedule the deletion of the files left at the next time. ------------------------------------------------------------ revno: 114039 committer: Dmitry Antipov branch nick: trunk timestamp: Wed 2013-08-28 12:33:12 +0400 message: * buffer.c (Foverlays_at, Foverlays_in, Fnext_overlay_change) (Fprevious_overlay_change): Fast path for buffer with no overlays. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-08-28 06:01:52 +0000 +++ src/ChangeLog 2013-08-28 08:33:12 +0000 @@ -1,3 +1,8 @@ +2013-08-28 Dmitry Antipov + + * buffer.c (Foverlays_at, Foverlays_in, Fnext_overlay_change) + (Fprevious_overlay_change): Fast path for buffer with no overlays. + 2013-08-28 Paul Eggert * Makefile.in (SHELL): Now @SHELL@, not /bin/sh, === modified file 'src/buffer.c' --- src/buffer.c 2013-08-27 18:47:55 +0000 +++ src/buffer.c 2013-08-28 08:33:12 +0000 @@ -4161,6 +4161,9 @@ CHECK_NUMBER_COERCE_MARKER (pos); + if (!buffer_has_overlays ()) + return Qnil; + len = 10; /* We can't use alloca here because overlays_at can call xrealloc. */ overlay_vec = xmalloc (len * sizeof *overlay_vec); @@ -4193,6 +4196,9 @@ CHECK_NUMBER_COERCE_MARKER (beg); CHECK_NUMBER_COERCE_MARKER (end); + if (!buffer_has_overlays ()) + return Qnil; + len = 10; overlay_vec = xmalloc (len * sizeof *overlay_vec); @@ -4221,6 +4227,9 @@ CHECK_NUMBER_COERCE_MARKER (pos); + if (!buffer_has_overlays ()) + return make_number (ZV); + len = 10; overlay_vec = xmalloc (len * sizeof *overlay_vec); @@ -4260,6 +4269,9 @@ CHECK_NUMBER_COERCE_MARKER (pos); + if (!buffer_has_overlays ()) + return make_number (BEGV); + /* At beginning of buffer, we know the answer; avoid bug subtracting 1 below. */ if (XINT (pos) == BEGV) ------------------------------------------------------------ revno: 114038 committer: Paul Eggert branch nick: trunk timestamp: Tue 2013-08-27 23:01:52 -0700 message: * Makefile.in (SHELL): Now @SHELL@, not /bin/sh, for portability to hosts where /bin/sh has problems. diff: === modified file 'ChangeLog' --- ChangeLog 2013-08-28 01:37:13 +0000 +++ ChangeLog 2013-08-28 06:01:52 +0000 @@ -1,3 +1,8 @@ +2013-08-28 Paul Eggert + + * Makefile.in (SHELL): Now @SHELL@, not /bin/sh, + for portability to hosts where /bin/sh has problems. + 2013-08-28 Stefan Monnier * configure.ac (DOCMISC_W32): New var to replace DOCMISC_*_W32. === modified file 'Makefile.in' --- Makefile.in 2013-08-27 07:57:39 +0000 +++ Makefile.in 2013-08-28 06:01:52 +0000 @@ -56,7 +56,7 @@ # make docs # Make Emacs documentation files from their sources; requires makeinfo. -SHELL = /bin/sh +SHELL = @SHELL@ # This may not work with certain non-GNU make's. It only matters when # inheriting a CDPATH not starting with the current directory. === modified file 'admin/ChangeLog' --- admin/ChangeLog 2013-08-27 17:19:04 +0000 +++ admin/ChangeLog 2013-08-28 06:01:52 +0000 @@ -1,3 +1,8 @@ +2013-08-28 Paul Eggert + + * unidata/Makefile.in (SHELL): Now @SHELL@, not /bin/sh, + for portability to hosts where /bin/sh has problems. + 2013-08-27 Glenn Morris * admin.el (manual-misc-manuals): Use INFO_COMMON rather than === modified file 'admin/unidata/Makefile.in' --- admin/unidata/Makefile.in 2013-07-23 22:55:38 +0000 +++ admin/unidata/Makefile.in 2013-08-28 06:01:52 +0000 @@ -21,7 +21,7 @@ # You should have received a copy of the GNU General Public License # along with GNU Emacs. If not, see . -SHELL = /bin/sh +SHELL = @SHELL@ srcdir = @srcdir@ abs_builddir = @abs_builddir@ === modified file 'doc/emacs/ChangeLog' --- doc/emacs/ChangeLog 2013-08-17 02:45:22 +0000 +++ doc/emacs/ChangeLog 2013-08-28 06:01:52 +0000 @@ -1,3 +1,8 @@ +2013-08-28 Paul Eggert + + * Makefile.in (SHELL): Now @SHELL@, not /bin/sh, + for portability to hosts where /bin/sh has problems. + 2013-08-17 Xue Fuqiao * text.texi (Enriched Justification): Minor fixes. === modified file 'doc/emacs/Makefile.in' --- doc/emacs/Makefile.in 2013-08-12 00:04:15 +0000 +++ doc/emacs/Makefile.in 2013-08-28 06:01:52 +0000 @@ -17,7 +17,7 @@ # You should have received a copy of the GNU General Public License # along with GNU Emacs. If not, see . -SHELL = /bin/sh +SHELL = @SHELL@ # NB If you add any more configure variables, # update the sed rules in the dist target below. === modified file 'doc/lispintro/ChangeLog' --- doc/lispintro/ChangeLog 2013-08-12 00:09:11 +0000 +++ doc/lispintro/ChangeLog 2013-08-28 06:01:52 +0000 @@ -1,3 +1,8 @@ +2013-08-28 Paul Eggert + + * Makefile.in (SHELL): Now @SHELL@, not /bin/sh, + for portability to hosts where /bin/sh has problems. + 2013-08-12 Glenn Morris * emacs-lisp-intro.texi (Complete copy-region-as-kill): Fix typo. === modified file 'doc/lispintro/Makefile.in' --- doc/lispintro/Makefile.in 2013-08-12 00:04:15 +0000 +++ doc/lispintro/Makefile.in 2013-08-28 06:01:52 +0000 @@ -17,7 +17,7 @@ # You should have received a copy of the GNU General Public License # along with GNU Emacs. If not, see . -SHELL = /bin/sh +SHELL = @SHELL@ # NB If you add any more configure variables, # update the sed rules in the dist target below. === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2013-08-26 15:28:24 +0000 +++ doc/lispref/ChangeLog 2013-08-28 06:01:52 +0000 @@ -1,3 +1,8 @@ +2013-08-28 Paul Eggert + + * Makefile.in (SHELL): Now @SHELL@, not /bin/sh, + for portability to hosts where /bin/sh has problems. + 2013-08-26 Stefan Monnier * variables.texi (File Local Variables): Don't recommend quoting! Ever! === modified file 'doc/lispref/Makefile.in' --- doc/lispref/Makefile.in 2013-08-12 00:04:15 +0000 +++ doc/lispref/Makefile.in 2013-08-28 06:01:52 +0000 @@ -17,7 +17,7 @@ # You should have received a copy of the GNU General Public License # along with GNU Emacs. If not, see . -SHELL = /bin/sh +SHELL = @SHELL@ # NB If you add any more configure variables, # update the sed rules in the dist target below. === modified file 'doc/misc/ChangeLog' --- doc/misc/ChangeLog 2013-08-28 01:37:13 +0000 +++ doc/misc/ChangeLog 2013-08-28 06:01:52 +0000 @@ -1,3 +1,8 @@ +2013-08-28 Paul Eggert + + * Makefile.in (SHELL): Now @SHELL@, not /bin/sh, + for portability to hosts where /bin/sh has problems. + 2013-08-28 Stefan Monnier Try to reduce redundancy in doc/misc/Makefile.in. === modified file 'doc/misc/Makefile.in' --- doc/misc/Makefile.in 2013-08-28 01:37:13 +0000 +++ doc/misc/Makefile.in 2013-08-28 06:01:52 +0000 @@ -17,7 +17,7 @@ # You should have received a copy of the GNU General Public License # along with GNU Emacs. If not, see . -SHELL = /bin/sh +SHELL = @SHELL@ # Where to find the source code. $(srcdir) will be the man-aux # subdirectory of the source tree. This is === modified file 'leim/ChangeLog' --- leim/ChangeLog 2013-06-21 13:37:15 +0000 +++ leim/ChangeLog 2013-08-28 06:01:52 +0000 @@ -1,3 +1,8 @@ +2013-08-28 Paul Eggert + + * Makefile.in (SHELL): Now @SHELL@, not /bin/sh, + for portability to hosts where /bin/sh has problems. + 2013-06-21 Juanma Barranquero * quail/croatian.el ("croatian-prefix"): === modified file 'leim/Makefile.in' --- leim/Makefile.in 2013-07-23 22:55:38 +0000 +++ leim/Makefile.in 2013-08-28 06:01:52 +0000 @@ -21,10 +21,7 @@ # You should have received a copy of the GNU General Public License # along with GNU Emacs. If not, see . - -# Avoid trouble on systems where the `SHELL' variable might be -# inherited from the environment. -SHELL = /bin/sh +SHELL = @SHELL@ # Here are the things that we expect ../configure to edit. srcdir=@srcdir@ === modified file 'lib-src/ChangeLog' --- lib-src/ChangeLog 2013-08-10 07:43:41 +0000 +++ lib-src/ChangeLog 2013-08-28 06:01:52 +0000 @@ -1,3 +1,8 @@ +2013-08-28 Paul Eggert + + * Makefile.in (SHELL): Now @SHELL@, not /bin/sh, + for portability to hosts where /bin/sh has problems. + 2013-08-10 Eli Zaretskii * update-game-score.exe.manifest: New file. === modified file 'lib-src/Makefile.in' --- lib-src/Makefile.in 2013-08-10 07:43:41 +0000 +++ lib-src/Makefile.in 2013-08-28 06:01:52 +0000 @@ -18,10 +18,7 @@ # You should have received a copy of the GNU General Public License # along with GNU Emacs. If not, see . - -# Avoid trouble on systems where the `SHELL' variable might be -# inherited from the environment. -SHELL = /bin/sh +SHELL = @SHELL@ # Following ../lisp/Makefile.in. EMACS = ../src/emacs === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-08-28 01:33:31 +0000 +++ lisp/ChangeLog 2013-08-28 06:01:52 +0000 @@ -1,3 +1,8 @@ +2013-08-28 Paul Eggert + + * Makefile.in (SHELL): Now @SHELL@, not /bin/sh, + for portability to hosts where /bin/sh has problems. + 2013-08-28 Stefan Monnier * emacs-lisp/cconv.el (cconv--analyse-function): Improve warning. === modified file 'lisp/Makefile.in' --- lisp/Makefile.in 2013-07-23 22:55:38 +0000 +++ lisp/Makefile.in 2013-08-28 06:01:52 +0000 @@ -17,7 +17,7 @@ # You should have received a copy of the GNU General Public License # along with GNU Emacs. If not, see . -SHELL = /bin/sh +SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ === modified file 'nextstep/ChangeLog' --- nextstep/ChangeLog 2013-06-02 19:14:25 +0000 +++ nextstep/ChangeLog 2013-08-28 06:01:52 +0000 @@ -1,3 +1,8 @@ +2013-08-28 Paul Eggert + + * Makefile.in (SHELL): Now @SHELL@, not /bin/sh, + for portability to hosts where /bin/sh has problems. + 2013-06-02 Jan Djärv * templates/Info-gnustep.plist.in: Add NSDocumentClass EmacsDocument. === modified file 'nextstep/Makefile.in' --- nextstep/Makefile.in 2013-07-23 22:55:38 +0000 +++ nextstep/Makefile.in 2013-08-28 06:01:52 +0000 @@ -20,7 +20,7 @@ ### Commentary: ### Code: -SHELL = /bin/sh +SHELL = @SHELL@ srcdir = @srcdir@ EXEEXT = @EXEEXT@ === modified file 'src/ChangeLog' --- src/ChangeLog 2013-08-28 05:45:38 +0000 +++ src/ChangeLog 2013-08-28 06:01:52 +0000 @@ -1,3 +1,8 @@ +2013-08-28 Paul Eggert + + * Makefile.in (SHELL): Now @SHELL@, not /bin/sh, + for portability to hosts where /bin/sh has problems. + 2013-08-28 Dmitry Antipov Redesign redisplay interface to drop global output_cursor. === modified file 'src/Makefile.in' --- src/Makefile.in 2013-08-11 19:43:36 +0000 +++ src/Makefile.in 2013-08-28 06:01:52 +0000 @@ -23,7 +23,7 @@ # script may need modifying in sync with changes made here. Try to # avoid shell-ism because the DOS build has to use the DOS shell. -SHELL = /bin/sh +SHELL = @SHELL@ # Here are the things that we expect ../configure to edit. # We use $(srcdir) explicitly in dependencies so as not to depend on VPATH. === modified file 'test/ChangeLog' --- test/ChangeLog 2013-08-21 19:42:52 +0000 +++ test/ChangeLog 2013-08-28 06:01:52 +0000 @@ -1,3 +1,8 @@ +2013-08-28 Paul Eggert + + * Makefile.in (SHELL): Now @SHELL@, not /bin/sh, + for portability to hosts where /bin/sh has problems. + 2013-08-21 David Engster * automated/eieio-tests.el, automated/eieio-test-persist.el: === modified file 'test/automated/Makefile.in' --- test/automated/Makefile.in 2013-07-23 22:55:38 +0000 +++ test/automated/Makefile.in 2013-08-28 06:01:52 +0000 @@ -17,7 +17,7 @@ # You should have received a copy of the GNU General Public License # along with GNU Emacs. If not, see . -SHELL = /bin/sh +SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@