We will be reusing is_from_line for quoting format-patch output in the next commit. Suggested-by: Johannes Schindelin <Johannes.Schindelin@xxxxxx> Signed-off-by: Eric Wong <e@xxxxxxxxx> --- builtin/mailsplit.c | 32 +------------------------------- mailinfo.c | 31 +++++++++++++++++++++++++++++++ mailinfo.h | 1 + 3 files changed, 33 insertions(+), 31 deletions(-) diff --git a/builtin/mailsplit.c b/builtin/mailsplit.c index 3068168..bb8f9c9 100644 --- a/builtin/mailsplit.c +++ b/builtin/mailsplit.c @@ -8,41 +8,11 @@ #include "builtin.h" #include "string-list.h" #include "strbuf.h" +#include "mailinfo.h" static const char git_mailsplit_usage[] = "git mailsplit [-d<prec>] [-f<n>] [-b] [--keep-cr] -o<directory> [(<mbox>|<Maildir>)...]"; -static 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; -} - static struct strbuf buf = STRBUF_INIT; static int keep_cr; static int mboxrd; 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; +} diff --git a/mailinfo.h b/mailinfo.h index 93776a7..c1430a0 100644 --- a/mailinfo.h +++ b/mailinfo.h @@ -37,5 +37,6 @@ struct mailinfo { extern void setup_mailinfo(struct mailinfo *); extern int mailinfo(struct mailinfo *, const char *msg, const char *patch); extern void clear_mailinfo(struct mailinfo *); +int is_from_line(const char *line, int len); #endif /* MAILINFO_H */ -- EW -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html