diff options
author | dkf <dkf@noemail.net> | 2010-03-20 17:53:06 (GMT) |
---|---|---|
committer | dkf <dkf@noemail.net> | 2010-03-20 17:53:06 (GMT) |
commit | e2c4820ff2a892c66f865d6741d33f46f4cc8b77 (patch) | |
tree | e6c13b21740a4f1caa328d978e8993121e733b0c /generic/tclIO.c | |
parent | 69977c81b21f8c4ff69b9c2cc81a59625c95836a (diff) | |
download | tcl-e2c4820ff2a892c66f865d6741d33f46f4cc8b77.zip tcl-e2c4820ff2a892c66f865d6741d33f46f4cc8b77.tar.gz tcl-e2c4820ff2a892c66f865d6741d33f46f4cc8b77.tar.bz2 |
* generic/tclIO.c (CopyData): Allow the total number of bytes copied
by [fcopy] to exceed 2GB. Can happen when no -size parameter given.
FossilOrigin-Name: c6cdb88f0b2ab55adb3534058965397a8fcdb408
Diffstat (limited to 'generic/tclIO.c')
-rw-r--r-- | generic/tclIO.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/generic/tclIO.c b/generic/tclIO.c index 1c3ba79..ebbb3d1 100644 --- a/generic/tclIO.c +++ b/generic/tclIO.c @@ -10,7 +10,7 @@ * See the file "license.terms" for information on usage and redistribution of * this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclIO.c,v 1.137.2.16 2010/01/18 22:20:56 andreas_kupries Exp $ + * RCS: @(#) $Id: tclIO.c,v 1.137.2.17 2010/03/20 17:53:07 dkf Exp $ */ #include "tclInt.h" @@ -8605,7 +8605,8 @@ CopyData( Tcl_Obj *cmdPtr, *errObj = NULL, *bufObj = NULL, *msg = NULL; Tcl_Channel inChan, outChan; ChannelState *inStatePtr, *outStatePtr; - int result = TCL_OK, size, total, sizeb; + int result = TCL_OK, size, sizeb; + Tcl_WideInt total; char *buffer; int inBinary, outBinary, sameEncoding; /* Encoding control */ @@ -8863,7 +8864,7 @@ CopyData( StopCopy(csPtr); Tcl_Preserve(interp); - Tcl_ListObjAppendElement(interp, cmdPtr, Tcl_NewIntObj(total)); + Tcl_ListObjAppendElement(interp, cmdPtr, Tcl_NewWideIntObj(total)); if (errObj) { Tcl_ListObjAppendElement(interp, cmdPtr, errObj); } @@ -8882,7 +8883,7 @@ CopyData( result = TCL_ERROR; } else { Tcl_ResetResult(interp); - Tcl_SetObjResult(interp, Tcl_NewIntObj(total)); + Tcl_SetObjResult(interp, Tcl_NewWideIntObj(total)); } } } |