summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <gitster@pobox.com>2007-11-04 01:17:50 -0700
committerLibravatar Junio C Hamano <gitster@pobox.com>2007-11-04 01:17:50 -0700
commitc8a140fee4e7df83b7eb781e436b88b067f149d1 (patch)
treec24f3a016a9fddd30ebf012a6b3d07fc5535fc00
parentMerge branch 'np/pack' (diff)
parentMake mailsplit and mailinfo strip whitespace from the start of the input (diff)
downloadtgif-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.c6
-rw-r--r--builtin-mailsplit.c6
-rw-r--r--t/t5100/sample.mbox3
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