summaryrefslogtreecommitdiff
path: root/src/gitstatus.cc
diff options
context:
space:
mode:
authorRoman Perepelitsa <roman.perepelitsa@gmail.com>2021-05-30 11:35:40 +0300
committerRoman Perepelitsa <roman.perepelitsa@gmail.com>2021-05-30 11:35:40 +0300
commitba83466e1da75d9260ebbb145215d9c46d6eadf6 (patch)
tree5917ecfe20d40ae821b7cacc4382ecdc2e004a8a /src/gitstatus.cc
parent9609a835ca2eb3089e35269a05369833e9ec0ba2 (diff)
Squashed 'gitstatus/' changes from 6d00edd0..113f1f69
113f1f69 release gitstatusd-linux-x86_64 v1.5.0 e193be52 expose HEAD's commit message 815301f1 do not redefine `exec` and `builtin` in bash bindings (#235) 97c2aa17 Make `--version-glob` to receive an argument (#216) 95e549fd Support building on OpenBSD (#208) b054ddf2 make homebrew instructions work on systems other than darwin-x86_64 (#205) 98f99ade fix brew formula check git-subtree-dir: gitstatus git-subtree-split: 113f1f698667d12906d97e3818aec5d760dc6e3d
Diffstat (limited to 'src/gitstatus.cc')
-rw-r--r--src/gitstatus.cc9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/gitstatus.cc b/src/gitstatus.cc
index 5560ca8d..81399ea7 100644
--- a/src/gitstatus.cc
+++ b/src/gitstatus.cc
@@ -41,6 +41,10 @@ namespace {
using namespace std::string_literals;
+void Truncate(std::string& s, size_t max_len) {
+ if (s.size() > max_len) s.resize(max_len);
+}
+
void ProcessRequest(const Options& opts, RepoCache& cache, Request req) {
Timer timer;
ON_SCOPE_EXIT(&) { timer.Report("request"); };
@@ -167,6 +171,11 @@ void ProcessRequest(const Options& opts, RepoCache& cache, Request req) {
// The number of files in the index with assume-unchanged bit set.
resp.Print(stats.num_assume_unchanged);
+ CommitMessage msg = head_target ? GetCommitMessage(repo->repo(), *head_target) : CommitMessage();
+ Truncate(msg.summary, opts.max_commit_summary_length);
+ resp.Print(msg.encoding);
+ resp.Print(msg.summary);
+
resp.Dump("with git status");
}