You are viewing a plain text version of this content. The canonical link for it is here.
Posted to rivet-dev@tcl.apache.org by da...@apache.org on 2003/01/07 22:28:18 UTC

cvs commit: tcl-rivet/src TclWebapache.c

davidw      2003/01/07 13:28:17

  Modified:    .        ChangeLog
               src      TclWebapache.c
  Log:
  * src/TclWebapache.c (TclWeb_UploadData): Fix from Holger Zeinert that
    makes file uploads work on windows.
  
  Revision  Changes    Path
  1.93      +5 -0      tcl-rivet/ChangeLog
  
  Index: ChangeLog
  ===================================================================
  RCS file: /home/cvs/tcl-rivet/ChangeLog,v
  retrieving revision 1.92
  retrieving revision 1.93
  diff -u -r1.92 -r1.93
  --- ChangeLog	30 Dec 2002 18:42:35 -0000	1.92
  +++ ChangeLog	7 Jan 2003 21:28:16 -0000	1.93
  @@ -1,3 +1,8 @@
  +2003-01-07  David N. Welton  <da...@dedasys.com>
  +
  +	* src/TclWebapache.c (TclWeb_UploadData): Fix from Holger Zeinert
  +	that makes file uploads work on windows.
  +
   2002-12-30  David N. Welton  <da...@dedasys.com>
   
   	* doc/examples/upload.html: Changed .ttml to .rvt - thanks to
  
  
  
  1.41      +23 -7     tcl-rivet/src/TclWebapache.c
  
  Index: TclWebapache.c
  ===================================================================
  RCS file: /home/cvs/tcl-rivet/src/TclWebapache.c,v
  retrieving revision 1.40
  retrieving revision 1.41
  diff -u -r1.40 -r1.41
  --- TclWebapache.c	18 Dec 2002 08:09:45 -0000	1.40
  +++ TclWebapache.c	7 Jan 2003 21:28:16 -0000	1.41
  @@ -491,9 +491,15 @@
       if (ApacheUpload_FILE(req->upload) != NULL)
       {
   	/* create and return a file channel */
  +
  +#ifdef __MINGW32__
  +	*chan = Tcl_MakeFileChannel(
  +	    (ClientData)_get_osfhandle(
  +		fileno(ApacheUpload_FILE(req->upload))), TCL_READABLE);
  +#else
   	*chan = Tcl_MakeFileChannel(
  -	    (ClientData)(int)fileno(ApacheUpload_FILE(req->upload)),
  -	    TCL_READABLE);
  +	    (ClientData)fileno(ApacheUpload_FILE(req->upload)), TCL_READABLE);
  +#endif
   	Tcl_RegisterChannel(req->interp, *chan);
   	return TCL_OK;
       } else {
  @@ -517,9 +523,14 @@
   			     "-translation", "binary");
       }
   
  +#ifdef __MINGW32__
       chan = Tcl_MakeFileChannel(
  -	(ClientData)(int)fileno(ApacheUpload_FILE(req->upload)),
  -	TCL_READABLE);
  +	(ClientData)_get_osfhandle(
  +	    fileno(ApacheUpload_FILE(req->upload))), TCL_READABLE);
  +#else
  +    chan = Tcl_MakeFileChannel(
  +	(ClientData)fileno(ApacheUpload_FILE(req->upload)), TCL_READABLE);
  +#endif
       Tcl_SetChannelOption(req->interp, chan, "-translation", "binary");
   
       while ((sz = Tcl_Read(chan, savebuffer, BUFSZ)))
  @@ -552,9 +563,14 @@
   	Tcl_Channel chan = NULL;
   
   	bytes = Tcl_Alloc((unsigned)ApacheUpload_size(req->upload));
  +#ifdef __MINGW32__
  +	chan = Tcl_MakeFileChannel(
  +	    (ClientData)_get_osfhandle(
  +		fileno(ApacheUpload_FILE(req->upload))), TCL_READABLE);
  +#else
   	chan = Tcl_MakeFileChannel(
  -	    (ClientData)(int)fileno(ApacheUpload_FILE(req->upload)),
  -	    TCL_READABLE);
  +	    (ClientData)fileno(ApacheUpload_FILE(req->upload)), TCL_READABLE);
  +#endif
   	Tcl_SetChannelOption(req->interp, chan,
   			     "-translation", "binary");
   	Tcl_SetChannelOption(req->interp, chan, "-encoding", "binary");
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: rivet-cvs-unsubscribe@tcl.apache.org
For additional commands, e-mail: rivet-cvs-help@tcl.apache.org