From 132579d3e8faeb95087aa972bfbbdf2ab9a35e03 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Wed, 30 Aug 2006 21:10:10 +0000 Subject: [PATCH] (python-eldoc-function): Re-enable quit while waiting for process. --- lisp/ChangeLog | 9 +++++++-- lisp/progmodes/python.el | 38 ++++++++++++++++++++------------------ 2 files changed, 27 insertions(+), 20 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index d8ec23f04e5..a82cdbb83d8 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2006-08-30 Stefan Monnier + + * progmodes/python.el (python-eldoc-function): Re-enable quit while + waiting for process. + 2006-08-30 YAMAMOTO Mitsuharu * term/mac-win.el (mac-string-to-utxt): If adjustment for MacJapanese @@ -5,8 +10,8 @@ 2006-08-29 Romain Francoise - * startup.el (normal-splash-screen, fancy-splash-screens): Make - buffer read-only and arrange to enter view mode if necessary. + * startup.el (normal-splash-screen, fancy-splash-screens): + Make buffer read-only and arrange to enter view mode if necessary. 2006-08-29 Chong Yidong diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index ca22e36cb40..66d8cd4714f 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@ -1599,24 +1599,26 @@ Only works when point is in a function name, not its arg list, for instance. Assumes an inferior Python is running." (let ((symbol (with-syntax-table python-dotty-syntax-table (current-word)))) - ;; First try the symbol we're on. - (or (and symbol - (python-send-receive (format "emacs.eargs(%S, %s)" - symbol python-imports))) - ;; Try moving to symbol before enclosing parens. - (let ((s (syntax-ppss))) - (unless (zerop (car s)) - (when (eq ?\( (char-after (nth 1 s))) - (save-excursion - (goto-char (nth 1 s)) - (skip-syntax-backward "-") - (let ((point (point))) - (skip-chars-backward "a-zA-Z._") - (if (< (point) point) - (python-send-receive - (format "emacs.eargs(%S, %s)" - (buffer-substring-no-properties (point) point) - python-imports))))))))))) + ;; This is run from timers, so inhibit-quit tends to be set. + (with-local-quit + ;; First try the symbol we're on. + (or (and symbol + (python-send-receive (format "emacs.eargs(%S, %s)" + symbol python-imports))) + ;; Try moving to symbol before enclosing parens. + (let ((s (syntax-ppss))) + (unless (zerop (car s)) + (when (eq ?\( (char-after (nth 1 s))) + (save-excursion + (goto-char (nth 1 s)) + (skip-syntax-backward "-") + (let ((point (point))) + (skip-chars-backward "a-zA-Z._") + (if (< (point) point) + (python-send-receive + (format "emacs.eargs(%S, %s)" + (buffer-substring-no-properties (point) point) + python-imports)))))))))))) ;;;; Info-look functionality. -- 2.39.2