diff options
author | David Sommerseth <dazo@users.sourceforge.net> | 2009-04-02 01:33:16 +0200 |
---|---|---|
committer | David Sommerseth <dazo@users.sourceforge.net> | 2009-04-02 01:33:16 +0200 |
commit | 6ae1db7f381066253976bdfa2ee5554d5700d805 (patch) | |
tree | b53eb28b2debb7ab0b66841984c99099f5d4251b /database | |
parent | b2ed69e33bba8ecee02d13ad24e4fc430612b587 (diff) | |
download | eurephia-6ae1db7f381066253976bdfa2ee5554d5700d805.tar.gz eurephia-6ae1db7f381066253976bdfa2ee5554d5700d805.tar.xz eurephia-6ae1db7f381066253976bdfa2ee5554d5700d805.zip |
Added eDBmappingFieldsPresent(...) which returns used fields in a fieldMap
Diffstat (limited to 'database')
-rw-r--r-- | database/eurephiadb_mapping.c | 14 | ||||
-rw-r--r-- | database/eurephiadb_mapping.h | 1 |
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 |