Subject: bug#28403: 25.2; find-tag works, but xref-find-definitions

From: Eli Zaretskii <[email-masked]>
Date: Mon, 11 Sep 2017 19:23:25 +0300

> Date: Mon, 11 Sep 2017 00:05 EDT
> From: Winston <[email-masked]>
> Cc: [email-masked], [email-masked]
> 
> Eli suggested:
> >>>  etags --regex="/[ \t]*\([^ \t]+\)[ \t]+_ARGS/\1/" ...
> 
> and in reply to my changes said:
> > It worked with your example.
> 
>    Yes.  The difference is a small one: "_ARGS[0-9]" only matches function
> definition lines, while using only "_ARGS" will also match declarations.

That's not a problem in practice, because your prototypes are laid out
differently: they have more than one symbol between the line beginning
and _ARGS.  But never mind.

> >>    [Too bad etags doesn't have a way of doing "s/[ \t]+_ARGS[0-9]*//" on
> >> the lines it normally finds...]
> 
> > Why do you need that?
> 
>    The idea was that instead of cluttering up the TAGS file with two
> lines for every tag, such as
> 
> 	foo _ARGS2^?foo^A50,100
> 	foo _ARGS2(^?50,100
> 
> as a result of using --regex, a post edit that allowed one to do
> "s/[ \t]+_ARGS[0-9]*//" could simply remove the _ARGS2 part and reduce
> the default etags line to:
> 
> 	foo(^?50,100
> 
> thus (I'm guessing) clarifying things a different way.

You shouldn't worry about that (and shouldn't look at TAGS anyway).
There will be extra entries there, but they should never get in your
way, as long as you use xref in its default "accurate" mode.