static int handle_content_type(char *line) { char boundary[256]; if (strcasestr(line, "text/") == NULL) message_type = TYPE_OTHER; if (slurp_attr(line, "boundary=", boundary + 2)) { memcpy(boundary, "--", 2); if (content_top++ >= &content[MAX_BOUNDARIES]) { fprintf(stderr, "Too many boundaries to handle\n"); exit(1); } content_top->boundary_len = strlen(boundary); content_top->boundary = xmalloc(content_top->boundary_len+1); strcpy(content_top->boundary, boundary); } if (slurp_attr(line, "charset=", charset)) { int i, c; for (i = 0; (c = charset[i]) != 0; i++) charset[i] = tolower(c); } return 0; }
static void handle_content_type(struct strbuf *line) { struct strbuf *boundary = xmalloc(sizeof(struct strbuf)); strbuf_init(boundary, line->len); if (!strcasestr(line->buf, "text/")) message_type = TYPE_OTHER; if (slurp_attr(line->buf, "boundary=", boundary)) { strbuf_insert(boundary, 0, "--", 2); if (++content_top > &content[MAX_BOUNDARIES]) { fprintf(stderr, "Too many boundaries to handle\n"); exit(1); } *content_top = boundary; boundary = NULL; } slurp_attr(line->buf, "charset=", &charset); if (boundary) { strbuf_release(boundary); free(boundary); } }
static void handle_content_type(struct mailinfo *mi, struct strbuf *line) { struct strbuf *boundary = xmalloc(sizeof(struct strbuf)); strbuf_init(boundary, line->len); if (slurp_attr(line->buf, "boundary=", boundary)) { strbuf_insert(boundary, 0, "--", 2); if (++mi->content_top >= &mi->content[MAX_BOUNDARIES]) { error("Too many boundaries to handle"); mi->input_error = -1; mi->content_top = &mi->content[MAX_BOUNDARIES] - 1; return; } *(mi->content_top) = boundary; boundary = NULL; } slurp_attr(line->buf, "charset=", &mi->charset); if (boundary) { strbuf_release(boundary); free(boundary); } }