From owner-freebsd-hackers@FreeBSD.ORG Tue Mar 10 22:24:33 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6652B106564A; Tue, 10 Mar 2009 22:24:33 +0000 (UTC) (envelope-from delphij@delphij.net) Received: from tarsier.delphij.net (delphij-pt.tunnel.tserv2.fmt.ipv6.he.net [IPv6:2001:470:1f03:2c9::2]) by mx1.freebsd.org (Postfix) with ESMTP id 03C858FC20; Tue, 10 Mar 2009 22:24:33 +0000 (UTC) (envelope-from delphij@delphij.net) Received: from tarsier.geekcn.org (tarsier.geekcn.org [211.166.10.233]) (using TLSv1 with cipher ADH-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by tarsier.delphij.net (Postfix) with ESMTPS id BA8CD28448; Wed, 11 Mar 2009 06:24:31 +0800 (CST) Received: from localhost (tarsier.geekcn.org [211.166.10.233]) by tarsier.geekcn.org (Postfix) with ESMTP id 0E031EB60AB; Wed, 11 Mar 2009 06:24:31 +0800 (CST) X-Virus-Scanned: amavisd-new at geekcn.org Received: from tarsier.geekcn.org ([211.166.10.233]) by localhost (mail.geekcn.org [211.166.10.233]) (amavisd-new, port 10024) with ESMTP id 44E0whA1uH9f; Wed, 11 Mar 2009 06:24:26 +0800 (CST) Received: from charlie.delphij.net (adsl-76-237-33-62.dsl.pltn13.sbcglobal.net [76.237.33.62]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by tarsier.geekcn.org (Postfix) with ESMTPSA id A6909EB571C; Wed, 11 Mar 2009 06:24:24 +0800 (CST) DomainKey-Signature: a=rsa-sha1; s=default; d=delphij.net; c=nofws; q=dns; h=message-id:date:from:reply-to:organization:user-agent: mime-version:to:cc:subject:references:in-reply-to: x-enigmail-version:openpgp:content-type:content-transfer-encoding; b=Z0NP4nXiKXqh3NLEAhqKyGFCkgvc7HDZwx/05nUsqxzREN3g9mBJtbEdnzmZC5L5B LoBK0CEVkvCXOD0+oEJwA== Message-ID: <49B6E895.9040701@delphij.net> Date: Tue, 10 Mar 2009 15:24:21 -0700 From: Xin LI Organization: The FreeBSD Project User-Agent: Thunderbird 2.0.0.19 (X11/20090217) MIME-Version: 1.0 To: =?ISO-8859-1?Q?G=E1bor_K=F6vesd=E1n?= References: <49B6DC95.9070607@FreeBSD.org> <20090310215512.GI31961@hoeg.nl> <49B6E30F.7020205@FreeBSD.org> In-Reply-To: <49B6E30F.7020205@FreeBSD.org> X-Enigmail-Version: 0.95.7 OpenPGP: id=18EDEBA0; url=http://www.delphij.net/delphij.asc Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit Cc: Ed Schouten , FreeBSD Hackers Subject: Re: fgetc doubts X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: d@delphij.net List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 10 Mar 2009 22:24:33 -0000 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi, Gábor, Gábor Kövesdán wrote: > Ed Schouten escribió: >> * Gábor Kövesdán wrote: >> >>> Hello, >>> >>> I have a problem when reading files with fgetc when a 0xff character >>> comes. In my code the reading stops at that point as if EOF had been >>> reached, but that's not actually the case. >>> The code is here: >>> http://p4web.freebsd.org/@md=d&cd=//&c=Nsd@//depot/projects/soc2008/gabor_textproc/grep/file.c?ac=64&rev1=40 >>> >>> And the problem occurs in grep_fgetln() when the buffers is being >>> filled in: >>> for (; i < bufsiz && !grep_feof(f); i++) >>> binbuf[i] = grep_fgetc(f); >>> >>> Thanks in advance, >>> >> >> Sign extension bug? >> > I tried to substitute everything with int, because fgetc can return some > error code afaik, but using int didn't help. Is binbuf[] an array of char or unsigned char? If it's signed char then you may want something like ch = binbufptr[0] & 0xff I guess. Cheers, - -- Xin LI http://www.delphij.net/ FreeBSD - The Power to Serve! -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.11 (FreeBSD) iEYEARECAAYFAkm26JUACgkQi+vbBBjt66CePwCgtXlqAYcdP6G1EUUtGk0nu7vD I1sAoIJ+Hpop5mIHDdbfcXAbwMsqht2P =A8DH -----END PGP SIGNATURE-----