[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: goto and macro usage

From: Paul D. Smith
Subject: Re: goto and macro usage
Date: Mon, 12 Jul 2004 00:47:18 -0400

%% "J. Grant" <address@hidden> writes:

  jg> I noticed use of goto's in the latest cvs make source code.  Are
  jg> there any plans to restructure so that goto/branches are not
  jg> needed?


Personally, I don't agree with the attitude that gotos are always evil
and should never be used (certainly in C).  I find that, used in
specific ways, they make code much clearer by avoiding the useless noise
of deeply nested conditionals.

If you have specific gotos which you find confusing let me know; there
may well be some which could be modified (or at least commented).

  jg> There are several common macro's in
  jg> use. i.e. "record_waiting_files()", "return_STRING_N_HASH_2".
  jg> Could these be migrated to functions (inline or not), this would
  jg> aid readability and /debugability/ of the source code.

It seems to me that replacing the record_waiting_files() macro would
make the code far more complex to read than it is: maybe you could
provide an example of what you mean.

As for the hash stuff, those files (hash.c and hash.h) are taken
basically verbatim from the id-utils GNU package, as a fast, portable
hashing library.  I suspect they are implemented as they are for speed,
and although I'm not sure I would have used a similar implementation
method myself, I'm not really interested in making local changes to
files pulled in from other packages, unless there are actual bugs that
need to be fixed.

Please don't give up suggesting ways to clean up the code... it's not
that I'm not interested, but I do have other priorities as well.


 Paul D. Smith <address@hidden>          Find some GNU make tips at:
 http://www.gnu.org                      http://make.paulandlesley.org
 "Please remain calm...I may be mad, but I am a professional." --Mad Scientist

reply via email to

[Prev in Thread] Current Thread [Next in Thread]