diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2023-10-07 23:27:24 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2023-10-07 23:27:24 (GMT) |
commit | 22c06200eca1ecda455a8d68bf73ec4fc458f59f (patch) | |
tree | 043ace80df905152094840072f45fd9eb836a4c4 /src/analysis/scan/item.c | |
parent | edb4cc9c11c417d81b1948d93dfd171f0696217a (diff) |
Create some glue between ROST and Kaitai.
Diffstat (limited to 'src/analysis/scan/item.c')
-rw-r--r-- | src/analysis/scan/item.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/analysis/scan/item.c b/src/analysis/scan/item.c index 930a334..509ad28 100644 --- a/src/analysis/scan/item.c +++ b/src/analysis/scan/item.c @@ -290,3 +290,36 @@ bool g_scan_registered_item_run_call(GScanRegisteredItem *item, GScanExpression return result; } + + +/****************************************************************************** +* * +* Paramètres : item = élément d'appel à consulter. * +* index = indice de l'élément à cibler. * +* ctx = contexte de suivi de l'analyse courante. * +* scope = portée courante des variables locales. * +* * +* Description : Effectue une extraction d'élément à partir d'une série. * +* * +* Retour : Elément de série obtenu ou NULL si erreur irrécupérable. * +* * +* Remarques : - * +* * +******************************************************************************/ + +GObject *g_scan_registered_item_extract_at(GScanRegisteredItem *item, GScanExpression *index, GScanContext *ctx, GScanScope *scope) +{ + GObject *result; /* Elément récupéré à renvoyer */ + GScanRegisteredItemClass *class; /* Classe à activer */ + + class = G_SCAN_REGISTERED_ITEM_GET_CLASS(item); + + if (class->extract == NULL) + result = NULL; + + else + result = class->extract(item, index, ctx, scope); + + return result; + +} |