Subject: Re: bug#23164: 25.1.50; xref-find-definitions with local tags-file-name fails

From: Óscar Fuentes <[email-masked]>
Date: Mon, 04 Apr 2016 03:52:31 +0200

Dmitry Gutov <[email-masked]> writes:

> Thanks for the report, but that doesn't seem to be the case here. At
> least if I replace "/dev/zero" with "~/vc/emacs/src/TAGS", the
> scenario doesn't lead to an error (I just get "not found"), and if I
> also use e.g. "CALLN" instead of "foo", the jump to the destination
> occurs as expected.

I can reproduce it here with an existing TAGS file, on emacs -Q.

GNU Emacs 25.0.92.3 (x86_64-unknown-linux-gnu, X toolkit) of 2016-04-03

at commit fc3cd53900eb5e80b91b6d2615b3800fd2f59c16

Debugger entered--Lisp error: (wrong-type-argument stringp nil)
  expand-file-name(nil)
  tags-expand-table-name(nil)
  visit-tags-table-buffer(t)
  etags--xref-find-definitions("foo")
  #[514 "\300!\207" [etags--xref-find-definitions] 4 "\n\n(fn BACKEND SYMBOL)"](etags "foo")
  apply(#[514 "\300!\207" [etags--xref-find-definitions] 4 "\n\n(fn BACKEND SYMBOL)"] etags "foo")
  xref-backend-definitions(etags "foo")
  xref--find-xrefs("foo" definitions "foo" nil)
  xref--find-definitions("foo" nil)
  xref-find-definitions("foo")
  eval((xref-find-definitions "foo") nil)
  elisp--eval-last-sexp(nil)
  eval-last-sexp(nil)
  funcall-interactively(eval-last-sexp nil)
  call-interactively(eval-last-sexp nil nil)
  command-execute(eval-last-sexp)