1 Description: close the file handle in time in case -file option is used
2 Origin: https://www.androwish.org/index.html/vpatch?from=9afc8918cdeec6d7&to=e4864fde820aac71
3 Author: Christian Werner <chw@ch-werner.de>
4 Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=801734
7 Index: b/generic/tclcurl.c
8 ===================================================================
9 --- a/generic/tclcurl.c
10 +++ b/generic/tclcurl.c
11 @@ -465,6 +465,12 @@ curlSetOpts(Tcl_Interp *interp, struct c
13 Tcl_Free(curlData->outFile);
14 curlData->outFile=curlstrdup(Tcl_GetString(objv));
15 + if (curlData->outFlag) {
16 + if (curlData->outHandle!=NULL) {
17 + fclose(curlData->outHandle);
18 + curlData->outHandle=NULL;
21 if ((strcmp(curlData->outFile,""))&&(strcmp(curlData->outFile,"stdout"))) {
24 @@ -1043,6 +1049,14 @@ curlSetOpts(Tcl_Interp *interp, struct c
26 Tcl_Free(curlData->bodyVarName);
27 curlData->bodyVarName=curlstrdup(Tcl_GetString(objv));
28 + if (curlData->outFlag) {
29 + if (curlData->outHandle!=NULL) {
30 + fclose(curlData->outHandle);
31 + curlData->outHandle=NULL;
33 + curl_easy_setopt(curlHandle,CURLOPT_WRITEDATA,NULL);
35 + curlData->outFlag=0;
36 if (curl_easy_setopt(curlHandle,CURLOPT_WRITEFUNCTION,
39 @@ -1080,6 +1094,13 @@ curlSetOpts(Tcl_Interp *interp, struct c
42 curlData->writeProc=curlstrdup(Tcl_GetString(objv));
43 + if (curlData->outFlag) {
44 + if (curlData->outHandle!=NULL) {
45 + fclose(curlData->outHandle);
46 + curlData->outHandle=NULL;
48 + curl_easy_setopt(curlHandle,CURLOPT_WRITEDATA,NULL);
51 if (curl_easy_setopt(curlHandle,CURLOPT_WRITEFUNCTION,
52 curlWriteProcInvoke)) {