From: Chris B. <buc...@us...> - 2013-03-14 19:00:54
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "mofc - Managed Object Format Compiler". The branch, master has been updated via a8dbd673f87f24a836d23f4eac93fca7c00a9464 (commit) via 19eb612dde99c57192cc781f67c289d795b85400 (commit) from d60520908bff8d54fec300b2c8a1e27ae3fc63fa (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit a8dbd673f87f24a836d23f4eac93fca7c00a9464 Merge: 19eb612 d605209 Author: buccella <buc...@li...> Date: Thu Mar 14 14:59:15 2013 -0400 Merge branch 'master' of ssh://git.code.sf.net/p/sblim/mofc commit 19eb612dde99c57192cc781f67c289d795b85400 Author: buccella <buc...@li...> Date: Thu Mar 14 14:57:58 2013 -0400 [sfcb-tix:#19] Update q and Q options for sfcbmof ----------------------------------------------------------------------- Summary of changes: NEWS | 1 + backend_sfcb.c | 96 +++++++++++++++++++++++++++++++------------------------- 2 files changed, 54 insertions(+), 43 deletions(-) diff --git a/NEWS b/NEWS index ce6e3e8..744d63b 100644 --- a/NEWS +++ b/NEWS @@ -9,6 +9,7 @@ Enhancements: - 3179149 mofc sigsegv at backend_sfcb:468 w/o correct property name - 3555421 mofc chokes on static instances when using -t option - 3558562 mofc creates invalid static instances when using -t option +- [sfcb-tix:#19] Update q and Q options for sfcbmof Bugs fixed: - 2878328 sfcb and mofc won't compile with --disable-qualifierrep diff --git a/backend_sfcb.c b/backend_sfcb.c index 04c7c9a..edd369a 100644 --- a/backend_sfcb.c +++ b/backend_sfcb.c @@ -197,6 +197,27 @@ static void sfcb_add_version(FILE * f, unsigned short opt, int endianMode) fwrite(&rec,size,1,f); } +static int skipQuals(qual_chain* quals) { + if (sfcb_options & BACKEND_SFCB_NO_QUALIFIERS) { + return (quals->qual_qual->qual_type.type_base == BaseTypeSTRING); + } + + if (sfcb_options & BACKEND_SFCB_REDUCED_QUALIFIERS) { + return (strcasecmp("description",quals->qual_id) == 0 || + strcasecmp("arraytype",quals->qual_id) == 0 || + strcasecmp("deprecated",quals->qual_id) == 0 || + strcasecmp("mappingstrings",quals->qual_id) == 0 || + strcasecmp("punit",quals->qual_id) == 0 || + strcasecmp("umlpackagepath",quals->qual_id) == 0 || + strcasecmp("units",quals->qual_id) == 0 || + strcasecmp("version",quals->qual_id) == 0 || + strcasecmp("valuemap",quals->qual_id) == 0 || + strcasecmp("values",quals->qual_id) == 0); + } + + return 0; +} + static int sfcb_add_class(FILE * f, hashentry * he, class_entry * ce, int endianMode) { /* SFCB related */ @@ -222,19 +243,13 @@ static int sfcb_add_class(FILE * f, hashentry * he, class_entry * ce, int endian if ( ce -> class_parent) { sfcb_add_class( f, he, ce -> class_parent, endianMode ); } - if ( htlookup( he, - upstrdup(ce -> class_id, - strlen(ce -> class_id)), - strlen(ce -> class_id)) - == NULL ) { + if ( htlookup(he, upstrdup(ce -> class_id, strlen(ce -> class_id)), + strlen(ce -> class_id)) == NULL ) { if (sfcb_options & BACKEND_VERBOSE) { fprintf(stderr," adding class %s \n", ce -> class_id ); } /* remember we did this class already */ - htinsert( he, - upstrdup(ce -> class_id, - strlen(ce -> class_id)), strlen(ce -> class_id), - (void *)1); + htinsert(he, upstrdup(ce -> class_id, strlen(ce -> class_id)), strlen(ce -> class_id), (void *)1); sfcbClass = ClClassNew( ce -> class_id, ce -> class_parent ? ce -> class_parent -> class_id : NULL ); @@ -247,11 +262,12 @@ static int sfcb_add_class(FILE * f, hashentry * he, class_entry * ce, int endian fprintf(stderr," adding qualifier %s for class %s \n", quals -> qual_id, ce -> class_id ); } - ClClassAddQualifier(&sfcbClass->hdr, &sfcbClass->qualifiers, - quals->qual_id, - make_cmpi_data(quals->qual_qual->qual_type, - quals->qual_qual->qual_array, - quals->qual_vals)); + if (!skipQuals(quals)) { + ClClassAddQualifier(&sfcbClass->hdr, &sfcbClass->qualifiers, quals->qual_id, + make_cmpi_data(quals->qual_qual->qual_type, + quals->qual_qual->qual_array, + quals->qual_vals)); + } quals = quals -> qual_next; } while (props) { @@ -274,22 +290,17 @@ static int sfcb_add_class(FILE * f, hashentry * he, class_entry * ce, int endian quals = props -> prop_quals; sfcbProp=((ClProperty*)ClObjectGetClSection(&sfcbClass->hdr,&sfcbClass->properties))+prop_id-1; while (quals) { - if ( (sfcb_options & BACKEND_SFCB_REDUCED_QUALIFIERS) == 0 || - (strcasecmp("description",quals->qual_id) && - strcasecmp("valuemap",quals->qual_id) && - strcasecmp("values",quals->qual_id) ) ) { - if (sfcb_options & BACKEND_VERBOSE) { - fprintf(stderr," adding qualifier %s for property %s in class %s\n", - quals -> qual_id, props -> prop_id, ce -> class_id ); - } - ClClassAddPropertyQualifier(&sfcbClass->hdr, - sfcbProp, - quals->qual_id, + if (!skipQuals(quals)) { + if (sfcb_options & BACKEND_VERBOSE) { + fprintf(stderr," adding qualifier %s for property %s in class %s\n", + quals -> qual_id, props -> prop_id, ce -> class_id ); + } + ClClassAddPropertyQualifier(&sfcbClass->hdr, sfcbProp, quals->qual_id, make_cmpi_data(quals->qual_qual->qual_type, quals->qual_qual->qual_array, quals->qual_vals)); - } - quals = quals -> qual_next; + } + quals = quals -> qual_next; } props = props -> prop_next; } @@ -299,13 +310,13 @@ static int sfcb_add_class(FILE * f, hashentry * he, class_entry * ce, int endian quals = meths->method_quals; sfcbMeth=((ClMethod*)ClObjectGetClSection(&sfcbClass->hdr,&sfcbClass->methods))+meth_id-1; while(quals) { - ClClassAddMethodQualifier(&sfcbClass->hdr, - sfcbMeth, - quals->qual_id, - make_cmpi_data(quals->qual_qual->qual_type, - quals->qual_qual->qual_array, - quals->qual_vals)); - quals = quals->qual_next; + if (!skipQuals(quals)) { + ClClassAddMethodQualifier(&sfcbClass->hdr, sfcbMeth, quals->qual_id, + make_cmpi_data(quals->qual_qual->qual_type, + quals->qual_qual->qual_array, + quals->qual_vals)); + } + quals = quals->qual_next; } meth_params = meths->method_params; while(meth_params && meth_params->param_id) { @@ -323,15 +334,14 @@ static int sfcb_add_class(FILE * f, hashentry * he, class_entry * ce, int endian quals = meth_params->param_quals; sfcbParam=((ClParameter*)ClObjectGetClSection(&sfcbClass->hdr,&sfcbMeth->parameters))+meth_param_id-1; while(quals) { - ClClassAddMethParamQualifier(&sfcbClass->hdr, - sfcbParam, - quals->qual_id, - make_cmpi_data(quals->qual_qual->qual_type, - quals->qual_qual->qual_array, - quals->qual_vals)); - quals = quals->qual_next; - - } + if (!skipQuals(quals)) { + ClClassAddMethParamQualifier(&sfcbClass->hdr, sfcbParam, quals->qual_id, + make_cmpi_data(quals->qual_qual->qual_type, + quals->qual_qual->qual_array, + quals->qual_vals)); + } + quals = quals->qual_next; + } meth_params = meth_params->param_next; } hooks/post-receive -- mofc - Managed Object Format Compiler |