summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorCarson Howard <carsonh@axosoft.com>2017-10-11 21:47:58 -0700
committerCarson Howard <carsonh@axosoft.com>2017-10-11 21:47:58 -0700
commit1436b0e11ca9e6567d21fe3ebd74dda4c405c4b2 (patch)
tree8c2d63921adea35e763c74e6cc238b19d3d38c2a /examples
parent8ac8c78c35905f7f9cc37f240c3d633a7cc5a5e3 (diff)
downloadlibgit2-1436b0e11ca9e6567d21fe3ebd74dda4c405c4b2.tar.gz
example-log: add support for --log-size
Diffstat (limited to 'examples')
-rw-r--r--examples/log.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/examples/log.c b/examples/log.c
index e54eed3ce..b339f1c13 100644
--- a/examples/log.c
+++ b/examples/log.c
@@ -49,7 +49,7 @@ static int add_revision(struct log_state *s, const char *revstr);
/** log_options holds other command line options that affect log output */
struct log_options {
- int show_diff;
+ int show_diff, show_log_size;
int skip, limit;
int min_parents, max_parents;
git_time_t before;
@@ -63,7 +63,7 @@ struct log_options {
static int parse_options(
struct log_state *s, struct log_options *opt, int argc, char **argv);
static void print_time(const git_time *intime, const char *prefix);
-static void print_commit(git_commit *commit);
+static void print_commit(git_commit *commit, int show_log_size);
static int match_with_parent(git_commit *commit, int i, git_diff_options *);
/** utility functions for filtering */
@@ -148,7 +148,7 @@ int main(int argc, char *argv[])
break;
}
- print_commit(commit);
+ print_commit(commit, opt.show_log_size);
if (opt.show_diff) {
git_tree *a = NULL, *b = NULL;
@@ -337,7 +337,7 @@ static void print_time(const git_time *intime, const char *prefix)
}
/** Helper to print a commit object. */
-static void print_commit(git_commit *commit)
+static void print_commit(git_commit *commit, int show_log_size)
{
char buf[GIT_OID_HEXSZ + 1];
int i, count;
@@ -347,6 +347,11 @@ static void print_commit(git_commit *commit)
git_oid_tostr(buf, sizeof(buf), git_commit_id(commit));
printf("commit %s\n", buf);
+ if (show_log_size) {
+ printf("log size %d", (int)strlen(git_commit_message(commit)));
+ printf("\n");
+ }
+
if ((count = (int)git_commit_parentcount(commit)) > 1) {
printf("Merge:");
for (i = 0; i < count; ++i) {
@@ -470,6 +475,8 @@ static int parse_options(
/** Found valid --min_parents. */;
else if (!strcmp(a, "-p") || !strcmp(a, "-u") || !strcmp(a, "--patch"))
opt->show_diff = 1;
+ else if (!strcmp(a, "--log-size"))
+ opt->show_log_size = 1;
else
usage("Unsupported argument", a);
}