different marker semantics


git-svn-id: https://asn1c.svn.sourceforge.net/svnroot/asn1c/trunk@300 59561ff5-6e30-0410-9f3c-9617f08c8826
diff --git a/libasn1print/asn1print.c b/libasn1print/asn1print.c
index e8281df..41b2b71 100644
--- a/libasn1print/asn1print.c
+++ b/libasn1print/asn1print.c
@@ -533,11 +533,10 @@
 			 * Print the expression as it were a stand-alone type.
 			 */
 			asn1print_expr(asn, mod, se, flags, level + 4);
-			switch(se->marker) {
-			case EM_NOMARK: break;
-			case EM_OPTIONAL: printf(" OPTIONAL"); break;
-			case EM_DEFAULT: printf(" DEFAULT <?>"); break;
-			}
+			if(se->marker & EM_DEFAULT)
+				printf(" DEFAULT <?>");
+			else if(se->marker & EM_OPTIONAL)
+				printf(" OPTIONAL");
 			if(TQ_NEXT(se, next)) {
 				printf(",");
 				INDENT("\n");