aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEli Zaretskii2013-03-30 20:37:57 +0300
committerEli Zaretskii2013-03-30 20:37:57 +0300
commitf1aa11971a74b7b2fa0f5baaaaf21dfbd388de6b (patch)
tree48e20bfab4262d7171593d4ef98309ae717c1cb6
parent7c4026b6ad03974a55a175af17c8e76c61931b69 (diff)
parent119b2d43cc40759394cae256c0a38624cacbf776 (diff)
downloademacs-f1aa11971a74b7b2fa0f5baaaaf21dfbd388de6b.tar.gz
emacs-f1aa11971a74b7b2fa0f5baaaaf21dfbd388de6b.zip
Merge from trunk.
-rw-r--r--ChangeLog27
-rw-r--r--doc/emacs/emacs.texi4
-rw-r--r--doc/misc/ChangeLog9
-rw-r--r--etc/ChangeLog8
-rw-r--r--etc/NEWS4
-rw-r--r--etc/srecode/ede-autoconf.srt30
-rw-r--r--lisp/ChangeLog32
-rw-r--r--lisp/gnus/ChangeLog4
-rw-r--r--lisp/gnus/nnir.el2
-rw-r--r--lisp/iswitchb.el2
-rw-r--r--lisp/kmacro.el19
-rw-r--r--lisp/net/tramp.el19
-rw-r--r--lisp/profiler.el8
-rw-r--r--lisp/progmodes/python.el16
-rw-r--r--src/ChangeLog22
-rw-r--r--src/nsmenu.m49
-rw-r--r--src/nsterm.h3
-rw-r--r--src/nsterm.m90
-rw-r--r--test/ChangeLog5
-rw-r--r--test/automated/python-tests.el30
20 files changed, 301 insertions, 82 deletions
diff --git a/ChangeLog b/ChangeLog
index 5bd1570c9e9..2ddcd03bfcb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,22 +1,15 @@
12013-03-29 Aidan Gauland <aidalgol@no8wireless.co.nz> 12013-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
52013-03-27 Paul Eggert <eggert@cs.ucla.edu> 82013-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
102013-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
202013-03-25 Jan Djärv <jan.h.d@swipnet.se> 132013-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
932013-02-18 Aidan Gauland <aidalgol@no8wireless.co.nz>
94
95 * lisp/eshell/em-cmpl.el: Corrected "context-related help"
96 keybinding in commentary.
97
982013-02-21 Paul Eggert <eggert@cs.ucla.edu> 862013-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
1102013-02-18 Aidan Gauland <aidalgol@no8wireless.co.nz>
111
112 * doc/misc/eshell.texi: Added documentation for Eshell insert
113 output redirection operator, >>>.
114
1152013-02-15 Paul Eggert <eggert@cs.ucla.edu> 982013-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,
1374Bill Carpenter, Per Cederqvist, Hans Chalupsky, Chris Chase, Bob 1374Bill Carpenter, Per Cederqvist, Hans Chalupsky, Chris Chase, Bob
1375Chassell, Andrew Choi, Chong Yidong, Sacha Chua, Stewart Clamen, James 1375Chassell, Andrew Choi, Chong Yidong, Sacha Chua, Stewart Clamen, James
1376Clark, Mike Clarkson, Glynn Clements, Andrew Cohen, Daniel Colascione, 1376Clark, Mike Clarkson, Glynn Clements, Andrew Cohen, Daniel Colascione,
1377Edward O'Connor, Christoph Conrad, Ludovic Courtès, Andrew Csillag, 1377Christoph Conrad, Ludovic Courtès, Andrew Csillag,
1378Toby Cubitt, Baoqiu Cui, Doug Cutting, Mathias Dahl, Julien Danjou, Satyaki 1378Toby Cubitt, Baoqiu Cui, Doug Cutting, Mathias Dahl, Julien Danjou, Satyaki
1379Das, Vivek Dasmohapatra, Dan Davison, Michael DeCorte, Gary Delp, Nachum 1379Das, Vivek Dasmohapatra, Dan Davison, Michael DeCorte, Gary Delp, Nachum
1380Dershowitz, Dave Detlefs, Matthieu Devin, Christophe de Dinechin, Eri 1380Dershowitz, Dave Detlefs, Matthieu Devin, Christophe de Dinechin, Eri
@@ -1421,7 +1421,7 @@ Monnier, Keith Moore, Jan Moringen, Morioka Tomohiko, Glenn Morris,
1421Don Morrison, Diane Murray, Riccardo Murri, Sen Nagata, Erik Naggum, 1421Don Morrison, Diane Murray, Riccardo Murri, Sen Nagata, Erik Naggum,
1422Gergely Nagy, Nobuyoshi Nakada, Thomas Neumann, Mike Newton, Thien-Thi Nguyen, 1422Gergely Nagy, Nobuyoshi Nakada, Thomas Neumann, Mike Newton, Thien-Thi Nguyen,
1423Jurgen Nickelsen, Dan Nicolaescu, Hrvoje Niksic, Jeff Norden, 1423Jurgen Nickelsen, Dan Nicolaescu, Hrvoje Niksic, Jeff Norden,
1424Andrew Norman, Kentaro Ohkouchi, Christian Ohler, 1424Andrew Norman, Edward O'Connor, Kentaro Ohkouchi, Christian Ohler,
1425Kenichi Okada, Alexandre Oliva, Bob Olson, Michael Olson, Takaaki Ota, 1425Kenichi Okada, Alexandre Oliva, Bob Olson, Michael Olson, Takaaki Ota,
1426Pieter E. J. Pareit, Ross Patterson, David Pearson, Juan Pechiar, 1426Pieter E. J. Pareit, Ross Patterson, David Pearson, Juan Pechiar,
1427Jeff Peck, Damon Anton Permezel, Tom Perrine, William M. Perry, Per 1427Jeff 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 @@
12013-03-27 Aidan Gauland <aidalgol@no8wireless.co.nz>
2
3 * eshell.texi: Updated manual to reflect changes.
4
12013-03-18 Michael Albinus <michael.albinus@gmx.de> 52013-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
24162013-02-18 Aidan Gauland <aidalgol@no8wireless.co.nz>
2417
2418 * eshell.texi: Added documentation for Eshell insert
2419 output redirection operator, >>>.
2420
24122011-02-18 Glenn Morris <rgm@gnu.org> 24212011-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 @@
12013-03-30 Leo Liu <sdl.web@gmail.com>
2
3 * NEWS: Mention `kmacro-to-register' and new eldoc feature.
4
52013-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
12013-03-21 Eric Ludlam <zappo@gnu.org> 92013-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.
diff --git a/etc/NEWS b/etc/NEWS
index 06a5db2b1bd..1d416dd3737 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -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.
83Eg View mode, etc. 83Eg 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:
111use `electric-indent-mode' instead. 113use `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
20set mode "autoconf-mode" 22set mode "autoconf-mode"
21set escape_start "{{" 23set escape_start "{{"
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 737a91e2e4a..d1b827966de 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,25 @@
12013-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
72013-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
132013-03-30 Chong Yidong <cyd@gnu.org>
14
15 * iswitchb.el (iswitchb-read-buffer): Fix typo.
16
172013-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
12013-03-30 Teodor Zlatanov <tzz@lifelogs.com> 232013-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
812013-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
592013-03-26 Stefan Monnier <monnier@iro.umontreal.ca> 862013-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
10842013-02-18 Aidan Gauland <aidalgol@no8wireless.co.nz>
1085
1086 * eshell/em-cmpl.el: Corrected "context-related help"
1087 keybinding in commentary.
1088
10572013-02-18 Michael Heerdegen <michael_heerdegen@web.de> 10892013-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 @@
12013-03-30 Andrew Cohen <cohen@bu.edu>
2
3 * nnir.el (nnir-method-default-engines): Fix typo.
4
12013-03-29 Andrew Cohen <cohen@bu.edu> 52013-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
585Add an entry here when adding a new search engine.") 585Add 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].
619A prefix argument serves as a repeat count. Zero means repeat until error. 619A prefix argument serves as a repeat count. Zero means repeat until error.
620MACRO defaults to `last-kbd-macro'.
620 621
621When you call the macro, you can call the macro again by repeating 622When you call the macro, you can call the macro again by repeating
622just the last key in the key sequence that you used to call this 623just 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.
1667The functions `tramp-*-handle-expand-file-name' call `expand-file-name' 1665The functions `tramp-*-handle-expand-file-name' call `expand-file-name'
1668locally on a remote file name. When the local system is a W32 system 1666locally on a remote file name. When the local system is a W32 system
1669but the remote system is Unix, this introduces a superfluous drive 1667but the remote system is Unix, this introduces a superfluous drive
1670letter into the file name. This function removes it." 1668letter 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.")
638These make `python-indent-calculate-indentation' subtract the value of 638These 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.
643These make `python-indent-calculate-indentation' subtract the
644value of `python-indent-offset' when `python-indent-context' is
645AFTER-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 @@
12013-03-30 Darren Ho <darren.hoo@gmail.com> (tiny change)
2
3 * nsmenu.m (showAtX:Y:for:): setLevel to
4 NSPopUpMenuWindowLevel (Bug#13998).
5
62013-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
12013-03-29 Dmitry Antipov <dmantipov@yandex.ru> 232013-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. */
92void
93x_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
507void
508x_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);
792extern NSColor *ns_lookup_indexed_color (unsigned long idx, struct frame *f); 792extern NSColor *ns_lookup_indexed_color (unsigned long idx, struct frame *f);
793extern unsigned long ns_index_color (NSColor *color, struct frame *f); 793extern unsigned long ns_index_color (NSColor *color, struct frame *f);
794extern void ns_free_indexed_color (unsigned long idx, struct frame *f); 794extern void ns_free_indexed_color (unsigned long idx, struct frame *f);
795extern const char *ns_get_pending_menu_title ();
796extern void ns_check_menu_open (NSMenu *menu);
797extern 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
242static int menu_will_open_state = MENU_NONE;
243
244/* Saved position for menu click. */
245static CGPoint menu_mouse_point;
246
247/* Title for the menu to open. */
248static 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
3410const char *
3411ns_get_pending_menu_title ()
3412{
3413 return menu_pending_title;
3414}
3415
3416/* Check if menu open should be cancelled or continued as normal. */
3417void
3418ns_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. */
3457void
3458ns_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
3391static int 3481static int
3392ns_read_socket (struct terminal *terminal, struct input_event *hold_quit) 3482ns_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 @@
12013-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
12013-03-05 Paul Eggert <eggert@cs.ucla.edu> 62013-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 "
451Class 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