ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/src/xdefaults.C
(Generate patch)

Comparing rxvt-unicode/src/xdefaults.C (file contents):
Revision 1.152 by sf-exg, Fri Apr 29 13:08:24 2011 UTC vs.
Revision 1.159 by sf-exg, Fri Dec 2 09:03:43 2011 UTC

397 switch (type) 397 switch (type)
398 { 398 {
399 case 0: /* brief listing */ 399 case 0: /* brief listing */
400 rxvt_log (" [-help] [--help]\n"); 400 rxvt_log (" [-help] [--help]\n");
401 401
402 for (col = 1, i = 0; i < ARRAY_LENGTH(optList); i++) 402 for (col = 1, i = 0; i < ecb_array_length (optList); i++)
403 if (optList[i].desc != NULL) 403 if (optList[i].desc != NULL)
404 { 404 {
405 int len = 0; 405 int len = 0;
406 406
407 if (optList[i].arg) 407 if (optList[i].arg)
425 break; 425 break;
426 426
427 case 1: /* full command-line listing */ 427 case 1: /* full command-line listing */
428 rxvt_log (" [options] [-e command args]\n\nwhere options include:\n"); 428 rxvt_log (" [options] [-e command args]\n\nwhere options include:\n");
429 429
430 for (i = 0; i < ARRAY_LENGTH(optList); i++) 430 for (i = 0; i < ecb_array_length (optList); i++)
431 if (optList[i].desc != NULL) 431 if (optList[i].desc != NULL)
432 { 432 {
433 assert (optList[i].opt != NULL); 433 assert (optList[i].opt != NULL);
434 rxvt_log (" %s%s %-*s%s%s\n", 434 rxvt_log (" %s%s %-*s%s%s\n",
435 (optList_isBool (i) ? "-/+" : "-"), optList[i].opt, 435 (optList_isBool (i) ? "-/+" : "-"), optList[i].opt,
444 444
445 case 2: /* full resource listing */ 445 case 2: /* full resource listing */
446 rxvt_log (" [options] [-e command args]\n\n" 446 rxvt_log (" [options] [-e command args]\n\n"
447 "where resources (long-options) include:\n"); 447 "where resources (long-options) include:\n");
448 448
449 for (i = 0; i < ARRAY_LENGTH(optList); i++) 449 for (i = 0; i < ecb_array_length (optList); i++)
450 if (optList[i].kw != NULL) 450 if (optList[i].kw != NULL)
451 rxvt_log (" %s: %*s%s\n", 451 rxvt_log (" %s: %*s%s\n",
452 optList[i].kw, 452 optList[i].kw,
453 (INDENT - strlen (optList[i].kw)), "", /* XXX */ 453 (INDENT - strlen (optList[i].kw)), "", /* XXX */
454 (optList_isBool (i) ? "boolean" : optList[i].arg)); 454 (optList_isBool (i) ? "boolean" : optList[i].arg));
461 break; 461 break;
462 } 462 }
463 463
464 rxvt_log ("\n\n"); 464 rxvt_log ("\n\n");
465 rxvt_exit_failure (); 465 rxvt_exit_failure ();
466 /* NOTREACHED */
467} 466}
468 467
469/*}}} */ 468/*}}} */
470 469
471/*{{{ get command-line options before getting resources */ 470/*{{{ get command-line options before getting resources */
508 507
509 if (!strcmp (opt, "h")) 508 if (!strcmp (opt, "h"))
510 rxvt_usage (0); 509 rxvt_usage (0);
511 510
512 /* feature: always try to match long-options */ 511 /* feature: always try to match long-options */
513 for (entry = 0; entry < ARRAY_LENGTH(optList); entry++) 512 for (entry = 0; entry < ecb_array_length (optList); entry++)
514 if ((optList[entry].kw && !strcmp (opt, optList[entry].kw)) 513 if ((optList[entry].kw && !strcmp (opt, optList[entry].kw))
515 || (!longopt 514 || (!longopt
516 && optList[entry].opt && !strcmp (opt, optList[entry].opt))) 515 && optList[entry].opt && !strcmp (opt, optList[entry].opt)))
517 break; 516 break;
518 517
519 if (entry < ARRAY_LENGTH(optList)) 518 if (entry < ecb_array_length (optList))
520 { 519 {
521 if (optList_isReverse (entry)) 520 if (optList_isReverse (entry))
522 flag = !flag; 521 flag = !flag;
523 522
524 if (optList_isString (entry)) 523 if (optList_isString (entry))
525 { 524 {
526 /* 525 /*
527 * special cases are handled in main.c:main () to allow 526 * special cases are handled in init_resources () to allow
528 * X resources to set these values before we settle for 527 * X resources to set these values before we settle for
529 * default values 528 * default values
530 */ 529 */
531 530
532 if (optList[entry].doff != -1) 531 if (optList[entry].doff != -1)
585 * Define key from XrmEnumerateDatabase. 584 * Define key from XrmEnumerateDatabase.
586 * quarks will be something like 585 * quarks will be something like
587 * "rxvt" "keysym" "0xFF01" 586 * "rxvt" "keysym" "0xFF01"
588 * value will be a string 587 * value will be a string
589 */ 588 */
590int 589static int
591rxvt_define_key (XrmDatabase *database UNUSED, 590rxvt_define_key (XrmDatabase *database ecb_unused,
592 XrmBindingList bindings UNUSED, 591 XrmBindingList bindings ecb_unused,
593 XrmQuarkList quarks, 592 XrmQuarkList quarks,
594 XrmRepresentation *type UNUSED, 593 XrmRepresentation *type ecb_unused,
595 XrmValue *value, 594 XrmValue *value,
596 XPointer closure UNUSED) 595 XPointer closure ecb_unused)
597{ 596{
598 int last; 597 int last;
599 598
600 for (last = 0; quarks[last] != NULLQUARK; last++) /* look for last quark in list */ 599 for (last = 0; quarks[last] != NULLQUARK; last++) /* look for last quark in list */
601 ; 600 ;
664 // parse modifiers 663 // parse modifiers
665 while (str < key) 664 while (str < key)
666 { 665 {
667 unsigned int i; 666 unsigned int i;
668 667
669 for (i=0; i < ARRAY_LENGTH(keysym_vocabulary); ++i) 668 for (i = 0; i < ecb_array_length (keysym_vocabulary); ++i)
670 { 669 {
671 if (strncmp (str, keysym_vocabulary [i].name, keysym_vocabulary [i].len) == 0) 670 if (strncmp (str, keysym_vocabulary [i].name, keysym_vocabulary [i].len) == 0)
672 { 671 {
673 state |= keysym_vocabulary[i].value; 672 state |= keysym_vocabulary[i].value;
674 str += keysym_vocabulary[i].len; 673 str += keysym_vocabulary[i].len;
675 break; 674 break;
676 } 675 }
677 } 676 }
678 677
679 if (i >= ARRAY_LENGTH(keysym_vocabulary)) 678 if (i >= ecb_array_length (keysym_vocabulary))
680 return -1; 679 return -1;
681 680
682 if (*str == '-') 681 if (*str == '-')
683 ++str; 682 ++str;
684 } 683 }
691 sym = strtol (str, &end, 16); 690 sym = strtol (str, &end, 16);
692 if (*end) 691 if (*end)
693 return -1; 692 return -1;
694 } 693 }
695 694
695 wchar_t *ws = rxvt_mbstowcs (arg);
696 if (!HOOK_INVOKE ((this, HOOK_REGISTER_COMMAND, DT_INT, sym, DT_INT, state, DT_WCS_LEN, ws, wcslen (ws), DT_END)))
696 keyboard->register_user_translation (sym, state, arg); 697 keyboard->register_user_translation (sym, state, ws);
698 free (ws);
697 return 1; 699 return 1;
698} 700}
699 701
700# endif /* KEYSYM_RESOURCE */ 702# endif /* KEYSYM_RESOURCE */
701#endif /* NO_RESOURCES */ 703#endif /* NO_RESOURCES */
744 XrmMergeDatabases (option_db, &database); 746 XrmMergeDatabases (option_db, &database);
745 option_db = NULL; 747 option_db = NULL;
746 /* 748 /*
747 * Query resources for options that affect us 749 * Query resources for options that affect us
748 */ 750 */
749 for (int entry = 0; entry < ARRAY_LENGTH(optList); entry++) 751 for (int entry = 0; entry < ecb_array_length (optList); entry++)
750 { 752 {
751 int s; 753 int s;
752 const char *kw = optList[entry].kw; 754 const char *kw = optList[entry].kw;
753 755
754 if (kw == NULL || rs[optList[entry].doff] != NULL) 756 if (kw == NULL || rs[optList[entry].doff] != NULL)
774 776
775 set_option (optList[entry].index, s); 777 set_option (optList[entry].index, s);
776 } 778 }
777 } 779 }
778 } 780 }
781#endif /* NO_RESOURCES */
782}
779 783
784void
785rxvt_term::extract_keysym_resources ()
786{
787#ifndef NO_RESOURCES
780 /* 788 /*
781 * [R5 or later]: enumerate the resource database 789 * [R5 or later]: enumerate the resource database
782 */ 790 */
783# ifdef KEYSYM_RESOURCE 791# ifdef KEYSYM_RESOURCE
792 XrmDatabase database = XrmGetDatabase (dpy);
784 XrmName name_prefix[3]; 793 XrmName name_prefix[3];
785 XrmClass class_prefix[3]; 794 XrmClass class_prefix[3];
786 795
787 name_prefix[0] = XrmStringToName (rs[Rs_name]); 796 name_prefix[0] = XrmStringToName (rs[Rs_name]);
788 name_prefix[1] = XrmStringToName ("keysym"); 797 name_prefix[1] = XrmStringToName ("keysym");
792 class_prefix[2] = NULLQUARK; 801 class_prefix[2] = NULLQUARK;
793 /* XXX: Need to check sizeof (rxvt_t) == sizeof (XPointer) */ 802 /* XXX: Need to check sizeof (rxvt_t) == sizeof (XPointer) */
794 XrmEnumerateDatabase (database, name_prefix, class_prefix, 803 XrmEnumerateDatabase (database, name_prefix, class_prefix,
795 XrmEnumOneLevel, rxvt_define_key, NULL); 804 XrmEnumOneLevel, rxvt_define_key, NULL);
796# ifdef RESFALLBACK 805# ifdef RESFALLBACK
797 name_prefix[0] = XrmStringToName (RESFALLBACK);
798 name_prefix[1] = XrmStringToName ("keysym");
799 class_prefix[0] = XrmStringToName (RESFALLBACK); 806 name_prefix[0] = class_prefix[0] = XrmStringToName (RESFALLBACK);
800 class_prefix[1] = XrmStringToName ("Keysym");
801 /* XXX: Need to check sizeof (rxvt_t) == sizeof (XPointer) */ 807 /* XXX: Need to check sizeof (rxvt_t) == sizeof (XPointer) */
802 XrmEnumerateDatabase (database, name_prefix, class_prefix, 808 XrmEnumerateDatabase (database, name_prefix, class_prefix,
803 XrmEnumOneLevel, rxvt_define_key, NULL); 809 XrmEnumOneLevel, rxvt_define_key, NULL);
804# endif 810# endif
805# endif 811# endif

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines