repo: rxvt-unicode-sixel
action: commit
revision: 
path_from: 
revision_from: 5367d8e50695f7da9fab863b0f06a889a21a7587:
path_to: 
revision_to: 
git.thebackupbox.net
rxvt-unicode-sixel
git clone git://git.thebackupbox.net/rxvt-unicode-sixel
commit 5367d8e50695f7da9fab863b0f06a889a21a7587
Author: Emanuele Giaquinta 
Date:   Fri Aug 19 17:42:09 2011 +0000

    Move and factor code to set the geometry specified in a bg pixmap string
    into bg_set_file.

diff --git a/src/background.C b/src/background.C
index 254eb90690ffb5e209ac5fb107be2ec42d29b6e6..
index ..0ca849085741ed0abe132743924a1058544e5479 100644
--- a/src/background.C
+++ b/src/background.C
@@ -850,7 +850,10 @@ rxvt_term::bg_set_file (const char *file)
   if (!file || !*file)
     return false;

-  if (const char *p = strchr (file, ';'))
+  bool ret = false;
+  const char *p = strchr (file, ';');
+
+  if (p)
     {
       size_t len = p - file;
       char *f = rxvt_temp_buf (len + 1);
@@ -869,7 +872,7 @@ rxvt_term::bg_set_file (const char *file)
         safe_asimage_destroy (original_asim);
       original_asim = image;
       bg_flags |= BG_IS_FROM_FILE | BG_CLIENT_RENDER;
-      return true;
+      ret = true;
     }
 #  endif

@@ -881,11 +884,19 @@ rxvt_term::bg_set_file (const char *file)
         g_object_unref (pixbuf);
       pixbuf = image;
       bg_flags |= BG_IS_FROM_FILE;
-      return true;
+      ret = true;
     }
 #  endif

-  return false;
+  if (ret)
+    {
+      if (p)
+        bg_set_geometry (p + 1);
+      else
+        bg_set_default_geometry ();
+    }
+
+  return ret;
 }

 # endif /* BG_IMAGE_FROM_FILE */
diff --git a/src/command.C b/src/command.C
index 1bfd31ef6079d13abeb6fe80633b1b8dc42d6580..
index ..2a33dc0f6124e9f8b8c3ca92205f6c32583d8b13 100644
--- a/src/command.C
+++ b/src/command.C
@@ -3462,11 +3462,6 @@ rxvt_term::process_xterm_seq (int op, char *str, char resp)
                 if (bg_set_file (str))	/* change pixmap */
                   {
                     changed++;
-                    str = strchr (str, ';');
-                    if (str == NULL)
-                      bg_set_default_geometry ();
-                    else
-                      bg_set_geometry (str+1);
                   }
               }
             else
diff --git a/src/init.C b/src/init.C
index 77dd9a14fa795a9df8bdf6394797dca33372caee..
index ..a08f1bca001e942ebc0783c1b296d4df1b39c3f5 100644
--- a/src/init.C
+++ b/src/init.C
@@ -829,16 +829,6 @@ rxvt_term::init (int argc, const char *const *argv, stringvec *envv)
 #ifdef BG_IMAGE_FROM_FILE
     if (rs[Rs_backgroundPixmap])
       {
-        const char *p = rs[Rs_backgroundPixmap];
-
-        if ((p = strchr (p, ';')) != 0)
-          {
-            p++;
-            bg_set_geometry (p);
-          }
-        else
-          bg_set_default_geometry ();
-
         if (bg_set_file (rs[Rs_backgroundPixmap]))
           if (!bg_window_position_sensitive ())
             update_background ();

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