/[mailutils]/mailutils/mh/mh_list.c
ViewVC logotype

Diff of /mailutils/mh/mh_list.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1 by gray, Thu Feb 13 16:33:58 2003 UTC revision 1.2 by gray, Sat Mar 15 23:23:07 2003 UTC
# Line 374  mhl_format_destroy (list_t *fmt) Line 374  mhl_format_destroy (list_t *fmt)
374  #define B_NEWLINE         8  #define B_NEWLINE         8
375  #define B_ADDRFIELD       9  #define B_ADDRFIELD       9
376  #define B_DATEFIELD      10  #define B_DATEFIELD      10
377  #define B_MAX            11  #define B_DECODE         12
378    #define B_MAX            13
379                                                
380  /* String variables */  /* String variables */
381  #define S_OVERFLOWTEXT   0  #define S_OVERFLOWTEXT   0
# Line 660  eval_component (struct eval_env *env, ch Line 661  eval_component (struct eval_env *env, ch
661  int  int
662  eval_body (struct eval_env *env)  eval_body (struct eval_env *env)
663  {  {
   body_t body = NULL;  
664    stream_t input = NULL;    stream_t input = NULL;
665      stream_t dstr = NULL;
666    char buf[128]; /* FIXME: Fixed size. Bad */    char buf[128]; /* FIXME: Fixed size. Bad */
667    size_t n;    size_t n;
668      body_t body = NULL;
669    
670    env->prefix = env->svar[S_COMPONENT];    env->prefix = env->svar[S_COMPONENT];
671    
672    message_get_body (env->msg, &body);    message_get_body (env->msg, &body);
673    body_get_stream (body, &input);    body_get_stream (body, &input);
674    
675      if (env->bvar[B_DECODE])
676        {
677          header_t hdr;
678          char *encoding = NULL;
679    
680          message_get_header (env->msg, &hdr);
681          header_aget_value (hdr, MU_HEADER_CONTENT_TRANSFER_ENCODING, &encoding);
682          if (encoding)
683            {
684              int rc = filter_create(&dstr, input, encoding,
685                                     MU_FILTER_DECODE, MU_STREAM_READ);
686              if (rc == 0)
687                input = dstr;
688              free (encoding);
689            }
690        }
691      
692    stream_seek (input, 0, SEEK_SET);    stream_seek (input, 0, SEEK_SET);
693    while (stream_sequential_readline (input, buf, sizeof buf, &n) == 0    while (stream_sequential_readline (input, buf, sizeof buf, &n) == 0
694           && n > 0)           && n > 0)
# Line 675  eval_body (struct eval_env *env) Line 696  eval_body (struct eval_env *env)
696        buf[n] = 0;        buf[n] = 0;
697        print (env, buf, 0);        print (env, buf, 0);
698      }      }
699      if (dstr)
700        stream_destroy (&dstr, stream_get_owner (dstr));
701    return 0;    return 0;
702  }  }
703    
# Line 770  eval_stmt (void *item, void *data) Line 793  eval_stmt (void *item, void *data)
793    
794  int  int
795  mhl_format_run (list_t fmt,  mhl_format_run (list_t fmt,
796                  int width, int length, int clearscreen, int bell,                  int width, int length, int flags,
797                  message_t msg, stream_t output)                  message_t msg, stream_t output)
798  {  {
799    int rc;    int rc;
# Line 783  mhl_format_run (list_t fmt, Line 806  mhl_format_run (list_t fmt,
806    list_create (&env.printed_fields);    list_create (&env.printed_fields);
807    env.ivar[I_WIDTH] = width;    env.ivar[I_WIDTH] = width;
808    env.ivar[I_LENGTH] = length;    env.ivar[I_LENGTH] = length;
809    env.bvar[B_CLEARSCREEN] = clearscreen;    env.bvar[B_CLEARSCREEN] = flags & MHL_CLEARSCREEN;
810    env.bvar[B_BELL] = bell;    env.bvar[B_BELL] = flags & MHL_BELL;
811      env.bvar[B_DECODE] = flags & MHL_DECODE;
812    env.pos = 0;    env.pos = 0;
813    env.nlines = 0;    env.nlines = 0;
814    env.msg = msg;    env.msg = msg;

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26