Thanks for all your comments. This patch set is now built off master (since jt/trailer-with-cruft is merged). I couldn't think of an easy way to clearly decide if a token with spaces should be considered a token, so I've tightened the restrictions. One benefit is that we no longer need to create temporary strings that include '\n' to be passed into the find_separator method. In 2/4 (now 3/5), I've also changed some variable names as requested (e.g. sb -> input, and un-did some others). Jonathan Tan (5): trailer: be stricter in parsing separators commit: make ignore_non_trailer take buf/len trailer: avoid unnecessary splitting on lines trailer: have function to describe trailer layout sequencer: use trailer's trailer layout builtin/commit.c | 2 +- commit.c | 22 ++-- commit.h | 2 +- sequencer.c | 75 +++--------- t/t3511-cherry-pick-x.sh | 16 ++- t/t4014-format-patch.sh | 37 +++++- t/t7501-commit.sh | 36 ++++++ trailer.c | 296 ++++++++++++++++++++++++++++------------------- trailer.h | 25 ++++ 9 files changed, 313 insertions(+), 198 deletions(-) -- 2.8.0.rc3.226.g39d4020