GNU bug report logs -
#23164
25.1.50; xref-find-definitions with local tags-file-name fails
Previous Next
Full log
View this message in rfc822 format
Hi again,
I tried again this time with the TAGS of Emacs itself (emacs/src/TAGS).
And like you have already established the problem does not occur in this
scenario. It does occur with other valid TAGS files, though.
After a little bit of tracing i think the difference that matters is
that emacs/src/TAGS includes two other TAGS file in the very last lines:
../lisp/TAGS,include
../lwlib/TAGS,include
I was not aware of this feature with TAGS files including other TAGS
files before but after invoking xref-find-definitions emacs is visiting
all 3 TAGS files (src/TAGS, lisp/TAGS and lwlib/TAGS). And
xref-find-definitions loops through them all.
If these last lines in emacs/src/TAGS are deleted the problem occurs.
It also occur with other simple TAGS files that do not include other
TAGS files. And the TAGS file i was using when observing the problem
the first time was this kind of simple TAGS file.
Same in master and emacs-25.
Regards,
/Johan
Óscar Fuentes <ofv <at> wanadoo.es> writes:
> Dmitry Gutov <dgutov <at> yandex.ru> 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)
This bug report was last modified 8 years and 170 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.