Re: [PATCH 1/2] mailinfo: extract is_from_line from mailsplit
From: Andreas Schwab <hidden>
Date: 2016-07-24 08:13:42
Johannes Schindelin [off-list ref] writes:
Hi Andreas, On Sun, 24 Jul 2016, Andreas Schwab wrote:quoted
Eric Wong [off-list ref] writes:quoted
diff --git a/mailinfo.c b/mailinfo.c index 9f19ca1..0ebd953 100644 --- a/mailinfo.c +++ b/mailinfo.c@@ -1035,3 +1035,34 @@ void clear_mailinfo(struct mailinfo *mi) strbuf_release(&mi->log_message); } + +int is_from_line(const char *line, int len) +{ + const char *colon; + + if (len < 20 || memcmp("From ", line, 5)) + return 0; + + colon = line + len - 2; + line += 5; + for (;;) { + if (colon < line) + return 0; + if (*--colon == ':') + break; + } + + if (!isdigit(colon[-4]) || + !isdigit(colon[-2]) || + !isdigit(colon[-1]) || + !isdigit(colon[ 1]) || + !isdigit(colon[ 2])) + return 0; + + /* year */ + if (strtol(colon+3, NULL, 10) <= 90) + return 0; + + /* Ok, close enough */ + return 1; +}Should this be made more strict, like by checking for a space before the year?This patch only moves the function, so it would be inappropriate to change it. If you want to make it stricter, you will have to submit a separate patch.
You didn't answer my question. Andreas. -- Andreas Schwab, schwab@linux-m68k.org GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different."