-- 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: f0893dcaadad882a2c55e5cda1a17d3c4be59f63:
path_to:
revision_to:

git.thebackupbox.net

rxvt-unicode-sixel

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

commit f0893dcaadad882a2c55e5cda1a17d3c4be59f63
Author: Marc Lehmann <schmorp@schmorp.de>
Date:   Wed Dec 15 00:53:23 2004 +0000

    *** empty log message ***

diff --git a/Changes b/Changes

index a9d7e3a4c5fa30079606283b11cd7b77e9d23747..

index ..765299664798fc1da8371add7dcbe2b8c6811d0d 100644

--- a/Changes
+++ b/Changes
@@ -16,7 +16,12 @@ FEAT: tabbed windows (hey, just use screen...)
           if it slows down large pastes and is only cosmetic.
         - fix an unlikely memory leak.
         - fix atom name enumeration.
-        - streamline atom allocation to reduce network latency slightly.
+        - streamline atom and xft color allocation to reduce startup
+          time (12.8s -> 7.8s on my dsl). Still, doing it with only 2-3
+          turnarounds would be much faster, but impossible to implement.
+        - do not use XSETROOTPMAP_ID anymore, support ESETROOT_PMAP_ID
+          instead.
+        - implement underlineColor resource when ENABLE_FRILLS.

 4.5  Mon Dec 13 07:47:16 CET 2004
 	- fix an extremely nasty bug in utf8-conversion. upgrade is advised.
diff --git a/doc/rxvt.1.pod b/doc/rxvt.1.pod

index bc081f5bd6cbe3dcfdb09ebdb43cf554f4daff5d..

index ..b8bd65f108c5b78c22ab59fd604305091829f180 100644

--- a/doc/rxvt.1.pod
+++ b/doc/rxvt.1.pod
@@ -441,6 +441,11 @@ foreground colour is the default.
 Use the specified colour as the background for reverse video
 characters.

+=item B<underlineColor:> I<colour>
+
+If set, use the specified colour as the colour for the underline
+itself. If unset, use the foreground colour.
+
 =item B<cursorColor:> I<colour>

 Use the specified colour for the cursor. The default is to use the
diff --git a/src/command.C b/src/command.C

index 8fa267d13dc3532211cacfb405ecb39d894458a9..

index ..9654179f3586955359f03dee0663abc5825c1e3b 100644

--- a/src/command.C
+++ b/src/command.C
@@ -1670,10 +1670,8 @@ rxvt_term::rootwin_cb (XEvent &ev)
          * if user used some Esetroot compatible prog to set the root bg,
          * use the property to determine the pixmap.  We use it later on.
          */
-        if (xa[XA_XROOTPMAPID] == 0)
-          xa[XA_XROOTPMAPID] = XInternAtom (display->display, "_XROOTPMAP_ID", False);
-
-        if (ev.xproperty.atom != xa[XA_XROOTPMAPID])
+        if (ev.xproperty.atom == xa[XA_XROOTPMAP_ID]
+            || ev.xproperty.atom == xa[XA_ESETROOT_PMAP_ID])
           return;

         /* FALLTHROUGH */
@@ -2353,14 +2351,14 @@ rxvt_term::check_our_parents ()
    * the root background. Some window managers put multiple nested frame
    * windows for each client, so we have to take care about that.
    */
-  i = (xa[XA_XROOTPMAPID]
-       && XGetWindowProperty (display->display, display->root, xa[XA_XROOTPMAPID],
+  i = (xa[XA_XROOTPMAP_ID]
+       && XGetWindowProperty (display->display, display->root, xa[XA_XROOTPMAP_ID],
                               0L, 1L, False, XA_PIXMAP, &atype, &aformat,
                               &nitems, &bytes_after, &prop) == Success);

   if (!i || prop == NULL)
-     i = (xa[XA_XSETROOTID]
-          && XGetWindowProperty (display->display, display->root, xa[XA_XSETROOTID],
+     i = (xa[XA_ESETROOT_PMAP_ID]
+          && XGetWindowProperty (display->display, display->root, xa[XA_ESETROOT_PMAP_ID],
                                  0L, 1L, False, XA_PIXMAP, &atype, &aformat,
                                  &nitems, &bytes_after, &prop) == Success);

diff --git a/src/init.C b/src/init.C

index 99c5fa7d7037c0623bfc1f5a0e50b6732ea825ab..

index ..17c9eb990d90be8a3f23db6f97f4a2e7968a40e3 100644

--- a/src/init.C
+++ b/src/init.C
@@ -157,6 +157,9 @@ const char *const def_colorName[] =
     NULL,                       /* Color_UL                       */
     NULL,                       /* Color_RV                       */
 #endif                          /* ! NO_BOLD_UNDERLINE_REVERSE */
+#if ENABLE_FRILLS
+    NULL,			// Color_underline
+#endif
 #ifdef OPTION_HC
     NULL,
 #endif
@@ -192,7 +195,7 @@ const char *const xa_names[] =
 #endif
 #ifdef TRANSPARENT
     "_XROOTPMAP_ID",
-    "_XSETROOT_ID",
+    "ESETROOT_PMAP_ID",
 #endif
 #ifdef OFFIX_DND
     "DndProtocol",
diff --git a/src/main.C b/src/main.C

index db560df77b565a029fcdfa81d4bf02963db54a32..

index ..4fd7933473456e34a9532598cf80e58ce46396c1 100644

--- a/src/main.C
+++ b/src/main.C
@@ -1000,10 +1000,6 @@ rxvt_term::set_colorfgbg ()
 }

 /*----------------------------------------------------------------------*/
-/*
- * Colour determination for low colour displays, routine from
- *     Hans de Goede <hans@highrise.nl>
- */

 int
 rxvt_term::rXParseAllocColor (rxvt_color *screen_in_out, const char *colour)
diff --git a/src/rxvt.h b/src/rxvt.h

index 20584e92fa6be2e01e79be7b45061262bd905cea..

index ..dd835026602311f78ed1f3d898fdf360422fab20 100644

--- a/src/rxvt.h
+++ b/src/rxvt.h
@@ -502,6 +502,9 @@ enum colour_list {
   Color_UL,
   Color_RV,
 #endif
+#if ENABLE_FRILLS
+  Color_underline,
+#endif
 #ifdef OPTION_HC
   Color_HC,
 #endif
@@ -651,8 +654,8 @@ enum {
   XA_WM_LOCALE_NAME,
 #endif
 #if TRANSPARENT
-  XA_XROOTPMAPID,
-  XA_XSETROOTID,
+  XA_XROOTPMAP_ID,
+  XA_ESETROOT_PMAP_ID,
 #endif
 #if OFFIX_DND                /* OffiX Dnd (drag 'n' drop) support */
   XA_DNDPROTOCOL,
diff --git a/src/rxvttoolkit.C b/src/rxvttoolkit.C

index 3f4cf0e4eda03f42408ea3e7b7f30584983177e6..

index ..1cb697ab4bb5f35bda33efa69029b942f6fd46d5 100644

--- a/src/rxvttoolkit.C
+++ b/src/rxvttoolkit.C
@@ -388,12 +388,17 @@ rxvt_color::set (rxvt_display *display, Pixel p)
 bool
 rxvt_color::set (rxvt_display *display, const char *name)
 {
+#if XFT
+  return XftColorAllocName (display->display, display->visual, display->cmap,
+                            name, &c);
+#else
   XColor xc;

   if (XParseColor (display->display, display->cmap, name, &xc))
     return set (display, xc.red, xc.green, xc.blue);

   return false;
+#endif
 }

 bool
diff --git a/src/rxvttoolkit.h b/src/rxvttoolkit.h

index 5a113049acbee75a65e3ca1f4713a24b35faae11..

index ..290beb418adf11bf5302236620db2cc121a26ff8 100644

--- a/src/rxvttoolkit.h
+++ b/src/rxvttoolkit.h
@@ -89,7 +89,7 @@ struct rxvt_display : refcounted {
   operator Display *() const { return display; }

   void flush ();
-
+  Atom atom (const char *name);
   void set_selection_owner (rxvt_term *owner);

   void reg (xevent_watcher *w);
@@ -102,8 +102,6 @@ struct rxvt_display : refcounted {
   rxvt_xim *get_xim (const char *locale, const char *modifiers);
   void put_xim (rxvt_xim *xim);
 #endif
-
-  Atom atom (const char *name);
 };

 #ifdef USE_XIM
diff --git a/src/screen.C b/src/screen.C

index 116c264ca4f1bd8cd9769f74b74bec27241d4743..

index ..c9fcfe714ea4d9ffe887cd28b702e223743e00e4 100644

--- a/src/screen.C
+++ b/src/screen.C
@@ -2402,7 +2402,13 @@ rxvt_term::scr_refresh (unsigned char refresh_type)

           if (rend & RS_Uline && font->descent > 1 && fore != back)
             {
-              XSetForeground (display->display, TermWin.gc, pix_colors[fore]);
+#if ENABLE_FRILLS
+              if (ISSET_PIXCOLOR (Color_underline))
+                XSetForeground (display->display, TermWin.gc, pix_colors[Color_underline]);
+              else
+#endif
+                XSetForeground (display->display, TermWin.gc, pix_colors[fore]);
+
               XDrawLine (display->display, drawBuffer, TermWin.gc,
                          xpixel, ypixel + font->ascent + 1,
                          xpixel + Width2Pixel (count) - 1, ypixel + font->ascent + 1);
diff --git a/src/xdefaults.C b/src/xdefaults.C

index 8bc363389412b050e3f5ca79aea05f761d59e568..

index ..52737e621294615f7f89425e5b869c5bdda58eb7 100644

--- a/src/xdefaults.C
+++ b/src/xdefaults.C
@@ -166,6 +166,9 @@ optList[] = {
               RSTRG (Rs_color + Color_UL, "colorUL", "color"),
               RSTRG (Rs_color + Color_RV, "colorRV", "color"),
 #endif				/* ! NO_BOLD_UNDERLINE_REVERSE */
+#if ENABLE_FRILLS
+              RSTRG (Rs_color + Color_underline, "underlineColor", "color"),
+#endif
 #ifdef KEEP_SCROLLCOLOR
               RSTRG (Rs_color + Color_scroll, "scrollColor", "color"),
               RSTRG (Rs_color + Color_trough, "troughColor", "color"),

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

-- Response ended

-- Page fetched on Sun Jun 2 09:54:17 2024