Convert CtdlMessages to respect cm_lengths[]
[citadel.git] / citadel / modules / wiki / serv_wiki.c
index 052ab2ff37c2b7eb2a3394262043f4d7e2ea2c8d..e68055d05b8eda39c6077066f2e3884c2bd11bf7 100644 (file)
@@ -45,6 +45,7 @@
 #include "config.h"
 #include "control.h"
 #include "user_ops.h"
+#include "room_ops.h"
 #include "database.h"
 #include "msgbase.h"
 #include "euidindex.h"
@@ -69,7 +70,7 @@ char *wwm = "9999999999.WikiWaybackMachine";
  * Before allowing a wiki page save to execute, we have to perform version control.
  * This involves fetching the old version of the page if it exists.
  */
-int wiki_upload_beforesave(struct CtdlMessage *msg) {
+int wiki_upload_beforesave(struct CtdlMessage *msg, recptypes *recp) {
        struct CitContext *CCC = CC;
        long old_msgnum = (-1L);
        struct CtdlMessage *old_msg = NULL;
@@ -132,13 +133,13 @@ int wiki_upload_beforesave(struct CtdlMessage *msg) {
        }
 
        if ((old_msg != NULL) && (CM_IsEmpty(old_msg, eMesageText))) {  /* old version is corrupt? */
-               CtdlFreeMessage(old_msg);
+               CM_Free(old_msg);
                old_msg = NULL;
        }
        
        /* If no changes were made, don't bother saving it again */
        if ((old_msg != NULL) && (!strcmp(msg->cm_fields[eMesageText], old_msg->cm_fields[eMesageText]))) {
-               CtdlFreeMessage(old_msg);
+               CM_Free(old_msg);
                return(1);
        }
 
@@ -153,7 +154,7 @@ int wiki_upload_beforesave(struct CtdlMessage *msg) {
                fp = fopen(diff_old_filename, "w");
                rv = fwrite(old_msg->cm_fields[eMesageText], strlen(old_msg->cm_fields[eMesageText]), 1, fp);
                fclose(fp);
-               CtdlFreeMessage(old_msg);
+               CM_Free(old_msg);
        }
 
        fp = fopen(diff_new_filename, "w");
@@ -342,7 +343,7 @@ int wiki_upload_beforesave(struct CtdlMessage *msg) {
        }
 
        free(diffbuf);
-       CtdlFreeMessage(history_msg);
+       CM_Free(history_msg);
        return(0);
 }
 
@@ -395,7 +396,7 @@ void wiki_history(char *pagename) {
        }
 
        if ((msg != NULL) && CM_IsEmpty(msg, eMesageText)) {
-               CtdlFreeMessage(msg);
+               CM_Free(msg);
                msg = NULL;
        }
 
@@ -409,7 +410,7 @@ void wiki_history(char *pagename) {
        mime_parser(msg->cm_fields[eMesageText], NULL, *wiki_history_callback, NULL, NULL, NULL, 0);
        cprintf("000\n");
 
-       CtdlFreeMessage(msg);
+       CM_Free(msg);
        return;
 }
 
@@ -527,7 +528,7 @@ void wiki_rev(char *pagename, char *rev, char *operation)
        }
 
        if ((msg != NULL) && CM_IsEmpty(msg, eMesageText)) {
-               CtdlFreeMessage(msg);
+               CM_Free(msg);
                msg = NULL;
        }
 
@@ -547,7 +548,7 @@ void wiki_rev(char *pagename, char *rev, char *operation)
        else {
                syslog(LOG_ALERT, "Cannot open %s: %s\n", temp, strerror(errno));
        }
-       CtdlFreeMessage(msg);
+       CM_Free(msg);
 
        /* Get the revision history */
 
@@ -561,7 +562,7 @@ void wiki_rev(char *pagename, char *rev, char *operation)
        }
 
        if ((msg != NULL) && CM_IsEmpty(msg, eMesageText)) {
-               CtdlFreeMessage(msg);
+               CM_Free(msg);
                msg = NULL;
        }
 
@@ -580,7 +581,7 @@ void wiki_rev(char *pagename, char *rev, char *operation)
        striplt(hecbd.stop_when);
 
        mime_parser(msg->cm_fields[eMesageText], NULL, *wiki_rev_callback, NULL, NULL, (void *)&hecbd, 0);
-       CtdlFreeMessage(msg);
+       CM_Free(msg);
 
        /* Were we successful? */
        if (hecbd.done == 0) {
@@ -649,7 +650,7 @@ void wiki_rev(char *pagename, char *rev, char *operation)
                        /* Theoretically it is impossible to get here, but throw an error anyway */
                        msgnum = (-1L);
                }
-               CtdlFreeMessage(msg);
+               CM_Free(msg);
                if (msgnum >= 0L) {
                        cprintf("%d %ld\n", CIT_OK, msgnum);            /* Give the client a msgnum */
                }