From owner-freebsd-ports@FreeBSD.ORG Wed Jan 26 06:06:32 2005 Return-Path: Delivered-To: freebsd-ports@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2EEDE16A4CE for ; Wed, 26 Jan 2005 06:06:32 +0000 (GMT) Received: from priv-edtnes56.telusplanet.net (outbound01.telus.net [199.185.220.220]) by mx1.FreeBSD.org (Postfix) with ESMTP id BAF9243D46 for ; Wed, 26 Jan 2005 06:06:31 +0000 (GMT) (envelope-from cpressey@catseye.mine.nu) Received: from catseye.biscuit.boo ([154.20.76.195]) by priv-edtnes56.telusplanet.net (InterMail vM.6.01.04.00 201-2131-118-20041027) with SMTP <20050126060631.ULOS5691.priv-edtnes56.telusplanet.net@catseye.biscuit.boo> for ; Tue, 25 Jan 2005 23:06:31 -0700 Date: Tue, 25 Jan 2005 22:06:39 -0800 From: Chris Pressey To: freebsd-ports@freebsd.org Message-Id: <20050125220639.2a83e7ed.cpressey@catseye.mine.nu> In-Reply-To: <41F72FBD.2040906@camber-thrust.net> References: <41F6F431.6060005@tenebras.com> <1106704507.16118.14.camel@shumai.marcuscom.com> <41F72FBD.2040906@camber-thrust.net> Organization: Cat's Eye Technologies X-Mailer: Sylpheed version 1.0.0rc (GTK+ 1.2.10; i386-portbld-freebsd4.9) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Subject: Re: FreeBSD Port: qmail-1.03_3 X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 Jan 2005 06:06:32 -0000 On Tue, 25 Jan 2005 21:50:53 -0800 Michael Sierchio wrote: > Joe Marcus Clarke wrote: > > >>- while ((k > i) && (cmds.s[k - 1] == ' ') || (cmds.s[k - 1] == '\t')) > > > Actually, if k is less than or equal to i and cmds.s[k-1] is a tab, then > > the first bit of code evaluates to true > > if k is less than or equal to i, none of the rest of the statements > are evaluated. Wow, then GCC must be REALLY REALLY broken! Observe: int a(int x) { printf("evaluating a\n"); return x; } int b(int x) { printf("evaluating b\n"); return x; } int c(int x) { printf("evaluating c\n"); return x; } int main() { printf("a(0) && b(5) || c(5) result: %d\n", a(0) && b(5) || c(5)); printf("a(1) && b(5) || c(5) result: %d\n", a(1) && b(5) || c(5)); } -------[ output ]------ evaluating a evaluating c a(0) && b(5) || c(5) result: 1 evaluating a evaluating b a(1) && b(5) || c(5) result: 1 -------[ output ]------ > They don't make C programmers like they used to! You can say that again! -Chris