]> git.deb.at Git - pkg/abook.git/blobdiff - abook.c
vformat: added abook's specific libvformat wrapper: vcard.[ch]
[pkg/abook.git] / abook.c
diff --git a/abook.c b/abook.c
index b5a941e259b6467afa32897804dd9b38a3bf3297..dd05b5679bfa390675c6d5f48c95a46c07d3cea6 100644 (file)
--- a/abook.c
+++ b/abook.c
@@ -377,7 +377,16 @@ parse_command_line(int argc, char **argv)
                                set_convert_var(informat);
                                break;
                        case OPT_OUTFORMAT:
+                               if(mode != MODE_CONVERT && mode != MODE_QUERY) {
+                                 fprintf(stderr,
+                                         _("please use option --outformat after --convert or --mutt-query option\n"));
+                                 exit(EXIT_FAILURE);
+                               }
+                               // ascii-name is stored, it's used to traverse
+                               // e_filters[] in MODE_CONVERT (see export_file())
                                outformat = optarg;
+                               // but in case a query-compatible filter is requested
+                               // try to guess right now which one it is, from u_filters[]
                                selected_item_filter = select_output_item_filter(outformat);
                                break;
                        case OPT_OUTFORMAT_STR:
@@ -398,6 +407,12 @@ parse_command_line(int argc, char **argv)
                }
        }
 
+       // if the output format requested does not allow filtered querying
+       // (not in u_filter[]) and --convert has not been specified; bailout
+       if(! selected_item_filter.func && mode != MODE_CONVERT) {
+         printf("output format %s not supported or incompatible with --mutt-query\n", outformat);
+         exit(EXIT_FAILURE);
+       }
        if(! selected_item_filter.func)
                selected_item_filter = select_output_item_filter("muttq");
        else if (! strcmp(outformat, "custom") && *custom_format) {