Tcl Source Code

Artifact [dd1cd07d0b]
Login

Artifact dd1cd07d0b72fe5a59b14305fb50010d23459811:

Attachment "patch.txt" to ticket [563122ffff] added by davygrvy 2002-06-05 17:06:23.
Index: tclIO.c
===================================================================
RCS file: /cvsroot/tcl/tcl/generic/tclIO.c,v
retrieving revision 1.56
diff -c -r1.56 tclIO.c
*** tclIO.c	24 May 2002 21:19:05 -0000	1.56
--- tclIO.c	5 Jun 2002 09:57:22 -0000
***************
*** 5453,5459 ****
--- 5453,5467 ----
  		    offset, mode, &result);
  	} else if (offset < Tcl_LongAsWide(LONG_MIN) ||
  		offset > Tcl_LongAsWide(LONG_MAX)) {
+ #ifdef EOVERFLOW
  	    Tcl_SetErrno(EOVERFLOW);
+ #else
+ #   ifdef EFBIG
+ 	    Tcl_SetErrno(EFBIG);
+ #   else
+ 	    Tcl_SetErrno(EINVAL);
+ #   endif
+ #endif
  	    curPos = Tcl_LongAsWide(-1);
  	} else {
  	    curPos = Tcl_LongAsWide((chanPtr->typePtr->seekProc) (

Index: tclIOGT.c
===================================================================
RCS file: /cvsroot/tcl/tcl/generic/tclIOGT.c,v
retrieving revision 1.7
diff -c -r1.7 tclIOGT.c
*** tclIOGT.c	24 May 2002 21:19:06 -0000	1.7
--- tclIOGT.c	5 Jun 2002 09:57:25 -0000
***************
*** 979,985 ****
--- 979,993 ----
       * happens when trying to go out of the representable range.
       */
      if (offset<Tcl_LongAsWide(LONG_MIN) || offset>Tcl_LongAsWide(LONG_MAX)) {
+ #ifdef EOVERFLOW
  	*errorCodePtr = EOVERFLOW;
+ #else
+ #   ifdef EFBIG
+ 	*errorCodePtr = EFBIG;
+ #   else
+ 	*errorCodePtr = EINVAL;
+ #   endif
+ #endif
  	return Tcl_LongAsWide(-1);
      }
      return Tcl_LongAsWide((*parentSeekProc) (parentData,

Index: tclIOUtil.c
===================================================================
RCS file: /cvsroot/tcl/tcl/generic/tclIOUtil.c,v
retrieving revision 1.45
diff -c -r1.45 tclIOUtil.c
*** tclIOUtil.c	28 May 2002 15:05:22 -0000	1.45
--- tclIOUtil.c	5 Jun 2002 10:04:24 -0000
***************
*** 108,121 ****
  		|| OUT_OF_RANGE(buf.st_blocks)
  #endif
  	    ) {
! #ifdef EFBIG
! 	    errno = EFBIG;
! #else
! #  ifdef EOVERFLOW
  	    errno = EOVERFLOW;
! #  else
! #    error  "What status should be returned for file size out of range?"
! #  endif
  #endif
  	    return -1;
  	}
--- 108,122 ----
  		|| OUT_OF_RANGE(buf.st_blocks)
  #endif
  	    ) {
! 
! #ifdef EOVERFLOW
  	    errno = EOVERFLOW;
! #else
! #   ifdef EFBIG
! 	    errno = EFBIG;
! #   else
! 	    errno = EINVAL;
! #   endif
  #endif
  	    return -1;
  	}

Index: tclUnixChan.c
===================================================================
RCS file: /cvsroot/tcl/tcl/unix/tclUnixChan.c,v
retrieving revision 1.35
diff -c -r1.35 tclUnixChan.c
*** tclUnixChan.c	24 May 2002 21:19:08 -0000	1.35
--- tclUnixChan.c	5 Jun 2002 09:57:42 -0000
***************
*** 617,623 ****
--- 617,631 ----
       * Check for expressability in our return type, and roll-back otherwise.
       */
      if (newLoc > Tcl_LongAsWide(INT_MAX)) {
+ #ifdef EOVERFLOW
  	*errorCodePtr = EOVERFLOW;
+ #else
+ #   ifdef EFBIG
+ 	*errorCodePtr = EFBIG;
+ #   else
+ 	*errorCodePtr = EINVAL;
+ #   endif
+ #endif
  	Tcl_PlatformSeek(fsPtr->fd, (Tcl_SeekOffset) oldLoc, SEEK_SET);
  	return -1;
      } else {