Get AUTHOR_DATE from the email Date: line

Now that git does pretty reliable date parsing, we might as well get
the date from the email itself. Of course, it's still questionable
whether the date on the email is all that relevant, but it's certainly
no worse than taking the commit date.
This commit is contained in:
Linus Torvalds 2005-05-01 21:42:53 -07:00
Родитель 8c7b86632c
Коммит 62c1f6b4af
2 изменённых файлов: 15 добавлений и 2 удалений

Просмотреть файл

@ -26,6 +26,7 @@ EDIT=${EDIT:-vi}
export AUTHOR_NAME="$(sed -n '/^Author/ s/Author: //p' .dotest/info)"
export AUTHOR_EMAIL="$(sed -n '/^Email/ s/Email: //p' .dotest/info)"
export AUTHOR_DATE="$(sed -n '/^Date/ s/Date: //p' .dotest/info)"
export SUBJECT="$(sed -n '/^Subject/ s/Subject: //p' .dotest/info)"
if [ -n "$signoff" -a -f "$signoff" ]; then

Просмотреть файл

@ -10,6 +10,7 @@
static FILE *cmitmsg, *patchfile, *filelist;
static char line[1000];
static char date[1000];
static char name[1000];
static char email[1000];
static char subject[1000];
@ -78,6 +79,11 @@ static int handle_from(char *line)
return 1;
}
static void handle_date(char *line)
{
strcpy(date, line);
}
static void handle_subject(char *line)
{
strcpy(subject, line);
@ -99,6 +105,11 @@ static void check_line(char *line, int len)
cont = 0;
return;
}
if (!memcmp(line, "Date:", 5) && isspace(line[5])) {
handle_date(line+6);
cont = 0;
return;
}
if (!memcmp(line, "Subject:", 8) && isspace(line[8])) {
handle_subject(line+9);
cont = 1;
@ -107,7 +118,7 @@ static void check_line(char *line, int len)
if (isspace(*line)) {
switch (cont) {
case 0:
fprintf(stderr, "I don't do 'From:' line continuations\n");
fprintf(stderr, "I don't do 'Date:' or 'From:' line continuations\n");
break;
case 1:
add_subject_line(line);
@ -213,9 +224,10 @@ static void handle_rest(void)
{
char *sub = cleanup_subject(subject);
cleanup_space(name);
cleanup_space(date);
cleanup_space(email);
cleanup_space(sub);
printf("Author: %s\nEmail: %s\nSubject: %s\n\n", name, email, sub);
printf("Author: %s\nEmail: %s\nSubject: %s\nDate: %s\n\n", name, email, sub, date);
FILE *out = cmitmsg;
do {