-- Leo's gemini proxy

-- Connecting to git.thebackupbox.net:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini

repo: rxvt-unicode-sixel
action: commit
revision:
path_from:
revision_from: e3c5b8730bb5dfc35081d8ae872e2259a7061f7e:
path_to:
revision_to:

git.thebackupbox.net

rxvt-unicode-sixel

git://git.thebackupbox.net/rxvt-unicode-sixel

commit e3c5b8730bb5dfc35081d8ae872e2259a7061f7e
Author: Emanuele Giaquinta <emanuele.giaquinta@gmail.com>
Date:   Thu May 24 16:19:26 2012 +0000

    Factor the code to parse a boolean resource and to find all the
    resources matching a given prefix into new methods.

diff --git a/src/rxvt.h b/src/rxvt.h

index 235b310ca74c9c6ad97310934eb9488541e2c250..

index ..e2b84ed322fa5f2d0855c73fb70039c4a48338fc 100644

--- a/src/rxvt.h
+++ b/src/rxvt.h
@@ -1571,6 +1571,15 @@ struct rxvt_term : zero_initialized, rxvt_vars, rxvt_screen
   const char *x_resource (const char *name);
   void extract_resources ();
   void extract_keysym_resources ();
+  void find_resources (const char *n_prefix, const char *c_prefix, int mode,
+                       Bool (*proc)(XrmDatabase *, XrmBindingList, XrmQuarkList, XrmRepresentation *, XrmValue *, XPointer));
+  bool parse_bool_resource (const char *str)
+  {
+    return (!strcasecmp (str, "TRUE")
+            || !strcasecmp (str, "YES")
+            || !strcasecmp (str, "ON")
+            || !strcasecmp (str, "1"));
+  }
 };

 #endif /* _RXVT_H_ */
diff --git a/src/xdefaults.C b/src/xdefaults.C

index 1e1c1f99c68d2cb765b81c914df49768eced21f4..

index ..41662a3dd9f2fd4c7ba2858f2041594ac570cef2 100644

--- a/src/xdefaults.C
+++ b/src/xdefaults.C
@@ -762,7 +762,6 @@ rxvt_term::extract_resources ()
    */
   for (int entry = 0; entry < ecb_array_length (optList); entry++)
     {
-      int s;
       const char *kw = optList[entry].kw;

       if (kw == NULL || rs[optList[entry].doff] != NULL)
@@ -778,10 +777,7 @@ rxvt_term::extract_resources ()

           if (optList_isBool (entry))
             {
-              s = strcasecmp (p, "TRUE") == 0
-                  || strcasecmp (p, "YES") == 0
-                  || strcasecmp (p, "ON") == 0
-                  || strcasecmp (p, "1") == 0;
+              bool s = parse_bool_resource (p);

               if (optList_isReverse (entry))
                 s = !s;
@@ -796,33 +792,39 @@ rxvt_term::extract_resources ()
 void
 rxvt_term::extract_keysym_resources ()
 {
-#ifndef NO_RESOURCES
+#if !defined NO_RESOURCES && defined KEYSYM_RESOURCE
+  find_resources ("keysym", "Keysym", XrmEnumOneLevel, rxvt_define_key);
+#endif
+}
+
+#if !defined NO_RESOURCES && defined KEYSYM_RESOURCE
+void
+rxvt_term::find_resources (const char *n_prefix, const char *c_prefix, int mode,
+                           Bool (*proc)(XrmDatabase *, XrmBindingList, XrmQuarkList, XrmRepresentation *, XrmValue *, XPointer))
+{
   /*
    * [R5 or later]: enumerate the resource database
    */
-#  ifdef KEYSYM_RESOURCE
   XrmDatabase database = XrmGetDatabase (dpy);
   XrmName name_prefix[3];
   XrmClass class_prefix[3];

   name_prefix[0] = XrmStringToName (rs[Rs_name]);
-  name_prefix[1] = XrmStringToName ("keysym");
+  name_prefix[1] = XrmStringToName (n_prefix);
   name_prefix[2] = NULLQUARK;
   class_prefix[0] = XrmStringToName (RESCLASS);
-  class_prefix[1] = XrmStringToName ("Keysym");
+  class_prefix[1] = XrmStringToName (c_prefix);
   class_prefix[2] = NULLQUARK;
   /* XXX: Need to check sizeof (rxvt_t) == sizeof (XPointer) */
   XrmEnumerateDatabase (database, name_prefix, class_prefix,
-                        XrmEnumOneLevel, rxvt_define_key, NULL);
+                        mode, proc, NULL);
 #   ifdef RESFALLBACK
   name_prefix[0] = class_prefix[0] = XrmStringToName (RESFALLBACK);
   /* XXX: Need to check sizeof (rxvt_t) == sizeof (XPointer) */
   XrmEnumerateDatabase (database, name_prefix, class_prefix,
-                        XrmEnumOneLevel, rxvt_define_key, NULL);
+                        mode, proc, NULL);
 #   endif
-#  endif
-
-#endif /* NO_RESOURCES */
 }
+#endif

 /*----------------------- end-of-file (C source) -----------------------*/

-----END OF PAGE-----

-- Response ended

-- Page fetched on Sun Jun 2 10:38:29 2024