diff options
author | Lev Walkin <vlm@lionet.info> | 2005-03-09 20:52:15 +0000 |
---|---|---|
committer | Lev Walkin <vlm@lionet.info> | 2005-03-09 20:52:15 +0000 |
commit | 112d69e0403965119973ec293c00ca7ab25c81e5 (patch) | |
tree | 03c52007b2eabc49bf46edc408bf30b4ea70a761 /libasn1print | |
parent | 72894034660e4d6d8f2290b6847d58b6d0f45a51 (diff) |
1. Finer support for BOOLEAN
2. Small refactoring
Diffstat (limited to 'libasn1print')
-rw-r--r-- | libasn1print/asn1print.c | 23 |
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: |