Skip to content

Commit 39afcd3

Browse files
committed
mailinfo: move handle_boundary() lower
This function wants to call find_boundary() and is called only from one place without any recursing, so it becomes easier to read if it appears after the called function. Signed-off-by: Junio C Hamano <[email protected]>
1 parent 12d19e8 commit 39afcd3

File tree

1 file changed

+56
-58
lines changed

1 file changed

+56
-58
lines changed

builtin/mailinfo.c

Lines changed: 56 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -628,64 +628,6 @@ static void decode_transfer_encoding(struct strbuf *line)
628628
free(ret);
629629
}
630630

631-
static void handle_filter(struct strbuf *line);
632-
633-
static int find_boundary(void)
634-
{
635-
while (!strbuf_getline(&line, fin, '\n')) {
636-
if (*content_top && is_multipart_boundary(&line))
637-
return 1;
638-
}
639-
return 0;
640-
}
641-
642-
static int handle_boundary(void)
643-
{
644-
struct strbuf newline = STRBUF_INIT;
645-
646-
strbuf_addch(&newline, '\n');
647-
again:
648-
if (line.len >= (*content_top)->len + 2 &&
649-
!memcmp(line.buf + (*content_top)->len, "--", 2)) {
650-
/* we hit an end boundary */
651-
/* pop the current boundary off the stack */
652-
strbuf_release(*content_top);
653-
free(*content_top);
654-
*content_top = NULL;
655-
656-
/* technically won't happen as is_multipart_boundary()
657-
will fail first. But just in case..
658-
*/
659-
if (--content_top < content) {
660-
fprintf(stderr, "Detected mismatched boundaries, "
661-
"can't recover\n");
662-
exit(1);
663-
}
664-
handle_filter(&newline);
665-
strbuf_release(&newline);
666-
667-
/* skip to the next boundary */
668-
if (!find_boundary())
669-
return 0;
670-
goto again;
671-
}
672-
673-
/* set some defaults */
674-
transfer_encoding = TE_DONTCARE;
675-
strbuf_reset(&charset);
676-
677-
/* slurp in this section's info */
678-
while (read_one_header_line(&line, fin))
679-
check_header(&line, p_hdr_data, 0);
680-
681-
strbuf_release(&newline);
682-
/* replenish line */
683-
if (strbuf_getline(&line, fin, '\n'))
684-
return 0;
685-
strbuf_addch(&line, '\n');
686-
return 1;
687-
}
688-
689631
static inline int patchbreak(const struct strbuf *line)
690632
{
691633
size_t i;
@@ -853,6 +795,62 @@ static void handle_filter(struct strbuf *line)
853795
}
854796
}
855797

798+
static int find_boundary(void)
799+
{
800+
while (!strbuf_getline(&line, fin, '\n')) {
801+
if (*content_top && is_multipart_boundary(&line))
802+
return 1;
803+
}
804+
return 0;
805+
}
806+
807+
static int handle_boundary(void)
808+
{
809+
struct strbuf newline = STRBUF_INIT;
810+
811+
strbuf_addch(&newline, '\n');
812+
again:
813+
if (line.len >= (*content_top)->len + 2 &&
814+
!memcmp(line.buf + (*content_top)->len, "--", 2)) {
815+
/* we hit an end boundary */
816+
/* pop the current boundary off the stack */
817+
strbuf_release(*content_top);
818+
free(*content_top);
819+
*content_top = NULL;
820+
821+
/* technically won't happen as is_multipart_boundary()
822+
will fail first. But just in case..
823+
*/
824+
if (--content_top < content) {
825+
fprintf(stderr, "Detected mismatched boundaries, "
826+
"can't recover\n");
827+
exit(1);
828+
}
829+
handle_filter(&newline);
830+
strbuf_release(&newline);
831+
832+
/* skip to the next boundary */
833+
if (!find_boundary())
834+
return 0;
835+
goto again;
836+
}
837+
838+
/* set some defaults */
839+
transfer_encoding = TE_DONTCARE;
840+
strbuf_reset(&charset);
841+
842+
/* slurp in this section's info */
843+
while (read_one_header_line(&line, fin))
844+
check_header(&line, p_hdr_data, 0);
845+
846+
strbuf_release(&newline);
847+
/* replenish line */
848+
if (strbuf_getline(&line, fin, '\n'))
849+
return 0;
850+
strbuf_addch(&line, '\n');
851+
return 1;
852+
}
853+
856854
static void handle_body(void)
857855
{
858856
struct strbuf prev = STRBUF_INIT;

0 commit comments

Comments
 (0)