From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: Alan Mackenzie Newsgroups: gmane.emacs.help Subject: Re: etags Date: Thu, 19 Jun 2003 09:36:01 +0000 Organization: muc.de e.V. -- private internet access Sender: help-gnu-emacs-bounces+gnu-help-gnu-emacs=m.gmane.org@gnu.org Message-ID: <160scb.f6.ln@acm.acm> References: NNTP-Posting-Host: main.gmane.org X-Trace: main.gmane.org 1056018389 27534 80.91.224.249 (19 Jun 2003 10:26:29 GMT) X-Complaints-To: usenet@main.gmane.org NNTP-Posting-Date: Thu, 19 Jun 2003 10:26:29 +0000 (UTC) Original-X-From: help-gnu-emacs-bounces+gnu-help-gnu-emacs=m.gmane.org@gnu.org Thu Jun 19 12:26:27 2003 Return-path: Original-Received: from monty-python.gnu.org ([199.232.76.173]) by main.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 19Swcd-00079e-00 for ; Thu, 19 Jun 2003 12:26:27 +0200 Original-Received: from localhost ([127.0.0.1] helo=monty-python.gnu.org) by monty-python.gnu.org with esmtp (Exim 4.20) id 19SwXb-00050C-6W for gnu-help-gnu-emacs@m.gmane.org; Thu, 19 Jun 2003 06:21:15 -0400 Original-Path: shelby.stanford.edu!newsfeed.stanford.edu!cyclone.bc.net!news.maxwell.syr.edu!newsfeed.icl.net!newsfeed.fjserv.net!newsfeed00.sul.t-online.de!newsfeed01.sul.t-online.de!t-online.de!news.belwue.de!news.tesion.net!news.space.net!news.muc.de!not-for-mail Original-Newsgroups: gnu.emacs.help Original-Lines: 59 Original-NNTP-Posting-Host: acm.muc.de Original-X-Trace: marvin.muc.de 1056017511 41110 193.149.49.134 (19 Jun 2003 10:11:51 GMT) Original-X-Complaints-To: news-admin@muc.de Original-NNTP-Posting-Date: 19 Jun 2003 10:11:51 GMT User-Agent: tin/1.4.5-20010409 ("One More Nightmare") (UNIX) (Linux/2.0.35 (i686)) Original-Xref: shelby.stanford.edu gnu.emacs.help:114576 Original-To: help-gnu-emacs@gnu.org X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , Errors-To: help-gnu-emacs-bounces+gnu-help-gnu-emacs=m.gmane.org@gnu.org Xref: main.gmane.org gmane.emacs.help:11068 X-Report-Spam: http://spam.gmane.org/gmane.emacs.help:11068 Kevin Dziulko wrote on Tue, 17 Jun 2003 08:09:13 -0400 (EDT): > Hello > I am looking for a way to get a list of all user defined #define's in some > C code that actually gets used. I was reading up a little on etags, and I > think it might help me with this. Has anyone done or seen anything close > to this? > Example: > #include > #define MSG1 "Hello, world!" > #define CONST1 42 > int main () > { > (void) printf("\n%s\n", MSG1); > return 0; > } > ///////////////// > Idealy, I would want something to say: > Line 7: MSG1 grep is your friend. "man grep" should tell you all you want to know about it (and a lot more besides). (I'm guessing you're on some sort of Unix system, by the way.) A command something like the following will give you the information you want: grep -n "^#define" *.c You probably won't like the exact form the info takes, so you might want to pipe it through a small script (written in something like sed or AWK or Python) to massage it into something more readable. The above command assumes that all your files.c are in the current directory. If they're not, you'll have to "find" them first, then do the above. Spend a few hours reading "man find"; it'll be time very well spent. Then you'll end up writing something like this: find . -name "*.c" -exec grep -n "^define" \{} \; -print > Perhaps this isn't the best place to post this. If you know a better > place, please let me know. It isn't really the best place, no. One of the groups on Unix shell commands would have been better. But what the heck, have a great day. > Thanks a lot! > Kevin -- Alan Mackenzie (Munich, Germany) Email: aacm@muuc.dee; to decode, wherever there is a repeated letter (like "aa"), remove half of them (leaving, say, "a").