From: "Mark E." To: djgpp-workers AT delorie DOT com Date: Sun, 4 Feb 2001 12:40:14 -0500 MIME-Version: 1.0 Content-type: text/plain; charset=US-ASCII Content-transfer-encoding: 7BIT Subject: Re: lfilelength doc change Message-ID: <3A7D4DAE.28481.24E113@localhost> In-reply-to: <5.0.2.1.0.20010202202533.03ad6ec0@pop5.banet.net> References: <3A7ACD7F DOT 17659 DOT AE1F6A AT localhost> X-mailer: Pegasus Mail for Win32 (v3.12c) Reply-To: djgpp-workers AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: djgpp-workers AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk > OK by me, but then make it 2^63-1 instead of 2^64-2. 2^63-1 is the > largest *positive* integer that will fit into a "long long", if I'm not I made that change. lfilelength has also been adjusted to return EOVERFLOW when the file size is > 2^63-1 since that will cause a negative value to be returned. Index: libc/posix/sys/stat/lfilelen.txh =================================================================== RCS file: /cvs/djgpp/djgpp/src/libc/posix/sys/stat/lfilelen.txh,v retrieving revision 1.2 diff -c -p -r1.2 lfilelen.txh *** lfilelen.txh 2001/01/26 18:50:45 1.2 --- lfilelen.txh 2001/02/04 17:34:01 *************** The size of the file in bytes, or (if an *** 19,25 **** @var{errno} set to a value describing the cause of the failure. The return value is of type @code{long long} which allows file sizes of ! @math{2^64-2} bytes to be returned. Note that FAT16 limits files to near @math{2^31} bytes and FAT32 limits files to @math{2^32-2} bytes. @subheading Portability --- 19,25 ---- @var{errno} set to a value describing the cause of the failure. The return value is of type @code{long long} which allows file sizes of ! @math{2^63-1} bytes to be returned. Note that FAT16 limits files to near @math{2^31} bytes and FAT32 limits files to @math{2^32-2} bytes. @subheading Portability Index: libc/posix/sys/stat/lfilelen.c =================================================================== RCS file: /cvs/djgpp/djgpp/src/libc/posix/sys/stat/lfilelen.c,v retrieving revision 1.2 diff -c -p -r1.2 lfilelen.c *** lfilelen.c 2001/01/28 16:19:21 1.2 --- lfilelen.c 2001/02/04 17:34:01 *************** lfilelength(int fhandle) *** 43,48 **** --- 43,54 ---- long retval_l = _farpeekl (_dos_ds, __tb + 0x24); long retval_h = _farpeekl (_dos_ds, __tb + 0x20); + if (retval_h < 0) + { + errno = EOVERFLOW; + return -1; + } + retval = retval_l + retval_h * (1LL << 32); return retval; } Index: docs/kb/wc204.txi =================================================================== RCS file: /cvs/djgpp/djgpp/src/docs/kb/wc204.txi,v retrieving revision 1.48 diff -c -p -r1.48 wc204.txi *** wc204.txi 2001/02/02 15:10:41 1.48 --- wc204.txi 2001/02/04 17:34:03 *************** that OS. *** 228,234 **** @findex lfilelength AT r{, and FAT32} The function @code{lfilelength} added with return type @code{long long} ! to support file sizes of up to @math{2^64-2}. @pindex djasm AT r{, documentation} Texinfo documentation (WIP) for @code{djasm} has been added. --- 228,234 ---- @findex lfilelength AT r{, and FAT32} The function @code{lfilelength} added with return type @code{long long} ! to support file sizes of up to @math{2^63-1}. @pindex djasm AT r{, documentation} Texinfo documentation (WIP) for @code{djasm} has been added. Index: libc/ansi/errno/errno.txh =================================================================== RCS file: /cvs/djgpp/djgpp/src/libc/ansi/errno/errno.txh,v retrieving revision 1.8 diff -c -p -r1.8 errno.txh *** errno.txh 2001/01/26 17:08:16 1.8 --- errno.txh 2001/02/04 17:34:05 *************** file handling function in library. Usual *** 247,253 **** EOVERFLOW -- Value too large. @code{filelength} can assign this to @code{errno} when a file's length is larger than @math{2^31-2} ! (@pxref{filelength}). @end table --- 247,254 ---- EOVERFLOW -- Value too large. @code{filelength} can assign this to @code{errno} when a file's length is larger than @math{2^31-2} ! (@pxref{filelength}). @code{lfilelength} can assign this to @code{errno} ! when a file's length is larger than @math{2^63-1} (@pxref{lfilelength}). @end table