From d9f5c64f6e49bff22fce355961cd828624430da1 Mon Sep 17 00:00:00 2001 From: Charles Lee Date: Wed, 26 Jun 2013 13:59:25 -0700 Subject: [PATCH] misc/emacs: fix godef-jump on Windows. Fixes #5555. R=adonovan, dominik.honnef, iant CC=gobot, golang-dev https://golang.org/cl/9762045 --- misc/emacs/go-mode.el | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/misc/emacs/go-mode.el b/misc/emacs/go-mode.el index d3c425cdca..c61c2545e6 100644 --- a/misc/emacs/go-mode.el +++ b/misc/emacs/go-mode.el @@ -873,16 +873,18 @@ will be commented, otherwise they will be removed completely." (defun godef--find-file-line-column (specifier) "Given a file name in the format of `filename:line:column', visit FILENAME and go to line LINE and column COLUMN." - (let* ((components (split-string specifier ":")) - (line (string-to-number (nth 1 components))) - (column (string-to-number (nth 2 components)))) - (with-current-buffer (find-file (car components)) - (goto-char (point-min)) - (forward-line (1- line)) - (beginning-of-line) - (forward-char (1- column)) - (if (buffer-modified-p) - (message "Buffer is modified, file position might not have been correct"))))) + (if (not (string-match "\\(.+\\):\\([0-9]+\\):\\([0-9]+\\)" specifier)) + (error "Unexpected godef output: %s" specifier) + (let ((filename (match-string 1 specifier)) + (line (string-to-number (match-string 2 specifier))) + (column (string-to-number (match-string 3 specifier)))) + (with-current-buffer (find-file filename) + (goto-char (point-min)) + (forward-line (1- line)) + (beginning-of-line) + (forward-char (1- column)) + (if (buffer-modified-p) + (message "Buffer is modified, file position might not have been correct")))))) (defun godef--call (point) "Call godef, acquiring definition position and expression