diff options
| author | Eli Zaretskii | 2013-03-30 20:37:57 +0300 |
|---|---|---|
| committer | Eli Zaretskii | 2013-03-30 20:37:57 +0300 |
| commit | f1aa11971a74b7b2fa0f5baaaaf21dfbd388de6b (patch) | |
| tree | 48e20bfab4262d7171593d4ef98309ae717c1cb6 | |
| parent | 7c4026b6ad03974a55a175af17c8e76c61931b69 (diff) | |
| parent | 119b2d43cc40759394cae256c0a38624cacbf776 (diff) | |
| download | emacs-f1aa11971a74b7b2fa0f5baaaaf21dfbd388de6b.tar.gz emacs-f1aa11971a74b7b2fa0f5baaaaf21dfbd388de6b.zip | |
Merge from trunk.
| -rw-r--r-- | ChangeLog | 27 | ||||
| -rw-r--r-- | doc/emacs/emacs.texi | 4 | ||||
| -rw-r--r-- | doc/misc/ChangeLog | 9 | ||||
| -rw-r--r-- | etc/ChangeLog | 8 | ||||
| -rw-r--r-- | etc/NEWS | 4 | ||||
| -rw-r--r-- | etc/srecode/ede-autoconf.srt | 30 | ||||
| -rw-r--r-- | lisp/ChangeLog | 32 | ||||
| -rw-r--r-- | lisp/gnus/ChangeLog | 4 | ||||
| -rw-r--r-- | lisp/gnus/nnir.el | 2 | ||||
| -rw-r--r-- | lisp/iswitchb.el | 2 | ||||
| -rw-r--r-- | lisp/kmacro.el | 19 | ||||
| -rw-r--r-- | lisp/net/tramp.el | 19 | ||||
| -rw-r--r-- | lisp/profiler.el | 8 | ||||
| -rw-r--r-- | lisp/progmodes/python.el | 16 | ||||
| -rw-r--r-- | src/ChangeLog | 22 | ||||
| -rw-r--r-- | src/nsmenu.m | 49 | ||||
| -rw-r--r-- | src/nsterm.h | 3 | ||||
| -rw-r--r-- | src/nsterm.m | 90 | ||||
| -rw-r--r-- | test/ChangeLog | 5 | ||||
| -rw-r--r-- | test/automated/python-tests.el | 30 |
20 files changed, 301 insertions, 82 deletions
| @@ -1,22 +1,15 @@ | |||
| 1 | 2013-03-29 Aidan Gauland <aidalgol@no8wireless.co.nz> | 1 | 2013-03-30 Paul Eggert <eggert@cs.ucla.edu> |
| 2 | 2 | ||
| 3 | * etc/NEWS: Added entry for em-tramp change in 2013-03-26T22:08:58Z!aidalgol@no8wireless.co.nz | 3 | Merge from gnulib, incorporating: |
| 4 | 2013-03-29 stdalign: port to stricter ISO C11 | ||
| 5 | This helps to run 'configure' on MS-Windows; see Eli Zaretskii in | ||
| 6 | <http://lists.gnu.org/archive/html/emacs-devel/2013-03/msg00999.html>. | ||
| 4 | 7 | ||
| 5 | 2013-03-27 Paul Eggert <eggert@cs.ucla.edu> | 8 | 2013-03-27 Paul Eggert <eggert@cs.ucla.edu> |
| 6 | 9 | ||
| 7 | * configure.ac (HAVE_XKBGETKEYBOARD): Remove. | 10 | * configure.ac (HAVE_XKBGETKEYBOARD): Remove. |
| 8 | Subsumed by HAVE_XKB. All uses changed. | 11 | Subsumed by HAVE_XKB. All uses changed. |
| 9 | 12 | ||
| 10 | 2013-03-27 Aidan Gauland <aidalgol@no8wireless.co.nz> | ||
| 11 | |||
| 12 | * lisp/eshell/em-unix.el: Moved su and sudo to... | ||
| 13 | * lisp/eshell/em-tramp.el: ...Eshell tramp module | ||
| 14 | * doc/misc/eshell.texi: Updated manual to reflect changes. | ||
| 15 | |||
| 16 | External su and sudo commands are now the default; the internal, | ||
| 17 | TRAMP-using variants can still be used by enabling the eshell-tramp | ||
| 18 | module. | ||
| 19 | |||
| 20 | 2013-03-25 Jan Djärv <jan.h.d@swipnet.se> | 13 | 2013-03-25 Jan Djärv <jan.h.d@swipnet.se> |
| 21 | 14 | ||
| 22 | * configure.ac (HAVE_XKB): Define if Xkb is present. | 15 | * configure.ac (HAVE_XKB): Define if Xkb is present. |
| @@ -90,11 +83,6 @@ | |||
| 90 | not always needed. | 83 | not always needed. |
| 91 | (HAVE_DATA_START): New macro. | 84 | (HAVE_DATA_START): New macro. |
| 92 | 85 | ||
| 93 | 2013-02-18 Aidan Gauland <aidalgol@no8wireless.co.nz> | ||
| 94 | |||
| 95 | * lisp/eshell/em-cmpl.el: Corrected "context-related help" | ||
| 96 | keybinding in commentary. | ||
| 97 | |||
| 98 | 2013-02-21 Paul Eggert <eggert@cs.ucla.edu> | 86 | 2013-02-21 Paul Eggert <eggert@cs.ucla.edu> |
| 99 | 87 | ||
| 100 | Parallelize documentation builds. | 88 | Parallelize documentation builds. |
| @@ -107,11 +95,6 @@ | |||
| 107 | (info-real): Depend on $(INFOS) rather than doing it sequentially. | 95 | (info-real): Depend on $(INFOS) rather than doing it sequentially. |
| 108 | (dvi): Depend on $(DVIS) rather than doing it sequentially. | 96 | (dvi): Depend on $(DVIS) rather than doing it sequentially. |
| 109 | 97 | ||
| 110 | 2013-02-18 Aidan Gauland <aidalgol@no8wireless.co.nz> | ||
| 111 | |||
| 112 | * doc/misc/eshell.texi: Added documentation for Eshell insert | ||
| 113 | output redirection operator, >>>. | ||
| 114 | |||
| 115 | 2013-02-15 Paul Eggert <eggert@cs.ucla.edu> | 98 | 2013-02-15 Paul Eggert <eggert@cs.ucla.edu> |
| 116 | 99 | ||
| 117 | Fix AIX port (Bug#13650). | 100 | Fix AIX port (Bug#13650). |
diff --git a/doc/emacs/emacs.texi b/doc/emacs/emacs.texi index d5968a5f7cd..d2ec2154024 100644 --- a/doc/emacs/emacs.texi +++ b/doc/emacs/emacs.texi | |||
| @@ -1374,7 +1374,7 @@ Georges Brun-Cottan, Joe Buehler, Scott Byer, Włodek Bzyl, | |||
| 1374 | Bill Carpenter, Per Cederqvist, Hans Chalupsky, Chris Chase, Bob | 1374 | Bill Carpenter, Per Cederqvist, Hans Chalupsky, Chris Chase, Bob |
| 1375 | Chassell, Andrew Choi, Chong Yidong, Sacha Chua, Stewart Clamen, James | 1375 | Chassell, Andrew Choi, Chong Yidong, Sacha Chua, Stewart Clamen, James |
| 1376 | Clark, Mike Clarkson, Glynn Clements, Andrew Cohen, Daniel Colascione, | 1376 | Clark, Mike Clarkson, Glynn Clements, Andrew Cohen, Daniel Colascione, |
| 1377 | Edward O'Connor, Christoph Conrad, Ludovic Courtès, Andrew Csillag, | 1377 | Christoph Conrad, Ludovic Courtès, Andrew Csillag, |
| 1378 | Toby Cubitt, Baoqiu Cui, Doug Cutting, Mathias Dahl, Julien Danjou, Satyaki | 1378 | Toby Cubitt, Baoqiu Cui, Doug Cutting, Mathias Dahl, Julien Danjou, Satyaki |
| 1379 | Das, Vivek Dasmohapatra, Dan Davison, Michael DeCorte, Gary Delp, Nachum | 1379 | Das, Vivek Dasmohapatra, Dan Davison, Michael DeCorte, Gary Delp, Nachum |
| 1380 | Dershowitz, Dave Detlefs, Matthieu Devin, Christophe de Dinechin, Eri | 1380 | Dershowitz, Dave Detlefs, Matthieu Devin, Christophe de Dinechin, Eri |
| @@ -1421,7 +1421,7 @@ Monnier, Keith Moore, Jan Moringen, Morioka Tomohiko, Glenn Morris, | |||
| 1421 | Don Morrison, Diane Murray, Riccardo Murri, Sen Nagata, Erik Naggum, | 1421 | Don Morrison, Diane Murray, Riccardo Murri, Sen Nagata, Erik Naggum, |
| 1422 | Gergely Nagy, Nobuyoshi Nakada, Thomas Neumann, Mike Newton, Thien-Thi Nguyen, | 1422 | Gergely Nagy, Nobuyoshi Nakada, Thomas Neumann, Mike Newton, Thien-Thi Nguyen, |
| 1423 | Jurgen Nickelsen, Dan Nicolaescu, Hrvoje Niksic, Jeff Norden, | 1423 | Jurgen Nickelsen, Dan Nicolaescu, Hrvoje Niksic, Jeff Norden, |
| 1424 | Andrew Norman, Kentaro Ohkouchi, Christian Ohler, | 1424 | Andrew Norman, Edward O'Connor, Kentaro Ohkouchi, Christian Ohler, |
| 1425 | Kenichi Okada, Alexandre Oliva, Bob Olson, Michael Olson, Takaaki Ota, | 1425 | Kenichi Okada, Alexandre Oliva, Bob Olson, Michael Olson, Takaaki Ota, |
| 1426 | Pieter E. J. Pareit, Ross Patterson, David Pearson, Juan Pechiar, | 1426 | Pieter E. J. Pareit, Ross Patterson, David Pearson, Juan Pechiar, |
| 1427 | Jeff Peck, Damon Anton Permezel, Tom Perrine, William M. Perry, Per | 1427 | Jeff Peck, Damon Anton Permezel, Tom Perrine, William M. Perry, Per |
diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog index 3e9bcaf1f3e..801cf5aee4c 100644 --- a/doc/misc/ChangeLog +++ b/doc/misc/ChangeLog | |||
| @@ -1,3 +1,7 @@ | |||
| 1 | 2013-03-27 Aidan Gauland <aidalgol@no8wireless.co.nz> | ||
| 2 | |||
| 3 | * eshell.texi: Updated manual to reflect changes. | ||
| 4 | |||
| 1 | 2013-03-18 Michael Albinus <michael.albinus@gmx.de> | 5 | 2013-03-18 Michael Albinus <michael.albinus@gmx.de> |
| 2 | 6 | ||
| 3 | * tramp.texi (Filename Syntax): Host names are not allowed to be | 7 | * tramp.texi (Filename Syntax): Host names are not allowed to be |
| @@ -2409,6 +2413,11 @@ | |||
| 2409 | dired-add-entry, dired-initial-position, dired-clean-up-after-deletion, | 2413 | dired-add-entry, dired-initial-position, dired-clean-up-after-deletion, |
| 2410 | dired-read-shell-command, or dired-find-buffer-nocreate. | 2414 | dired-read-shell-command, or dired-find-buffer-nocreate. |
| 2411 | 2415 | ||
| 2416 | 2013-02-18 Aidan Gauland <aidalgol@no8wireless.co.nz> | ||
| 2417 | |||
| 2418 | * eshell.texi: Added documentation for Eshell insert | ||
| 2419 | output redirection operator, >>>. | ||
| 2420 | |||
| 2412 | 2011-02-18 Glenn Morris <rgm@gnu.org> | 2421 | 2011-02-18 Glenn Morris <rgm@gnu.org> |
| 2413 | 2422 | ||
| 2414 | * dired-x.texi (Optional Installation File At Point): Simplify. | 2423 | * dired-x.texi (Optional Installation File At Point): Simplify. |
diff --git a/etc/ChangeLog b/etc/ChangeLog index 3468e70386d..92f31e6c6e8 100644 --- a/etc/ChangeLog +++ b/etc/ChangeLog | |||
| @@ -1,3 +1,11 @@ | |||
| 1 | 2013-03-30 Leo Liu <sdl.web@gmail.com> | ||
| 2 | |||
| 3 | * NEWS: Mention `kmacro-to-register' and new eldoc feature. | ||
| 4 | |||
| 5 | 2013-03-29 Aidan Gauland <aidalgol@no8wireless.co.nz> | ||
| 6 | |||
| 7 | * NEWS: Added entry for em-tramp change in 2013-03-26T22:08:58Z!aidalgol@no8wireless.co.nz | ||
| 8 | |||
| 1 | 2013-03-21 Eric Ludlam <zappo@gnu.org> | 9 | 2013-03-21 Eric Ludlam <zappo@gnu.org> |
| 2 | 10 | ||
| 3 | * srecode/ede-autoconf.srt: Change Copyright to FSF. | 11 | * srecode/ede-autoconf.srt: Change Copyright to FSF. |
| @@ -82,6 +82,8 @@ bound to <f11> and M-<f10>, respectively. | |||
| 82 | ** In keymaps where SPC scrolls, S-SPC now scrolls in the reverse direction. | 82 | ** In keymaps where SPC scrolls, S-SPC now scrolls in the reverse direction. |
| 83 | Eg View mode, etc. | 83 | Eg View mode, etc. |
| 84 | 84 | ||
| 85 | ** New command `kmacro-to-register' to store keyboard macros in registers. | ||
| 86 | |||
| 85 | 87 | ||
| 86 | * Changes in Specialized Modes and Packages in Emacs 24.4 | 88 | * Changes in Specialized Modes and Packages in Emacs 24.4 |
| 87 | 89 | ||
| @@ -111,6 +113,8 @@ Affected files: | |||
| 111 | use `electric-indent-mode' instead. | 113 | use `electric-indent-mode' instead. |
| 112 | *** `delphi-tab' is gone, replaced by `indent-for-tab-command'. | 114 | *** `delphi-tab' is gone, replaced by `indent-for-tab-command'. |
| 113 | 115 | ||
| 116 | ** Eldoc Mode works properly in the minibuffer. | ||
| 117 | |||
| 114 | ** jit-lock-debug-mode lets you use the debuggers on code run via jit-lock. | 118 | ** jit-lock-debug-mode lets you use the debuggers on code run via jit-lock. |
| 115 | 119 | ||
| 116 | ** completing-read-multiple's separator can now be a regexp. | 120 | ** completing-read-multiple's separator can now be a regexp. |
diff --git a/etc/srecode/ede-autoconf.srt b/etc/srecode/ede-autoconf.srt index b3aaa75d2c2..5eb2d2d24e5 100644 --- a/etc/srecode/ede-autoconf.srt +++ b/etc/srecode/ede-autoconf.srt | |||
| @@ -1,21 +1,23 @@ | |||
| 1 | ;; ede/templates/autoconf.srt --- Templates for autoconf used by EDE. | 1 | ;;; ede/templates/autoconf.srt --- Templates for autoconf used by EDE |
| 2 | ;; | 2 | |
| 3 | ;; Copyright (C) 2010, 2013 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2010, 2012-2013 Free Software Foundation, Inc. |
| 4 | ;; | 4 | |
| 5 | ;; Author: Eric M. Ludlam <eric@siege-engine.com> | 5 | ;; Author: Eric M. Ludlam <eric@siege-engine.com> |
| 6 | ;; | ||
| 7 | ;; This program is free software; you can redistribute it and/or | ||
| 8 | ;; modify it under the terms of the GNU General Public License as | ||
| 9 | ;; published by the Free Software Foundation; either version 2, or (at | ||
| 10 | ;; your option) any later version. | ||
| 11 | 6 | ||
| 12 | ;; This program is distributed in the hope that it will be useful, but | 7 | ;; This file is part of GNU Emacs. |
| 13 | ;; WITHOUT ANY WARRANTY; without even the implied warranty of | 8 | |
| 14 | ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 9 | ;; GNU Emacs is free software: you can redistribute it and/or modify |
| 15 | ;; General Public License for more details. | 10 | ;; it under the terms of the GNU General Public License as published by |
| 11 | ;; the Free Software Foundation, either version 3 of the License, or | ||
| 12 | ;; (at your option) any later version. | ||
| 13 | |||
| 14 | ;; GNU Emacs is distributed in the hope that it will be useful, | ||
| 15 | ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 16 | ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 17 | ;; GNU General Public License for more details. | ||
| 16 | 18 | ||
| 17 | ;; You should have received a copy of the GNU General Public License | 19 | ;; You should have received a copy of the GNU General Public License |
| 18 | ;; along with this program. If not, see <http://www.gnu.org/licenses/>. | 20 | ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. |
| 19 | 21 | ||
| 20 | set mode "autoconf-mode" | 22 | set mode "autoconf-mode" |
| 21 | set escape_start "{{" | 23 | set escape_start "{{" |
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 737a91e2e4a..d1b827966de 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,25 @@ | |||
| 1 | 2013-03-30 Fabián Ezequiel Gallina <fabian@anue.biz> | ||
| 2 | |||
| 3 | Un-indent after "pass" and "return" statements (Bug#13888) | ||
| 4 | * progmodes/python.el (python-indent-block-enders): New var. | ||
| 5 | (python-indent-calculate-indentation): Use it. | ||
| 6 | |||
| 7 | 2013-03-30 Michael Albinus <michael.albinus@gmx.de> | ||
| 8 | |||
| 9 | * net/tramp.el (tramp-drop-volume-letter): Make it an ordinary | ||
| 10 | defun. Defining it as defalias could introduce too eager | ||
| 11 | byte-compiler optimization. (Bug#14030) | ||
| 12 | |||
| 13 | 2013-03-30 Chong Yidong <cyd@gnu.org> | ||
| 14 | |||
| 15 | * iswitchb.el (iswitchb-read-buffer): Fix typo. | ||
| 16 | |||
| 17 | 2013-03-30 Leo Liu <sdl.web@gmail.com> | ||
| 18 | |||
| 19 | * kmacro.el (kmacro-call-macro): Add optional arg MACRO. | ||
| 20 | (kmacro-execute-from-register): Pass the keyboard macro to | ||
| 21 | kmacro-call-macro or repeating won't work correctly. | ||
| 22 | |||
| 1 | 2013-03-30 Teodor Zlatanov <tzz@lifelogs.com> | 23 | 2013-03-30 Teodor Zlatanov <tzz@lifelogs.com> |
| 2 | 24 | ||
| 3 | * progmodes/subword.el: Back to using `forward-symbol'. | 25 | * progmodes/subword.el: Back to using `forward-symbol'. |
| @@ -56,6 +78,11 @@ | |||
| 56 | over symbol_words (parallels and leverages `subword-mode' which | 78 | over symbol_words (parallels and leverages `subword-mode' which |
| 57 | does word motion inside MixedCaseWords). | 79 | does word motion inside MixedCaseWords). |
| 58 | 80 | ||
| 81 | 2013-03-27 Aidan Gauland <aidalgol@no8wireless.co.nz> | ||
| 82 | |||
| 83 | * eshell/em-unix.el: Moved su and sudo to... | ||
| 84 | * eshell/em-tramp.el: ...Eshell tramp module | ||
| 85 | |||
| 59 | 2013-03-26 Stefan Monnier <monnier@iro.umontreal.ca> | 86 | 2013-03-26 Stefan Monnier <monnier@iro.umontreal.ca> |
| 60 | 87 | ||
| 61 | * desktop.el (desktop--v2s): Rename from desktop-internal-v2s. | 88 | * desktop.el (desktop--v2s): Rename from desktop-internal-v2s. |
| @@ -1054,6 +1081,11 @@ | |||
| 1054 | (eieio-browse-tree, eieio-browse): Use eieio--check-type. | 1081 | (eieio-browse-tree, eieio-browse): Use eieio--check-type. |
| 1055 | 1082 | ||
| 1056 | 1083 | ||
| 1084 | 2013-02-18 Aidan Gauland <aidalgol@no8wireless.co.nz> | ||
| 1085 | |||
| 1086 | * eshell/em-cmpl.el: Corrected "context-related help" | ||
| 1087 | keybinding in commentary. | ||
| 1088 | |||
| 1057 | 2013-02-18 Michael Heerdegen <michael_heerdegen@web.de> | 1089 | 2013-02-18 Michael Heerdegen <michael_heerdegen@web.de> |
| 1058 | 1090 | ||
| 1059 | * emacs-lisp/eldoc.el (eldoc-highlight-function-argument): | 1091 | * emacs-lisp/eldoc.el (eldoc-highlight-function-argument): |
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index 3ea10f55df2..d46051af097 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog | |||
| @@ -1,3 +1,7 @@ | |||
| 1 | 2013-03-30 Andrew Cohen <cohen@bu.edu> | ||
| 2 | |||
| 3 | * nnir.el (nnir-method-default-engines): Fix typo. | ||
| 4 | |||
| 1 | 2013-03-29 Andrew Cohen <cohen@bu.edu> | 5 | 2013-03-29 Andrew Cohen <cohen@bu.edu> |
| 2 | 6 | ||
| 3 | * nnir.el: Define 'number-sequence for xemacs. | 7 | * nnir.el: Define 'number-sequence for xemacs. |
diff --git a/lisp/gnus/nnir.el b/lisp/gnus/nnir.el index cf9de09eaa2..1c7cb2ff17a 100644 --- a/lisp/gnus/nnir.el +++ b/lisp/gnus/nnir.el | |||
| @@ -584,7 +584,7 @@ needs the variables `nnir-namazu-program', | |||
| 584 | 584 | ||
| 585 | Add an entry here when adding a new search engine.") | 585 | Add an entry here when adding a new search engine.") |
| 586 | 586 | ||
| 587 | (defcustom nnir-method-default-engines '((nnimap . imap) (nttp . gmane)) | 587 | (defcustom nnir-method-default-engines '((nnimap . imap) (nntp . gmane)) |
| 588 | "*Alist of default search engines keyed by server method." | 588 | "*Alist of default search engines keyed by server method." |
| 589 | :version "24.1" | 589 | :version "24.1" |
| 590 | :group 'nnir | 590 | :group 'nnir |
diff --git a/lisp/iswitchb.el b/lisp/iswitchb.el index 68749f1b012..07873db38e1 100644 --- a/lisp/iswitchb.el +++ b/lisp/iswitchb.el | |||
| @@ -597,7 +597,7 @@ the selection process begins. Used by isearchb.el." | |||
| 597 | ;; The map is generated every time so that it can inherit new | 597 | ;; The map is generated every time so that it can inherit new |
| 598 | ;; functions. | 598 | ;; functions. |
| 599 | (let ((map (copy-keymap minibuffer-local-map)) | 599 | (let ((map (copy-keymap minibuffer-local-map)) |
| 600 | buf-sel iswitchb-final-text map | 600 | buf-sel iswitchb-final-text |
| 601 | icomplete-mode) ; prevent icomplete starting up | 601 | icomplete-mode) ; prevent icomplete starting up |
| 602 | (define-key map "?" 'iswitchb-completion-help) | 602 | (define-key map "?" 'iswitchb-completion-help) |
| 603 | (define-key map "\C-s" 'iswitchb-next-match) | 603 | (define-key map "\C-s" 'iswitchb-next-match) |
diff --git a/lisp/kmacro.el b/lisp/kmacro.el index 4253fb87d5c..c08f49df0a7 100644 --- a/lisp/kmacro.el +++ b/lisp/kmacro.el | |||
| @@ -614,9 +614,10 @@ An argument of zero means repeat until error." | |||
| 614 | 614 | ||
| 615 | 615 | ||
| 616 | ;;;###autoload | 616 | ;;;###autoload |
| 617 | (defun kmacro-call-macro (arg &optional no-repeat end-macro) | 617 | (defun kmacro-call-macro (arg &optional no-repeat end-macro macro) |
| 618 | "Call the last keyboard macro that you defined with \\[kmacro-start-macro]. | 618 | "Call the keyboard MACRO that you defined with \\[kmacro-start-macro]. |
| 619 | A prefix argument serves as a repeat count. Zero means repeat until error. | 619 | A prefix argument serves as a repeat count. Zero means repeat until error. |
| 620 | MACRO defaults to `last-kbd-macro'. | ||
| 620 | 621 | ||
| 621 | When you call the macro, you can call the macro again by repeating | 622 | When you call the macro, you can call the macro again by repeating |
| 622 | just the last key in the key sequence that you used to call this | 623 | just the last key in the key sequence that you used to call this |
| @@ -630,7 +631,8 @@ others, use \\[kmacro-name-last-macro]." | |||
| 630 | (> (length (this-single-command-keys)) 1)) | 631 | (> (length (this-single-command-keys)) 1)) |
| 631 | ;; Used when we're in the process of repeating. | 632 | ;; Used when we're in the process of repeating. |
| 632 | (eq no-repeat 'repeating)) | 633 | (eq no-repeat 'repeating)) |
| 633 | last-input-event))) | 634 | last-input-event)) |
| 635 | (last-kbd-macro (or macro last-kbd-macro))) | ||
| 634 | (if end-macro | 636 | (if end-macro |
| 635 | (kmacro-end-macro arg) | 637 | (kmacro-end-macro arg) |
| 636 | (call-last-kbd-macro arg #'kmacro-loop-setup-function)) | 638 | (call-last-kbd-macro arg #'kmacro-loop-setup-function)) |
| @@ -656,7 +658,7 @@ others, use \\[kmacro-name-last-macro]." | |||
| 656 | (define-key map (vector repeat-key) | 658 | (define-key map (vector repeat-key) |
| 657 | `(lambda () (interactive) | 659 | `(lambda () (interactive) |
| 658 | (kmacro-call-macro ,(and kmacro-call-repeat-with-arg arg) | 660 | (kmacro-call-macro ,(and kmacro-call-repeat-with-arg arg) |
| 659 | 'repeating))) | 661 | 'repeating nil ,last-kbd-macro))) |
| 660 | map))))) | 662 | map))))) |
| 661 | 663 | ||
| 662 | 664 | ||
| @@ -838,8 +840,7 @@ Such a \"function\" cannot be called from Lisp, but it is a valid editor command | |||
| 838 | 840 | ||
| 839 | 841 | ||
| 840 | (defun kmacro-execute-from-register (k) | 842 | (defun kmacro-execute-from-register (k) |
| 841 | (let ((last-kbd-macro k)) | 843 | (kmacro-call-macro current-prefix-arg nil nil k)) |
| 842 | (kmacro-call-macro current-prefix-arg))) | ||
| 843 | 844 | ||
| 844 | (defun kmacro-to-register (r) | 845 | (defun kmacro-to-register (r) |
| 845 | "Store the last keyboard macro in register R." | 846 | "Store the last keyboard macro in register R." |
| @@ -851,10 +852,10 @@ Such a \"function\" cannot be called from Lisp, but it is a valid editor command | |||
| 851 | last-kbd-macro | 852 | last-kbd-macro |
| 852 | :jump-func 'kmacro-execute-from-register | 853 | :jump-func 'kmacro-execute-from-register |
| 853 | :print-func (lambda (k) | 854 | :print-func (lambda (k) |
| 854 | (princ (format "a keyboard macro:\n %s" | 855 | (princ (format "a keyboard macro:\n %s" |
| 855 | (format-kbd-macro k)))) | 856 | (format-kbd-macro k)))) |
| 856 | :insert-func (lambda (k) | 857 | :insert-func (lambda (k) |
| 857 | (insert (format-kbd-macro k)))))) | 858 | (insert (format-kbd-macro k)))))) |
| 858 | 859 | ||
| 859 | 860 | ||
| 860 | (defun kmacro-view-macro (&optional _arg) | 861 | (defun kmacro-view-macro (&optional _arg) |
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el index 86f7f338b27..7795d9f808c 100644 --- a/lisp/net/tramp.el +++ b/lisp/net/tramp.el | |||
| @@ -1660,23 +1660,16 @@ FILE must be a local file name on a connection identified via VEC." | |||
| 1660 | (tramp-compat-font-lock-add-keywords | 1660 | (tramp-compat-font-lock-add-keywords |
| 1661 | 'emacs-lisp-mode '("\\<with-tramp-connection-property\\>")) | 1661 | 'emacs-lisp-mode '("\\<with-tramp-connection-property\\>")) |
| 1662 | 1662 | ||
| 1663 | (defalias 'tramp-drop-volume-letter | 1663 | (defun tramp-drop-volume-letter (name) |
| 1664 | (if (memq system-type '(cygwin windows-nt)) | 1664 | "Cut off unnecessary drive letter from file NAME. |
| 1665 | (lambda (name) | ||
| 1666 | "Cut off unnecessary drive letter from file NAME. | ||
| 1667 | The functions `tramp-*-handle-expand-file-name' call `expand-file-name' | 1665 | The functions `tramp-*-handle-expand-file-name' call `expand-file-name' |
| 1668 | locally on a remote file name. When the local system is a W32 system | 1666 | locally on a remote file name. When the local system is a W32 system |
| 1669 | but the remote system is Unix, this introduces a superfluous drive | 1667 | but the remote system is Unix, this introduces a superfluous drive |
| 1670 | letter into the file name. This function removes it." | 1668 | letter into the file name. This function removes it." |
| 1671 | (save-match-data | 1669 | (save-match-data |
| 1672 | (if (string-match "\\`[a-zA-Z]:/" name) | 1670 | (if (string-match "\\`[a-zA-Z]:/" name) |
| 1673 | (replace-match "/" nil t name) | 1671 | (replace-match "/" nil t name) |
| 1674 | name))) | 1672 | name))) |
| 1675 | |||
| 1676 | 'identity)) | ||
| 1677 | |||
| 1678 | (if (featurep 'xemacs) | ||
| 1679 | (defalias 'tramp-drop-volume-letter 'identity)) | ||
| 1680 | 1673 | ||
| 1681 | (defun tramp-cleanup (vec) | 1674 | (defun tramp-cleanup (vec) |
| 1682 | "Cleanup connection VEC, but keep the debug buffer." | 1675 | "Cleanup connection VEC, but keep the debug buffer." |
diff --git a/lisp/profiler.el b/lisp/profiler.el index 07192a39bef..093a01a8602 100644 --- a/lisp/profiler.el +++ b/lisp/profiler.el | |||
| @@ -5,18 +5,20 @@ | |||
| 5 | ;; Author: Tomohiro Matsuyama <tomo@cx4a.org> | 5 | ;; Author: Tomohiro Matsuyama <tomo@cx4a.org> |
| 6 | ;; Keywords: lisp | 6 | ;; Keywords: lisp |
| 7 | 7 | ||
| 8 | ;; This program is free software; you can redistribute it and/or modify | 8 | ;; This file is part of GNU Emacs. |
| 9 | |||
| 10 | ;; GNU Emacs is free software: you can redistribute it and/or modify | ||
| 9 | ;; it under the terms of the GNU General Public License as published by | 11 | ;; it under the terms of the GNU General Public License as published by |
| 10 | ;; the Free Software Foundation, either version 3 of the License, or | 12 | ;; the Free Software Foundation, either version 3 of the License, or |
| 11 | ;; (at your option) any later version. | 13 | ;; (at your option) any later version. |
| 12 | 14 | ||
| 13 | ;; This program is distributed in the hope that it will be useful, | 15 | ;; GNU Emacs is distributed in the hope that it will be useful, |
| 14 | ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | 16 | ;; but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 15 | ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 17 | ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 16 | ;; GNU General Public License for more details. | 18 | ;; GNU General Public License for more details. |
| 17 | 19 | ||
| 18 | ;; You should have received a copy of the GNU General Public License | 20 | ;; You should have received a copy of the GNU General Public License |
| 19 | ;; along with this program. If not, see <http://www.gnu.org/licenses/>. | 21 | ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. |
| 20 | 22 | ||
| 21 | ;;; Commentary: | 23 | ;;; Commentary: |
| 22 | 24 | ||
diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index f0f67d01845..d1009534e49 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el | |||
| @@ -638,6 +638,12 @@ It makes underscores and dots word constituent chars.") | |||
| 638 | These make `python-indent-calculate-indentation' subtract the value of | 638 | These make `python-indent-calculate-indentation' subtract the value of |
| 639 | `python-indent-offset'.") | 639 | `python-indent-offset'.") |
| 640 | 640 | ||
| 641 | (defvar python-indent-block-enders '("return" "pass") | ||
| 642 | "List of words that mark the end of a block. | ||
| 643 | These make `python-indent-calculate-indentation' subtract the | ||
| 644 | value of `python-indent-offset' when `python-indent-context' is | ||
| 645 | AFTER-LINE.") | ||
| 646 | |||
| 641 | (defun python-indent-guess-indent-offset () | 647 | (defun python-indent-guess-indent-offset () |
| 642 | "Guess and set `python-indent-offset' for the current buffer." | 648 | "Guess and set `python-indent-offset' for the current buffer." |
| 643 | (interactive) | 649 | (interactive) |
| @@ -763,9 +769,13 @@ START is the buffer position where the sexp starts." | |||
| 763 | (save-excursion | 769 | (save-excursion |
| 764 | (goto-char context-start) | 770 | (goto-char context-start) |
| 765 | (current-indentation)) | 771 | (current-indentation)) |
| 766 | (if (progn | 772 | (if (or (save-excursion |
| 767 | (back-to-indentation) | 773 | (back-to-indentation) |
| 768 | (looking-at (regexp-opt python-indent-dedenters))) | 774 | (looking-at (regexp-opt python-indent-dedenters))) |
| 775 | (save-excursion | ||
| 776 | (python-util-forward-comment -1) | ||
| 777 | (python-nav-beginning-of-statement) | ||
| 778 | (member (current-word) python-indent-block-enders))) | ||
| 769 | python-indent-offset | 779 | python-indent-offset |
| 770 | 0))) | 780 | 0))) |
| 771 | ;; When inside of a string, do nothing. just use the current | 781 | ;; When inside of a string, do nothing. just use the current |
diff --git a/src/ChangeLog b/src/ChangeLog index 14e21e402d6..b9e9cce5cb7 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,25 @@ | |||
| 1 | 2013-03-30 Darren Ho <darren.hoo@gmail.com> (tiny change) | ||
| 2 | |||
| 3 | * nsmenu.m (showAtX:Y:for:): setLevel to | ||
| 4 | NSPopUpMenuWindowLevel (Bug#13998). | ||
| 5 | |||
| 6 | 2013-03-30 Jan Djärv <jan.h.d@swipnet.se> | ||
| 7 | |||
| 8 | * nsterm.h (ns_get_pending_menu_title, ns_check_menu_open) | ||
| 9 | (ns_check_pending_open_menu): Declare. | ||
| 10 | |||
| 11 | * nsmenu.m (ns_update_menubar): Correct NSTRACE. | ||
| 12 | (x_activate_menubar): Update the menu with title that matches | ||
| 13 | ns_get_pending_menu_title, and call | ||
| 14 | ns_check_pending_openmenu (Bug#12698). | ||
| 15 | (menuWillOpen:): New method. | ||
| 16 | (menuNeedsUpdate:): Add check for ! COCOA || OSX < 10.5 (Bug#12698). | ||
| 17 | |||
| 18 | * nsterm.m (menu_will_open_state, menu_mouse_point) | ||
| 19 | (menu_pending_title): New varaibles. | ||
| 20 | (ns_get_pending_menu_title, ns_check_menu_open) | ||
| 21 | (ns_check_pending_open_menu): New functions. | ||
| 22 | |||
| 1 | 2013-03-29 Dmitry Antipov <dmantipov@yandex.ru> | 23 | 2013-03-29 Dmitry Antipov <dmantipov@yandex.ru> |
| 2 | 24 | ||
| 3 | * indent.c (current_column_bol_cache): Remove leftover which is not | 25 | * indent.c (current_column_bol_cache): Remove leftover which is not |
diff --git a/src/nsmenu.m b/src/nsmenu.m index b764d3f5951..4e26a994b59 100644 --- a/src/nsmenu.m +++ b/src/nsmenu.m | |||
| @@ -88,14 +88,6 @@ static int trackingMenu; | |||
| 88 | ========================================================================== */ | 88 | ========================================================================== */ |
| 89 | 89 | ||
| 90 | 90 | ||
| 91 | /* FIXME: not currently used, but should normalize with other terms. */ | ||
| 92 | void | ||
| 93 | x_activate_menubar (struct frame *f) | ||
| 94 | { | ||
| 95 | fprintf (stderr, "XXX: Received x_activate_menubar event.\n"); | ||
| 96 | } | ||
| 97 | |||
| 98 | |||
| 99 | /* Supposed to discard menubar and free storage. Since we share the | 91 | /* Supposed to discard menubar and free storage. Since we share the |
| 100 | menubar among frames and update its context for the focused window, | 92 | menubar among frames and update its context for the focused window, |
| 101 | there is nothing to do here. */ | 93 | there is nothing to do here. */ |
| @@ -138,7 +130,7 @@ ns_update_menubar (struct frame *f, bool deep_p, EmacsMenu *submenu) | |||
| 138 | long t; | 130 | long t; |
| 139 | #endif | 131 | #endif |
| 140 | 132 | ||
| 141 | NSTRACE (set_frame_menubar); | 133 | NSTRACE (ns_update_menubar); |
| 142 | 134 | ||
| 143 | if (f != SELECTED_FRAME ()) | 135 | if (f != SELECTED_FRAME ()) |
| 144 | return; | 136 | return; |
| @@ -512,6 +504,29 @@ set_frame_menubar (struct frame *f, bool first_time, bool deep_p) | |||
| 512 | ns_update_menubar (f, deep_p, nil); | 504 | ns_update_menubar (f, deep_p, nil); |
| 513 | } | 505 | } |
| 514 | 506 | ||
| 507 | void | ||
| 508 | x_activate_menubar (struct frame *f) | ||
| 509 | { | ||
| 510 | NSArray *a = [[NSApp mainMenu] itemArray]; | ||
| 511 | /* Update each submenu separatly so ns_update_menubar don't reset | ||
| 512 | the delegate. */ | ||
| 513 | int i = 0; | ||
| 514 | while (i < [a count]) | ||
| 515 | { | ||
| 516 | EmacsMenu *menu = (EmacsMenu *)[[a objectAtIndex:i] submenu]; | ||
| 517 | const char *title = [[menu title] UTF8String]; | ||
| 518 | if (strcmp (title, ns_get_pending_menu_title ()) == 0) | ||
| 519 | { | ||
| 520 | ns_update_menubar (f, true, menu); | ||
| 521 | break; | ||
| 522 | } | ||
| 523 | ++i; | ||
| 524 | } | ||
| 525 | ns_check_pending_open_menu (); | ||
| 526 | } | ||
| 527 | |||
| 528 | |||
| 529 | |||
| 515 | 530 | ||
| 516 | /* ========================================================================== | 531 | /* ========================================================================== |
| 517 | 532 | ||
| @@ -564,6 +579,14 @@ extern NSString *NSMenuDidBeginTrackingNotification; | |||
| 564 | trackingMenu = ([notification name] == NSMenuDidBeginTrackingNotification | 579 | trackingMenu = ([notification name] == NSMenuDidBeginTrackingNotification |
| 565 | ? 1 : 0); | 580 | ? 1 : 0); |
| 566 | } | 581 | } |
| 582 | |||
| 583 | #if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 | ||
| 584 | - (void)menuWillOpen:(NSMenu *)menu | ||
| 585 | { | ||
| 586 | ns_check_menu_open (menu); | ||
| 587 | } | ||
| 588 | #endif | ||
| 589 | |||
| 567 | #endif | 590 | #endif |
| 568 | 591 | ||
| 569 | /* delegate method called when a submenu is being opened: run a 'deep' call | 592 | /* delegate method called when a submenu is being opened: run a 'deep' call |
| @@ -591,7 +614,12 @@ extern NSString *NSMenuDidBeginTrackingNotification; | |||
| 591 | if (trackingMenu == 0) | 614 | if (trackingMenu == 0) |
| 592 | return; | 615 | return; |
| 593 | /*fprintf (stderr, "Updating menu '%s'\n", [[self title] UTF8String]); NSLog (@"%@\n", event); */ | 616 | /*fprintf (stderr, "Updating menu '%s'\n", [[self title] UTF8String]); NSLog (@"%@\n", event); */ |
| 594 | ns_update_menubar (frame, 1, self); | 617 | #if ! defined(NS_IMPL_COCOA) || \ |
| 618 | MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_5 | ||
| 619 | /* Don't know how to do this for anything other than OSX >= 10.5 | ||
| 620 | This is wrong, as it might run Lisp code in the event loop. */ | ||
| 621 | ns_update_menubar (frame, true, self); | ||
| 622 | #endif | ||
| 595 | } | 623 | } |
| 596 | 624 | ||
| 597 | 625 | ||
| @@ -1300,6 +1328,7 @@ update_frame_tool_bar (FRAME_PTR f) | |||
| 1300 | wr.size = [textField frame].size; | 1328 | wr.size = [textField frame].size; |
| 1301 | 1329 | ||
| 1302 | [win setFrame: wr display: YES]; | 1330 | [win setFrame: wr display: YES]; |
| 1331 | [win setLevel: NSPopUpMenuWindowLevel]; | ||
| 1303 | [win orderFront: self]; | 1332 | [win orderFront: self]; |
| 1304 | [win display]; | 1333 | [win display]; |
| 1305 | timer = [NSTimer scheduledTimerWithTimeInterval: (float)seconds target: self | 1334 | timer = [NSTimer scheduledTimerWithTimeInterval: (float)seconds target: self |
diff --git a/src/nsterm.h b/src/nsterm.h index 6bd04b96684..a43a90428d0 100644 --- a/src/nsterm.h +++ b/src/nsterm.h | |||
| @@ -792,6 +792,9 @@ extern int ns_lisp_to_color (Lisp_Object color, NSColor **col); | |||
| 792 | extern NSColor *ns_lookup_indexed_color (unsigned long idx, struct frame *f); | 792 | extern NSColor *ns_lookup_indexed_color (unsigned long idx, struct frame *f); |
| 793 | extern unsigned long ns_index_color (NSColor *color, struct frame *f); | 793 | extern unsigned long ns_index_color (NSColor *color, struct frame *f); |
| 794 | extern void ns_free_indexed_color (unsigned long idx, struct frame *f); | 794 | extern void ns_free_indexed_color (unsigned long idx, struct frame *f); |
| 795 | extern const char *ns_get_pending_menu_title (); | ||
| 796 | extern void ns_check_menu_open (NSMenu *menu); | ||
| 797 | extern void ns_check_pending_open_menu (); | ||
| 795 | #endif | 798 | #endif |
| 796 | 799 | ||
| 797 | /* C access to ObjC functionality */ | 800 | /* C access to ObjC functionality */ |
diff --git a/src/nsterm.m b/src/nsterm.m index c75167d7531..9baa95a506b 100644 --- a/src/nsterm.m +++ b/src/nsterm.m | |||
| @@ -228,6 +228,25 @@ static struct { | |||
| 228 | NULL, 0, 0 | 228 | NULL, 0, 0 |
| 229 | }; | 229 | }; |
| 230 | 230 | ||
| 231 | /* | ||
| 232 | * State for pending menu activation: | ||
| 233 | * MENU_NONE Normal state | ||
| 234 | * MENU_PENDING A menu has been clicked on, but has been canceled so we can | ||
| 235 | * run lisp to update the menu. | ||
| 236 | * MENU_OPENING Menu is up to date, and the click event is redone so the menu | ||
| 237 | * will open. | ||
| 238 | */ | ||
| 239 | #define MENU_NONE 0 | ||
| 240 | #define MENU_PENDING 1 | ||
| 241 | #define MENU_OPENING 2 | ||
| 242 | static int menu_will_open_state = MENU_NONE; | ||
| 243 | |||
| 244 | /* Saved position for menu click. */ | ||
| 245 | static CGPoint menu_mouse_point; | ||
| 246 | |||
| 247 | /* Title for the menu to open. */ | ||
| 248 | static char *menu_pending_title = 0; | ||
| 249 | |||
| 231 | /* Convert modifiers in a NeXTstep event to emacs style modifiers. */ | 250 | /* Convert modifiers in a NeXTstep event to emacs style modifiers. */ |
| 232 | #define NS_FUNCTION_KEY_MASK 0x800000 | 251 | #define NS_FUNCTION_KEY_MASK 0x800000 |
| 233 | #define NSLeftControlKeyMask (0x000001 | NSControlKeyMask) | 252 | #define NSLeftControlKeyMask (0x000001 | NSControlKeyMask) |
| @@ -3388,6 +3407,77 @@ check_native_fs () | |||
| 3388 | } | 3407 | } |
| 3389 | #endif | 3408 | #endif |
| 3390 | 3409 | ||
| 3410 | const char * | ||
| 3411 | ns_get_pending_menu_title () | ||
| 3412 | { | ||
| 3413 | return menu_pending_title; | ||
| 3414 | } | ||
| 3415 | |||
| 3416 | /* Check if menu open should be cancelled or continued as normal. */ | ||
| 3417 | void | ||
| 3418 | ns_check_menu_open (NSMenu *menu) | ||
| 3419 | { | ||
| 3420 | /* GNUStep and OSX <= 10.4 does not have cancelTracking. */ | ||
| 3421 | #if defined(NS_IMPL_COCOA) && \ | ||
| 3422 | MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 | ||
| 3423 | |||
| 3424 | /* Click in menu bar? */ | ||
| 3425 | NSArray *a = [[NSApp mainMenu] itemArray]; | ||
| 3426 | int i; | ||
| 3427 | BOOL found = NO; | ||
| 3428 | for (i = 0; ! found && i < [a count]; i++) | ||
| 3429 | found = menu == [[a objectAtIndex:i] submenu]; | ||
| 3430 | if (found) | ||
| 3431 | { | ||
| 3432 | if (menu_will_open_state == MENU_NONE && emacs_event) | ||
| 3433 | { | ||
| 3434 | NSEvent *theEvent = [NSApp currentEvent]; | ||
| 3435 | struct frame *emacsframe = SELECTED_FRAME (); | ||
| 3436 | |||
| 3437 | [menu cancelTracking]; | ||
| 3438 | menu_will_open_state = MENU_PENDING; | ||
| 3439 | emacs_event->kind = MENU_BAR_ACTIVATE_EVENT; | ||
| 3440 | EV_TRAILER (theEvent); | ||
| 3441 | |||
| 3442 | CGEventRef ourEvent = CGEventCreate (NULL); | ||
| 3443 | menu_mouse_point = CGEventGetLocation (ourEvent); | ||
| 3444 | CFRelease (ourEvent); | ||
| 3445 | xfree (menu_pending_title); | ||
| 3446 | menu_pending_title = xstrdup ([[menu title] UTF8String]); | ||
| 3447 | } | ||
| 3448 | else if (menu_will_open_state == MENU_OPENING) | ||
| 3449 | { | ||
| 3450 | menu_will_open_state = MENU_NONE; | ||
| 3451 | } | ||
| 3452 | } | ||
| 3453 | #endif | ||
| 3454 | } | ||
| 3455 | |||
| 3456 | /* Redo saved menu click if state is MENU_PENDING. */ | ||
| 3457 | void | ||
| 3458 | ns_check_pending_open_menu () | ||
| 3459 | { | ||
| 3460 | #ifdef NS_IMPL_COCOA | ||
| 3461 | if (menu_will_open_state == MENU_PENDING) | ||
| 3462 | { | ||
| 3463 | CGEventSourceRef source | ||
| 3464 | = CGEventSourceCreate (kCGEventSourceStateHIDSystemState); | ||
| 3465 | |||
| 3466 | CGEventRef event = CGEventCreateMouseEvent (source, | ||
| 3467 | kCGEventLeftMouseDown, | ||
| 3468 | menu_mouse_point, | ||
| 3469 | kCGMouseButtonLeft); | ||
| 3470 | CGEventSetType (event, kCGEventLeftMouseDown); | ||
| 3471 | CGEventPost (kCGHIDEventTap, event); | ||
| 3472 | CFRelease (event); | ||
| 3473 | CFRelease (source); | ||
| 3474 | |||
| 3475 | menu_will_open_state = MENU_OPENING; | ||
| 3476 | } | ||
| 3477 | #endif | ||
| 3478 | } | ||
| 3479 | |||
| 3480 | |||
| 3391 | static int | 3481 | static int |
| 3392 | ns_read_socket (struct terminal *terminal, struct input_event *hold_quit) | 3482 | ns_read_socket (struct terminal *terminal, struct input_event *hold_quit) |
| 3393 | /* -------------------------------------------------------------------------- | 3483 | /* -------------------------------------------------------------------------- |
diff --git a/test/ChangeLog b/test/ChangeLog index 43648ad1bb1..cd4414cd079 100644 --- a/test/ChangeLog +++ b/test/ChangeLog | |||
| @@ -1,3 +1,8 @@ | |||
| 1 | 2013-03-30 Fabián Ezequiel Gallina <fabian@anue.biz> | ||
| 2 | |||
| 3 | * automated/python-tests.el (python-indent-block-enders): New test. | ||
| 4 | (python-info-current-defun-2): Fix test. | ||
| 5 | |||
| 1 | 2013-03-05 Paul Eggert <eggert@cs.ucla.edu> | 6 | 2013-03-05 Paul Eggert <eggert@cs.ucla.edu> |
| 2 | 7 | ||
| 3 | * indent/octave.m: Fix encoding error in comment. Add coding tag. | 8 | * indent/octave.m: Fix encoding error in comment. Add coding tag. |
diff --git a/test/automated/python-tests.el b/test/automated/python-tests.el index ab8eb4816d3..d0a7ab57250 100644 --- a/test/automated/python-tests.el +++ b/test/automated/python-tests.el | |||
| @@ -444,6 +444,28 @@ objects = Thing.objects.all() \\\\ | |||
| 444 | (should (eq (car (python-indent-context)) 'after-line)) | 444 | (should (eq (car (python-indent-context)) 'after-line)) |
| 445 | (should (= (python-indent-calculate-indentation) 0)))) | 445 | (should (= (python-indent-calculate-indentation) 0)))) |
| 446 | 446 | ||
| 447 | (ert-deftest python-indent-block-enders () | ||
| 448 | "Test `python-indent-block-enders' value honouring." | ||
| 449 | (python-tests-with-temp-buffer | ||
| 450 | " | ||
| 451 | Class foo(object): | ||
| 452 | |||
| 453 | def bar(self): | ||
| 454 | if self.baz: | ||
| 455 | return (1, | ||
| 456 | 2, | ||
| 457 | 3) | ||
| 458 | |||
| 459 | else: | ||
| 460 | pass | ||
| 461 | " | ||
| 462 | (python-tests-look-at "3)") | ||
| 463 | (forward-line 1) | ||
| 464 | (= (python-indent-calculate-indentation) 12) | ||
| 465 | (python-tests-look-at "pass") | ||
| 466 | (forward-line 1) | ||
| 467 | (= (python-indent-calculate-indentation) 8))) | ||
| 468 | |||
| 447 | 469 | ||
| 448 | ;;; Navigation | 470 | ;;; Navigation |
| 449 | 471 | ||
| @@ -1546,13 +1568,13 @@ class C(object): | |||
| 1546 | return [] | 1568 | return [] |
| 1547 | 1569 | ||
| 1548 | def b(): | 1570 | def b(): |
| 1549 | pass | 1571 | do_b() |
| 1550 | 1572 | ||
| 1551 | def a(): | 1573 | def a(): |
| 1552 | pass | 1574 | do_a() |
| 1553 | 1575 | ||
| 1554 | def c(self): | 1576 | def c(self): |
| 1555 | pass | 1577 | do_c() |
| 1556 | " | 1578 | " |
| 1557 | (forward-line 1) | 1579 | (forward-line 1) |
| 1558 | (should (string= "C" (python-info-current-defun))) | 1580 | (should (string= "C" (python-info-current-defun))) |
| @@ -1582,7 +1604,7 @@ class C(object): | |||
| 1582 | (python-tests-look-at "def c(self):") | 1604 | (python-tests-look-at "def c(self):") |
| 1583 | (should (string= "C.c" (python-info-current-defun))) | 1605 | (should (string= "C.c" (python-info-current-defun))) |
| 1584 | (should (string= "def C.c" (python-info-current-defun t))) | 1606 | (should (string= "def C.c" (python-info-current-defun t))) |
| 1585 | (python-tests-look-at "pass") | 1607 | (python-tests-look-at "do_c()") |
| 1586 | (should (string= "C.c" (python-info-current-defun))) | 1608 | (should (string= "C.c" (python-info-current-defun))) |
| 1587 | (should (string= "def C.c" (python-info-current-defun t))))) | 1609 | (should (string= "def C.c" (python-info-current-defun t))))) |
| 1588 | 1610 | ||