I'm working on C sources, therefore it is very useful
to have a tags file. I'm using the stock ctags, that
turns out to be etags.
I'm not used to etags, and I was a bit surprised by the
fact it is taking a list of files as arguments, but
whatever, I can do this:
find ... -exec ctags {} +
Easy.
Then it turns out that by doing so I'm getting way too
much information, as all the arch- and board-specific
information should be filtered out.
The script became something like this:
find ... |
while read -r f; do
case "$f" in
./board/$brand/$boardname/*) ;;
./board/*) continue ;; # skip
*) ;;
esac
ctags -a "$f"
done
This seems to make sense, but for some reason the
resulting tags file is incomplete.
Using tail -F on it, I found that it gets truncated
despite the -a flag, and there's no obvious explanation
in the manpage.
While I suspect that there must be a reason for it,
perhaps buried in the very unreadable info pages that
typically come with GNU software, I think it would be
easier with exuberant-ctagss.
Heh, of course I'm sure no files contain stupid spaces
etc. I'm skipping -print0 and friends on purpose.
On the installation of exuberant-ctags on gentoo: I
fond it extremely gentle: after the installation via
emerge (emerge -vta dev-util/ctags) a message informs
me that I should select which of the two alternatives
should be used as `ctags`. This is similar to how
Debian works.