… | |
… | |
797 | /* |
797 | /* |
798 | * Query resources for options that affect us |
798 | * Query resources for options that affect us |
799 | */ |
799 | */ |
800 | for (int entry = 0; entry < ecb_array_length (optList); entry++) |
800 | for (int entry = 0; entry < ecb_array_length (optList); entry++) |
801 | { |
801 | { |
|
|
802 | int s; |
802 | const char *kw = optList[entry].kw; |
803 | const char *kw = optList[entry].kw; |
803 | |
804 | |
804 | if (kw == NULL || rs[optList[entry].doff] != NULL) |
805 | if (kw == NULL || rs[optList[entry].doff] != NULL) |
805 | continue; // previously set |
806 | continue; // previously set |
806 | |
807 | |
… | |
… | |
812 | allocated.push_back ((void *)p); |
813 | allocated.push_back ((void *)p); |
813 | rs[optList[entry].doff] = p; |
814 | rs[optList[entry].doff] = p; |
814 | |
815 | |
815 | if (optList_isBool (entry)) |
816 | if (optList_isBool (entry)) |
816 | { |
817 | { |
817 | bool s = parse_bool_resource (p); |
818 | s = strcasecmp (p, "TRUE") == 0 |
|
|
819 | || strcasecmp (p, "YES") == 0 |
|
|
820 | || strcasecmp (p, "ON") == 0 |
|
|
821 | || strcasecmp (p, "1") == 0; |
818 | |
822 | |
819 | if (optList_isReverse (entry)) |
823 | if (optList_isReverse (entry)) |
820 | s = !s; |
824 | s = !s; |
821 | |
825 | |
822 | set_option (optList[entry].index, s); |
826 | set_option (optList[entry].index, s); |
… | |
… | |
827 | } |
831 | } |
828 | |
832 | |
829 | void |
833 | void |
830 | rxvt_term::extract_keysym_resources () |
834 | rxvt_term::extract_keysym_resources () |
831 | { |
835 | { |
832 | #if !defined NO_RESOURCES && defined KEYSYM_RESOURCE |
836 | #ifndef NO_RESOURCES |
833 | find_resources ("keysym", "Keysym", XrmEnumOneLevel, rxvt_define_key); |
|
|
834 | #endif |
|
|
835 | } |
|
|
836 | |
|
|
837 | #if !defined NO_RESOURCES && defined KEYSYM_RESOURCE |
|
|
838 | void |
|
|
839 | rxvt_term::find_resources (const char *n_prefix, const char *c_prefix, int mode, |
|
|
840 | Bool (*proc)(XrmDatabase *, XrmBindingList, XrmQuarkList, XrmRepresentation *, XrmValue *, XPointer)) |
|
|
841 | { |
|
|
842 | /* |
837 | /* |
843 | * [R5 or later]: enumerate the resource database |
838 | * [R5 or later]: enumerate the resource database |
844 | */ |
839 | */ |
|
|
840 | # ifdef KEYSYM_RESOURCE |
845 | XrmDatabase database = XrmGetDatabase (dpy); |
841 | XrmDatabase database = XrmGetDatabase (dpy); |
846 | XrmName name_prefix[3]; |
842 | XrmName name_prefix[3]; |
847 | XrmClass class_prefix[3]; |
843 | XrmClass class_prefix[3]; |
848 | |
844 | |
849 | name_prefix[0] = XrmStringToName (rs[Rs_name]); |
845 | name_prefix[0] = XrmStringToName (rs[Rs_name]); |
850 | name_prefix[1] = XrmStringToName (n_prefix); |
846 | name_prefix[1] = XrmStringToName ("keysym"); |
851 | name_prefix[2] = NULLQUARK; |
847 | name_prefix[2] = NULLQUARK; |
852 | class_prefix[0] = XrmStringToName (RESCLASS); |
848 | class_prefix[0] = XrmStringToName (RESCLASS); |
853 | class_prefix[1] = XrmStringToName (c_prefix); |
849 | class_prefix[1] = XrmStringToName ("Keysym"); |
854 | class_prefix[2] = NULLQUARK; |
850 | class_prefix[2] = NULLQUARK; |
855 | /* XXX: Need to check sizeof (rxvt_t) == sizeof (XPointer) */ |
851 | /* XXX: Need to check sizeof (rxvt_t) == sizeof (XPointer) */ |
856 | XrmEnumerateDatabase (database, name_prefix, class_prefix, |
852 | XrmEnumerateDatabase (database, name_prefix, class_prefix, |
857 | mode, proc, NULL); |
853 | XrmEnumOneLevel, rxvt_define_key, NULL); |
858 | # ifdef RESFALLBACK |
854 | # ifdef RESFALLBACK |
859 | name_prefix[0] = class_prefix[0] = XrmStringToName (RESFALLBACK); |
855 | name_prefix[0] = class_prefix[0] = XrmStringToName (RESFALLBACK); |
860 | /* XXX: Need to check sizeof (rxvt_t) == sizeof (XPointer) */ |
856 | /* XXX: Need to check sizeof (rxvt_t) == sizeof (XPointer) */ |
861 | XrmEnumerateDatabase (database, name_prefix, class_prefix, |
857 | XrmEnumerateDatabase (database, name_prefix, class_prefix, |
862 | mode, proc, NULL); |
858 | XrmEnumOneLevel, rxvt_define_key, NULL); |
863 | # endif |
859 | # endif |
|
|
860 | # endif |
|
|
861 | |
|
|
862 | #endif /* NO_RESOURCES */ |
864 | } |
863 | } |
865 | #endif |
|
|
866 | |
864 | |
867 | /*----------------------- end-of-file (C source) -----------------------*/ |
865 | /*----------------------- end-of-file (C source) -----------------------*/ |