1
0
Fork 0
mirror of https://we.phorge.it/source/arcanist.git synced 2024-11-29 18:22:41 +01:00

Fix a bad interaction between "arc diff --reviewers" and "the first line of a message is always a title"

Summary:
Fixes T12069. We implement "arc diff --reviewers" (and "--cc") by parsing a faux message with "Reviewers: ...".

After D17122, the first line of the message is always interpreted as a title, so the text ends up in the message body.

Instead, use a placeholder title so these fields are never initial fields.

Test Plan: Ran `arc diff --reviewers dog`, got only one "Reviewers" field.

Reviewers: chad

Reviewed By: chad

Maniphest Tasks: T12069

Differential Revision: https://secure.phabricator.com/D17147
This commit is contained in:
epriestley 2017-01-05 13:55:34 -08:00
parent c243cbbd9f
commit ade25facfd

View file

@ -1962,7 +1962,13 @@ EOTEXT
$faux_message[] = pht('CC: %s', $this->getArgument('cc')); $faux_message[] = pht('CC: %s', $this->getArgument('cc'));
} }
// See T12069. After T10312, the first line of a message is always parsed
// as a title. Add a placeholder so "Reviewers" and "CC" are never the
// first line.
$placeholder_title = pht('<placeholder>');
if ($faux_message) { if ($faux_message) {
array_unshift($faux_message, $placeholder_title);
$faux_message = implode("\n\n", $faux_message); $faux_message = implode("\n\n", $faux_message);
$local = array( $local = array(
'(Flags) ' => array( '(Flags) ' => array(
@ -2034,6 +2040,10 @@ EOTEXT
continue; continue;
} }
if ($title === $placeholder_title) {
continue;
}
if (!isset($result['title'])) { if (!isset($result['title'])) {
// We don't have a title yet, so use this one. // We don't have a title yet, so use this one.
$result['title'] = $title; $result['title'] = $title;