You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tcl.apache.org by mx...@apache.org on 2020/05/02 22:22:32 UTC

[tcl-rivet] branch master updated (80663ae -> 9b91803)

This is an automated email from the ASF dual-hosted git repository.

mxmanghi pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/tcl-rivet.git.


    from 80663ae  resolved access to shared counter
     add 2854aa9  New branch uploadcmdfix
     add 6028291  expanded error info data in Rivet_Upload
     add 91285e5  reorganized upload command,adding copyright statements to files in src/request/
     new a5dcab5  add new graphic file to test uploads
     add 469adc5  several updates to copyright statements and comments
     add f267b41  several updates to copyright statements and comments
     add 2ede0c7  merging changes from central repository
     new dcf20db  Merge branch 'uploadcmdfix' of https://gitbox.apache.org/repos/asf/tcl-rivet into uploadcmdfix
     new 74728df  removed spurious entry duplicated
     new 12399df  restoring version 3 manual CSS
     new c8608a3  merge master into uploadcmdfix
     new 9b91803  restructuring and testing new code of upload command

The 6 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 ChangeLog                             |  18 ++++
 STATUS                                |   4 +-
 doc/rivet.css                         |  62 ++++++------
 src/TclWeb.h                          |  37 +++----
 src/mod_rivet_ng/TclWebapache.c       | 155 ++++++++++++++++-------------
 src/mod_rivet_ng/mod_rivet.c          |   2 +-
 src/mod_rivet_ng/mod_rivet.h          |   2 +-
 src/mod_rivet_ng/rivetCore.c          | 182 +++++++++++++++++-----------------
 src/mod_rivet_ng/rivet_types.h        |  15 ++-
 src/request/apache_multipart_buffer.c |  30 +++---
 src/request/apache_multipart_buffer.h |  42 ++++----
 src/request/apache_request.c          |  37 ++++---
 src/request/apache_request.h          |  33 ++++--
 tests/AngeloFish.png                  | Bin 0 -> 101595 bytes
 tests/runtests.tcl                    |   2 -
 tests/upload.rvt                      |  25 ++++-
 tests/upload.test                     |   6 +-
 17 files changed, 371 insertions(+), 281 deletions(-)
 create mode 100644 tests/AngeloFish.png


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


[tcl-rivet] 01/06: add new graphic file to test uploads

Posted by mx...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

mxmanghi pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tcl-rivet.git

commit a5dcab586f720b793bb9327c466633822ba72a4b
Author: Massimo Manghi <mx...@apache.org>
AuthorDate: Sun Jan 19 13:22:29 2020 +0100

    add new graphic file to test uploads
---
 tests/AngeloFish.png | Bin 0 -> 101595 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)

diff --git a/tests/AngeloFish.png b/tests/AngeloFish.png
new file mode 100644
index 0000000..f43df9a
Binary files /dev/null and b/tests/AngeloFish.png differ


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


[tcl-rivet] 04/06: removed spurious entry duplicated

Posted by mx...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

mxmanghi pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tcl-rivet.git

commit 74728df1d375455c4fc1508e369cc5b060cf47b5
Author: Massimo Manghi <mx...@apache.org>
AuthorDate: Fri May 1 21:50:05 2020 +0200

    removed spurious entry duplicated
---
 ChangeLog | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index e5b634b..6b635a5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -6,10 +6,6 @@
 2019-12-30 Massimo Manghi <mx...@apache.org>
     * src/mod_rivet_ng/rivetCore.c: fixed bug in 'upload filename' that
     caused segfaults instead of Tcl errors when called without arguments
-
-2019-12-30 Massimo Manghi <mx...@apache.org>
-    * src/mod_rivet_ng/rivetCore.c: fixed bug in 'upload filename' that
-    caused segfaults instead of Tcl errors when called without arguments
     * src/request/: Adding latest Copyright statements to files in this
     directory
     * tests/upload.rvt,upload.test: revised upload tests (need expansion


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


[tcl-rivet] 06/06: restructuring and testing new code of upload command

Posted by mx...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

mxmanghi pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tcl-rivet.git

commit 9b918038f2c53b3042a02c972cc662e3b6976935
Author: Massimo Manghi <mx...@apache.org>
AuthorDate: Sat May 2 02:01:22 2020 +0200

    restructuring and testing new code of upload command
---
 src/TclWeb.h                    |  37 ++++++-----
 src/mod_rivet_ng/TclWebapache.c | 133 ++++++++++++++++++++++++----------------
 src/mod_rivet_ng/rivetCore.c    | 107 ++++++++++++++------------------
 3 files changed, 146 insertions(+), 131 deletions(-)

diff --git a/src/TclWeb.h b/src/TclWeb.h
index 899eab9..f032e37 100644
--- a/src/TclWeb.h
+++ b/src/TclWeb.h
@@ -137,17 +137,17 @@ int TclWeb_PrepareUpload(char *varname, TclWebRequest *req);
  *
  * TclWeb_UploadChannel --
  *
- * Takes the address of a Tcl_Channel and uses it to create a channel
- * pointing to the upload data.
+ * It opens a new channel and sets its translation and encoding as binary
+ * The channel name is retuned as result in the interpreter pointed by req->interp
  *
  * Results:
  *
- * 'chan' points to a FileChannel containing the uploaded data.
+ * Makes the channel name available to the script level
  *
  *-----------------------------------------------------------------------------
  */
 
-int TclWeb_UploadChannel(char *varname, Tcl_Channel *chan, TclWebRequest *req);
+int TclWeb_UploadChannel(char *varname, TclWebRequest *req);
 
 /*
  *-----------------------------------------------------------------------------
@@ -166,68 +166,71 @@ int TclWeb_UploadSave(char *varname, Tcl_Obj *filename, TclWebRequest *req);
  *
  * TclWeb_UploadData --
  *
- * Fills in the 'data' Tcl_Obj with the uploaded data.
+ * Returns the uploaded data to the Tcl script level.
+ * 
+ * If the config parameter upload_files_to_var is not set the procedure
+ * returs an error
  *
  *-----------------------------------------------------------------------------
  */
 
-int TclWeb_UploadData(char *varname, Tcl_Obj *data, TclWebRequest *req);
+int TclWeb_UploadData(char *varname, TclWebRequest *req);
 
 /*
  *-----------------------------------------------------------------------------
  *
  * TclWeb_UploadSize --
  *
- * Stores, in 'sz' the size of the data uploaded.
+ * Returns the size of the data uploaded.
  *
  *-----------------------------------------------------------------------------
  */
 
-int TclWeb_UploadSize(Tcl_Obj *sz, TclWebRequest *req);
+int TclWeb_UploadSize(TclWebRequest *req);
 
 /*
  *-----------------------------------------------------------------------------
  *
  * TclWeb_UploadType --
  *
- * Stores, in 'type' the mime type of the file uploaded.
+ * Returns the mime type of the file uploaded.
  *
  *-----------------------------------------------------------------------------
  */
 
-int TclWeb_UploadType(Tcl_Obj *type, TclWebRequest *req);
+int TclWeb_UploadType(TclWebRequest *req);
 
 /*
  *-----------------------------------------------------------------------------
  *
  * TclWeb_UploadFilename --
  *
- * Get the original filename of the uploaded data, on the client side.
+ * Returns the original filename of the uploaded data, on the client side.
  *
  * Results:
  *
- * Stores the filename in 'filename'.
+ * Returns the filename to the script level
  *
  *-----------------------------------------------------------------------------
  */
 
-int TclWeb_UploadFilename(Tcl_Obj *filename, TclWebRequest *req);
+int TclWeb_UploadFilename(TclWebRequest *req);
 
 /*
  *-----------------------------------------------------------------------------
  *
  * TclWeb_UploadTempname --
  *
- * Get the name of the temp file the uploaded data was stored in.
+ * Returns the name of the temp file the uploaded data was stored in.
  *
  * Results:
  *
- * Stores the temp name in 'tempname'.
+ * the 'tempname' is returned to the script level
  *
  *-----------------------------------------------------------------------------
  */
 
-int TclWeb_UploadTempname(Tcl_Obj *tempname, TclWebRequest *req);
+int TclWeb_UploadTempname(TclWebRequest *req);
 
 /*
  *-----------------------------------------------------------------------------
@@ -243,7 +246,7 @@ int TclWeb_UploadTempname(Tcl_Obj *tempname, TclWebRequest *req);
  *-----------------------------------------------------------------------------
  */
 
-int TclWeb_UploadNames(Tcl_Obj *names, TclWebRequest *req);
+int TclWeb_UploadNames(TclWebRequest *req);
 
 int TclWeb_Escape(char *out, char *in, int len, void *var);
 
diff --git a/src/mod_rivet_ng/TclWebapache.c b/src/mod_rivet_ng/TclWebapache.c
index 98c90d5..ab87909 100644
--- a/src/mod_rivet_ng/TclWebapache.c
+++ b/src/mod_rivet_ng/TclWebapache.c
@@ -314,7 +314,7 @@ TclWeb_GetVar(Tcl_Obj *result, char *varname, int source, TclWebRequest *req)
 
     if (result->length == 0)
     {
-	return TCL_ERROR;
+	    return TCL_ERROR;
     }
 
     return TCL_OK;
@@ -334,19 +334,19 @@ TclWeb_GetVarAsList(Tcl_Obj *result, char *varname, int source, TclWebRequest *r
     while (i < j)
     {
 
-	if (!strncmp(varname, TclWeb_StringToUtf(parms[i].key, req),
-		     strlen(varname) < strlen(parms[i].key) ?
-		     strlen(parms[i].key) : strlen(varname)))
-	{
-	    Tcl_ListObjAppendElement(req->interp, result,
-				     TclWeb_StringToUtfToObj(parms[i].val, req));
-	}
-	i++;
+        if (!strncmp(varname, TclWeb_StringToUtf(parms[i].key, req),
+                 strlen(varname) < strlen(parms[i].key) ?
+                 strlen(parms[i].key) : strlen(varname)))
+        {
+            Tcl_ListObjAppendElement(req->interp, result,
+                         TclWeb_StringToUtfToObj(parms[i].val, req));
+        }
+        i++;
     }
 
     if (result == NULL)
     {
-	return TCL_ERROR;
+        return TCL_ERROR;
     }
     return TCL_OK;
 }
@@ -660,45 +660,58 @@ int TclWeb_PrepareUpload(char *varname, TclWebRequest *req)
     }
 }
 
-int TclWeb_UploadChannel(char *varname, Tcl_Channel *chan, TclWebRequest *req)
+int TclWeb_UploadChannel(char *varname, TclWebRequest *req)
 {
-    *chan = Tcl_OpenFileChannel(req->interp, req->upload->tempname, "r", 0);
+    Tcl_Channel chan;
+
+    chan = Tcl_OpenFileChannel(req->interp, req->upload->tempname, "r", 0);
     if (chan == NULL) {
 	    return TCL_ERROR;
     } else {
-        if (Tcl_SetChannelOption(req->interp,*chan,"-translation","binary") == TCL_ERROR) {
+        Tcl_Obj* result;
+
+        if (Tcl_SetChannelOption(req->interp,chan,"-translation","binary") == TCL_ERROR) {
             return TCL_ERROR;
         }
-        if (Tcl_SetChannelOption(req->interp,*chan,"-encoding","binary") == TCL_ERROR) {
+        if (Tcl_SetChannelOption(req->interp,chan,"-encoding","binary") == TCL_ERROR) {
             return TCL_ERROR;
         }
-        Tcl_RegisterChannel(req->interp, *chan);
+        Tcl_RegisterChannel(req->interp,chan);
+
+        result = Tcl_NewObj();        
+        Tcl_SetStringObj(result, Tcl_GetChannelName(chan), -1);
+        Tcl_SetObjResult(req->interp, result);
+        
         return TCL_OK;
     }
 }
 
-int TclWeb_UploadTempname(Tcl_Obj *tempname, TclWebRequest *req)
+int TclWeb_UploadTempname(TclWebRequest *req)
 {
-    Tcl_SetStringObj(tempname,
-		     TclWeb_StringToUtf(req->upload->tempname,
-					req), -1);
+    Tcl_Obj *tempname = Tcl_NewObj();
+
+    Tcl_SetStringObj(tempname,TclWeb_StringToUtf(req->upload->tempname,req), -1);
+    Tcl_SetObjResult(req->interp, tempname);
+
     return TCL_OK;
 }
 
 
 int TclWeb_UploadSave(char *varname, Tcl_Obj *filename, TclWebRequest *req)
 {
-	apr_status_t	status;
+	apr_status_t status;
+
 	status = apr_file_copy(req->upload->tempname ,Tcl_GetString(filename),APR_FILE_SOURCE_PERMS,req->req->pool);
-	if ( status == 0 ) {
+	if (status == APR_SUCCESS) {
 	    return TCL_OK;
 	} else {
 		return TCL_ERROR;
 	}
 }
 
-int TclWeb_UploadData(char *varname, Tcl_Obj *data, TclWebRequest *req)
+int TclWeb_UploadData(char *varname, TclWebRequest *req)
 {
+    Tcl_Obj* result;
     rivet_server_conf *rsc = NULL;
 
     rsc  = RIVET_SERVER_CONF( req->req->server->module_config );
@@ -706,68 +719,80 @@ int TclWeb_UploadData(char *varname, Tcl_Obj *data, TclWebRequest *req)
        get everything fixed and working first */
     if (rsc->upload_files_to_var)
     {
-	Tcl_Channel chan;
-	chan = Tcl_OpenFileChannel (req->interp, req->upload->tempname, "r", 0);
-	if (chan == NULL) {
-	    return TCL_ERROR;
-	}
-	if (Tcl_SetChannelOption(req->interp, chan,
-				 "-translation", "binary") == TCL_ERROR) {
-	    return TCL_ERROR;
-	}
-	if (Tcl_SetChannelOption(req->interp, chan,
-				 "-encoding", "binary") == TCL_ERROR) {
-	    return TCL_ERROR;
-	}
+        Tcl_Channel chan;
+        
+        chan = Tcl_OpenFileChannel (req->interp, req->upload->tempname, "r", 0);
+        if (chan == NULL) {
+            return TCL_ERROR;
+        }
+        if (Tcl_SetChannelOption(req->interp, chan,
+                     "-translation", "binary") == TCL_ERROR) {
+            return TCL_ERROR;
+        }
+        if (Tcl_SetChannelOption(req->interp, chan,
+                     "-encoding", "binary") == TCL_ERROR) {
+            return TCL_ERROR;
+        }
 
-	/* Put data in a variable  */
-	Tcl_ReadChars(chan, data, (int)ApacheUpload_size(req->upload), 0);
-	if (Tcl_Close(req->interp, chan) == TCL_ERROR) {
-	    return TCL_ERROR;
-	}
+        /* Put data in a variable  */
+        result = Tcl_NewObj();
+        Tcl_ReadChars(chan, result, (int)ApacheUpload_size(req->upload), 0);
+        if (Tcl_Close(req->interp, chan) == TCL_ERROR) {
+            return TCL_ERROR;
+        }
+        
+        Tcl_SetObjResult(req->interp, result);
     } else {
-	Tcl_AppendResult(req->interp,
-			 "RivetServerConf UploadFilesToVar is not set", NULL);
-	return TCL_ERROR;
+        Tcl_AppendResult(req->interp,
+                 "RivetServerConf UploadFilesToVar is not set", NULL);
+        return TCL_ERROR;
     }
+    
     return TCL_OK;
 }
 
-int TclWeb_UploadSize(Tcl_Obj *sz, TclWebRequest *req)
+int TclWeb_UploadSize(TclWebRequest *req)
 {
-    Tcl_SetIntObj(sz, (int)ApacheUpload_size(req->upload));
+    Tcl_Obj* result = Tcl_NewObj();
+    Tcl_SetIntObj(result, (int)ApacheUpload_size(req->upload));
+    Tcl_SetObjResult(req->interp, result);
     return TCL_OK;
 }
 
-int TclWeb_UploadType(Tcl_Obj *type, TclWebRequest *req)
+int TclWeb_UploadType(TclWebRequest *req)
 {
+    Tcl_Obj *type = Tcl_NewObj();
+
     /* If there is a type, return it, if not, return blank. */
     Tcl_SetStringObj(type, ApacheUpload_type(req->upload)
 		     ? (char *)ApacheUpload_type(req->upload) : (char *)"", -1);
+
+    Tcl_SetObjResult(req->interp, type);
     return TCL_OK;
 }
 
-int TclWeb_UploadFilename(Tcl_Obj *filename, TclWebRequest *req)
+int TclWeb_UploadFilename(TclWebRequest *req)
 {
-    Tcl_SetStringObj(filename,
-		     TclWeb_StringToUtf(req->upload->filename,
-					req), -1);
+    Tcl_Obj *filename = Tcl_NewObj();
+    Tcl_SetStringObj(filename,TclWeb_StringToUtf(req->upload->filename,req), -1);
+
+    Tcl_SetObjResult(req->interp, filename);
     return TCL_OK;
 }
 
-int TclWeb_UploadNames(Tcl_Obj *names, TclWebRequest *req)
+int TclWeb_UploadNames(TclWebRequest *req)
 {
     ApacheUpload *upload;
+    Tcl_Obj      *names = Tcl_NewObj();
 
     upload = ApacheRequest_upload(req->apachereq);
     while (upload)
     {
-        Tcl_ListObjAppendElement(
-            req->interp, names,
-            TclWeb_StringToUtfToObj(upload->name,req));
+        Tcl_ListObjAppendElement(req->interp,names,TclWeb_StringToUtfToObj(upload->name,req));
         upload = upload->next;
     }
 
+    Tcl_SetObjResult(req->interp,names);
     return TCL_OK;
 }
 
diff --git a/src/mod_rivet_ng/rivetCore.c b/src/mod_rivet_ng/rivetCore.c
index ff9abba..1537638 100644
--- a/src/mod_rivet_ng/rivetCore.c
+++ b/src/mod_rivet_ng/rivetCore.c
@@ -1039,13 +1039,10 @@ TCL_CMD_HEADER( Rivet_Upload )
 {
     char*   varname = NULL;
     int     subcommandindex;
-    int     upload_prepared = 0;
-
-    Tcl_Obj* result = NULL;
 
     /* ::rivet::upload subcommands must register
-     * 
-     * - subcommand definition 
+     *
+     * - subcommand definition
      * - subcommand integer progressive index
      * - subcommand required (minimum) number of arguments
      *
@@ -1116,90 +1113,80 @@ TCL_CMD_HEADER( Rivet_Upload )
         Tcl_AppendObjToErrorInfo(interp, infoobj);
         Tcl_DecrRefCount(infoobj);
 
-        Tcl_WrongNumArgs(interp, objc, objv, "uploadname");
+        if (subcommandindex == SAVE) {
+            Tcl_WrongNumArgs(interp, 2, objv, "uploadname filename");
+        } else {
+            Tcl_WrongNumArgs(interp, objc, objv, "uploadname");
+        }
         return TCL_ERROR;
-    } 
+    }
 
     /* We check whether an upload with a given name exists */
 
     if (objc >= 3) {
+        int tcl_status;
         varname = Tcl_GetString(objv[2]);
 
         /* TclWeb_PrepareUpload calls ApacheUpload_find and returns
          * TCL_OK if the named upload exists in the current request */
+        tcl_status = TclWeb_PrepareUpload(varname, private->req);
 
-        if (TclWeb_PrepareUpload(varname, private->req) != TCL_OK)
+        if (subcommandindex == EXISTS) {
+            Tcl_Obj* result = NULL;
+            int upload_prepared = 0;
+
+            if (tcl_status == TCL_OK) upload_prepared = 1;
+
+            result = Tcl_NewObj();
+            Tcl_SetIntObj(result,upload_prepared);
+            Tcl_SetObjResult(interp, result);
+            return TCL_OK;
+                
+        }
+
+        if (tcl_status != TCL_OK)
         {
             Tcl_AddErrorInfo(interp, "Unable to find the upload named '");
             Tcl_AppendObjToErrorInfo(interp,Tcl_NewStringObj(varname,-1));
             Tcl_AppendObjToErrorInfo(interp,Tcl_NewStringObj("'",-1));
             return TCL_ERROR;
-        } 
-        upload_prepared = 1;
+        }
     }
 
-    result = Tcl_NewObj();
+    /* CHANNEL  : get the upload channel name
+     * SAVE     : save data to a specified filename
+     * DATA     : get the uploaded data into a Tcl variable
+     * SIZE     : uploaded data size
+     * TYPE     : upload mimetype
+     * FILENAME : upload original filename
+     * TEMPNAME : temporary file where the upload is taking place
+     * NAMES    : list of uploads
+     *
+     * the procedure shouldn't reach for the default case
+     */
 
     switch ((enum subcommand)subcommandindex)
     {
-        case CHANNEL: {
-            Tcl_Channel chan;
-            char *channelname = NULL;
-
-            if (TclWeb_UploadChannel(varname, &chan, private->req) != TCL_OK) {
-                return TCL_ERROR;
-            }
-            channelname = (char *)Tcl_GetChannelName(chan);
-            Tcl_SetStringObj(result, channelname, -1);
-            break;
-        }
+        case CHANNEL:
+            return TclWeb_UploadChannel(varname, private->req);
         case SAVE:
-            /* save data to a specified filename  */
-            if (objc != 4) {
-                Tcl_WrongNumArgs(interp, 2, objv, "uploadname filename");
-                return TCL_ERROR;
-            }
-
-            if (TclWeb_UploadSave(varname, objv[3], private->req) != TCL_OK)
-            {
-                return TCL_ERROR;
-            }
-            break;
+            return TclWeb_UploadSave(varname, objv[3], private->req);
         case DATA:
-            if (TclWeb_UploadData(varname, result, private->req) != TCL_OK) {
-                return TCL_ERROR;
-            }
-            break;
-        case EXISTS: {
-            Tcl_SetIntObj(result,upload_prepared);
-            break;
-        }
+            return TclWeb_UploadData(varname, private->req);
         case SIZE:
-            TclWeb_UploadSize(result, private->req);
-            break;
+            return TclWeb_UploadSize(private->req);
         case TYPE:
-            TclWeb_UploadType(result, private->req);
-            break;
+            return TclWeb_UploadType(private->req);
         case FILENAME:
-            TclWeb_UploadFilename(result, private->req);
-            break;
+            return TclWeb_UploadFilename(private->req);
         case TEMPNAME:
-            TclWeb_UploadTempname(result,private->req);
-            break;
+            return TclWeb_UploadTempname(private->req);
         case NAMES:
-            if (objc != 2)
-            {
-                Tcl_WrongNumArgs(interp, 1, objv, "names");
-                return TCL_ERROR;
-            }
-            TclWeb_UploadNames(result, private->req);
-            break;
+            return TclWeb_UploadNames(private->req);
         default:
-            Tcl_WrongNumArgs(interp, 1, objv,
-                             "channel|save ?name?|data|exists|size|type|filename|names|tempname");
+            Tcl_WrongNumArgs(interp, 1, objv,"Rivet internal error: inconsistent argument");
     }
-    Tcl_SetObjResult(interp, result);
-    return TCL_OK;
+    return TCL_ERROR;
 }
 
 /*


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


[tcl-rivet] 02/06: restoring version 3 manual CSS

Posted by mx...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

mxmanghi pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tcl-rivet.git

commit 12399df29fa94fdf3e4eb12d5d5506a2be5bd9dc
Author: Massimo Manghi <mx...@apache.org>
AuthorDate: Fri May 1 12:37:04 2020 +0200

    restoring version 3 manual CSS
---
 doc/rivet.css | 62 +++++++++++++++++++++++++++--------------------------------
 1 file changed, 28 insertions(+), 34 deletions(-)

diff --git a/doc/rivet.css b/doc/rivet.css
index 71ae239..c407a8c 100644
--- a/doc/rivet.css
+++ b/doc/rivet.css
@@ -31,7 +31,7 @@ PRE.PROGRAMLISTING
         font-family: monospace;
         white-space: pre;
         width:  95%;
-        background-color: #f7e9c6;
+        background-color: #e8ecf2;
         border: solid;
         color:  #000000;
         border-color: #a3b1bc;
@@ -83,8 +83,8 @@ H2
 {       
         COLOR: #ffffff ;
         font-style: italic;
-        border: solid 3px #e8a34b;
-        background-color: #593c27;
+        border: solid 3px #1d252b;
+        background-color: #a3b1bc;
         PADDING: 0.5em;
 }
 
@@ -139,7 +139,7 @@ DIV.VARIABLELIST {
         font-weight: bold;
         margin-top: 10px;
         color: #ffffff ;
-        background-color: #f7e9c6;
+        background-color: #e8ecf2;
         border: solid 1px #a3b1bc;
         padding: 1px
 }
@@ -154,15 +154,15 @@ P {
         font-size: 12px;
 }
 
-/*/*/
-
+/* 
 A{
     color: maroon;
 }
 
-a:visited {
+A:visited {
     color: darkgreen;
 }
+*/
 
 BODY P {
 
@@ -272,7 +272,7 @@ P.C2 {
 
 DIV.NAVFOOTER {
         color: #000000;
-        background-color: #f7e9c6;
+        background-color: #e8ecf2;
         padding: 5px;
         margin-top: 10px;
         width: 100%;
@@ -281,7 +281,7 @@ DIV.NAVFOOTER {
 
 DIV.NUKEFOOTER {
         color: #000000;
-        background-color: #f7e9c6;
+        background-color: #e8ecf2;
         padding: 5px;
         margin-top: 10px;
         width: 100%;
@@ -290,7 +290,7 @@ DIV.NUKEFOOTER {
 
 DIV.NAVHEADER {
         color: #000000;
-        background-color: #f7e9c6;
+        background-color: #e8ecf2;
         padding: 5px;
         margin-bottom: 10px;
         width: 100%;
@@ -306,7 +306,7 @@ DIV.EXAMPLE,DIV.TOC {
         padding-left: 10px;
         padding-right: 10px;
         color: #000000;
-        background-color: #f7e9c6;
+        background-color: #e8ecf2;
 }
 DIV.EXAMPLE {
         border: thin dotted #22AA22;
@@ -323,8 +323,8 @@ UL  {
      /*    list-style: url("images/tux-bullet.png") disc; */
     }
 
-table.namespaces {
-	border-collapse: collapse;
+.namespaces {
+	border: 1px solid black;
 }
 
 .namespaces td {
@@ -333,14 +333,11 @@ table.namespaces {
 }
 
 .namespaces thead {
-    background-color:   #5e3c27;
-    color:              white;
-    font-size:          1em;
-    text-decoration:    none;
+	background-color: #aaf;
 }
 
 .namespaces tr.init {
-	background-color: #bb8766;	
+	background-color: #e88;	
 }
 
 .namespaces tr.childinit {
@@ -348,7 +345,7 @@ table.namespaces {
 }
 
 .namespaces tr.processing {
-	background-color: #bb8766;	
+	background-color: #e88;	
 }
 	
 .namespaces tr.childexit {
@@ -358,10 +355,8 @@ table.namespaces {
 table.directives {
 	border-collapse: collapse;
 }
-
 .directives thead {
-    background-color:   #5e3c27;
-    color:              white;
+    background-color:   #bbf;
     font-size:          1em;
     text-decoration:    none;
 }
@@ -371,30 +366,29 @@ table.directives {
 }
 
 .directives tbody tr > :first-child {
-    background-color:   #bb8766;
-    color:              white;
+    background-color:   #eee;
     padding-left:       2em;
     padding-right:      2em;
     text-align:         left;
 }
 
 .directives tbody tr > :last-child {
-   text-decoration:    	none;
-   font-weight: 		normal;
-   font-size: 			small;
-   border-left:			1px solid black;
-   text-align:         	left;
+   text-decoration:    	    none;
+   font-weight: 			normal;
+	font-size: 				small;
+	border-left:			1px solid black;
+	text-align:         	left;
 }
 
 .directives tbody tr td {
    text-align:          center;
    text-decoration:     none;
    font-weight: 		normal;
-   padding-left:		1em;
-   padding-right: 		1em;
-   padding-bottom: 	    4px;
-   padding-top: 		4px;
-   border-bottom:		1px solid black;
+	padding-left:		1em;
+	padding-right: 		1em;
+	padding-bottom: 	4px;
+	padding-top: 		4px;
+	border-bottom:		1px solid black;
 }
 
 .note td {


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


[tcl-rivet] 03/06: Merge branch 'uploadcmdfix' of https://gitbox.apache.org/repos/asf/tcl-rivet into uploadcmdfix

Posted by mx...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

mxmanghi pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tcl-rivet.git

commit dcf20dbfbf4651c9df5adc8eb72506c62c0cd725
Merge: a5dcab5 2ede0c7
Author: Massimo Manghi <mx...@apache.org>
AuthorDate: Fri May 1 12:37:47 2020 +0200

    Merge branch 'uploadcmdfix' of https://gitbox.apache.org/repos/asf/tcl-rivet into uploadcmdfix

 ChangeLog                        | 14 +++++++++
 README.md                        |  9 +-----
 STATUS                           | 33 +++++++-------------
 doc/rivet.css                    | 67 ++++++++++++++++++++++++----------------
 src/mod_rivet_ng/apache_config.c |  1 +
 src/mod_rivet_ng/rivetCore.c     | 27 +++++-----------
 6 files changed, 76 insertions(+), 75 deletions(-)


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


[tcl-rivet] 05/06: merge master into uploadcmdfix

Posted by mx...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

mxmanghi pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tcl-rivet.git

commit c8608a315bac071d2e781fc02fd569cd476e2873
Merge: 74728df 12399df
Author: Massimo Manghi <mx...@apache.org>
AuthorDate: Fri May 1 21:51:34 2020 +0200

    merge master into uploadcmdfix

 ChangeLog                         |   8 ++
 doc/rivet.css                     |  62 +++++++--------
 doc/xml/commands.xml              |  32 --------
 doc/xml/formbroker.xml            |  21 ++---
 src/mod_rivet_ng/rivet_lazy_mpm.c | 156 +++++++++++++++-----------------------
 5 files changed, 108 insertions(+), 171 deletions(-)

diff --cc ChangeLog
index 6b635a5,a851367..381c7c6
--- a/ChangeLog
+++ b/ChangeLog
@@@ -1,16 -1,11 +1,24 @@@
 +2020-02-03 Massimo Manghi <mx...@apache.org>
 +    * src/request/: Update obsolete copyright statements
 +    * src/mod_rivet_ng/rivetCore.c: update comments to upload command
 +    * tests: changed upload file test
 +
+ 2020-04-02 Massimo Manghi <mx...@apache.org>
+     * doc/xml/formbroker.xml: fixed examples
+     * src/mod_rivet_ng/rivet_lazy_mpm.c: resolved access to shared counter
+     that was causing segfaults when child process was terminated
+ 
+ 2020-01-19 Massimo Manghi <mx...@apache.org>
+     * doc/xml/commands.xml: remove entry for command incr0 (dropped in 3.0)
+ 
 +2019-12-30 Massimo Manghi <mx...@apache.org>
 +    * src/mod_rivet_ng/rivetCore.c: fixed bug in 'upload filename' that
 +    caused segfaults instead of Tcl errors when called without arguments
 +    * src/request/: Adding latest Copyright statements to files in this
 +    directory
 +    * tests/upload.rvt,upload.test: revised upload tests (need expansion
 +    to test multiple uploads)
 +
  2019-12-12 Massimo Manghi <mx...@apache.org>
      * src/mod_rivet_ng/apache_config.c: copying also upload_files_to_var in
      Rivet_MergeConfig


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