* lisp/progmodes/python.el (python-pdbtrack-get-source-buffer): Use

compilation-message if available to find real filename.
This commit is contained in:
Leo Liu 2012-04-26 00:46:01 +08:00
parent daf75653c2
commit 784e7d6eeb
2 changed files with 16 additions and 6 deletions

View file

@ -1,3 +1,8 @@
2012-04-25 Leo Liu <sdl.web@gmail.com>
* progmodes/python.el (python-pdbtrack-get-source-buffer): Use
compilation-message if available to find real filename.
2012-04-25 Chong Yidong <cyd@gnu.org>
* vc/diff-mode.el (diff-setup-whitespace): New function.

View file

@ -2606,9 +2606,17 @@ problem."
(let* ((filename (match-string 1 block))
(lineno (string-to-number (match-string 2 block)))
(funcname (match-string 3 block))
(msg (get-text-property 0 'compilation-message filename))
(loc (and msg (compilation--message->loc msg)))
funcbuffer)
(cond ((file-exists-p filename)
(cond ((and loc (markerp (compilation--loc->marker loc)))
(setq funcbuffer (marker-buffer (compilation--loc->marker loc)))
(list (with-current-buffer funcbuffer
(line-number-at-pos (compilation--loc->marker loc)))
funcbuffer))
((file-exists-p filename)
(list lineno (find-file-noselect filename)))
((setq funcbuffer (python-pdbtrack-grub-for-buffer funcname lineno))
@ -2626,15 +2634,12 @@ problem."
(buffer-substring
(point-min) (point-max)))
)))))))
(list lineno funcbuffer))
(list lineno funcbuffer))
((= (elt filename 0) ?\<)
(format "(Non-file source: '%s')" filename))
(t (format "Not found: %s(), %s" funcname filename)))
)
)
)
(t (format "Not found: %s(), %s" funcname filename))))))
(defun python-pdbtrack-grub-for-buffer (funcname _lineno)
"Find recent Python mode buffer named, or having function named FUNCNAME."