sequencer: simplify memory allocation of get_message
commit7b35eaf8c50609ae4899dcde7fcaa1be0df657df
authorJeff King <peff@peff.net>
Mon, 22 Feb 2016 22:44:57 +0000 (22 17:44 -0500)
committerJunio C Hamano <gitster@pobox.com>
Mon, 22 Feb 2016 22:51:09 +0000 (22 14:51 -0800)
treec1d4be07465d212a6b14faf4d144bc9ce41c24cb
parent62f17513e7113b7139e925df76d37f3d7df6b38c
sequencer: simplify memory allocation of get_message

For a commit with sha1 "1234abcd" and subject "foo", this
function produces a struct with three strings:

 1. "foo"

 2. "1234abcd... foo"

 3. "parent of 1234abcd... foo"

It takes advantage of the fact that these strings are
subsets of each other, and allocates only _one_ string, with
pointers into the various parts. Unfortunately, this makes
the string allocation complicated and hard to follow.

Since we keep only one of these in memory at a time, we can
afford to simply allocate three strings. This lets us build
on tools like xstrfmt and avoid manual computation.

While we're here, we can also drop the ad-hoc
reimplementation of get_git_commit_encoding(), and simply
call that function.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
sequencer.c