Make mailsplit and mailinfo strip whitespace from the start of the input
Signed-off-by: Simon Sasburg <Simon.Sasburg@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
3e4bb087a1
commit
f88a545a94
@ -915,6 +915,7 @@ static void handle_info(void)
|
|||||||
static int mailinfo(FILE *in, FILE *out, int ks, const char *encoding,
|
static int mailinfo(FILE *in, FILE *out, int ks, const char *encoding,
|
||||||
const char *msg, const char *patch)
|
const char *msg, const char *patch)
|
||||||
{
|
{
|
||||||
|
int peek;
|
||||||
keep_subject = ks;
|
keep_subject = ks;
|
||||||
metainfo_charset = encoding;
|
metainfo_charset = encoding;
|
||||||
fin = in;
|
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 *));
|
p_hdr_data = xcalloc(MAX_HDR_PARSED, sizeof(char *));
|
||||||
s_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 */
|
/* process the email header */
|
||||||
while (read_one_header_line(line, sizeof(line), fin))
|
while (read_one_header_line(line, sizeof(line), fin))
|
||||||
check_header(line, sizeof(line), p_hdr_data, 1);
|
check_header(line, sizeof(line), p_hdr_data, 1);
|
||||||
|
@ -164,6 +164,7 @@ static int split_mbox(const char *file, const char *dir, int allow_bare,
|
|||||||
{
|
{
|
||||||
char name[PATH_MAX];
|
char name[PATH_MAX];
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
|
int peek;
|
||||||
|
|
||||||
FILE *f = !strcmp(file, "-") ? stdin : fopen(file, "r");
|
FILE *f = !strcmp(file, "-") ? stdin : fopen(file, "r");
|
||||||
int file_done = 0;
|
int file_done = 0;
|
||||||
@ -173,6 +174,11 @@ static int split_mbox(const char *file, const char *dir, int allow_bare,
|
|||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
do {
|
||||||
|
peek = fgetc(f);
|
||||||
|
} while (isspace(peek));
|
||||||
|
ungetc(peek, f);
|
||||||
|
|
||||||
if (fgets(buf, sizeof(buf), f) == NULL) {
|
if (fgets(buf, sizeof(buf), f) == NULL) {
|
||||||
/* empty stdin is OK */
|
/* empty stdin is OK */
|
||||||
if (f != stdin) {
|
if (f != stdin) {
|
||||||
|
@ -1,3 +1,6 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
From nobody Mon Sep 17 00:00:00 2001
|
From nobody Mon Sep 17 00:00:00 2001
|
||||||
From: A U Thor <a.u.thor@example.com>
|
From: A U Thor <a.u.thor@example.com>
|
||||||
Date: Fri, 9 Jun 2006 00:44:16 -0700
|
Date: Fri, 9 Jun 2006 00:44:16 -0700
|
||||||
|
Loading…
Reference in New Issue
Block a user