Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!rutgers!sri-spam!mordor!lll-crg!seismo!mcvax!cernvax!jmg From: jmg@cernvax.UUCP (jmg) Newsgroups: net.micro.atari16 Subject: Re: Megamax bugs and queries Message-ID: <387@cernvax.UUCP> Date: Tue, 4-Nov-86 10:53:22 EST Article-I.D.: cernvax.387 Posted: Tue Nov 4 10:53:22 1986 Date-Received: Wed, 5-Nov-86 06:20:22 EST References: <381@cernvax.UUCP> <1333@batcomputer.TN.CORNELL.EDU> Reply-To: jmg@cernvax.UUCP (Mike Gerard) Distribution: world Organization: CERN, Geneva/Switzerland Lines: 12 In article <1333@batcomputer.TN.CORNELL.EDU> braner@batcomputer.UUCP (braner) writes: >A few answers/suggestions: > > Never put a function call inside a macro! E.g.: isalpha(c) is >a macro (defined in ctype.h): > > #define isalpha(c) (c>='A' && c<='Z' || c>='a' && c<='z') May I suggest that the real problem is the lousy way that the macro is defined! Look at the BSD4.2 macro to see how things should be done. Library macros should be pretty well equivalent to library functions, with no side effects.