[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Bug-gnubg] Coding Styles - Indentation / Tabs / Spaces
From: |
Michael Petch |
Subject: |
Re: [Bug-gnubg] Coding Styles - Indentation / Tabs / Spaces |
Date: |
Fri, 26 Oct 2012 18:01:42 -0600 |
User-agent: |
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:13.0) Gecko/20120614 Thunderbird/13.0.1 |
On 2012-10-26 16:54, Russ Allbery wrote:
> Of course, any IDE or tags system will let you do this more easily and
> without regard for formatting, but when I'm hacking on code or
> investigating some problem, I frequently find that poking about with a
> pager, grep, and a UNIX shell is faster than diving into an IDE, so these
> sorts of neat tricks can be quite helpful.
I appreciate the feedback, and I think (and it is a personal opinion)
that I'd probably stick to a more standardized format for C functions,
although others opinions on the matter would be welcome. As you point
out a tags system works well for this (and I use this procedure quite
often when I'm working from a command line).
Just in case anyone reading hasn't used a tags system, it is a utility
that usually parses any of the common languages and dumps all the
identifiers and their context to a file/stdout so that one can easily
search for occurrences more easily with utilities like grep. Many of the
text editors (including vim,vi,emacs etc) can actually use a ctags
generated file.
It might be easier to find functions using grep directly (and formatting
the source a certain way as you suggest) but finding global variable
definitions can be more problematic.
Generally what I do is use ctags (it handles a lot of languages, not
just C) to process a directory, dump the tags to the file once and from
then on I simply grep the tags file rather than rescan a directory. In
the case of gnubg running ctags and outputting to a file allows me to do
this:
ctags -R -x >tagfile
and then when needed:
grep -w ^main tagfile
main function 41 makeweights.c extern int main( int
argc, /*lint -e{818}*/char *argv[] )
main function 53 bearoffdump.c main( int argc, char
**argv ) {
main function 67 mec.c int main (int argc,
char **argv)
main function 183 lib/mt19937ar.c int main(void)
main function 536 config.guess main()
main function 546 simpleboard.c main(int argc, char
*argv[])
main function 598 makehyper.c main ( int argc, char
**argv ) {
main function 682 config.guess main ()
main function 1293 makebearoff.c extern int main( int
argc, char **argv )
main function 1342 config.guess main ()
main function 1763 non-src/sgf_y.c int main( int argc,
char *argv[] ) {
main function 1855 sgf_y.c int main( int argc,
char *argv[] ) {
main function 1864 external_y.c main( int argc, char
*argv[] ) {
main function 1864 non-src/external_y.c main( int argc,
char *argv[] ) {
main function 4743 gnubg.c int main(int argc,
char *argv[])
I find ctags convenient. The output above was from the cross reference
output which includes global variables, macros, functions etc.
--
Michael Petch
CApp::Sysware Consulting Ltd.
OpenPGP FingerPrint=D81C 6A0D 987E 7DA5 3219 6715 466A 2ACE 5CAE 3304