Yet another api change in libgit2...
let's quote the website "libgit2 is ... linkable library with a solid
API ..."

Signed-off-by: Martin Gysel <m...@bearsh.org>
---
 save-git.c | 28 ++++++++++++++++++----------
 1 file changed, 18 insertions(+), 10 deletions(-)

diff --git a/save-git.c b/save-git.c
index a8f745c..6c2587b 100644
--- a/save-git.c
+++ b/save-git.c
@@ -26,6 +26,14 @@
   #define git_reference_set_target(out,ref,target,signature,log_message) \
        git_reference_set_target(out,ref,target)
 #endif
+/*
+ * api break in libgit2 revision 0.22
+ */
+#if !LIBGIT2_VER_MAJOR && LIBGIT2_VER_MINOR < 22
+  #define git_treebuilder_new(out, repo, source) git_treebuilder_create(out, 
source)
+#else
+  #define git_treebuilder_write(id, repo, bld)   git_treebuilder_write(id, bld)
+#endif
 
 #define VA_BUF(b, fmt) do { va_list args; va_start(args, fmt); put_vformat(b, 
fmt, args); va_end(args); } while (0)
 
@@ -464,7 +472,7 @@ static int tree_insert(git_treebuilder *dir, const char 
*name, int mkunique, git
  * set the "unique" flag, which will then append the SHA1
  * of the directory to the name when it is written.
  */
-static struct dir *new_directory(struct dir *parent, struct membuffer *namebuf)
+static struct dir *new_directory(git_repository *repo, struct dir *parent, 
struct membuffer *namebuf)
 {
        struct dir *subdir;
        const char *name = mb_cstring(namebuf);
@@ -477,7 +485,7 @@ static struct dir *new_directory(struct dir *parent, struct 
membuffer *namebuf)
         * and an empty treebuilder list of files.
         */
        subdir->subdirs = NULL;
-       git_treebuilder_create(&subdir->files, NULL);
+       git_treebuilder_new(&subdir->files, repo, NULL);
        memcpy(subdir->name, name, len);
        subdir->unique = 0;
        subdir->name[len] = 0;
@@ -489,7 +497,7 @@ static struct dir *new_directory(struct dir *parent, struct 
membuffer *namebuf)
        return subdir;
 }
 
-static struct dir *mktree(struct dir *dir, const char *fmt, ...)
+static struct dir *mktree(git_repository *repo, struct dir *dir, const char 
*fmt, ...)
 {
        struct membuffer buf = { 0 };
        struct dir *subdir;
@@ -504,7 +512,7 @@ static struct dir *mktree(struct dir *dir, const char *fmt, 
...)
                        break;
        }
        if (!subdir)
-               subdir = new_directory(dir, &buf);
+               subdir = new_directory(repo, dir, &buf);
        free_buffer(&buf);
        return subdir;
 }
@@ -595,7 +603,7 @@ static int save_one_picture(git_repository *repo, struct 
dir *dir, struct pictur
 static int save_pictures(git_repository *repo, struct dir *dir, struct dive 
*dive)
 {
        if (dive->picture_list) {
-               dir = mktree(dir, "Pictures");
+               dir = mktree(repo, dir, "Pictures");
                FOR_EACH_PICTURE(dive) {
                        save_one_picture(repo, dir, picture);
                }
@@ -612,7 +620,7 @@ static int save_one_dive(git_repository *repo, struct dir 
*tree, struct dive *di
 
        /* Create dive directory */
        create_dive_name(dive, &name, tm);
-       subdir = new_directory(tree, &name);
+       subdir = new_directory(repo, tree, &name);
        subdir->unique = 1;
        free_buffer(&name);
 
@@ -738,7 +746,7 @@ static int save_one_trip(git_repository *repo, struct dir 
*tree, dive_trip_t *tr
 
        /* Create trip directory */
        create_trip_name(trip, &name, tm);
-       subdir = new_directory(tree, &name);
+       subdir = new_directory(repo, tree, &name);
        subdir->unique = 1;
        free_buffer(&name);
 
@@ -837,8 +845,8 @@ static int create_git_tree(git_repository *repo, struct dir 
*root, bool select_o
 
                /* Create the date-based hierarchy */
                utc_mkdate(trip ? trip->when : dive->when, &tm);
-               tree = mktree(root, "%04d", tm.tm_year + 1900);
-               tree = mktree(tree, "%02d", tm.tm_mon + 1);
+               tree = mktree(repo, root, "%04d", tm.tm_year + 1900);
+               tree = mktree(repo, tree, "%02d", tm.tm_mon + 1);
 
                if (trip) {
                        /* Did we already save this trip? */
@@ -1072,7 +1080,7 @@ static int do_git_save(git_repository *repo, const char 
*branch, bool select_onl
        /* Start with an empty tree: no subdirectories, no files */
        tree.name[0] = 0;
        tree.subdirs = NULL;
-       if (git_treebuilder_create(&tree.files, NULL))
+       if (git_treebuilder_new(&tree.files, repo, NULL))
                return report_error("git treebuilder failed");
 
        /* Populate our tree data structure */
-- 
2.2.1

_______________________________________________
subsurface mailing list
subsurface@subsurface-divelog.org
http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface

Reply via email to