/// <summary>Parse the complete commit message and decode it to a string.</summary> /// <remarks> /// Parse the complete commit message and decode it to a string. /// <p> /// This method parses and returns the message portion of the commit buffer, /// after taking the commit's character set into account and decoding the /// buffer using that character set. This method is a fairly expensive /// operation and produces a new string on each invocation. /// </remarks> /// <returns>decoded commit message as a string. Never null.</returns> public string GetFullMessage() { byte[] raw = buffer; int msgB = RawParseUtils.CommitMessage(raw, 0); if (msgB < 0) { return(string.Empty); } System.Text.Encoding enc = RawParseUtils.ParseEncoding(raw); return(RawParseUtils.Decode(enc, raw, msgB, raw.Length)); }
/// <summary>Parse the tag message and return the first "line" of it.</summary> /// <remarks> /// Parse the tag message and return the first "line" of it. /// <p> /// The first line is everything up to the first pair of LFs. This is the /// "oneline" format, suitable for output in a single line display. /// <p> /// This method parses and returns the message portion of the tag buffer, /// after taking the tag's character set into account and decoding the buffer /// using that character set. This method is a fairly expensive operation and /// produces a new string on each invocation. /// </remarks> /// <returns> /// decoded tag message as a string. Never null. The returned string /// does not contain any LFs, even if the first paragraph spanned /// multiple lines. Embedded LFs are converted to spaces. /// </returns> public string GetShortMessage() { byte[] raw = buffer; int msgB = RawParseUtils.TagMessage(raw, 0); if (msgB < 0) { return(string.Empty); } Encoding enc = RawParseUtils.ParseEncoding(raw); int msgE = RawParseUtils.EndOfParagraph(raw, msgB); string str = RawParseUtils.Decode(enc, raw, msgB, msgE); if (RevCommit.HasLF(raw, msgB, msgE)) { str = str.Replace('\n', ' '); } return(str); }