*** empty log message ***
authorroot <root>
Wed, 15 Dec 2004 00:12:58 +0000 (00:12 +0000)
committerroot <root>
Wed, 15 Dec 2004 00:12:58 +0000 (00:12 +0000)
Changes
src/init.C
src/main.C
src/rxvt.h
src/version.h

diff --git a/Changes b/Changes
index db33f6e..a9d7e3a 100644 (file)
--- a/Changes
+++ b/Changes
@@ -2,6 +2,7 @@ Lines marked with "xterm:" indicate either xterm features ported to rxvt
 or changed rxvt behaviour to make it more compatible to xterm (usually
 xfree86's xterm).
 
+TODO: configurable underline line colour.
 TODO: read property sequence is broken with respect to utf-8 etc.
 FEAT: hotkey font resizing
 FEAT: searchable backlog
@@ -14,6 +15,8 @@ FEAT: tabbed windows (hey, just use screen...)
        - try very hard not to exhaust the kernel tty buffers, even
           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.
 
 4.5  Mon Dec 13 07:47:16 CET 2004
        - fix an extremely nasty bug in utf8-conversion. upgrade is advised.
index 0fa56df..99c5fa7 100644 (file)
@@ -169,7 +169,7 @@ const char *const def_colorName[] =
 #endif
   };
 
-const char *const xa_names[NUM_XA] =
+const char *const xa_names[] =
   {
     "TEXT",
     "COMPOUND_TEXT",
@@ -180,14 +180,24 @@ const char *const xa_names[NUM_XA] =
     "VT_SELECTION",
     "INCR",
     "WM_DELETE_WINDOW",
+    "CLIPBOARD",
+#if ENABLE_FRILLS
+    "_NET_WM_PID",
+    "_MOTIF_WM_HINTS",
+    "_NET_WM_NAME",
+    "_NET_WM_ICON_NAME",
+#endif
+#if USE_XIM
+    "WM_LOCALE_NAME",
+#endif
 #ifdef TRANSPARENT
     "_XROOTPMAP_ID",
+    "_XSETROOT_ID",
 #endif
 #ifdef OFFIX_DND
     "DndProtocol",
     "DndSelection",
 #endif
-    "CLIPBOARD"
   };
 
 bool
@@ -613,7 +623,7 @@ rxvt_term::init_xlocale ()
     rxvt_warn ("setting locale failed, working without locale support.\n");
   else
     {
-      set_string_property (display->atom ("WM_LOCALE_NAME"), locale);
+      set_string_property (xa[XA_WM_LOCALE_NAME], locale);
 
       if (!XSupportsLocale ())
         {
@@ -898,14 +908,14 @@ rxvt_term::create_windows (int argc, const char *const *argv)
   XSetWindowAttributes attributes;
   XWindowAttributes gattr;
 
-  for (int i = 0; i < NUM_XA; i++)
-    xa[i] = XInternAtom (display->display, xa_names[i], False);
-
 #ifdef USING_W11LIB
   /* enable W11 callbacks */
   W11AddEventHandler (display->display, rxvt_W11_process_x_event);
 #endif
 
+  assert (sizeof (xa_names) / sizeof (char *) == NUM_XA);
+  XInternAtoms (display->display, (char **)xa_names, NUM_XA, False, xa);
+
   if (options & Opt_transparent)
     {
       XGetWindowAttributes (display->display, RootWindow (display->display, display->screen), &gattr);
@@ -991,7 +1001,7 @@ rxvt_term::create_windows (int argc, const char *const *argv)
   long pid = getpid ();
 
   XChangeProperty (display->display, TermWin.parent[0],
-                   display->atom ("_NET_WM_PID"), XA_CARDINAL, 32,
+                   xa[XA_NET_WM_PID], XA_CARDINAL, 32,
                    PropModeReplace, (unsigned char *)&pid, 1);
 #endif
 
@@ -1007,11 +1017,8 @@ rxvt_term::create_windows (int argc, const char *const *argv)
 
 #if ENABLE_FRILLS
   if (mwmhints.flags)
-    {
-      prop = XInternAtom (display->display, "_MOTIF_WM_HINTS", False);
-      XChangeProperty (display->display, TermWin.parent[0], prop, prop, 32,
-                       PropModeReplace, (unsigned char *)&mwmhints, PROP_MWM_HINTS_ELEMENTS);
-    }
+    XChangeProperty (display->display, TermWin.parent[0], xa[XA_MOTIF_WM_HINTS], xa[XA_MOTIF_WM_HINTS], 32,
+                     PropModeReplace, (unsigned char *)&mwmhints, PROP_MWM_HINTS_ELEMENTS);
 #endif
 
   /* vt cursor: Black-on-White is standard, but this is more popular */
index a570ffe..db560df 100644 (file)
@@ -862,7 +862,7 @@ rxvt_term::set_title (const char *str)
 {
   set_string_property (XA_WM_NAME, str);
 #if ENABLE_FRILLS
-  set_utf8_property (display->atom ("_NET_WM_NAME"), str);
+  set_utf8_property (xa[XA_NET_WM_NAME], str);
 #endif
 }
 
@@ -871,7 +871,7 @@ rxvt_term::set_icon_name (const char *str)
 {
   set_string_property (XA_WM_ICON_NAME, str);
 #if ENABLE_FRILLS
-  set_utf8_property (display->atom ("_NET_WM_ICON_NAME"), str);
+  set_utf8_property (xa[XA_NET_WM_ICON_NAME], str);
 #endif
 }
 
index 525ee3f..20584e9 100644 (file)
@@ -640,15 +640,24 @@ enum {
   XA_VT_SELECTION,
   XA_INCR,
   XA_WMDELETEWINDOW,
-#ifdef TRANSPARENT
+  XA_CLIPBOARD,
+#if ENABLE_FRILLS
+  XA_NET_WM_PID,
+  XA_MOTIF_WM_HINTS,
+  XA_NET_WM_NAME,
+  XA_NET_WM_ICON_NAME,
+#endif
+#if USE_XIM
+  XA_WM_LOCALE_NAME,
+#endif
+#if TRANSPARENT
   XA_XROOTPMAPID,
   XA_XSETROOTID,
 #endif
-#ifdef OFFIX_DND                /* OffiX Dnd (drag 'n' drop) support */
+#if OFFIX_DND                /* OffiX Dnd (drag 'n' drop) support */
   XA_DNDPROTOCOL,
   XA_DNDSELECTION,
 #endif                          /* OFFIX_DND */
-  XA_CLIPBOARD,
   NUM_XA
 };
 
index 8a12d8c..c8264f0 100644 (file)
@@ -1,5 +1,5 @@
-#define VERSION "4.5"
-#define VSTRING "40500"
+#define VERSION "4.6"
+#define VSTRING "40600"
 #define DATE   "2004-12-13"
 #define LSMDATE        "13DEC04"
-#define LIBVERSION "4:5:0"
+#define LIBVERSION "4:6:0"