… | |
… | |
494 | int i, bad_option = 0; |
494 | int i, bad_option = 0; |
495 | |
495 | |
496 | for (i = 1; i < argc; i++) |
496 | for (i = 1; i < argc; i++) |
497 | { |
497 | { |
498 | unsigned int entry, longopt = 0; |
498 | unsigned int entry, longopt = 0; |
499 | const char *flag, *opt; |
499 | const char *opt; |
|
|
500 | int flag; |
500 | |
501 | |
501 | opt = argv[i]; |
502 | opt = argv[i]; |
502 | |
503 | |
503 | if (*opt == '-') |
504 | if (*opt == '-') |
504 | { |
505 | { |
505 | flag = resval_on; |
506 | flag = 1; |
506 | |
507 | |
507 | if (*++opt == '-') |
508 | if (*++opt == '-') |
508 | longopt = *opt++; /* long option */ |
509 | longopt = *opt++; /* long option */ |
509 | } |
510 | } |
510 | else if (*opt == '+') |
511 | else if (*opt == '+') |
511 | { |
512 | { |
512 | flag = resval_off; |
513 | flag = 0; |
513 | |
514 | |
514 | if (*++opt == '+') |
515 | if (*++opt == '+') |
515 | longopt = *opt++; /* long option */ |
516 | longopt = *opt++; /* long option */ |
516 | } |
517 | } |
517 | else |
518 | else |
… | |
… | |
535 | break; |
536 | break; |
536 | |
537 | |
537 | if (entry < optList_size) |
538 | if (entry < optList_size) |
538 | { |
539 | { |
539 | if (optList_isReverse (entry)) |
540 | if (optList_isReverse (entry)) |
540 | flag = flag == resval_on ? resval_off : resval_on; |
541 | flag = !flag; |
541 | |
542 | |
542 | if (optList_strlen (entry)) |
543 | if (optList_strlen (entry)) |
543 | { |
544 | { |
544 | /* |
545 | /* |
545 | * special cases are handled in main.c:main () to allow |
546 | * special cases are handled in main.c:main () to allow |
… | |
… | |
547 | * default values |
548 | * default values |
548 | */ |
549 | */ |
549 | |
550 | |
550 | if (optList[entry].doff != -1) |
551 | if (optList[entry].doff != -1) |
551 | { |
552 | { |
552 | if (flag == resval_on && i+1 == argc) |
553 | if (flag && i+1 == argc) |
553 | rxvt_fatal ("option '%s' requires an argument, aborting.\n", argv [i]); |
554 | rxvt_fatal ("option '%s' requires an argument, aborting.\n", argv [i]); |
554 | |
555 | |
555 | rs[optList[entry].doff] = flag == resval_on ? argv[++i] : resval_undef; |
556 | rs[optList[entry].doff] = flag ? argv[++i] : resval_undef; |
556 | } |
557 | } |
557 | } |
558 | } |
558 | else |
559 | else |
559 | { |
560 | { |
560 | /* boolean value */ |
561 | /* boolean value */ |
561 | set_option (optList[entry].index, flag == resval_on); |
562 | set_option (optList[entry].index, flag); |
562 | |
563 | |
563 | if (optList[entry].doff != -1) |
564 | if (optList[entry].doff != -1) |
564 | rs[optList[entry].doff] = flag; |
565 | rs[optList[entry].doff] = flag ? resval_on : resval_off; |
565 | } |
566 | } |
566 | } |
567 | } |
567 | #ifndef NO_RESOURCES |
568 | #ifndef NO_RESOURCES |
568 | else if (!strcmp (opt, "xrm")) |
569 | else if (!strcmp (opt, "xrm")) |
569 | { |
570 | { |
… | |
… | |
634 | { |
635 | { |
635 | const char *name; |
636 | const char *name; |
636 | unsigned short len; |
637 | unsigned short len; |
637 | unsigned short value; |
638 | unsigned short value; |
638 | }; |
639 | }; |
639 | keysym_vocabulary_t keysym_vocabulary[] = |
640 | static const keysym_vocabulary_t keysym_vocabulary[] = |
640 | { |
641 | { |
641 | { "ISOLevel3", 9, Level3Mask }, |
642 | { "ISOLevel3", 9, Level3Mask }, |
642 | { "AppKeypad", 9, AppKeypadMask }, |
643 | { "AppKeypad", 9, AppKeypadMask }, |
643 | { "Control", 7, ControlMask }, |
644 | { "Control", 7, ControlMask }, |
644 | { "NumLock", 7, NumLockMask }, |
645 | { "NumLock", 7, NumLockMask }, |