-pdu=* changes
diff --git a/asn1c/asn1c.c b/asn1c/asn1c.c
index 9b1a3fc..742a0b2 100644
--- a/asn1c/asn1c.c
+++ b/asn1c/asn1c.c
@@ -123,12 +123,19 @@
case 'p':
if(strncmp(optarg, "du=", 3) == 0) {
char *pduname = optarg + 3;
- if(strcmp(pduname, "auto")) {
- fprintf(stderr, "-pdu=%s: expected -pdu=auto\n",
+ if(strcmp(pduname, "all") == 0) {
+ asn1_compiler_flags |= A1C_PDU_ALL;
+ } else if(strcmp(pduname, "auto") == 0) {
+ asn1_compiler_flags |= A1C_PDU_AUTO;
+ } else if(pduname[0] >= 'A' && pduname[0] <= 'Z') {
+ asn1c__add_pdu_type(pduname);
+ asn1_compiler_flags |= A1C_PDU_TYPE;
+ } else {
+ fprintf(stderr, "-pdu=%s"
+ ": expected -pdu={all|auto|Type}\n",
pduname);
exit(EX_USAGE);
}
- asn1_compiler_flags |= A1C_PDU_AUTO;
} else if(strcmp(optarg, "rint-class-matrix") == 0) {
asn1_printer_flags |= APF_PRINT_CLASS_MATRIX;
} else if(strcmp(optarg, "rint-constraints") == 0) {
@@ -456,7 +463,7 @@
"\n"
" -gen-PER Generate PER support code\n"
-" -pdu=auto Generate PDU table (discover PDUs automatically)\n"
+" -pdu={all|auto|Type} Generate PDU table (discover PDUs automatically)\n"
"\n"
" -print-class-matrix Print out the collected object class matrix (debug)\n"