… | |
… | |
760 | /* |
760 | /* |
761 | * Query resources for options that affect us |
761 | * Query resources for options that affect us |
762 | */ |
762 | */ |
763 | for (int entry = 0; entry < ecb_array_length (optList); entry++) |
763 | for (int entry = 0; entry < ecb_array_length (optList); entry++) |
764 | { |
764 | { |
765 | int s; |
|
|
766 | const char *kw = optList[entry].kw; |
765 | const char *kw = optList[entry].kw; |
767 | |
766 | |
768 | if (kw == NULL || rs[optList[entry].doff] != NULL) |
767 | if (kw == NULL || rs[optList[entry].doff] != NULL) |
769 | continue; // previously set |
768 | continue; // previously set |
770 | |
769 | |
… | |
… | |
776 | allocated.push_back ((void *)p); |
775 | allocated.push_back ((void *)p); |
777 | rs[optList[entry].doff] = p; |
776 | rs[optList[entry].doff] = p; |
778 | |
777 | |
779 | if (optList_isBool (entry)) |
778 | if (optList_isBool (entry)) |
780 | { |
779 | { |
781 | s = strcasecmp (p, "TRUE") == 0 |
780 | bool s = parse_bool_resource (p); |
782 | || strcasecmp (p, "YES") == 0 |
|
|
783 | || strcasecmp (p, "ON") == 0 |
|
|
784 | || strcasecmp (p, "1") == 0; |
|
|
785 | |
781 | |
786 | if (optList_isReverse (entry)) |
782 | if (optList_isReverse (entry)) |
787 | s = !s; |
783 | s = !s; |
788 | |
784 | |
789 | set_option (optList[entry].index, s); |
785 | set_option (optList[entry].index, s); |
… | |
… | |
794 | } |
790 | } |
795 | |
791 | |
796 | void |
792 | void |
797 | rxvt_term::extract_keysym_resources () |
793 | rxvt_term::extract_keysym_resources () |
798 | { |
794 | { |
799 | #ifndef NO_RESOURCES |
795 | #if !defined NO_RESOURCES && defined KEYSYM_RESOURCE |
|
|
796 | find_resources ("keysym", "Keysym", XrmEnumOneLevel, rxvt_define_key); |
|
|
797 | #endif |
|
|
798 | } |
|
|
799 | |
|
|
800 | #if !defined NO_RESOURCES && defined KEYSYM_RESOURCE |
|
|
801 | void |
|
|
802 | rxvt_term::find_resources (const char *n_prefix, const char *c_prefix, int mode, |
|
|
803 | Bool (*proc)(XrmDatabase *, XrmBindingList, XrmQuarkList, XrmRepresentation *, XrmValue *, XPointer)) |
|
|
804 | { |
800 | /* |
805 | /* |
801 | * [R5 or later]: enumerate the resource database |
806 | * [R5 or later]: enumerate the resource database |
802 | */ |
807 | */ |
803 | # ifdef KEYSYM_RESOURCE |
|
|
804 | XrmDatabase database = XrmGetDatabase (dpy); |
808 | XrmDatabase database = XrmGetDatabase (dpy); |
805 | XrmName name_prefix[3]; |
809 | XrmName name_prefix[3]; |
806 | XrmClass class_prefix[3]; |
810 | XrmClass class_prefix[3]; |
807 | |
811 | |
808 | name_prefix[0] = XrmStringToName (rs[Rs_name]); |
812 | name_prefix[0] = XrmStringToName (rs[Rs_name]); |
809 | name_prefix[1] = XrmStringToName ("keysym"); |
813 | name_prefix[1] = XrmStringToName (n_prefix); |
810 | name_prefix[2] = NULLQUARK; |
814 | name_prefix[2] = NULLQUARK; |
811 | class_prefix[0] = XrmStringToName (RESCLASS); |
815 | class_prefix[0] = XrmStringToName (RESCLASS); |
812 | class_prefix[1] = XrmStringToName ("Keysym"); |
816 | class_prefix[1] = XrmStringToName (c_prefix); |
813 | class_prefix[2] = NULLQUARK; |
817 | class_prefix[2] = NULLQUARK; |
814 | /* XXX: Need to check sizeof (rxvt_t) == sizeof (XPointer) */ |
818 | /* XXX: Need to check sizeof (rxvt_t) == sizeof (XPointer) */ |
815 | XrmEnumerateDatabase (database, name_prefix, class_prefix, |
819 | XrmEnumerateDatabase (database, name_prefix, class_prefix, |
816 | XrmEnumOneLevel, rxvt_define_key, NULL); |
820 | mode, proc, NULL); |
817 | # ifdef RESFALLBACK |
821 | # ifdef RESFALLBACK |
818 | name_prefix[0] = class_prefix[0] = XrmStringToName (RESFALLBACK); |
822 | name_prefix[0] = class_prefix[0] = XrmStringToName (RESFALLBACK); |
819 | /* XXX: Need to check sizeof (rxvt_t) == sizeof (XPointer) */ |
823 | /* XXX: Need to check sizeof (rxvt_t) == sizeof (XPointer) */ |
820 | XrmEnumerateDatabase (database, name_prefix, class_prefix, |
824 | XrmEnumerateDatabase (database, name_prefix, class_prefix, |
821 | XrmEnumOneLevel, rxvt_define_key, NULL); |
825 | mode, proc, NULL); |
822 | # endif |
826 | # endif |
823 | # endif |
|
|
824 | |
|
|
825 | #endif /* NO_RESOURCES */ |
|
|
826 | } |
827 | } |
|
|
828 | #endif |
827 | |
829 | |
828 | /*----------------------- end-of-file (C source) -----------------------*/ |
830 | /*----------------------- end-of-file (C source) -----------------------*/ |