aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLev Walkin <vlm@lionet.info>2005-03-09 20:52:15 +0000
committerLev Walkin <vlm@lionet.info>2005-03-09 20:52:15 +0000
commit112d69e0403965119973ec293c00ca7ab25c81e5 (patch)
tree03c52007b2eabc49bf46edc408bf30b4ea70a761
parent72894034660e4d6d8f2290b6847d58b6d0f45a51 (diff)
1. Finer support for BOOLEAN
2. Small refactoring
-rw-r--r--libasn1print/asn1print.c23
1 files changed, 13 insertions, 10 deletions
diff --git a/libasn1print/asn1print.c b/libasn1print/asn1print.c
index 45738aec..7ec4ca2e 100644
--- a/libasn1print/asn1print.c
+++ b/libasn1print/asn1print.c
@@ -49,6 +49,12 @@ asn1print(asn1p_t *asn, enum asn1print_flags flags) {
asn1print_module(asn, mod, flags);
}
+ if(flags & APF_PRINT_XML_DTD) {
+ /* Values for BOOLEAN */
+ printf("<!ELEMENT true EMPTY>\n");
+ printf("<!ELEMENT false EMPTY>\n");
+ }
+
return 0;
}
@@ -670,15 +676,6 @@ asn1print_expr_dtd(asn1p_t *asn, asn1p_module_t *mod, asn1p_expr_t *expr, enum a
if(!expr->Identifier) return 0;
- if(expr->expr_type == ASN_CONSTR_CHOICE
- || expr->expr_type == ASN_CONSTR_SEQUENCE_OF
- || expr->expr_type == ASN_CONSTR_SET_OF
- || expr->expr_type == ASN_CONSTR_SET
- || expr->expr_type == ASN_BASIC_INTEGER
- || expr->expr_type == ASN_BASIC_ENUMERATED) {
- expr_unordered = 1;
- }
-
if(flags & APF_LINE_COMMENTS)
INDENT("<!-- #line %d -->\n", expr->_lineno);
INDENT("<!ELEMENT %s", expr->Identifier);
@@ -693,6 +690,12 @@ asn1print_expr_dtd(asn1p_t *asn, asn1p_module_t *mod, asn1p_expr_t *expr, enum a
dont_involve_children = 1;
}
+ if((expr->expr_type & ASN_CONSTR_MASK)
+ || expr->expr_type == ASN_BASIC_INTEGER
+ || expr->expr_type == ASN_BASIC_ENUMERATED) {
+ expr_unordered = 1;
+ }
+
if(TQ_FIRST(&expr->members)) {
int extensible = 0;
printf(" (");
@@ -738,7 +741,7 @@ asn1print_expr_dtd(asn1p_t *asn, asn1p_module_t *mod, asn1p_expr_t *expr, enum a
} else switch(expr->expr_type) {
case ASN_BASIC_BOOLEAN:
- printf("(true|false)");
+ printf(" (true|false)");
break;
case ASN_CONSTR_CHOICE:
case ASN_CONSTR_SET: