Changeset 3137

Show
Ignore:
Timestamp:
12/15/07 15:06:45
Author:
pvanhoof
Message:

Encoding decoding fixes

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/libtinymail-camel/camel-lite/camel/camel-folder-summary.c

    r3134 r3137  
    21642164 
    21652165        subject = summary_format_string(h, "subject", charset); 
    2166         from = summary_format_string(h, "from", charset); 
    2167         to = summary_format_string(h, "to", charset); 
    2168         cc = summary_format_string(h, "cc", charset); 
     2166        from = summary_format_address(h, "from", charset); 
     2167        to = summary_format_address(h, "to", charset); 
     2168        cc = summary_format_address(h, "cc", charset); 
    21692169 
    21702170        prio = camel_header_raw_find(&h, "X-Priority", NULL); 
  • trunk/libtinymail-camel/camel-lite/camel/camel-mime-utils.c

    r3115 r3137  
    840840        gboolean retried = FALSE; 
    841841        iconv_t ic; 
     842        int idx = 0; 
    842843 
    843844        d(printf("rfc2047: decoding '%.*s'\n", len, in)); 
    844845 
    845846        /* quick check to see if this could possibly be a real encoded word */ 
     847 
    846848        if (len < 8 || !(in[0] == '=' && in[1] == '?')) { 
    847849                d(printf("invalid\n")); 
  • trunk/libtinymail-camel/tny-camel-msg-header.c

    r3133 r3137  
    4646 
    4747static char* 
    48 decode_it (CamelMimeMessage *msg, const char *str
     48decode_it (CamelMimeMessage *msg, const char *str, gboolean is_addr
    4949{ 
    5050        struct _camel_header_raw *h = ((CamelMimePart *)msg)->headers; 
     
    6666                str++; 
    6767 
     68        if (is_addr) { 
     69                char *ret; 
     70                struct _camel_header_address *addr; 
     71                addr = camel_header_address_decode (str, charset); 
     72                if (addr) { 
     73                        ret = camel_header_address_list_format (addr); 
     74                        camel_header_address_list_clear (&addr); 
     75                } else { 
     76                        ret = g_strdup (str); 
     77                } 
     78                return ret; 
     79        } 
     80 
    6881        return camel_header_decode_string (str, charset); 
    6982} 
     
    7790        if (!me->reply_to) { 
    7891                enc = camel_medium_get_header (CAMEL_MEDIUM (me->msg), "reply-to"); 
    79                 me->reply_to = decode_it (me->msg, enc); 
     92                me->reply_to = decode_it (me->msg, enc, TRUE); 
    8093        } 
    8194 
     
    193206        if (!me->cc) { 
    194207                enc = camel_medium_get_header (CAMEL_MEDIUM (me->msg), "cc"); 
    195                 me->cc = decode_it (me->msg, enc); 
     208                me->cc = decode_it (me->msg, enc, TRUE); 
    196209        } 
    197210 
     
    207220        if (!me->bcc) { 
    208221                enc = camel_medium_get_header (CAMEL_MEDIUM (me->msg), "bcc"); 
    209                 me->bcc = decode_it (me->msg, enc); 
     222                me->bcc = decode_it (me->msg, enc, TRUE); 
    210223        } 
    211224 
     
    375388        if (!me->from) { 
    376389                enc = camel_medium_get_header (CAMEL_MEDIUM (me->msg), "from"); 
    377                 me->from = decode_it (me->msg, enc); 
     390                me->from = decode_it (me->msg, enc, TRUE); 
    378391        } 
    379392 
     
    389402        if (!me->subject) { 
    390403                enc = camel_medium_get_header (CAMEL_MEDIUM (me->msg), "subject"); 
    391                 me->subject = decode_it (me->msg, enc); 
     404                me->subject = decode_it (me->msg, enc, FALSE); 
    392405        } 
    393406 
     
    404417        if (!me->to) { 
    405418                enc = camel_medium_get_header (CAMEL_MEDIUM (me->msg), "to"); 
    406                 me->to = decode_it (me->msg, enc); 
     419                me->to = decode_it (me->msg, enc, TRUE); 
    407420        } 
    408421 
  • trunk/tests/c-demo/tny-demoui-summary-view.c

    r3070 r3137  
    10721072                                info->msg_view = TNY_MSG_VIEW (tny_gtk_msg_window_new (tny_platform_factory_new_msg_view (platfact))); 
    10731073 
    1074                                 tny_gtk_msg_view_set_status_callback (TNY_GTK_MSG_VIEW (info->msg_view), status_update, self); 
     1074                                if (TNY_IS_GTK_MSG_VIEW (info->msg_view)) 
     1075                                        tny_gtk_msg_view_set_status_callback (TNY_GTK_MSG_VIEW (info->msg_view), status_update, self); 
    10751076 
    10761077                                g_object_ref (info->msg_view);