mirror of
https://github.com/git/git.git
synced 2024-11-27 20:14:30 +08:00
git-format-patch --in-reply-to: accept <message@id> with angle brackets
This will allow RFC-literate users to say: format-patch --in-reply-to='<message.id@site.name>' without forcing them to strip the surrounding angle brackets like this: format-patch --in-reply-to='message.id@site.name' We accept both forms, and the latter gets necessary < and > around it as before. Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
767c98a592
commit
8419d2ee9b
@ -437,6 +437,34 @@ static void gen_message_id(char *dest, unsigned int length, char *base)
|
|||||||
(int)(email_end - email_start - 1), email_start + 1);
|
(int)(email_end - email_start - 1), email_start + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static const char *clean_message_id(const char *msg_id)
|
||||||
|
{
|
||||||
|
char ch;
|
||||||
|
const char *a, *z, *m;
|
||||||
|
char *n;
|
||||||
|
size_t len;
|
||||||
|
|
||||||
|
m = msg_id;
|
||||||
|
while ((ch = *m) && (isspace(ch) || (ch == '<')))
|
||||||
|
m++;
|
||||||
|
a = m;
|
||||||
|
z = NULL;
|
||||||
|
while ((ch = *m)) {
|
||||||
|
if (!isspace(ch) && (ch != '>'))
|
||||||
|
z = m;
|
||||||
|
m++;
|
||||||
|
}
|
||||||
|
if (!z)
|
||||||
|
die("insane in-reply-to: %s", msg_id);
|
||||||
|
if (++z == m)
|
||||||
|
return a;
|
||||||
|
len = z - a;
|
||||||
|
n = xmalloc(len + 1);
|
||||||
|
memcpy(n, a, len);
|
||||||
|
n[len] = 0;
|
||||||
|
return n;
|
||||||
|
}
|
||||||
|
|
||||||
int cmd_format_patch(int argc, const char **argv, const char *prefix)
|
int cmd_format_patch(int argc, const char **argv, const char *prefix)
|
||||||
{
|
{
|
||||||
struct commit *commit;
|
struct commit *commit;
|
||||||
@ -625,7 +653,8 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix)
|
|||||||
if (numbered)
|
if (numbered)
|
||||||
rev.total = total + start_number - 1;
|
rev.total = total + start_number - 1;
|
||||||
rev.add_signoff = add_signoff;
|
rev.add_signoff = add_signoff;
|
||||||
rev.ref_message_id = in_reply_to;
|
if (in_reply_to)
|
||||||
|
rev.ref_message_id = clean_message_id(in_reply_to);
|
||||||
while (0 <= --nr) {
|
while (0 <= --nr) {
|
||||||
int shown;
|
int shown;
|
||||||
commit = list[nr];
|
commit = list[nr];
|
||||||
|
Loading…
Reference in New Issue
Block a user