From mboxrd@z Thu Jan 1 00:00:00 1970 To: 9fans@cse.psu.edu Subject: Re: [9fans] plan or side effect From: geoff@collyer.net MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit Message-Id: <20020306102429.671431999B@mail.cse.psu.edu> Date: Wed, 6 Mar 2002 02:24:03 -0800 Topicbox-Message-UUID: 606cb7e4-eaca-11e9-9e20-41e7f4b1d025 Unfortunately #define StrEq(a,b) (*(a)==*(b) && strcmp((a)+1,(b)+1)==0) is in general incorrect: *a can equal *b and they can both be NUL bytes, unless you know for certain that one argument will always be a (preferably constant) non-empty string. A correct version is #define STREQ(a,b) (*(a)==*(b) && strcmp((a),(b))==0)