Lines Matching refs:opt

354     option_t *opt;
363 opt = find_option(arg);
364 if (opt == NULL) {
369 n = n_arguments(opt);
374 if (!process_option(opt, arg, argv))
395 option_t *opt;
427 opt = find_option(cmd);
428 if (opt == NULL) {
433 n = n_arguments(opt);
443 if (!process_option(opt, cmd, argv))
526 option_t *opt;
535 opt = find_option(w->word);
536 if (opt == NULL) {
541 n = n_arguments(opt);
553 if (!process_option(opt, w0->word, argv))
567 match_option(name, opt, dowild)
569 option_t *opt;
574 if (dowild != (opt->type == o_wild))
577 return strcmp(name, opt->name) == 0;
578 match = (int (*) __P((char *, char **, int))) opt->addr;
591 option_t *opt;
596 for (opt = general_options; opt->name != NULL; ++opt)
597 if (match_option(name, opt, dowild))
598 return opt;
599 for (opt = auth_options; opt->name != NULL; ++opt)
600 if (match_option(name, opt, dowild))
601 return opt;
603 for (opt = list->options; opt->name != NULL; ++opt)
604 if (match_option(name, opt, dowild))
605 return opt;
606 for (opt = the_channel->options; opt->name != NULL; ++opt)
607 if (match_option(name, opt, dowild))
608 return opt;
610 if ((opt = protocols[i]->options) != NULL)
611 for (; opt->name != NULL; ++opt)
612 if (match_option(name, opt, dowild))
613 return opt;
622 process_option(opt, cmd, argv)
623 option_t *opt;
632 char *optopt = (opt->type == o_wild)? "": " option";
634 option_t *mainopt = opt;
636 current_option = opt->name;
637 if ((opt->flags & OPT_PRIVFIX) && privileged_option)
646 opt->name, optopt, mainopt->source);
653 opt->name, optopt, option_source);
656 if ((opt->flags & OPT_INITONLY) && phase != PHASE_INITIALIZE) {
658 opt->name, optopt);
661 if ((opt->flags & OPT_PRIV) && !privileged_option) {
663 opt->name, optopt);
666 if ((opt->flags & OPT_ENABLE) && *(bool *)(opt->addr2) == 0) {
667 option_error("%s%s is disabled", opt->name, optopt);
670 if ((opt->flags & OPT_DEVEQUIV) && devnam_fixed) {
672 opt->name, optopt, option_source);
676 switch (opt->type) {
678 v = opt->flags & OPT_VALUE;
679 *(bool *)(opt->addr) = v;
680 if (opt->addr2 && (opt->flags & OPT_A2COPY))
681 *(bool *)(opt->addr2) = v;
682 else if (opt->addr2 && (opt->flags & OPT_A2CLR))
683 *(bool *)(opt->addr2) = 0;
684 else if (opt->addr2 && (opt->flags & OPT_A2CLRB))
685 *(u_char *)(opt->addr2) &= ~v;
686 else if (opt->addr2 && (opt->flags & OPT_A2OR))
687 *(u_char *)(opt->addr2) |= v;
692 if ((opt->flags & OPT_NOARG) == 0) {
695 if ((((opt->flags & OPT_LLIMIT) && iv < opt->lower_limit)
696 || ((opt->flags & OPT_ULIMIT) && iv > opt->upper_limit))
697 && !((opt->flags & OPT_ZEROOK && iv == 0))) {
698 char *zok = (opt->flags & OPT_ZEROOK)? " zero or": "";
699 switch (opt->flags & OPT_LIMITS) {
702 opt->name, zok, opt->lower_limit);
706 opt->name, zok, opt->upper_limit);
710 opt->name, zok, opt->lower_limit, opt->upper_limit);
716 a = opt->flags & OPT_VALUE;
720 if (opt->flags & OPT_INC)
721 iv += *(int *)(opt->addr);
722 if ((opt->flags & OPT_NOINCR) && !privileged_option) {
723 int oldv = *(int *)(opt->addr);
724 if ((opt->flags & OPT_ZEROINF) ?
726 option_error("%s value cannot be increased", opt->name);
730 *(int *)(opt->addr) = iv;
731 if (opt->addr2 && (opt->flags & OPT_A2COPY))
732 *(int *)(opt->addr2) = iv;
736 if (opt->flags & OPT_NOARG) {
737 v = opt->flags & OPT_VALUE;
742 if (opt->flags & OPT_OR)
743 v |= *(u_int32_t *)(opt->addr);
744 *(u_int32_t *)(opt->addr) = v;
745 if (opt->addr2 && (opt->flags & OPT_A2COPY))
746 *(u_int32_t *)(opt->addr2) = v;
750 if (opt->flags & OPT_STATIC) {
751 strlcpy((char *)(opt->addr), *argv, opt->upper_limit);
756 *(char **)(opt->addr) = sv;
762 parser = (int (*) __P((char **))) opt->addr;
765 if (opt->flags & OPT_A2LIST) {
773 pp = (struct option_value **) &opt->addr2;
782 wildp = (int (*) __P((char *, char **, int))) opt->addr;
788 if (opt->addr2 && (opt->flags & (OPT_A2COPY|OPT_ENABLE
790 *(bool *)(opt->addr2) = !(opt->flags & OPT_A2CLR);
794 mainopt->winner = opt - mainopt;
810 option_t *opt;
812 opt = find_option(option);
813 if (opt == NULL)
815 while (opt->flags & OPT_PRIOSUB)
816 --opt;
817 if ((opt->flags & OPT_PRIO) && priority < opt->priority)
819 opt->priority = priority;
820 opt->source = source;
821 opt->winner = -1;
829 n_arguments(opt)
830 option_t *opt;
832 return (opt->type == o_bool || opt->type == o_special_noarg
833 || (opt->flags & OPT_NOARG))? 0: 1;
840 add_options(opt)
841 option_t *opt;
848 list->options = opt;
867 print_option(opt, mainopt, printer, arg)
868 option_t *opt, *mainopt;
875 if (opt->flags & OPT_NOPRINT)
877 switch (opt->type) {
879 v = opt->flags & OPT_VALUE;
880 if (*(bool *)opt->addr != v)
884 printer(arg, "%s", opt->name);
887 v = opt->flags & OPT_VALUE;
890 i = *(int *)opt->addr;
891 if (opt->flags & OPT_NOARG) {
892 printer(arg, "%s", opt->name);
894 if (opt->flags & OPT_INC) {
896 printer(arg, " %s", opt->name);
902 printer(arg, "%s %d", opt->name, i);
906 printer(arg, "%s", opt->name);
907 if ((opt->flags & OPT_NOARG) == 0)
908 printer(arg, " %x", *(u_int32_t *)opt->addr);
912 if (opt->flags & OPT_HIDE) {
915 p = (char *) opt->addr;
916 if ((opt->flags & OPT_STATIC) == 0)
919 printer(arg, "%s %q", opt->name, p);
925 if (opt->type != o_wild) {
926 printer(arg, "%s", opt->name);
927 if (n_arguments(opt) == 0)
931 if (opt->flags & OPT_A2PRINTER) {
937 void *)))opt->addr2;
938 (*oprt)(opt, printer, arg);
939 } else if (opt->flags & OPT_A2STRVAL) {
940 p = (char *) opt->addr2;
941 if ((opt->flags & OPT_STATIC) == 0)
944 } else if (opt->flags & OPT_A2LIST) {
947 ovp = (struct option_value *) opt->addr2;
953 ovp->source, opt->name);
961 printer(arg, "# %s value (type %d\?\?)", opt->name, opt->type);
972 print_option_list(opt, printer, arg)
973 option_t *opt;
977 while (opt->name != NULL) {
978 if (opt->priority != OPRIO_DEFAULT
979 && opt->winner != (short int) -1)
980 print_option(opt + opt->winner, opt, printer, arg);
982 ++opt;
983 } while (opt->flags & OPT_PRIOSUB);