Esempio n. 1
0
/**
 * ggit_tree_get_by_path:
 * @tree: a #GgitTree.
 * @path: a path.
 * @error: a #GError for error reporting, or %NULL.
 *
 * Retrieves a tree entry contained in a tree or in any of its subtrees,
 * given its relative path.
 *
 * Returns: (transfer full): a #GgitTreeEntry.
 *
 **/
GgitTreeEntry *
ggit_tree_get_by_path (GgitTree     *tree,
                       const gchar  *path,
                       GError      **error)
{
	git_tree *t;
	GgitTreeEntry *entry = NULL;
	git_tree_entry *tree_entry;
	gint ret;

	g_return_val_if_fail (GGIT_IS_TREE (tree), NULL);
	g_return_val_if_fail (path != NULL, NULL);

	t = _ggit_native_get (tree);

	ret = git_tree_entry_bypath (&tree_entry, t, path);

	if (ret == GIT_OK)
	{
		entry = _ggit_tree_entry_wrap (tree_entry, TRUE);
	}
	else
	{
		_ggit_error_set (error, ret);
	}

	return entry;
}
Esempio n. 2
0
/**
 * ggit_tree_get:
 * @tree: a #GgitTree.
 * @i: the index of the entry.
 *
 * Get a tree entry by index.
 *
 * Returns: (transfer full): a #GgitTreeEntry.
 *
 **/
GgitTreeEntry *
ggit_tree_get (GgitTree *tree,
               guint     i)
{
	git_tree *t;
	const git_tree_entry *entry;

	g_return_val_if_fail (GGIT_IS_TREE (tree), NULL);

	t = _ggit_native_get (tree);

	entry = git_tree_entry_byindex (t, i);

	return _ggit_tree_entry_wrap ((git_tree_entry *)entry, FALSE);
}
Esempio n. 3
0
static int
walk_callback_wrapper (const char           *root,
                       const git_tree_entry *entry,
                       gpointer              payload)
{
	gint ret;
	GgitTreeEntry *wentry;
	WalkInfo *info = (WalkInfo *)payload;

	wentry = _ggit_tree_entry_wrap (git_tree_entry_dup(entry), TRUE);

	ret = info->callback(root, wentry, info->user_data);

	ggit_tree_entry_unref (wentry);

	return ret;
}
Esempio n. 4
0
static int
walk_callback_wrapper (const char           *root,
                       const git_tree_entry *entry,
                       gpointer              payload)
{
	gint ret;
	GgitTreeEntry *wentry;
	WalkInfo *info = (WalkInfo *)payload;
	git_tree_entry *dest;

	ret = git_tree_entry_dup (&dest, entry);
	if (ret == GIT_OK)
	{
		wentry = _ggit_tree_entry_wrap (dest, TRUE);

		ret = info->callback(root, wentry, info->user_data);

		ggit_tree_entry_unref (wentry);
	}

	return ret;
}
Esempio n. 5
0
/**
 * ggit_tree_get_by_name:
 * @tree: a #GgitTree.
 * @name: a filename.
 *
 * Get a tree entry by name.
 *
 * Returns: (transfer full): a #GgitTreeEntry.
 *
 **/
GgitTreeEntry *
ggit_tree_get_by_name (GgitTree    *tree,
                       const gchar *name)
{
	git_tree *t;
	GgitTreeEntry *entry = NULL;
	const git_tree_entry *tree_entry;

	g_return_val_if_fail (GGIT_IS_TREE (tree), NULL);
	g_return_val_if_fail (name != NULL, NULL);

	t = _ggit_native_get (tree);

	tree_entry = git_tree_entry_byname (t, name);

	if (tree_entry != NULL)
	{
		entry = _ggit_tree_entry_wrap ((git_tree_entry *)tree_entry, FALSE);
	}

	return entry;
}