summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorCarlos Martín Nieto <carlosmn@github.com>2017-10-29 15:32:18 +0100
committerGitHub <noreply@github.com>2017-10-29 15:32:18 +0100
commit9e3fb594d644955decd3ce815e94a8e627acf83d (patch)
tree6ccf46e8ec07e2f4a6396f888c2f0d77040bcfc6 /examples
parent79e09e1a937155188c7e16596abd0b0c10eb3590 (diff)
parent12a888d557bf2527ca4e7b20db3c5a623a8530f2 (diff)
downloadlibgit2-9e3fb594d644955decd3ce815e94a8e627acf83d.tar.gz
Merge pull request #4373 from cjhoward92/examples/log-show-log-size
example-log: add support for --log-size
Diffstat (limited to 'examples')
-rw-r--r--examples/log.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/examples/log.c b/examples/log.c
index e54eed3ce..a107470ee 100644
--- a/examples/log.c
+++ b/examples/log.c
@@ -50,6 +50,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_log_size;
int skip, limit;
int min_parents, max_parents;
git_time_t before;
@@ -63,7 +64,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, struct log_options *opts);
static int match_with_parent(git_commit *commit, int i, git_diff_options *);
/** utility functions for filtering */
@@ -148,7 +149,7 @@ int main(int argc, char *argv[])
break;
}
- print_commit(commit);
+ print_commit(commit, &opt);
if (opt.show_diff) {
git_tree *a = NULL, *b = NULL;
@@ -337,7 +338,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, struct log_options *opts)
{
char buf[GIT_OID_HEXSZ + 1];
int i, count;
@@ -347,6 +348,10 @@ static void print_commit(git_commit *commit)
git_oid_tostr(buf, sizeof(buf), git_commit_id(commit));
printf("commit %s\n", buf);
+ if (opts->show_log_size) {
+ printf("log size %d\n", (int)strlen(git_commit_message(commit)));
+ }
+
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);
}