not implemented things -> assert !implemented
[adns] / client / adh-main.c
index 33b1f59..289f0d4 100644 (file)
@@ -68,13 +68,13 @@ char *xstrsave(const char *str) {
   return p;
 }
 
-void of_type(const struct optioninfo *oi, const char *arg) { abort(); }
+void of_type(const struct optioninfo *oi, const char *arg) { assert(!"implemented"); }
 
 int rcode;
 
 void setnonblock(int fd, int nonblock) { }
 
-static void read_query(void) { abort(); }
+static void read_query(void) { assert(!"implemented"); }
 
 int main(int argc, const char *const *argv) {
   const char *arg;
@@ -83,25 +83,32 @@ int main(int argc, const char *const *argv) {
   adns_query qu;
   void *qun_v;
   adns_answer *answer;
-  int r, maxfd;
+  int r, maxfd, invert;
   fd_set readfds, writefds, exceptfds;
   
   while ((arg= *++argv)) {
-    if (arg[0] == '-') {
-      if (arg[1] == '-') {
-       oip= opt_findl(arg+2);
+    if (arg[0] == '-' || arg[0] == '+') {
+      if (arg[0] == '-' && arg[1] == '-') {
+       if (!strncmp(arg,"--no-",5)) {
+         invert= 1;
+         oip= opt_findl(arg+5);
+       } else {
+         invert= 0;
+         oip= opt_findl(arg+2);
+       }
        if (oip->type == ot_funcarg) {
          arg= *++argv;
          if (!arg) usageerr("option --%s requires a value argument",oip->lopt);
        } else {
          arg= 0;
        }
-       opt_do(oip,arg);
-      } else if (arg[1] == 0) {
+       opt_do(oip,arg,invert);
+      } else if (arg[0] == '-' && arg[1] == 0) {
        arg= *++argv;
        if (!arg) usageerr("option `-' must be followed by a domain");
        domain_do_arg(arg);
       } else { /* arg[1] != '-', != '\0' */
+       invert= (arg[0] == '+');
        ++arg;
        while (*arg) {
          oip= opt_finds(&arg);
@@ -110,11 +117,11 @@ int main(int argc, const char *const *argv) {
              arg= *++argv;
              if (!arg) usageerr("option -%s requires a value argument",oip->sopt);
            }
+           opt_do(oip,arg,invert);
            arg= "";
          } else {
-           arg= 0;
+           opt_do(oip,0,invert);
          }
-         opt_do(oip,arg);
        }
       }
     } else { /* arg[0] != '-' */