Commit 85c6730c by Ben Straub

Format comments for use with docco

parent dbdb22b3
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
#include "common.h" #include "common.h"
/* /**
* This example demonstrates the use of the libgit2 diff APIs to * This example demonstrates the use of the libgit2 diff APIs to
* create `git_diff` objects and display them, emulating a number of * create `git_diff` objects and display them, emulating a number of
* core Git `diff` command line options. * core Git `diff` command line options.
...@@ -26,11 +26,7 @@ static const char *colors[] = { ...@@ -26,11 +26,7 @@ static const char *colors[] = {
"\033[36m" /* cyan */ "\033[36m" /* cyan */
}; };
/* this implements very rudimentary colorized output */ /** The 'opts' struct captures all the various parsed command line options. */
static int color_printer(
const git_diff_delta*, const git_diff_hunk*, const git_diff_line*, void*);
/* the 'opts' struct captures all the various parsed command line options */
struct opts { struct opts {
git_diff_options diffopts; git_diff_options diffopts;
git_diff_find_options findopts; git_diff_find_options findopts;
...@@ -43,6 +39,8 @@ struct opts { ...@@ -43,6 +39,8 @@ struct opts {
}; };
static void parse_opts(struct opts *o, int argc, char *argv[]); static void parse_opts(struct opts *o, int argc, char *argv[]);
static int color_printer(
const git_diff_delta*, const git_diff_hunk*, const git_diff_line*, void*);
int main(int argc, char *argv[]) int main(int argc, char *argv[])
{ {
...@@ -61,12 +59,14 @@ int main(int argc, char *argv[]) ...@@ -61,12 +59,14 @@ int main(int argc, char *argv[])
check_lg2(git_repository_open_ext(&repo, o.dir, 0, NULL), check_lg2(git_repository_open_ext(&repo, o.dir, 0, NULL),
"Could not open repository", o.dir); "Could not open repository", o.dir);
/* Possible argument patterns: /**
* <sha1> <sha2> * Possible argument patterns:
* <sha1> --cached *
* <sha1> * * <sha1> <sha2>
* --cached * * <sha1> --cached
* nothing * * <sha1>
* * --cached
* * nothing
* *
* Currently ranged arguments like <sha1>..<sha2> and <sha1>...<sha2> * Currently ranged arguments like <sha1>..<sha2> and <sha1>...<sha2>
* are not supported in this example * are not supported in this example
...@@ -100,14 +100,14 @@ int main(int argc, char *argv[]) ...@@ -100,14 +100,14 @@ int main(int argc, char *argv[])
git_diff_index_to_workdir(&diff, repo, NULL, &o.diffopts), git_diff_index_to_workdir(&diff, repo, NULL, &o.diffopts),
"diff index to working directory", NULL); "diff index to working directory", NULL);
/* apply rename and copy detection if requested */ /** Apply rename and copy detection if requested. */
if ((o.findopts.flags & GIT_DIFF_FIND_ALL) != 0) if ((o.findopts.flags & GIT_DIFF_FIND_ALL) != 0)
check_lg2( check_lg2(
git_diff_find_similar(diff, &o.findopts), git_diff_find_similar(diff, &o.findopts),
"finding renames and copies", NULL); "finding renames and copies", NULL);
/* generate simple output using libgit2 display helper */ /** Generate simple output using libgit2 display helper. */
if (o.color >= 0) if (o.color >= 0)
fputs(colors[0], stdout); fputs(colors[0], stdout);
...@@ -119,7 +119,7 @@ int main(int argc, char *argv[]) ...@@ -119,7 +119,7 @@ int main(int argc, char *argv[])
if (o.color >= 0) if (o.color >= 0)
fputs(colors[0], stdout); fputs(colors[0], stdout);
/* cleanup before exiting */ /** Cleanup before exiting. */
git_diff_free(diff); git_diff_free(diff);
git_tree_free(t1); git_tree_free(t1);
...@@ -141,6 +141,7 @@ static void usage(const char *message, const char *arg) ...@@ -141,6 +141,7 @@ static void usage(const char *message, const char *arg)
exit(1); exit(1);
} }
/** This implements very rudimentary colorized output. */
static int color_printer( static int color_printer(
const git_diff_delta *delta, const git_diff_delta *delta,
const git_diff_hunk *hunk, const git_diff_hunk *hunk,
...@@ -177,7 +178,7 @@ static void parse_opts(struct opts *o, int argc, char *argv[]) ...@@ -177,7 +178,7 @@ static void parse_opts(struct opts *o, int argc, char *argv[])
{ {
struct args_info args = ARGS_INFO_INIT; struct args_info args = ARGS_INFO_INIT;
/* parse arguments as copied from git-diff */ /* Parse arguments as copied from git-diff. */
for (args.pos = 1; args.pos < argc; ++args.pos) { for (args.pos = 1; args.pos < argc; ++args.pos) {
const char *a = argv[args.pos]; const char *a = argv[args.pos];
......
/* /*
* Copyright (C) the libgit2 contributors. All rights reserved.
*
* This file is part of libgit2, distributed under the GNU GPL v2 with
* a Linking Exception. For full terms see the included COPYING file.
*/
#include "common.h"
/**
* This is a sample program that is similar to "git init". See the * This is a sample program that is similar to "git init". See the
* documentation for that (try "git help init") to understand what this * documentation for that (try "git help init") to understand what this
* program is emulating. * program is emulating.
...@@ -8,16 +17,9 @@ ...@@ -8,16 +17,9 @@
* This also contains a special additional option that regular "git init" * This also contains a special additional option that regular "git init"
* does not support which is "--initial-commit" to make a first empty commit. * does not support which is "--initial-commit" to make a first empty commit.
* That is demonstrated in the "create_initial_commit" helper function. * That is demonstrated in the "create_initial_commit" helper function.
*
* Copyright (C) the libgit2 contributors. All rights reserved.
*
* This file is part of libgit2, distributed under the GNU GPL v2 with
* a Linking Exception. For full terms see the included COPYING file.
*/ */
#include "common.h" /** Forward declarations of helpers */
/* forward declarations of helpers */
struct opts { struct opts {
int no_options; int no_options;
int quiet; int quiet;
...@@ -41,17 +43,19 @@ int main(int argc, char *argv[]) ...@@ -41,17 +43,19 @@ int main(int argc, char *argv[])
parse_opts(&o, argc, argv); parse_opts(&o, argc, argv);
/* Initialize repository */ /* Initialize repository. */
if (o.no_options) { if (o.no_options) {
/* No options were specified, so let's demonstrate the default /**
* No options were specified, so let's demonstrate the default
* simple case of git_repository_init() API usage... * simple case of git_repository_init() API usage...
*/ */
check_lg2(git_repository_init(&repo, o.dir, 0), check_lg2(git_repository_init(&repo, o.dir, 0),
"Could not initialize repository", NULL); "Could not initialize repository", NULL);
} }
else { else {
/* Some command line options were specified, so we'll use the /**
* Some command line options were specified, so we'll use the
* extended init API to handle them * extended init API to handle them
*/ */
git_repository_init_options initopts = GIT_REPOSITORY_INIT_OPTIONS_INIT; git_repository_init_options initopts = GIT_REPOSITORY_INIT_OPTIONS_INIT;
...@@ -66,7 +70,8 @@ int main(int argc, char *argv[]) ...@@ -66,7 +70,8 @@ int main(int argc, char *argv[])
} }
if (o.gitdir) { if (o.gitdir) {
/* if you specified a separate git directory, then initialize /**
* If you specified a separate git directory, then initialize
* the repository at that path and use the second path as the * the repository at that path and use the second path as the
* working directory of the repository (with a git-link file) * working directory of the repository (with a git-link file)
*/ */
...@@ -81,7 +86,7 @@ int main(int argc, char *argv[]) ...@@ -81,7 +86,7 @@ int main(int argc, char *argv[])
"Could not initialize repository", NULL); "Could not initialize repository", NULL);
} }
/* Print a message to stdout like "git init" does */ /** Print a message to stdout like "git init" does. */
if (!o.quiet) { if (!o.quiet) {
if (o.bare || o.gitdir) if (o.bare || o.gitdir)
...@@ -92,7 +97,8 @@ int main(int argc, char *argv[]) ...@@ -92,7 +97,8 @@ int main(int argc, char *argv[])
printf("Initialized empty Git repository in %s\n", o.dir); printf("Initialized empty Git repository in %s\n", o.dir);
} }
/* As an extension to the basic "git init" command, this example /**
* As an extension to the basic "git init" command, this example
* gives the option to create an empty initial commit. This is * gives the option to create an empty initial commit. This is
* mostly to demonstrate what it takes to do that, but also some * mostly to demonstrate what it takes to do that, but also some
* people like to have that empty base commit in their repo. * people like to have that empty base commit in their repo.
...@@ -108,7 +114,8 @@ int main(int argc, char *argv[]) ...@@ -108,7 +114,8 @@ int main(int argc, char *argv[])
return 0; return 0;
} }
/* Unlike regular "git init", this example shows how to create an initial /**
* Unlike regular "git init", this example shows how to create an initial
* empty commit in the repository. This is the helper function that does * empty commit in the repository. This is the helper function that does
* that. * that.
*/ */
...@@ -119,7 +126,7 @@ static void create_initial_commit(git_repository *repo) ...@@ -119,7 +126,7 @@ static void create_initial_commit(git_repository *repo)
git_oid tree_id, commit_id; git_oid tree_id, commit_id;
git_tree *tree; git_tree *tree;
/* First use the config to initialize a commit signature for the user */ /** First use the config to initialize a commit signature for the user. */
if (git_signature_default(&sig, repo) < 0) if (git_signature_default(&sig, repo) < 0)
fatal("Unable to create a commit signature.", fatal("Unable to create a commit signature.",
...@@ -130,7 +137,8 @@ static void create_initial_commit(git_repository *repo) ...@@ -130,7 +137,8 @@ static void create_initial_commit(git_repository *repo)
if (git_repository_index(&index, repo) < 0) if (git_repository_index(&index, repo) < 0)
fatal("Could not open repository index", NULL); fatal("Could not open repository index", NULL);
/* Outside of this example, you could call git_index_add_bypath() /**
* Outside of this example, you could call git_index_add_bypath()
* here to put actual files into the index. For our purposes, we'll * here to put actual files into the index. For our purposes, we'll
* leave it empty for now. * leave it empty for now.
*/ */
...@@ -143,7 +151,8 @@ static void create_initial_commit(git_repository *repo) ...@@ -143,7 +151,8 @@ static void create_initial_commit(git_repository *repo)
if (git_tree_lookup(&tree, repo, &tree_id) < 0) if (git_tree_lookup(&tree, repo, &tree_id) < 0)
fatal("Could not look up initial tree", NULL); fatal("Could not look up initial tree", NULL);
/* Ready to create the initial commit /**
* Ready to create the initial commit.
* *
* Normally creating a commit would involve looking up the current * Normally creating a commit would involve looking up the current
* HEAD commit and making that be the parent of the initial commit, * HEAD commit and making that be the parent of the initial commit,
...@@ -155,7 +164,7 @@ static void create_initial_commit(git_repository *repo) ...@@ -155,7 +164,7 @@ static void create_initial_commit(git_repository *repo)
NULL, "Initial commit", tree, 0) < 0) NULL, "Initial commit", tree, 0) < 0)
fatal("Could not create the initial commit", NULL); fatal("Could not create the initial commit", NULL);
/* Clean up so we don't leak memory */ /** Clean up so we don't leak memory. */
git_tree_free(tree); git_tree_free(tree);
git_signature_free(sig); git_signature_free(sig);
...@@ -171,7 +180,7 @@ static void usage(const char *error, const char *arg) ...@@ -171,7 +180,7 @@ static void usage(const char *error, const char *arg)
exit(1); exit(1);
} }
/* parse the tail of the --shared= argument */ /** Parse the tail of the --shared= argument. */
static uint32_t parse_shared(const char *shared) static uint32_t parse_shared(const char *shared)
{ {
if (!strcmp(shared, "false") || !strcmp(shared, "umask")) if (!strcmp(shared, "false") || !strcmp(shared, "umask"))
...@@ -204,7 +213,7 @@ static void parse_opts(struct opts *o, int argc, char *argv[]) ...@@ -204,7 +213,7 @@ static void parse_opts(struct opts *o, int argc, char *argv[])
struct args_info args = ARGS_INFO_INIT; struct args_info args = ARGS_INFO_INIT;
const char *sharedarg; const char *sharedarg;
/* Process arguments */ /** Process arguments. */
for (args.pos = 1; args.pos < argc; ++args.pos) { for (args.pos = 1; args.pos < argc; ++args.pos) {
char *a = argv[args.pos]; char *a = argv[args.pos];
......
...@@ -7,23 +7,25 @@ ...@@ -7,23 +7,25 @@
#include "common.h" #include "common.h"
/* /**
* This example demonstrates the libgit2 rev walker APIs to roughly * This example demonstrates the libgit2 rev walker APIs to roughly
* simulate the output of `git log` and a few of command line arguments. * simulate the output of `git log` and a few of command line arguments.
* `git log` has many many options and this only shows a few of them. * `git log` has many many options and this only shows a few of them.
* *
* This does not have: * This does not have:
*
* - Robust error handling * - Robust error handling
* - Colorized or paginated output formatting * - Colorized or paginated output formatting
* - Most of the `git log` options * - Most of the `git log` options
* *
* This does have: * This does have:
*
* - Examples of translating command line arguments to equivalent libgit2 * - Examples of translating command line arguments to equivalent libgit2
* revwalker configuration calls * revwalker configuration calls
* - Simplified options to apply pathspec limits and to show basic diffs * - Simplified options to apply pathspec limits and to show basic diffs
*/ */
/* log_state represents walker being configured while handling options */ /** log_state represents walker being configured while handling options */
struct log_state { struct log_state {
git_repository *repo; git_repository *repo;
const char *repodir; const char *repodir;
...@@ -33,12 +35,12 @@ struct log_state { ...@@ -33,12 +35,12 @@ struct log_state {
int revisions; int revisions;
}; };
/* utility functions that are called to configure the walker */ /** utility functions that are called to configure the walker */
static void set_sorting(struct log_state *s, unsigned int sort_mode); static void set_sorting(struct log_state *s, unsigned int sort_mode);
static void push_rev(struct log_state *s, git_object *obj, int hide); static void push_rev(struct log_state *s, git_object *obj, int hide);
static int add_revision(struct log_state *s, const char *revstr); static int add_revision(struct log_state *s, const char *revstr);
/* log_options holds other command line options that affect log output */ /** log_options holds other command line options that affect log output */
struct log_options { struct log_options {
int show_diff; int show_diff;
int skip, limit; int skip, limit;
...@@ -49,7 +51,7 @@ struct log_options { ...@@ -49,7 +51,7 @@ struct log_options {
char *committer; char *committer;
}; };
/* utility functions that parse options and help with log output */ /** utility functions that parse options and help with log output */
static int parse_options( static int parse_options(
struct log_state *s, struct log_options *opt, int argc, char **argv); 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_time(const git_time *intime, const char *prefix);
...@@ -69,7 +71,7 @@ int main(int argc, char *argv[]) ...@@ -69,7 +71,7 @@ int main(int argc, char *argv[])
git_threads_init(); git_threads_init();
/* parse arguments and set up revwalker */ /** Parse arguments and set up revwalker. */
last_arg = parse_options(&s, &opt, argc, argv); last_arg = parse_options(&s, &opt, argc, argv);
...@@ -82,7 +84,7 @@ int main(int argc, char *argv[]) ...@@ -82,7 +84,7 @@ int main(int argc, char *argv[])
if (!s.revisions) if (!s.revisions)
add_revision(&s, NULL); add_revision(&s, NULL);
/* use the revwalker to traverse the history */ /** Use the revwalker to traverse the history. */
printed = count = 0; printed = count = 0;
...@@ -163,12 +165,12 @@ int main(int argc, char *argv[]) ...@@ -163,12 +165,12 @@ int main(int argc, char *argv[])
return 0; return 0;
} }
/* push object (for hide or show) onto revwalker */ /** Push object (for hide or show) onto revwalker. */
static void push_rev(struct log_state *s, git_object *obj, int hide) static void push_rev(struct log_state *s, git_object *obj, int hide)
{ {
hide = s->hide ^ hide; hide = s->hide ^ hide;
/* create revwalker on demand if it doesn't already exist */ /** Create revwalker on demand if it doesn't already exist. */
if (!s->walker) { if (!s->walker) {
check_lg2(git_revwalk_new(&s->walker, s->repo), check_lg2(git_revwalk_new(&s->walker, s->repo),
"Could not create revision walker", NULL); "Could not create revision walker", NULL);
...@@ -188,13 +190,13 @@ static void push_rev(struct log_state *s, git_object *obj, int hide) ...@@ -188,13 +190,13 @@ static void push_rev(struct log_state *s, git_object *obj, int hide)
git_object_free(obj); git_object_free(obj);
} }
/* parse revision string and add revs to walker */ /** Parse revision string and add revs to walker. */
static int add_revision(struct log_state *s, const char *revstr) static int add_revision(struct log_state *s, const char *revstr)
{ {
git_revspec revs; git_revspec revs;
int hide = 0; int hide = 0;
/* open repo on demand if it isn't already open */ /** Open repo on demand if it isn't already open. */
if (!s->repo) { if (!s->repo) {
if (!s->repodir) s->repodir = "."; if (!s->repodir) s->repodir = ".";
check_lg2(git_repository_open_ext(&s->repo, s->repodir, 0, NULL), check_lg2(git_repository_open_ext(&s->repo, s->repodir, 0, NULL),
...@@ -238,17 +240,17 @@ static int add_revision(struct log_state *s, const char *revstr) ...@@ -238,17 +240,17 @@ static int add_revision(struct log_state *s, const char *revstr)
return 0; return 0;
} }
/* update revwalker with sorting mode */ /** Update revwalker with sorting mode. */
static void set_sorting(struct log_state *s, unsigned int sort_mode) static void set_sorting(struct log_state *s, unsigned int sort_mode)
{ {
/* open repo on demand if it isn't already open */ /** Open repo on demand if it isn't already open. */
if (!s->repo) { if (!s->repo) {
if (!s->repodir) s->repodir = "."; if (!s->repodir) s->repodir = ".";
check_lg2(git_repository_open_ext(&s->repo, s->repodir, 0, NULL), check_lg2(git_repository_open_ext(&s->repo, s->repodir, 0, NULL),
"Could not open repository", s->repodir); "Could not open repository", s->repodir);
} }
/* create revwalker on demand if it doesn't already exist */ /** Create revwalker on demand if it doesn't already exist. */
if (!s->walker) if (!s->walker)
check_lg2(git_revwalk_new(&s->walker, s->repo), check_lg2(git_revwalk_new(&s->walker, s->repo),
"Could not create revision walker", NULL); "Could not create revision walker", NULL);
...@@ -261,7 +263,7 @@ static void set_sorting(struct log_state *s, unsigned int sort_mode) ...@@ -261,7 +263,7 @@ static void set_sorting(struct log_state *s, unsigned int sort_mode)
git_revwalk_sorting(s->walker, s->sorting); git_revwalk_sorting(s->walker, s->sorting);
} }
/* helper to format a git_time value like Git */ /** Helper to format a git_time value like Git. */
static void print_time(const git_time *intime, const char *prefix) static void print_time(const git_time *intime, const char *prefix)
{ {
char sign, out[32]; char sign, out[32];
...@@ -288,7 +290,7 @@ static void print_time(const git_time *intime, const char *prefix) ...@@ -288,7 +290,7 @@ static void print_time(const git_time *intime, const char *prefix)
printf("%s%s %c%02d%02d\n", prefix, out, sign, hours, minutes); printf("%s%s %c%02d%02d\n", prefix, out, sign, hours, minutes);
} }
/* helper to print a commit object */ /** Helper to print a commit object. */
static void print_commit(git_commit *commit) static void print_commit(git_commit *commit)
{ {
char buf[GIT_OID_HEXSZ + 1]; char buf[GIT_OID_HEXSZ + 1];
...@@ -323,7 +325,7 @@ static void print_commit(git_commit *commit) ...@@ -323,7 +325,7 @@ static void print_commit(git_commit *commit)
printf("\n"); printf("\n");
} }
/* helper to find how many files in a commit changed from its nth parent */ /** Helper to find how many files in a commit changed from its nth parent. */
static int match_with_parent(git_commit *commit, int i, git_diff_options *opts) static int match_with_parent(git_commit *commit, int i, git_diff_options *opts)
{ {
git_commit *parent; git_commit *parent;
...@@ -349,7 +351,7 @@ static int match_with_parent(git_commit *commit, int i, git_diff_options *opts) ...@@ -349,7 +351,7 @@ static int match_with_parent(git_commit *commit, int i, git_diff_options *opts)
return ndeltas > 0; return ndeltas > 0;
} }
/* print a usage message for the program */ /** Print a usage message for the program. */
static void usage(const char *message, const char *arg) static void usage(const char *message, const char *arg)
{ {
if (message && arg) if (message && arg)
...@@ -360,7 +362,7 @@ static void usage(const char *message, const char *arg) ...@@ -360,7 +362,7 @@ static void usage(const char *message, const char *arg)
exit(1); exit(1);
} }
/* parse some log command line options */ /** Parse some log command line options. */
static int parse_options( static int parse_options(
struct log_state *s, struct log_options *opt, int argc, char **argv) struct log_state *s, struct log_options *opt, int argc, char **argv)
{ {
...@@ -379,7 +381,8 @@ static int parse_options( ...@@ -379,7 +381,8 @@ static int parse_options(
if (a[0] != '-') { if (a[0] != '-') {
if (!add_revision(s, a)) if (!add_revision(s, a))
s->revisions++; s->revisions++;
else /* try failed revision parse as filename */ else
/** Try failed revision parse as filename. */
break; break;
} else if (!strcmp(a, "--")) { } else if (!strcmp(a, "--")) {
++args.pos; ++args.pos;
...@@ -392,15 +395,15 @@ static int parse_options( ...@@ -392,15 +395,15 @@ static int parse_options(
else if (!strcmp(a, "--reverse")) else if (!strcmp(a, "--reverse"))
set_sorting(s, GIT_SORT_REVERSE); set_sorting(s, GIT_SORT_REVERSE);
else if (match_str_arg(&s->repodir, &args, "--git-dir")) else if (match_str_arg(&s->repodir, &args, "--git-dir"))
/* found git-dir */; /** Found git-dir. */;
else if (match_int_arg(&opt->skip, &args, "--skip", 0)) else if (match_int_arg(&opt->skip, &args, "--skip", 0))
/* found valid --skip */; /** Found valid --skip. */;
else if (match_int_arg(&opt->limit, &args, "--max-count", 0)) else if (match_int_arg(&opt->limit, &args, "--max-count", 0))
/* found valid --max-count */; /** Found valid --max-count. */;
else if (a[1] >= '0' && a[1] <= '9') else if (a[1] >= '0' && a[1] <= '9')
is_integer(&opt->limit, a + 1, 0); is_integer(&opt->limit, a + 1, 0);
else if (match_int_arg(&opt->limit, &args, "-n", 0)) else if (match_int_arg(&opt->limit, &args, "-n", 0))
/* found valid -n */; /** Found valid -n. */;
else if (!strcmp(a, "--merges")) else if (!strcmp(a, "--merges"))
opt->min_parents = 2; opt->min_parents = 2;
else if (!strcmp(a, "--no-merges")) else if (!strcmp(a, "--no-merges"))
...@@ -410,9 +413,9 @@ static int parse_options( ...@@ -410,9 +413,9 @@ static int parse_options(
else if (!strcmp(a, "--no-max-parents")) else if (!strcmp(a, "--no-max-parents"))
opt->max_parents = -1; opt->max_parents = -1;
else if (match_int_arg(&opt->max_parents, &args, "--max-parents=", 1)) else if (match_int_arg(&opt->max_parents, &args, "--max-parents=", 1))
/* found valid --max-parents */; /** Found valid --max-parents. */;
else if (match_int_arg(&opt->min_parents, &args, "--min-parents=", 0)) else if (match_int_arg(&opt->min_parents, &args, "--min-parents=", 0))
/* found valid --min_parents */; /** Found valid --min_parents. */;
else if (!strcmp(a, "-p") || !strcmp(a, "-u") || !strcmp(a, "--patch")) else if (!strcmp(a, "-p") || !strcmp(a, "-u") || !strcmp(a, "--patch"))
opt->show_diff = 1; opt->show_diff = 1;
else else
......
...@@ -7,8 +7,7 @@ ...@@ -7,8 +7,7 @@
#include "common.h" #include "common.h"
/** Forward declarations for helpers. */
/* Forward declarations for helpers */
struct parse_state { struct parse_state {
git_repository *repo; git_repository *repo;
const char *repodir; const char *repodir;
......
...@@ -7,17 +7,19 @@ ...@@ -7,17 +7,19 @@
#include "common.h" #include "common.h"
/* /**
* This example demonstrates the use of the libgit2 status APIs, * This example demonstrates the use of the libgit2 status APIs,
* particularly the `git_status_list` object, to roughly simulate the * particularly the `git_status_list` object, to roughly simulate the
* output of running `git status`. It serves as a simple example of * output of running `git status`. It serves as a simple example of
* using those APIs to get basic status information. * using those APIs to get basic status information.
* *
* This does not have: * This does not have:
*
* - Robust error handling * - Robust error handling
* - Colorized or paginated output formatting * - Colorized or paginated output formatting
* *
* This does have: * This does have:
*
* - Examples of translating command line arguments to the status * - Examples of translating command line arguments to the status
* options settings to mimic `git status` results. * options settings to mimic `git status` results.
* - A sample status formatter that matches the default "long" format * - A sample status formatter that matches the default "long" format
...@@ -64,7 +66,7 @@ int main(int argc, char *argv[]) ...@@ -64,7 +66,7 @@ int main(int argc, char *argv[])
parse_opts(&o, argc, argv); parse_opts(&o, argc, argv);
/* /**
* Try to open the repository at the given path (or at the current * Try to open the repository at the given path (or at the current
* directory if none was given). * directory if none was given).
*/ */
...@@ -75,7 +77,7 @@ int main(int argc, char *argv[]) ...@@ -75,7 +77,7 @@ int main(int argc, char *argv[])
fatal("Cannot report status on bare repository", fatal("Cannot report status on bare repository",
git_repository_path(repo)); git_repository_path(repo));
/* /**
* Run status on the repository * Run status on the repository
* *
* Because we want to simluate a full "git status" run and want to * Because we want to simluate a full "git status" run and want to
...@@ -140,7 +142,7 @@ static void print_long(git_repository *repo, git_status_list *status) ...@@ -140,7 +142,7 @@ static void print_long(git_repository *repo, git_status_list *status)
(void)repo; (void)repo;
/* print index changes */ /** Print index changes. */
for (i = 0; i < maxi; ++i) { for (i = 0; i < maxi; ++i) {
char *istatus = NULL; char *istatus = NULL;
...@@ -189,7 +191,7 @@ static void print_long(git_repository *repo, git_status_list *status) ...@@ -189,7 +191,7 @@ static void print_long(git_repository *repo, git_status_list *status)
} }
header = 0; header = 0;
/* print workdir changes to tracked files */ /** Print workdir changes to tracked files. */
for (i = 0; i < maxi; ++i) { for (i = 0; i < maxi; ++i) {
char *wstatus = NULL; char *wstatus = NULL;
...@@ -234,7 +236,7 @@ static void print_long(git_repository *repo, git_status_list *status) ...@@ -234,7 +236,7 @@ static void print_long(git_repository *repo, git_status_list *status)
} }
header = 0; header = 0;
/* print untracked files */ /** Print untracked files. */
header = 0; header = 0;
...@@ -256,7 +258,7 @@ static void print_long(git_repository *repo, git_status_list *status) ...@@ -256,7 +258,7 @@ static void print_long(git_repository *repo, git_status_list *status)
header = 0; header = 0;
/* print ignored files */ /** Print ignored files. */
for (i = 0; i < maxi; ++i) { for (i = 0; i < maxi; ++i) {
s = git_status_byindex(status, i); s = git_status_byindex(status, i);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment