 open it in a new buffer"
   (interactive)
   (let ((taginfo (mural-read-tag (mural-infer-tagfile))))
-    (find-file (mural-tag-filename taginfo))
+    (find-file (mural-tag-absfilename taginfo))
     (goto-line (mural-tag-row taginfo))))
 
 (defvar ido-dynamic-last-query nil)

        (error "mural-server timeout"))
      )))

(defun mural-query-save-tag (query tagfile)
  "Run by ido-mode to refresh results on keypress.  Runs
QUERY (the current contents of the minibuffer) against
mural-current-tagfile, which was setup on entry to
ido-completing-read"
  (let ((qresult (mural-query query tagfile)))
    (setq mural-last-query-result qresult)
    (mapcar 'mural-tag-tagname qresult)))

(defun mural-parse-response (tagfile results)
  "RESULTS is a tab-delimited string of the format

(defun mural-tag-tagname (tag)
  (elt tag 0))
(defun mural-tag-filename (tag)
  (elt tag 1))
(defun mural-tag-absfilename (tag)
  (file-truename
   (concat
    (file-name-directory (elt tag 3))
    (mural-tag-filename tag))))

(defun mural-tag-row (tag)
  (elt tag 2))

