• Jeff King's avatar
    sequencer: simplify memory allocation of get_message · 7b35eaf8
    Jeff King authored
    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: default avatarJeff King <peff@peff.net>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    7b35eaf8
sequencer.c 31.7 KB