From 42ff2b6d17ffdbe300545040d223c2d5f6d8559e Mon Sep 17 00:00:00 2001 From: Aki Niemi Date: Sun, 14 Nov 2010 18:20:38 +0200 Subject: [PATCH] gisi: Add convenience API for structs --- gisi/iter.c | 9 +++++++++ gisi/iter.h | 2 ++ 2 files changed, 11 insertions(+) diff --git a/gisi/iter.c b/gisi/iter.c index a0a9b3a..d0e534b 100644 --- a/gisi/iter.c +++ b/gisi/iter.c @@ -223,3 +223,12 @@ gboolean g_isi_sb_iter_next(GIsiSubBlockIter *iter) return TRUE; } + +gboolean g_isi_sb_iter_get_struct(const GIsiSubBlockIter *restrict iter, + void **type, size_t len, unsigned pos) +{ + if (iter->start + pos + len > iter->end) + return FALSE; + + return g_isi_sb_iter_get_data(iter, type, pos); +} diff --git a/gisi/iter.h b/gisi/iter.h index 74ec593..43814a0 100644 --- a/gisi/iter.h +++ b/gisi/iter.h @@ -64,6 +64,8 @@ gboolean g_isi_sb_iter_get_alpha_tag(const GIsiSubBlockIter *restrict iter, char **utf8, size_t len, unsigned pos); gboolean g_isi_sb_iter_get_latin_tag(const GIsiSubBlockIter *restrict iter, char **ascii, size_t len, unsigned pos); +gboolean g_isi_sb_iter_get_struct(const GIsiSubBlockIter *restrict iter, + void **ptr, size_t len, unsigned pos); #ifdef __cplusplus } -- 2.7.4