Merge pull request #400 from boyski/fixup-examples Fix up examples code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
diff --git a/examples/Makefile b/examples/Makefile
index f7bf469..efb5554 100644
--- a/examples/Makefile
+++ b/examples/Makefile
@@ -1,10 +1,13 @@
-all: general showindex
+.PHONY: all
+
+CC = gcc
+CFLAGS = -g -I../include
+LFLAGS = -L../build -lgit2 -lz
-general : general.c
- gcc -lgit2 -o general general.c
+all: general showindex
-showindex : showindex.c
- gcc -lgit2 -o showindex showindex.c
+% : %.c
+ $(CC) -o $@ $(CFLAGS) $< $(LFLAGS)
clean:
- rm general showindex
+ $(RM) general showindex
diff --git a/examples/general.c b/examples/general.c
index 91b6ee8..9bfbc40 100644
--- a/examples/general.c
+++ b/examples/general.c
@@ -38,7 +38,11 @@ int main (int argc, char** argv)
//
// [me]: http://libgit2.github.com/libgit2/#HEAD/group/repository
git_repository *repo;
- git_repository_open(&repo, "/opt/libgit2-test/.git");
+ if (argc > 1) {
+ git_repository_open(&repo, argv[1]);
+ } else {
+ git_repository_open(&repo, "/opt/libgit2-test/.git");
+ }
// ### SHA-1 Value Conversions
@@ -52,7 +56,7 @@ int main (int argc, char** argv)
git_oid_fromstr(&oid, hex);
// Once we've converted the string into the oid value, we can get the raw value of the SHA.
- printf("Raw 20 bytes: [%s]\n", (&oid)->id);
+ printf("Raw 20 bytes: [%.20s]\n", (&oid)->id);
// Next we will convert the 20 byte raw SHA1 value to a human readable 40 char hex value.
printf("\n*Raw to Hex*\n");
@@ -138,15 +142,14 @@ int main (int argc, char** argv)
error = git_commit_lookup(&commit, repo, &oid);
const git_signature *author, *cmtter;
- const char *message, *message_short;
+ const char *message;
time_t ctime;
unsigned int parents, p;
// Each of the properties of the commit object are accessible via methods, including commonly
- // needed variations, such as `git_commit_time` which returns the author time and `_message_short`
- // which gives you just the first line of the commit message.
+ // needed variations, such as `git_commit_time` which returns the author time and `_message`
+ // which gives you the commit message.
message = git_commit_message(commit);
- message_short = git_commit_message_short(commit);
author = git_commit_author(commit);
cmtter = git_commit_committer(commit);
ctime = git_commit_time(commit);
@@ -187,9 +190,9 @@ int main (int argc, char** argv)
// this to create a commit in order to specify who created it and when. Default values for the name
// and email should be found in the `user.name` and `user.email` configuration options. See the `config`
// section of this example file to see how to access config values.
- author = git_signature_new("Scott Chacon", "schacon@gmail.com",
+ git_signature_new((git_signature **)&author, "Scott Chacon", "schacon@gmail.com",
123456789, 60);
- cmtter = git_signature_new("Scott A Chacon", "scott@github.com",
+ git_signature_new((git_signature **)&cmtter, "Scott A Chacon", "scott@github.com",
987654321, 90);
// Commit objects need a tree to point to and optionally one or more parents. Here we're creating oid
@@ -207,6 +210,7 @@ int main (int argc, char** argv)
NULL, /* do not update the HEAD */
author,
cmtter,
+ NULL, /* use default message encoding */
"example commit",
tree,
1, parent);
@@ -294,7 +298,7 @@ int main (int argc, char** argv)
// Note that this buffer may not be contain ASCII data for certain blobs (e.g. binary files):
// do not consider the buffer a NULL-terminated string, and use the `git_blob_rawsize` attribute to
// find out its exact size in bytes
- printf("Blob Size: %d\n", git_blob_rawsize(blob)); // 8
+ printf("Blob Size: %ld\n", git_blob_rawsize(blob)); // 8
git_blob_rawcontent(blob); // "content"
// ### Revwalking
@@ -333,7 +337,7 @@ int main (int argc, char** argv)
// be cached in memory
while ((git_revwalk_next(&oid, walk)) == GIT_SUCCESS) {
error = git_commit_lookup(&wcommit, repo, &oid);
- cmsg = git_commit_message_short(wcommit);
+ cmsg = git_commit_message(wcommit);
cauth = git_commit_author(wcommit);
printf("%s (%s)\n", cmsg, cauth->email);
git_commit_close(wcommit);