all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Frank Schmitt <ich@frank-schmitt.net>
Subject: Re: [PATCH, RFC] etags/ctags v22.0.92 break Linux kernel `make TAGS/tags`
Date: Wed, 03 Jan 2007 15:33:10 +0100	[thread overview]
Message-ID: <m31wmc41uh.fsf@mid.gehheimdienst.de> (raw)
In-Reply-To: m3d55w48n8.fsf@mid.gehheimdienst.de

Frank Schmitt <ich@frank-schmitt.net> writes:

> Sorry, I don't have an example at hand, because my switch was somewhere
> in summer. But I used emacs CVS head etags till then and had problems,
> that a special case of templated functions in C++ were not listed in
> TAGS. I'll switch back to Emacs etags and report when I find something
> which Emacs etags doesn't tag.

I did some testing and found out that I just didn't RTFM. Emacs etags
defaults to not TAG member variables of C++ classes (which doesn't make
much sense in my eyes) while exuberant ctags does tag those. However
after aliasing etags to etags --members it works just as well for me as
exuberant ctags does.

One question though: Say I have a class like this:

template <typename ipc3dIslandHierarchy, typename ipc3dChannelType, unsigned numOfChannels, typename ipc3dLinkControl, typename ipc3dLinkControlSetup>
class CMultiChannelCSC19_3D
{
public:
	ipc3dLinkControlSetup setup;
	ipc3dCSC19<ipc3dIslandHierarchy,ipcMultiChannel<ipc3dChannelType,numOfChannels>,ipcMultiChannel<ipc3dChannelType,numOfChannels>,ipc3dLinkControl> mcCSC; 
	advTimer cscInitTime;
	advTimer cscSegmentationTime;
	advTimer outputTime;
	void execute(CPluginCSCState& p, int w, int h, int d, const ipcMultiChannel<ipc3dChannelType,numOfChannels>* orgImage, ipcMultiChannel<ipc3dChannelType,numOfChannels>* regionImage, unsigned int* mapImage, ipc3dBlockCompressedLabelImage* compressedMapImage=NULL)
	{
		if (orgImage!=NULL)
		{
				  //do something
		}
	}
};

what Emacs etags generates is

foo.h,936
template <typename ipc3dIslandHierarchy,1,0
template <typename ipc3dIslandHierarchy, typename ipc3dChannelType,1,0
template <typename ipc3dIslandHierarchy, typename ipc3dChannelType, unsigned numOfChannels,1,0
template <typename ipc3dIslandHierarchy, typename ipc3dChannelType, unsigned numOfChannels, typename ipc3dLinkControl,1,0
class CMultiChannelCSC19_3D2,151
	ipc3dLinkControlSetup setup;CMultiChannelCSC19_3D::setup5,189
	ipc3dCSC19<CMultiChannelCSC19_3D::ipc3dCSC196,219
	ipc3dCSC19<ipc3dIslandHierarchy,ipcMultiChannel<ipc3dChannelType,numOfChannels>,ipcMultiChannel<ipc3dChannelType,numOfChannels>,ipc3dLinkControl> mcCSC;CMultiChannelCSC19_3D::mcCSC6,219
	advTimer cscInitTime;CMultiChannelCSC19_3D::cscInitTime7,374
	advTimer cscSegmentationTime;CMultiChannelCSC19_3D::cscSegmentationTime8,397
	advTimer outputTime;CMultiChannelCSC19_3D::outputTime9,428
	void execute(CMultiChannelCSC19_3D::execute10,450

while exuberant ctags skips those first four lines:

foo.h,680
class CMultiChannelCSC19_3DCMultiChannelCSC19_3D2,151
	ipc3dLinkControlSetup setup;setup5,189
	ipc3dCSC19<ipc3dIslandHierarchy,ipcMultiChannel<ipc3dChannelType,numOfChannels>,ipcMultiChannel<ipc3dChannelType,numOfChannels>,ipc3dLinkControl> mcCSC; mcCSC6,219
	advTimer cscInitTime;cscInitTime7,374
	advTimer cscSegmentationTime;cscSegmentationTime8,397
	advTimer outputTime;outputTime9,428
	void execute(CPluginCSCState& p, int w, int h, int d, const ipcMultiChannel<ipc3dChannelType,numOfChannels>* orgImage, ipcMultiChannel<ipc3dChannelType,numOfChannels>* regionImage, unsigned int* mapImage, ipc3dBlockCompressedLabelImage* compressedMapImage=NULL)execute10,450

what do they mean?

-- 
Did you ever realize how much text fits in eighty columns? If you now consider
that a signature usually consists of up to four lines, this gives you enough
space to spread a tremendous amount of information with your messages. So seize
this opportunity and don't waste your signature with bullshit nobody will read.

  reply	other threads:[~2007-01-03 14:33 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-12-24 20:01 [PATCH, RFC] etags/ctags v22.0.92 break Linux kernel `make TAGS/tags` Don Mullis
2006-12-25  5:41 ` Masatake YAMATO
2006-12-25 16:47   ` Don Mullis
2006-12-25 22:36     ` Francesco Potorti`
2006-12-26 14:13 ` Francesco Potorti`
2006-12-26 18:43   ` Don Mullis
2006-12-28  0:10     ` Francesco Potorti`
2006-12-28  5:48       ` Don Mullis
2006-12-28 10:21         ` Francesco Potorti`
2006-12-29 22:58         ` Richard Stallman
2006-12-30 20:36           ` Don Mullis
2006-12-31  1:46             ` Richard Stallman
2006-12-27  2:59   ` Richard Stallman
2006-12-30 12:15     ` Francesco Potorti`
2006-12-31  1:45       ` Richard Stallman
2007-01-02 11:41         ` Francesco Potorti`
2007-01-02 14:26           ` Frank Schmitt
2007-01-03  1:24             ` Francesco Potorti`
2007-01-03 12:06               ` Frank Schmitt
2007-01-03 14:33                 ` Frank Schmitt [this message]
     [not found]               ` <m38xgk47lc.fsf@mid.gehheimdienst.de>
2007-02-05  8:25                 ` Francesco Potorti`
2007-01-02 21:24           ` Richard Stallman
2007-01-03  0:40             ` Francesco Potorti`
2007-01-02 21:24           ` Eli Zaretskii
2007-01-03  0:42             ` Francesco Potorti`

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m31wmc41uh.fsf@mid.gehheimdienst.de \
    --to=ich@frank-schmitt.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.