… | |
… | |
644 | * quarks will be something like |
644 | * quarks will be something like |
645 | * "rxvt" "keysym" "0xFF01" |
645 | * "rxvt" "keysym" "0xFF01" |
646 | * value will be a string |
646 | * value will be a string |
647 | */ |
647 | */ |
648 | static int |
648 | static int |
649 | rxvt_keysym_enumerate_helper ( |
649 | rxvt_enumerate_helper ( |
650 | XrmDatabase *database ecb_unused, |
650 | XrmDatabase *database ecb_unused, |
651 | XrmBindingList bindings ecb_unused, |
651 | XrmBindingList bindings ecb_unused, |
652 | XrmQuarkList quarks, |
652 | XrmQuarkList quarks, |
653 | XrmRepresentation *type ecb_unused, |
653 | XrmRepresentation *type ecb_unused, |
654 | XrmValue *value, |
654 | XrmValue *value, |
… | |
… | |
859 | } |
859 | } |
860 | #endif /* NO_RESOURCES */ |
860 | #endif /* NO_RESOURCES */ |
861 | } |
861 | } |
862 | |
862 | |
863 | void |
863 | void |
864 | rxvt_term::enumerate_keysym_resources (void (*cb)(rxvt_term *, const char *, const char *)) |
864 | rxvt_term::enumerate_resources (void (*cb)(rxvt_term *, const char *, const char *), const char *name_p, const char *class_p) |
865 | { |
865 | { |
866 | /* |
866 | /* |
867 | * [R5 or later]: enumerate the resource database |
867 | * [R5 or later]: enumerate the resource database |
868 | */ |
868 | */ |
869 | #ifdef KEYSYM_RESOURCE |
869 | #ifdef KEYSYM_RESOURCE |
… | |
… | |
874 | |
874 | |
875 | XrmDatabase database = XrmGetDatabase (dpy); |
875 | XrmDatabase database = XrmGetDatabase (dpy); |
876 | XrmName name_prefix[3]; |
876 | XrmName name_prefix[3]; |
877 | XrmClass class_prefix[3]; |
877 | XrmClass class_prefix[3]; |
878 | |
878 | |
879 | name_prefix[1] = XrmStringToName ("keysym"); |
879 | name_prefix[1] = name_p ? XrmStringToName (name_p) : NULLQUARK; |
880 | name_prefix[2] = NULLQUARK; |
880 | name_prefix[2] = NULLQUARK; |
881 | class_prefix[1] = XrmStringToName ("Keysym"); |
881 | class_prefix[1] = class_p ? XrmStringToName (class_p) : NULLQUARK; |
882 | class_prefix[2] = NULLQUARK; |
882 | class_prefix[2] = NULLQUARK; |
883 | |
883 | |
884 | # ifdef RESFALLBACK |
884 | # ifdef RESFALLBACK |
885 | name_prefix[0] = class_prefix[0] = XrmStringToName (RESFALLBACK); |
885 | name_prefix[0] = class_prefix[0] = XrmStringToName (RESFALLBACK); |
886 | /* XXX: Need to check sizeof (rxvt_t) == sizeof (XPointer) */ |
886 | /* XXX: Need to check sizeof (rxvt_t) == sizeof (XPointer) */ |
887 | XrmEnumerateDatabase (database, name_prefix, class_prefix, |
887 | XrmEnumerateDatabase (database, name_prefix, class_prefix, |
888 | XrmEnumOneLevel, rxvt_keysym_enumerate_helper, (XPointer)closure); |
888 | XrmEnumOneLevel, rxvt_enumerate_helper, (XPointer)closure); |
889 | # endif |
889 | # endif |
890 | |
890 | |
891 | name_prefix[0] = class_prefix[0] = XrmStringToName (RESCLASS); |
891 | name_prefix[0] = class_prefix[0] = XrmStringToName (RESCLASS); |
892 | XrmEnumerateDatabase (database, name_prefix, class_prefix, |
892 | XrmEnumerateDatabase (database, name_prefix, class_prefix, |
893 | XrmEnumOneLevel, rxvt_keysym_enumerate_helper, (XPointer)closure); |
893 | XrmEnumOneLevel, rxvt_enumerate_helper, (XPointer)closure); |
894 | |
894 | |
895 | name_prefix[0] = class_prefix[0] = XrmStringToName (rs[Rs_name]); |
895 | name_prefix[0] = class_prefix[0] = XrmStringToName (rs[Rs_name]); |
896 | XrmEnumerateDatabase (database, name_prefix, class_prefix, |
896 | XrmEnumerateDatabase (database, name_prefix, class_prefix, |
897 | XrmEnumOneLevel, rxvt_keysym_enumerate_helper, (XPointer)closure); |
897 | XrmEnumOneLevel, rxvt_enumerate_helper, (XPointer)closure); |
898 | #endif |
898 | #endif |
899 | } |
899 | } |
900 | |
900 | |
901 | void |
901 | void |
902 | rxvt_term::extract_keysym_resources () |
902 | rxvt_term::extract_keysym_resources () |