[libgit2-glib] Add ggit_diff_find_similar



commit 8f7ae0e503f54b778b494f9b424d26de0b9c1b8b
Author: Jesse van den Kieboom <jessevdk gnome org>
Date:   Fri Jun 27 14:26:48 2014 +0200

    Add ggit_diff_find_similar

 libgit2-glib/ggit-diff.c |   36 ++++++++++++++++++++++++++++++++++++
 libgit2-glib/ggit-diff.h |    4 ++++
 2 files changed, 40 insertions(+), 0 deletions(-)
---
diff --git a/libgit2-glib/ggit-diff.c b/libgit2-glib/ggit-diff.c
index d3c2fda..8058857 100644
--- a/libgit2-glib/ggit-diff.c
+++ b/libgit2-glib/ggit-diff.c
@@ -29,6 +29,7 @@
 #include "ggit-error.h"
 #include "ggit-repository.h"
 #include "ggit-diff-file.h"
+#include "ggit-diff-find-options.h"
 
 #define GGIT_DIFF_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE((object), GGIT_TYPE_DIFF, GgitDiffPrivate))
 
@@ -772,4 +773,39 @@ ggit_diff_blob_to_buffer (GgitBlob              *old_blob,
        }
 }
 
+/**
+ * ggit_diff_find_similar:
+ * @diff: a #GgitDiff.
+ * @options: (allow-none): a #GgitDiffFindOptions or %NULL.
+ * @error: a #GError for error reporting, or %NULL.
+ *
+ * Transform @diff marking file renames, copies, etc.. If @options is set to
+ * %NULL, then the default options will be used.
+ *
+ * Returns: %TRUE if there were no errors, %FALSE otherwise.
+ *
+ **/
+gboolean
+ggit_diff_find_similar (GgitDiff             *diff,
+                        GgitDiffFindOptions  *options,
+                        GError              **error)
+{
+       gint ret;
+
+       g_return_val_if_fail (GGIT_IS_DIFF (diff), FALSE);
+       g_return_val_if_fail (GGIT_IS_DIFF_FIND_OPTIONS (options), FALSE);
+       g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+       ret = git_diff_find_similar (_ggit_native_get (diff),
+                                    _ggit_diff_find_options_get_diff_find_options (options));
+
+       if (ret != GIT_OK)
+       {
+               _ggit_error_set (error, ret);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
 /* ex:set ts=8 noet: */
diff --git a/libgit2-glib/ggit-diff.h b/libgit2-glib/ggit-diff.h
index 1c39bcb..42970cb 100644
--- a/libgit2-glib/ggit-diff.h
+++ b/libgit2-glib/ggit-diff.h
@@ -119,6 +119,10 @@ void           ggit_diff_blob_to_buffer            (GgitBlob              *old_b
                                                     gpointer              *user_data,
                                                     GError               **error);
 
+gboolean       ggit_diff_find_similar              (GgitDiff              *diff,
+                                                    GgitDiffFindOptions   *options,
+                                                    GError               **error);
+
 G_END_DECLS
 
 #endif /* __GGIT_DIFF_H__ */


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]