repo: rxvt-unicode-sixel action: commit revision: path_from: revision_from: 5367d8e50695f7da9fab863b0f06a889a21a7587: path_to: revision_to:
commit 5367d8e50695f7da9fab863b0f06a889a21a7587 Author: Emanuele GiaquintaDate: 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
--- 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
--- 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
--- 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-----