Changeset 3487

Show
Ignore:
Timestamp:
03/12/08 19:26:53
Author:
agarcia
Message:

2008-03-12 Alberto Garcia Gonzalez <agarcia@igalia.com>

  • Reverted the "Leave on disk, MIME parsing" patch, as it's

causing serious problems.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/ChangeLog

    r3486 r3487  
     12008-03-12  Alberto Garcia Gonzalez <agarcia@igalia.com> 
     2 
     3        * Reverted the "Leave on disk, MIME parsing" patch, as it's 
     4        causing serious problems. 
     5 
    162008-03-11  Jose Dapena Paz  <jdapena@igalia.com> 
    27 
  • trunk/libtinymail-camel/camel-lite/camel/camel-mime-parser.c

    r3462 r3487  
    146146}; 
    147147 
    148 static void folder_scan_step_hdr(struct _header_scan_state *s, char **databuffer, size_t *datalength, int *hdr_end); 
    149148static void folder_scan_step(struct _header_scan_state *s, char **databuffer, size_t *datalength); 
    150149static void folder_scan_drop_step(struct _header_scan_state *s); 
     
    623622 
    624623                folder_scan_step(s, databuffer, datalength); 
    625         } else 
    626                 s->unstep--; 
    627  
    628         d(printf("NEW STATE:  '%s' :\n", states[s->state])); 
    629  
    630         return s->state; 
    631 } 
    632  
    633  
    634 camel_mime_parser_state_t 
    635 camel_mime_parser_step_hdr (CamelMimeParser *parser, char **databuffer, size_t *datalength, int *hdr_end) 
    636 { 
    637         struct _header_scan_state *s = _PRIVATE (parser); 
    638  
    639         d(printf("OLD STATE:  '%s' :\n", states[s->state])); 
    640  
    641         if (s->unstep <= 0) { 
    642                 char *dummy; 
    643                 size_t dummylength; 
    644  
    645                 if (databuffer == NULL) { 
    646                         databuffer = &dummy; 
    647                         datalength = &dummylength; 
    648                 } 
    649  
    650                 folder_scan_step_hdr (s, databuffer, datalength, hdr_end); 
    651624        } else 
    652625                s->unstep--; 
     
    15461519 
    15471520static void 
    1548 folder_scan_step_hdr (struct _header_scan_state *s, char **databuffer, size_t *datalength, int *hdr_end
     1521folder_scan_step(struct _header_scan_state *s, char **databuffer, size_t *datalength
    15491522{ 
    15501523        struct _header_scan_stack *h, *hb; 
     
    16791652        case CAMEL_MIME_PARSER_STATE_HEADER: 
    16801653                s->state = CAMEL_MIME_PARSER_STATE_BODY; 
    1681                 *hdr_end = folder_tell (s); 
    16821654 
    16831655        case CAMEL_MIME_PARSER_STATE_BODY: 
     
    17961768} 
    17971769 
    1798 static void 
    1799 folder_scan_step (struct _header_scan_state *s, char **databuffer, size_t *datalength) 
    1800 { 
    1801         int i; 
    1802         folder_scan_step_hdr (s, databuffer, datalength, &i); 
    1803 } 
    1804  
    18051770/* drops the current state back one */ 
    18061771static void 
  • trunk/libtinymail-camel/camel-lite/camel/camel-mime-parser.h

    r3462 r3487  
    100100 
    101101/* normal interface */ 
    102 camel_mime_parser_state_t camel_mime_parser_step_hdr (CamelMimeParser *parser, char **buf, size_t *buflen, int *hdr_end); 
    103102camel_mime_parser_state_t camel_mime_parser_step (CamelMimeParser *parser, char **buf, size_t *buflen); 
    104103void camel_mime_parser_unstep (CamelMimeParser *parser); 
  • trunk/libtinymail-camel/camel-lite/camel/camel-mime-part-utils.c

    r3463 r3487  
    6161        GByteArray *buffer = NULL; 
    6262        CamelStream *stream; 
    63         int start = -1, end; 
     63        off_t start, end; 
    6464        int fd = -1; 
    6565        size_t len; 
    6666        char *buf; 
    67         gboolean done = FALSE; 
    68         camel_mime_parser_state_t state; 
    69  
     67         
    7068        d(printf ("simple_data_wrapper_construct_from_parser()\n")); 
    7169         
    7270        if (!(stream = camel_mime_parser_stream (mp))) 
    7371                fd = camel_mime_parser_fd (mp); 
    74         else if (!CAMEL_IS_SEEKABLE_STREAM (stream)) 
     72        else if (!CAMEL_IS_SEEKABLE_SUBSTREAM (stream)) 
    7573                stream = NULL; 
    7674 
     
    8179                buffer = g_byte_array_new (); 
    8280        } 
    83  
    84         do { 
    85  
    86                 state = camel_mime_parser_step_hdr (mp, &buf, &len, &start); 
    87  
    88                 if (state == CAMEL_MIME_PARSER_STATE_BODY) { 
    89                         //start = camel_mime_parser_tell (mp); 
    90                         done = TRUE; 
    91                 } 
    92  
     81         
     82        while (camel_mime_parser_step (mp, &buf, &len) != CAMEL_MIME_PARSER_STATE_BODY_END) { 
    9383                if (buffer != NULL) { 
    9484                        d(printf("appending o/p data: %d: %.*s\n", len, len, buf)); 
    9585                        g_byte_array_append (buffer, (guint8 *) buf, len); 
    9686                } 
    97         } while (state != CAMEL_MIME_PARSER_STATE_BODY_END); 
    98  
    99  
     87        } 
     88         
    10089        if (buffer == NULL) { 
    10190                end = camel_mime_parser_tell (mp); 
     91                 
    10292                if (stream != NULL) 
    10393                        stream = camel_seekable_substream_new ((CamelSeekableStream *) stream, start, end); 
  • trunk/libtinymail-camel/tny-camel-mime-part.c

    r3463 r3487  
    2828#include <string.h> 
    2929#include <errno.h> 
    30 #include <ctype.h> 
    3130 
    3231#include <tny-mime-part.h>