I've genxref'ed the courier sources and when I look for a function call, lxr tells me 5 places in the code where it has seen it. "grep -r -I" for the same call shows 20 occurences in 14 files.
How come and how to fix?
Cheers
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
just in case: here it's:
mdione@tempest:~$ ctags-exuberant --version
Exuberant Ctags 5.2.2, Copyright (C) 1996-2001 Darren Hiebert
Compiled: Feb 17 2002, 15:21:28
Addresses: <dhiebert@users.sourceforge.net>, http://ctags.sourceforge.net
Optional compiled features: +wildcards, +regex
m
and lxr 0.9.1
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Missing references are not caused by ectags as ectags is only used to find identifiers.
Once ectags has found all the identifiers, each source file is then processed again, and each candidate string is checked to see if it is an identifier, and if so it is entered into the references table.
The problem is that the tokenisation of the source files to discover candidate strings is based on some dodgy perl regexps (see referencefile() in Generic.pm and LXR::SimpleParse). It is possible for these to get confused and not properly split up a line into tokens for checking.
The best way to solve this would be for you to step through referencefile() for one of your source files where lxr does not find all the references, and see if you can find out what's going wrong.
Alternatively, post the file that shows the problem to the lxr-developer list (membership required) and someone may be able to help.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Salve all,
I've genxref'ed the courier sources and when I look for a function call, lxr tells me 5 places in the code where it has seen it. "grep -r -I" for the same call shows 20 occurences in 14 files.
How come and how to fix?
Cheers
Yes, I see similar behaviour with a python sourcecode (gnu-enterprise). I guess it due something in e-ctags. can someone confirm this?
just in case: here it's:
mdione@tempest:~$ ctags-exuberant --version
Exuberant Ctags 5.2.2, Copyright (C) 1996-2001 Darren Hiebert
Compiled: Feb 17 2002, 15:21:28
Addresses: <dhiebert@users.sourceforge.net>, http://ctags.sourceforge.net
Optional compiled features: +wildcards, +regex
m
and lxr 0.9.1
Missing references are not caused by ectags as ectags is only used to find identifiers.
Once ectags has found all the identifiers, each source file is then processed again, and each candidate string is checked to see if it is an identifier, and if so it is entered into the references table.
The problem is that the tokenisation of the source files to discover candidate strings is based on some dodgy perl regexps (see referencefile() in Generic.pm and LXR::SimpleParse). It is possible for these to get confused and not properly split up a line into tokens for checking.
The best way to solve this would be for you to step through referencefile() for one of your source files where lxr does not find all the references, and see if you can find out what's going wrong.
Alternatively, post the file that shows the problem to the lxr-developer list (membership required) and someone may be able to help.