* some tiny cleanups...
authorWilfried Göesgens <willi@citadel.org>
Sun, 14 Dec 2008 21:07:35 +0000 (21:07 +0000)
committerWilfried Göesgens <willi@citadel.org>
Sun, 14 Dec 2008 21:07:35 +0000 (21:07 +0000)
webcit/messages.c
webcit/msg_renderers.c

index 9d14b3c38a293354c8983f7781e319964fd7387f..93bedd32199261dcabcf2377f60e46f6aaee7022 100644 (file)
@@ -56,8 +56,6 @@ int read_message(StrBuf *Target, const char *tmpl, long tmpllen, long msgnum, in
        headereval *Hdr;
        void *vHdr;
        char buf[SIZ];
-//     char mime_submessages[256] = "";
-       char reply_references[1024] = "";
        int Done = 0;
        int state=0;
        long len;
@@ -112,6 +110,7 @@ int read_message(StrBuf *Target, const char *tmpl, long tmpllen, long msgnum, in
                        StrBufCutLeft(Buf, StrLength(HdrToken) + 1);
                        
                        lprintf(1, ":: [%s] = [%s]\n", ChrPtr(HdrToken), ChrPtr(Buf));
+                       /* look up one of the examine_* functions to parse the content */
                        if (GetHash(MsgHeaderHandler, SKEY(HdrToken), &vHdr) &&
                            (vHdr != NULL)) {
                                Hdr = (headereval*)vHdr;
@@ -136,6 +135,7 @@ int read_message(StrBuf *Target, const char *tmpl, long tmpllen, long msgnum, in
                                if (StrLength(HdrToken) > 0) {
                                        StrBufCutLeft(Buf, StrLength(HdrToken) + 1);
                                        lprintf(1, ":: [%s] = [%s]\n", ChrPtr(HdrToken), ChrPtr(Buf));
+                                       /* the examine*'s know how to do with mime headers too... */
                                        if (GetHash(MsgHeaderHandler, SKEY(HdrToken), &vHdr) &&
                                            (vHdr != NULL)) {
                                                Hdr = (headereval*)vHdr;
@@ -165,11 +165,13 @@ int read_message(StrBuf *Target, const char *tmpl, long tmpllen, long msgnum, in
 
        if (Msg->AllAttach == NULL)
                Msg->AllAttach = NewHash(1,NULL);
+       /* now we put the body mimepart we read above into the mimelist */
        Put(Msg->AllAttach, SKEY(Msg->MsgBody->PartNum), Msg->MsgBody, DestroyMime);
        
        /* strip the bare contenttype, so we ommit charset etc. */
        StrBufExtract_token(Buf, Msg->MsgBody->ContentType, 0, ';');
        StrBufTrim(Buf);
+       /* look up the renderer, that will convert this mimeitem into the htmlized form */
        if (GetHash(MimeRenderHandler, SKEY(Buf), &vHdr) &&
            (vHdr != NULL)) {
                RenderMimeFunc Render;
@@ -184,7 +186,7 @@ int read_message(StrBuf *Target, const char *tmpl, long tmpllen, long msgnum, in
                int rrtok = num_tokens(ChrPtr(Msg->reply_references), '|');
                int rrlen = StrLength(Msg->reply_references);
                if ( ((rrtok >= 3) && (rrlen > 900)) || (rrtok > 10) ) {
-                       remove_token(reply_references, 1, '|');////todo
+                       StrBufRemove_token(Msg->reply_references, 1, '|');
                }
        }
 
@@ -220,6 +222,8 @@ int read_message(StrBuf *Target, const char *tmpl, long tmpllen, long msgnum, in
                        StrBufAppendBuf(Msg->reply_to, Msg->from, 0);
                }
        }
+
+       /* now check if we need to translate some mimeparts, and remove the duplicate */
        it = GetNewHashPos(Msg->AllAttach, 0);
        while (GetNextHashPos(Msg->AllAttach, it, &len, &Key, &vMime) && 
               (vMime != NULL)) {
@@ -379,26 +383,16 @@ int load_msg_ptrs(char *servcmd, int with_headers)
         wcsession *WCC = WC;
        message_summary *Msg;
        StrBuf *Buf, *Buf2;
-       ///char buf[1024];
-       ///time_t datestamp;
-       //char fullname[128];
-       //char nodename[128];
-       //char inetaddr[128];
-       //char subject[1024];
-       ///char *ptr;
-       int nummsgs;
-       ////int sbjlen;
+       int nummsgs = 0;
        int maxload = 0;
        long len;
        int n;
-       ////int num_summ_alloc = 0;
 
        if (WCC->summ != NULL) {
                if (WCC->summ != NULL)
                        DeleteHash(&WCC->summ);
        }
        WCC->summ = NewHash(1, Flathash);
-       nummsgs = 0;
        maxload = 10000;
        
        Buf = NewStrBuf();
@@ -560,7 +554,6 @@ void readloop(long oper)
        char buf[SIZ];
        char old_msgs[SIZ];
        int a = 0;
-       ///int b = 0;
        int nummsgs;
        long startmsg = 0;
        int maxmsgs = 0;
@@ -676,7 +669,7 @@ void readloop(long oper)
 
        output_headers(1, 1, 1, 0, 0, 0);
 
-       /*
+       /* TODO: how can we best sort this in?
        if (WCC->is_mobile) {
                maxmsgs = 20;
                snprintf(cmd, sizeof(cmd), "MSGS %s|%s||1",
@@ -685,14 +678,12 @@ void readloop(long oper)
                );
                SortBy =  eRDate;
        }
-
+       */
        /*
         * Are we doing a summary view?  If so, we need to know old messages
         * and new messages, so we can do that pretty boldface thing for the
         * new messages.
         */
-
-
        nummsgs = load_msg_ptrs(cmd, (is_summary || WCC->is_mobile));
        if (nummsgs == 0) {
                if (care_for_empty_list) {
@@ -1188,12 +1179,10 @@ void display_enter(void)
        char buf[SIZ];
        long now;
        const StrBuf *display_name = NULL;
-       /////wc_attachment *att;
        int recipient_required = 0;
        int subject_required = 0;
        int recipient_bad = 0;
        int is_anonymous = 0;
-
        wcsession *WCC = WC;
 
        now = time(NULL);
index c10c7cd987364b16cb4491add469fa4ea4791714..97e0b66f9f4fe566baa83a53b430dbcf729feb2a 100644 (file)
@@ -70,7 +70,7 @@ void RegisterMimeRenderer(const char *HeaderName, long HdrNLen, RenderMimeFunc M
 /*----------------------------------------------------------------------------*/
 
 /*
- * qsort() compatible function to compare two longs in descending order.
+ *  comparator for two longs in descending order.
  */
 int longcmp_r(const void *s1, const void *s2) {
        long l1;
@@ -85,7 +85,7 @@ int longcmp_r(const void *s1, const void *s2) {
 }
 
 /*
- * qsort() compatible function to compare two longs in descending order.
+ *  comparator for longs; descending order.
  */
 int qlongcmp_r(const void *s1, const void *s2) {
        long l1 = (long) s1;
@@ -98,7 +98,7 @@ int qlongcmp_r(const void *s1, const void *s2) {
 
  
 /*
- * qsort() compatible function to compare two message summary structs by ascending subject.
+ * comparator for message summary structs by ascending subject.
  */
 int summcmp_subj(const void *s1, const void *s2) {
        message_summary *summ1;
@@ -110,7 +110,7 @@ int summcmp_subj(const void *s1, const void *s2) {
 }
 
 /*
- * qsort() compatible function to compare two message summary structs by descending subject.
+ * comparator for message summary structs by descending subject.
  */
 int summcmp_rsubj(const void *s1, const void *s2) {
        message_summary *summ1;
@@ -122,7 +122,7 @@ int summcmp_rsubj(const void *s1, const void *s2) {
 }
 
 /*
- * qsort() compatible function to compare two message summary structs by ascending sender.
+ * comparator for message summary structs by ascending sender.
  */
 int summcmp_sender(const void *s1, const void *s2) {
        message_summary *summ1;
@@ -134,7 +134,7 @@ int summcmp_sender(const void *s1, const void *s2) {
 }
 
 /*
- * qsort() compatible function to compare two message summary structs by descending sender.
+ * comparator for message summary structs by descending sender.
  */
 int summcmp_rsender(const void *s1, const void *s2) {
        message_summary *summ1;
@@ -146,7 +146,7 @@ int summcmp_rsender(const void *s1, const void *s2) {
 }
 
 /*
- * qsort() compatible function to compare two message summary structs by ascending date.
+ * comparator for message summary structs by ascending date.
  */
 int summcmp_date(const void *s1, const void *s2) {
        message_summary *summ1;
@@ -161,7 +161,7 @@ int summcmp_date(const void *s1, const void *s2) {
 }
 
 /*
- * qsort() compatible function to compare two message summary structs by descending date.
+ * comparator for message summary structs by descending date.
  */
 int summcmp_rdate(const void *s1, const void *s2) {
        message_summary *summ1;
@@ -180,6 +180,10 @@ int summcmp_rdate(const void *s1, const void *s2) {
 void examine_pref(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset) {return;}
 void examine_suff(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset) {return;}
 void examine_path(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset) {return;}
+void examine_content_encoding(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset)
+{
+////TODO: do we care?
+}
 
 void examine_nhdr(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset)
 {
@@ -277,8 +281,6 @@ void tmplput_MAIL_SUMM_CCCC(StrBuf *Target, int nArgs, WCTemplateToken *Tokens,
 }
 
 
-
-
 void examine_room(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset)
 {
        if ((StrLength(HdrLine) > 0) &&
@@ -534,11 +536,6 @@ void tmplput_MAIL_SUMM_NATTACH(StrBuf *Target, int nArgs, WCTemplateToken *Token
 }
 
 
-
-
-
-
-
 void examine_hnod(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset)
 {
        FreeStrBuf(&Msg->hnod);
@@ -566,13 +563,9 @@ void examine_text(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset)
 void examine_msg4_partnum(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset)
 {
        Msg->MsgBody->PartNum = NewStrBufDup(HdrLine);
-       StrBufTrim(Msg->MsgBody->PartNum);/////TODO: striplt == trim?
+       StrBufTrim(Msg->MsgBody->PartNum);
 }
 
-void examine_content_encoding(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset)
-{
-////TODO: do we care?
-}
 
 void examine_content_lengh(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset)
 {
@@ -1015,9 +1008,11 @@ InitModule_MSGRENDERERS
                         summcmp_rsender,
                         CTX_MAILSUM);
 
+       /* iterate over all known mails in WC->summ */
        RegisterIterator("MAIL:SUMM:MSGS", 0, NULL, iterate_get_mailsumm_All,
                         NULL,NULL, CTX_MAILSUM, CTX_NONE);
 
+       /* render parts of the message struct */
        RegisterNamespace("MAIL:SUMM:DATESTR", 0, 0, tmplput_MAIL_SUMM_DATE_STR, CTX_MAILSUM);
        RegisterNamespace("MAIL:SUMM:DATENO",  0, 0, tmplput_MAIL_SUMM_DATE_NO,  CTX_MAILSUM);
        RegisterNamespace("MAIL:SUMM:N",       0, 0, tmplput_MAIL_SUMM_N,        CTX_MAILSUM);
@@ -1042,11 +1037,12 @@ InitModule_MSGRENDERERS
        RegisterConditional(HKEY("COND:MAIL:SUMM:OTHERNODE"), 0, Conditional_MAIL_SUMM_OTHERNODE, CTX_MAILSUM);
        RegisterConditional(HKEY("COND:MAIL:ANON"), 0, Conditional_ANONYMOUS_MESSAGE, CTX_MAILSUM);
 
+
+       /* do we have mimetypes to iterate over? */
        RegisterConditional(HKEY("COND:MAIL:MIME:ATTACH"), 0, Conditional_MAIL_MIME_ALL, CTX_MAILSUM);
        RegisterConditional(HKEY("COND:MAIL:MIME:ATTACH:SUBMESSAGES"), 0, Conditional_MAIL_MIME_SUBMESSAGES, CTX_MAILSUM);
        RegisterConditional(HKEY("COND:MAIL:MIME:ATTACH:LINKS"), 0, Conditional_MAIL_MIME_ATTACHLINKS, CTX_MAILSUM);
        RegisterConditional(HKEY("COND:MAIL:MIME:ATTACH:ATT"), 0, Conditional_MAIL_MIME_ATTACH, CTX_MAILSUM);
-
        RegisterIterator("MAIL:MIME:ATTACH", 0, NULL, iterate_get_mime_All, 
                         NULL, NULL, CTX_MIME_ATACH, CTX_MAILSUM);
        RegisterIterator("MAIL:MIME:ATTACH:SUBMESSAGES", 0, NULL, iterate_get_mime_Submessages, 
@@ -1056,6 +1052,7 @@ InitModule_MSGRENDERERS
        RegisterIterator("MAIL:MIME:ATTACH:ATT", 0, NULL, iterate_get_mime_Attachments, 
                         NULL, NULL, CTX_MIME_ATACH, CTX_MAILSUM);
 
+       /* Parts of a mime attachent */
        RegisterNamespace("MAIL:MIME:NAME", 0, 2, tmplput_MIME_Name, CTX_MIME_ATACH);
        RegisterNamespace("MAIL:MIME:FILENAME", 0, 2, tmplput_MIME_FileName, CTX_MIME_ATACH);
        RegisterNamespace("MAIL:MIME:PARTNUM", 0, 2, tmplput_MIME_PartNum, CTX_MIME_ATACH);
@@ -1065,23 +1062,26 @@ InitModule_MSGRENDERERS
        RegisterNamespace("MAIL:MIME:CHARSET", 0, 2, tmplput_MIME_Charset, CTX_MIME_ATACH);
        RegisterNamespace("MAIL:MIME:LENGTH", 0, 2, tmplput_MIME_Length, CTX_MIME_ATACH);
        RegisterNamespace("MAIL:MIME:DATA", 0, 2, tmplput_MIME_Data, CTX_MIME_ATACH);
+       /* load the actual attachment into WC->attachments; no output!!! */
        RegisterNamespace("MAIL:MIME:LOADDATA", 0, 0, tmplput_MIME_LoadData, CTX_MIME_ATACH);
 
+       /* iterate the WC->attachments; use the above tokens for their contents */
        RegisterIterator("MSG:ATTACHNAMES", 0, NULL, iterate_get_registered_Attachments, 
                         NULL, NULL, CTX_MIME_ATACH, CTX_NONE);
 
+       /* mime renderers translate an attachment into webcit viewable html text */
        RegisterMimeRenderer(HKEY("message/rfc822"), render_MAIL);
        RegisterMimeRenderer(HKEY("text/x-vcard"), render_MIME_VCard);
        RegisterMimeRenderer(HKEY("text/vcard"), render_MIME_VCard);
        RegisterMimeRenderer(HKEY("text/calendar"), render_MIME_ICS);
        RegisterMimeRenderer(HKEY("application/ics"), render_MIME_ICS);
-
        RegisterMimeRenderer(HKEY("text/x-citadel-variformat"), render_MAIL_variformat);
        RegisterMimeRenderer(HKEY("text/plain"), render_MAIL_text_plain);
        RegisterMimeRenderer(HKEY("text"), render_MAIL_text_plain);
        RegisterMimeRenderer(HKEY("text/html"), render_MAIL_html);
        RegisterMimeRenderer(HKEY(""), render_MAIL_UNKNOWN);
 
+       /* these headers are citserver replies to MSG4 and friends. one evaluator for each */
        RegisterMsgHdr(HKEY("nhdr"), examine_nhdr, 0);
        RegisterMsgHdr(HKEY("type"), examine_type, 0);
        RegisterMsgHdr(HKEY("from"), examine_from, 0);
@@ -1097,13 +1097,14 @@ InitModule_MSGRENDERERS
        RegisterMsgHdr(HKEY("time"), examine_time, 0);
        RegisterMsgHdr(HKEY("part"), examine_mime_part, 0);
        RegisterMsgHdr(HKEY("text"), examine_text, 1);
+       /* these are the content-type headers we get infront of a message; put it into the same hash since it doesn't clash. */
        RegisterMsgHdr(HKEY("X-Citadel-MSG4-Partnum"), examine_msg4_partnum, 0);
        RegisterMsgHdr(HKEY("Content-type"), examine_content_type, 0);
        RegisterMsgHdr(HKEY("Content-length"), examine_content_lengh, 0);
-       RegisterMsgHdr(HKEY("Content-transfer-encoding"), examine_content_encoding, 0);
+       RegisterMsgHdr(HKEY("Content-transfer-encoding"), examine_content_encoding, 0); /* do we care? */
        RegisterMsgHdr(HKEY("charset"), examine_charset, 0);
 
-       /* Don't care... */
+       /* Don't care about these... */
        RegisterMsgHdr(HKEY("pref"), examine_pref, 0);
        RegisterMsgHdr(HKEY("suff"), examine_suff, 0);
        RegisterMsgHdr(HKEY("path"), examine_path, 0);