[libgit2-glib] Pass GgitDiffSimilarityMetric to GgitMergeTreeOptions



commit 0cb1b2a69d0dd3cefc6f60453ca5b064a8c5d862
Author: Ignacio Casal Quinteiro <icq gnome org>
Date:   Sat Jul 6 14:33:24 2013 +0200

    Pass GgitDiffSimilarityMetric to GgitMergeTreeOptions

 libgit2-glib/ggit-diff-similarity-metric.c |    4 ++--
 libgit2-glib/ggit-diff-similarity-metric.h |    2 +-
 libgit2-glib/ggit-merge-tree-options.c     |   14 ++++++++------
 libgit2-glib/ggit-merge-tree-options.h     |    9 +++++----
 4 files changed, 16 insertions(+), 13 deletions(-)
---
diff --git a/libgit2-glib/ggit-diff-similarity-metric.c b/libgit2-glib/ggit-diff-similarity-metric.c
index 975b6a5..cf454c5 100644
--- a/libgit2-glib/ggit-diff-similarity-metric.c
+++ b/libgit2-glib/ggit-diff-similarity-metric.c
@@ -36,7 +36,7 @@ struct _GgitDiffSimilarityMetric
 G_DEFINE_BOXED_TYPE (GgitDiffSimilarityMetric, ggit_diff_similarity_metric,
                      ggit_diff_similarity_metric_copy, ggit_diff_similarity_metric_free)
 
-const git_diff_similarity_metric *
+git_diff_similarity_metric *
 _ggit_diff_similarity_metric_get_similarity_metric (GgitDiffSimilarityMetric *metric)
 {
        if (metric == NULL)
@@ -44,7 +44,7 @@ _ggit_diff_similarity_metric_get_similarity_metric (GgitDiffSimilarityMetric *me
                return NULL;
        }
 
-       return (const git_diff_similarity_metric *)&metric->metric;
+       return &metric->metric;
 }
 
 /**
diff --git a/libgit2-glib/ggit-diff-similarity-metric.h b/libgit2-glib/ggit-diff-similarity-metric.h
index 1a11977..28fa2f0 100644
--- a/libgit2-glib/ggit-diff-similarity-metric.h
+++ b/libgit2-glib/ggit-diff-similarity-metric.h
@@ -34,7 +34,7 @@ G_BEGIN_DECLS
 
 GType                      ggit_diff_similarity_metric_get_type                (void) G_GNUC_CONST;
 
-const git_diff_similarity_metric *
+git_diff_similarity_metric *
                           _ggit_diff_similarity_metric_get_similarity_metric   (GgitDiffSimilarityMetric   
*metric);
 
 GgitDiffSimilarityMetric  *ggit_diff_similarity_metric_copy                    (GgitDiffSimilarityMetric   
*metric);
diff --git a/libgit2-glib/ggit-merge-tree-options.c b/libgit2-glib/ggit-merge-tree-options.c
index 255b141..fd036f6 100644
--- a/libgit2-glib/ggit-merge-tree-options.c
+++ b/libgit2-glib/ggit-merge-tree-options.c
@@ -19,6 +19,7 @@
  */
 
 #include "ggit-merge-tree-options.h"
+#include "ggit-diff-similarity-metric.h"
 
 struct _GgitMergeTreeOptions
 {
@@ -78,14 +79,13 @@ ggit_merge_tree_options_free (GgitMergeTreeOptions *merge_options)
        g_slice_free (GgitMergeTreeOptions, merge_options);
 }
 
-/* FIXME: MISSING git_diff_similarity_metric bind */
-
 /**
  * ggit_merge_tree_options_new:
  * @flags: flags to consider when merging.
  * @rename_threshold: similarity to consider a file renamed (default 50).
  * @target_limit: maximum similarity sources to examine
  *                (overrides the `merge_tree.renameLimit` config) (default 200).
+ * @metric: (allow-none): a #GgitDiffSimilarityMetric or %NULL to use internal metric.
  * @automerge_mode: mode for automerging.
  *
  * Creates a new #GgitMergeTreeOptions.
@@ -93,10 +93,11 @@ ggit_merge_tree_options_free (GgitMergeTreeOptions *merge_options)
  * Returns: a newly allocated #GgitMergeTreeOptions.
  */
 GgitMergeTreeOptions *
-ggit_merge_tree_options_new (GgitMergeTreeFlags     flags,
-                             guint                  rename_threshold,
-                             guint                  target_limit,
-                             GgitMergeAutomergeMode automerge_mode)
+ggit_merge_tree_options_new (GgitMergeTreeFlags        flags,
+                             guint                     rename_threshold,
+                             guint                     target_limit,
+                             GgitDiffSimilarityMetric *metric,
+                             GgitMergeAutomergeMode    automerge_mode)
 {
        GgitMergeTreeOptions *merge_options;
        git_merge_tree_opts gmerge_options = GIT_MERGE_TREE_OPTS_INIT;
@@ -106,6 +107,7 @@ ggit_merge_tree_options_new (GgitMergeTreeFlags     flags,
        gmerge_options.flags = flags;
        gmerge_options.rename_threshold = rename_threshold;
        gmerge_options.target_limit = target_limit;
+       gmerge_options.metric = _ggit_diff_similarity_metric_get_similarity_metric (metric);
        gmerge_options.automerge_flags = automerge_mode;
 
        merge_options->merge_options = gmerge_options;
diff --git a/libgit2-glib/ggit-merge-tree-options.h b/libgit2-glib/ggit-merge-tree-options.h
index 128131a..40ce9d0 100644
--- a/libgit2-glib/ggit-merge-tree-options.h
+++ b/libgit2-glib/ggit-merge-tree-options.h
@@ -40,10 +40,11 @@ const git_merge_tree_opts *
 GgitMergeTreeOptions  *ggit_merge_tree_options_copy                    (GgitMergeTreeOptions   
*merge_options);
 void                   ggit_merge_tree_options_free                    (GgitMergeTreeOptions   
*merge_options);
 
-GgitMergeTreeOptions  *ggit_merge_tree_options_new                     (GgitMergeTreeFlags      flags,
-                                                                        guint                   
rename_threshold,
-                                                                        guint                   target_limit,
-                                                                        GgitMergeAutomergeMode  
automerge_mode);
+GgitMergeTreeOptions  *ggit_merge_tree_options_new                     (GgitMergeTreeFlags        flags,
+                                                                        guint                     
rename_threshold,
+                                                                        guint                     
target_limit,
+                                                                        GgitDiffSimilarityMetric *metric,
+                                                                        GgitMergeAutomergeMode    
automerge_mode);
 
 G_END_DECLS
 



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