summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Sommerseth <dazo@users.sourceforge.net>2009-04-02 01:33:16 +0200
committerDavid Sommerseth <dazo@users.sourceforge.net>2009-04-02 01:33:16 +0200
commit6ae1db7f381066253976bdfa2ee5554d5700d805 (patch)
treeb53eb28b2debb7ab0b66841984c99099f5d4251b
parentb2ed69e33bba8ecee02d13ad24e4fc430612b587 (diff)
downloadeurephia-6ae1db7f381066253976bdfa2ee5554d5700d805.tar.gz
eurephia-6ae1db7f381066253976bdfa2ee5554d5700d805.tar.xz
eurephia-6ae1db7f381066253976bdfa2ee5554d5700d805.zip
Added eDBmappingFieldsPresent(...) which returns used fields in a fieldMap
-rw-r--r--database/eurephiadb_mapping.c14
-rw-r--r--database/eurephiadb_mapping.h1
2 files changed, 15 insertions, 0 deletions
diff --git a/database/eurephiadb_mapping.c b/database/eurephiadb_mapping.c
index e91a42e..7726752 100644
--- a/database/eurephiadb_mapping.c
+++ b/database/eurephiadb_mapping.c
@@ -309,3 +309,17 @@ char *eDBmkSortKeyString(eDBfieldMap *tfmap, const char *skeys_str) {
return sortkeys;
}
+
+long int eDBmappingFieldsPresent(eDBfieldMap *map) {
+ long int ret = 0;
+ eDBfieldMap *p = NULL;
+
+ // Loops through all elements and flags those
+ // fields with a value set.
+ for( p = map; p != NULL; p = p->next ) {
+ if( p->value != NULL ) {
+ ret |= p->field_id;
+ }
+ }
+ return ret;
+}
diff --git a/database/eurephiadb_mapping.h b/database/eurephiadb_mapping.h
index a200d14..bf3cd6a 100644
--- a/database/eurephiadb_mapping.h
+++ b/database/eurephiadb_mapping.h
@@ -183,6 +183,7 @@ static eDBfieldMap eTblMap_fwprofiles[] = {
void eDBfreeMapping(eDBfieldMap *p);
eDBfieldMap *eDBxmlMapping(eurephiaCTX *ctx, eDBfieldMap *dbmap, const char *tblalias, xmlNode *fmap_n);
char *eDBmkSortKeyString(eDBfieldMap *tfmap, const char *skeys_str);
+long int eDBmappingFieldsPresent(eDBfieldMap *map);
#endif // HAVE_LIBXML2
#endif // !EUREPHIADB_MAPPING_H