From owner-p4-projects@FreeBSD.ORG Mon May 31 05:37:00 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id DF4771065674; Mon, 31 May 2010 05:36:59 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 96216106566B for ; Mon, 31 May 2010 05:36:59 +0000 (UTC) (envelope-from gcooper@FreeBSD.org) Received: from repoman.freebsd.org (unknown [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 6A1828FC0A for ; Mon, 31 May 2010 05:36:59 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id o4V5axRX016174 for ; Mon, 31 May 2010 05:36:59 GMT (envelope-from gcooper@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o4V5axj6016172 for perforce@freebsd.org; Mon, 31 May 2010 05:36:59 GMT (envelope-from gcooper@FreeBSD.org) Date: Mon, 31 May 2010 05:36:59 GMT Message-Id: <201005310536.o4V5axj6016172@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gcooper@FreeBSD.org using -f From: Garrett Cooper To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 179001 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 31 May 2010 05:37:00 -0000 http://p4web.freebsd.org/@@179001?ac=10 Change 179001 by gcooper@gcooper-bayonetta on 2010/05/31 05:36:19 size_t is unsigned; off_t isn't. Switch to off_t in write_file. Drop the buffered I/O through stdio. Affected files ... .. //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/lib/libpkg/file.c#20 edit .. //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/lib/libpkg/pkg.h#13 edit Differences ... ==== //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/lib/libpkg/file.c#20 (text+ko) ==== @@ -269,32 +269,29 @@ * Return the number of bytes successfully written out to str or -1 on * failure. */ -size_t +off_t write_file(const char *name, const char *str) { - FILE *fp = NULL; + int fd = -1; + int serrno; off_t written_len = -1; size_t len; - int serrno; errno = 0; - fp = fopen(name, "w"); - if (fp != NULL) { + len = strlen(str); - len = strlen(str); - written_len = fwrite(str, 1, len, fp); + if ((fd = open(name, O_WRONLY | O_CREAT)) != -1) { - if (fp != NULL) { - serrno = errno; - (void) fclose(fp); - if (serrno != 0) - errno = serrno; - } + written_len = write(fd, str, len); + serrno = errno; + (void) close(fd); + if (serrno != 0) + errno = serrno; } - return (size_t) (errno == 0 && written_len > 0 ? written_len : -1); + return (off_t) (errno == 0 && written_len > 0 ? written_len : -1); } ==== //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/lib/libpkg/pkg.h#13 (text+ko) ==== @@ -175,7 +175,7 @@ const char *fileGetURL(const char *, const char *, int); char *fileFindByPath(const char *, const char *); char *fileGetContents(const char *); -size_t write_file(const char *, const char *); +off_t write_file(const char *, const char *); int move_file(const char *, const char *, const char *); int delete_hierarchy(const char *, Boolean, Boolean); char* unpack_to_buffer(const char *, const char *);