|
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
|