diff options
author | Junio C Hamano <gitster@pobox.com> | 2007-11-04 01:17:50 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2007-11-04 01:17:50 -0700 |
commit | c8a140fee4e7df83b7eb781e436b88b067f149d1 (patch) | |
tree | c24f3a016a9fddd30ebf012a6b3d07fc5535fc00 | |
parent | Merge branch 'np/pack' (diff) | |
parent | Make mailsplit and mailinfo strip whitespace from the start of the input (diff) | |
download | tgif-c8a140fee4e7df83b7eb781e436b88b067f149d1.tar.xz |
Merge branch 'ss/mailsplit'
* ss/mailsplit:
Make mailsplit and mailinfo strip whitespace from the start of the input
-rw-r--r-- | builtin-mailinfo.c | 6 | ||||
-rw-r--r-- | builtin-mailsplit.c | 6 | ||||
-rw-r--r-- | t/t5100/sample.mbox | 3 |
3 files changed, 15 insertions, 0 deletions
diff --git a/builtin-mailinfo.c b/builtin-mailinfo.c index fb12248f82..2600847974 100644 --- a/builtin-mailinfo.c +++ b/builtin-mailinfo.c @@ -915,6 +915,7 @@ static void handle_info(void) static int mailinfo(FILE *in, FILE *out, int ks, const char *encoding, const char *msg, const char *patch) { + int peek; keep_subject = ks; metainfo_charset = encoding; fin = in; @@ -935,6 +936,11 @@ static int mailinfo(FILE *in, FILE *out, int ks, const char *encoding, p_hdr_data = xcalloc(MAX_HDR_PARSED, sizeof(char *)); s_hdr_data = xcalloc(MAX_HDR_PARSED, sizeof(char *)); + do { + peek = fgetc(in); + } while (isspace(peek)); + ungetc(peek, in); + /* process the email header */ while (read_one_header_line(line, sizeof(line), fin)) check_header(line, sizeof(line), p_hdr_data, 1); diff --git a/builtin-mailsplit.c b/builtin-mailsplit.c index 43fc373a15..74b04706f3 100644 --- a/builtin-mailsplit.c +++ b/builtin-mailsplit.c @@ -164,6 +164,7 @@ static int split_mbox(const char *file, const char *dir, int allow_bare, { char name[PATH_MAX]; int ret = -1; + int peek; FILE *f = !strcmp(file, "-") ? stdin : fopen(file, "r"); int file_done = 0; @@ -173,6 +174,11 @@ static int split_mbox(const char *file, const char *dir, int allow_bare, goto out; } + do { + peek = fgetc(f); + } while (isspace(peek)); + ungetc(peek, f); + if (fgets(buf, sizeof(buf), f) == NULL) { /* empty stdin is OK */ if (f != stdin) { diff --git a/t/t5100/sample.mbox b/t/t5100/sample.mbox index b80c981c16..070c1661b9 100644 --- a/t/t5100/sample.mbox +++ b/t/t5100/sample.mbox @@ -1,3 +1,6 @@ + + + From nobody Mon Sep 17 00:00:00 2001 From: A U Thor <a.u.thor@example.com> Date: Fri, 9 Jun 2006 00:44:16 -0700 |