diff options
author | Glenn Morris <rgm@gnu.org> | 2013-02-21 08:56:49 -0800 |
---|---|---|
committer | Glenn Morris <rgm@gnu.org> | 2013-02-21 08:56:49 -0800 |
commit | cfbf790d80eaa399afceecd9a6c3e2e76bca59b0 (patch) | |
tree | b2c7ea684fb8d24d5f51d6959aa38854e335d9b6 /lisp | |
parent | d20e6e9093f74ce2e435a3dac948df200e767405 (diff) | |
parent | 62cfd799f17a31188b3cdb9ffbe1421b4e6cba5d (diff) | |
download | emacs-cfbf790d80eaa399afceecd9a6c3e2e76bca59b0.tar.gz |
Merge from emacs-24; up to 2012-12-21T07:35:02Z!ueno@gnu.org
Diffstat (limited to 'lisp')
-rw-r--r-- | lisp/ChangeLog | 15 | ||||
-rw-r--r-- | lisp/net/tramp.el | 2 | ||||
-rw-r--r-- | lisp/progmodes/python.el | 65 |
3 files changed, 50 insertions, 32 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 4210740791f..6258293be7e 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,18 @@ +2013-02-21 Fabián Ezequiel Gallina <fgallina@cuca> + + * progmodes/python.el (python-info-current-defun): Enhance + match-data cluttering prevention. + +2013-02-21 Glenn Morris <rgm@gnu.org> + + * net/tramp.el (tramp-get-debug-buffer): Ensure outline.el is not + loaded while outline-regexp is let bound. (Bug#9584) + +2013-02-21 Fabián Ezequiel Gallina <fgallina@cuca> + + * progmodes/python.el (python-info-current-defun): Fix failed + defun name retrieval because of unwanted match-data cluttering. + 2013-02-21 Michael Albinus <michael.albinus@gmx.de> * net/tramp.el (tramp-ssh-controlmaster-template): Make it a diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el index 5305484e920..4bfe541f053 100644 --- a/lisp/net/tramp.el +++ b/lisp/net/tramp.el @@ -1354,6 +1354,8 @@ The outline level is equal to the verbosity of the Tramp message." (get-buffer-create (tramp-debug-buffer-name vec)) (when (bobp) (setq buffer-undo-list t) + ;; So it does not get loaded while outline-regexp is let-bound. + (require 'outline) ;; Activate `outline-mode'. This runs `text-mode-hook' and ;; `outline-mode-hook'. We must prevent that local processes ;; die. Yes: I've seen `flyspell-mode', which starts "ispell". diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index da56fe70329..f0f67d01845 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@ -2959,39 +2959,40 @@ not inside a defun." (type)) (catch 'exit (while (python-nav-beginning-of-defun 1) - (when (and - (or (not last-indent) - (< (current-indentation) last-indent)) - (or - (and first-run + (when (save-match-data + (and + (or (not last-indent) + (< (current-indentation) last-indent)) + (or + (and first-run + (save-excursion + ;; If this is the first run, we may add + ;; the current defun at point. + (setq first-run nil) + (goto-char starting-pos) + (python-nav-beginning-of-statement) + (beginning-of-line 1) + (looking-at-p + python-nav-beginning-of-defun-regexp))) + (< starting-pos (save-excursion - ;; If this is the first run, we may add - ;; the current defun at point. - (setq first-run nil) - (goto-char starting-pos) - (python-nav-beginning-of-statement) - (beginning-of-line 1) - (looking-at-p - python-nav-beginning-of-defun-regexp))) - (< starting-pos - (save-excursion - (let ((min-indent - (+ (current-indentation) - python-indent-offset))) - (if (< starting-indentation min-indent) - ;; If the starting indentation is not - ;; within the min defun indent make the - ;; check fail. - starting-pos - ;; Else go to the end of defun and add - ;; up the current indentation to the - ;; ending position. - (python-nav-end-of-defun) - (+ (point) - (if (>= (current-indentation) min-indent) - (1+ (current-indentation)) - 0)))))))) - (setq last-indent (current-indentation)) + (let ((min-indent + (+ (current-indentation) + python-indent-offset))) + (if (< starting-indentation min-indent) + ;; If the starting indentation is not + ;; within the min defun indent make the + ;; check fail. + starting-pos + ;; Else go to the end of defun and add + ;; up the current indentation to the + ;; ending position. + (python-nav-end-of-defun) + (+ (point) + (if (>= (current-indentation) min-indent) + (1+ (current-indentation)) + 0))))))))) + (save-match-data (setq last-indent (current-indentation))) (if (or (not include-type) type) (setq names (cons (match-string-no-properties 1) names)) (let ((match (split-string (match-string-no-properties 0)))) |