summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAkira TAGOH <akira@tagoh.org>2006-11-21 12:42:29 +0000
committerAkira TAGOH <akira@tagoh.org>2006-11-21 12:42:29 +0000
commit2dbe607f6ee9be30195b24380007222a325b42d2 (patch)
tree732cc906e1e708384785c20976cce07de73eb391
parent3051d4f7c70ed4c5b7ec594f620a51ab35666eec (diff)
2006-11-21 Akira TAGOH <at@gclab.org>
* hieroglyph/hglist.c (hg_list_get_iter_previous): new function. (hg_list_get_iter_last): new function.
-rw-r--r--ChangeLog5
-rw-r--r--hieroglyph/hglist.c30
-rw-r--r--hieroglyph/hglist.h36
-rw-r--r--hieroglyph/version.h.in2
4 files changed, 56 insertions, 17 deletions
diff --git a/ChangeLog b/ChangeLog
index 74b4165..4366dbb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2006-11-21 Akira TAGOH <at@gclab.org>
+
+ * hieroglyph/hglist.c (hg_list_get_iter_previous): new function.
+ (hg_list_get_iter_last): new function.
+
2006-11-13 Akira TAGOH <at@gclab.org>
* hieroglyph/operator.c (_hg_operator_op_arc): fix a typo.
diff --git a/hieroglyph/hglist.c b/hieroglyph/hglist.c
index 594b6f3..9b97bba 100644
--- a/hieroglyph/hglist.c
+++ b/hieroglyph/hglist.c
@@ -556,6 +556,36 @@ hg_list_get_iter_next(HgList *list,
return TRUE;
}
+gboolean
+hg_list_get_iter_previous(HgList *list,
+ HgListIter iter)
+{
+ g_return_val_if_fail (list != NULL, FALSE);
+ g_return_val_if_fail (iter != NULL, FALSE);
+ g_return_val_if_fail (iter->top == list, FALSE);
+ g_return_val_if_fail (iter->last == hg_list_previous(list), FALSE);
+
+ iter->current = hg_list_previous(iter->current);
+ if (iter->current == iter->last)
+ return FALSE;
+
+ return TRUE;
+}
+
+gboolean
+hg_list_get_iter_last(HgList *list,
+ HgListIter iter)
+{
+ g_return_val_if_fail (list != NULL, FALSE);
+ g_return_val_if_fail (iter != NULL, FALSE);
+ g_return_val_if_fail (iter->top == list, FALSE);
+ g_return_val_if_fail (iter->last == hg_list_previous(list), FALSE);
+
+ iter->current = hg_list_last(iter->current);
+
+ return TRUE;
+}
+
gpointer
hg_list_iter_get_data(HgListIter iter)
{
diff --git a/hieroglyph/hglist.h b/hieroglyph/hglist.h
index 4d28d4a..c452aef 100644
--- a/hieroglyph/hglist.h
+++ b/hieroglyph/hglist.h
@@ -49,22 +49,26 @@ HgList *hg_list_last (HgList *list);
#define hg_list_iter_free hg_mem_free
-HgListIter hg_list_iter_new (HgList *list);
-gboolean hg_list_get_iter_first (HgList *list,
- HgListIter iter);
-gboolean hg_list_get_iter_next (HgList *list,
- HgListIter iter);
-HgListIter hg_list_find_iter (HgList *list,
- gconstpointer data);
-HgListIter hg_list_find_iter_custom(HgList *list,
- gconstpointer data,
- HgCompareFunc func);
-gpointer hg_list_iter_get_data (HgListIter iter);
-void hg_list_iter_set_data (HgListIter iter,
- gpointer data);
-void hg_list_iter_set_object (HgListIter iter,
- HgObject *hobject);
-HgList *hg_list_iter_delete_link(HgListIter iter);
+HgListIter hg_list_iter_new (HgList *list);
+gboolean hg_list_get_iter_first (HgList *list,
+ HgListIter iter);
+gboolean hg_list_get_iter_next (HgList *list,
+ HgListIter iter);
+gboolean hg_list_get_iter_previous(HgList *list,
+ HgListIter iter);
+gboolean hg_list_get_iter_last (HgList *list,
+ HgListIter iter);
+HgListIter hg_list_find_iter (HgList *list,
+ gconstpointer data);
+HgListIter hg_list_find_iter_custom (HgList *list,
+ gconstpointer data,
+ HgCompareFunc func);
+gpointer hg_list_iter_get_data (HgListIter iter);
+void hg_list_iter_set_data (HgListIter iter,
+ gpointer data);
+void hg_list_iter_set_object (HgListIter iter,
+ HgObject *hobject);
+HgList *hg_list_iter_delete_link (HgListIter iter);
G_END_DECLS
diff --git a/hieroglyph/version.h.in b/hieroglyph/version.h.in
index 7d2d5e3..cfbe095 100644
--- a/hieroglyph/version.h.in
+++ b/hieroglyph/version.h.in
@@ -29,7 +29,7 @@
G_BEGIN_DECLS
#define HIEROGLYPH_VERSION "@VERSION@"
-#define HIEROGLYPH_UUID "4421ead2-d773-4522-934f-f332a4600589"
+#define HIEROGLYPH_UUID "9f44b1a6-671c-4534-9614-0ca1984d2d92"
const char *__hg_rcsid G_GNUC_UNUSED = "$Rev$";