summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2011-03-12 23:38:24 +0100
committerDaniel Friesel <derf@finalrewind.org>2011-03-12 23:38:24 +0100
commitfc9b1deb56fb26e79788ba97193097923a883a84 (patch)
treecd2e446f877f566fc5ac935e94e6b792b6dec33a
parent2abc27e5243cf8d80e0942d14656ccb12cd805de (diff)
Fix segfault upon unloadable image with --title %h/%w/... (closes GH-35)
-rw-r--r--ChangeLog5
-rw-r--r--src/slideshow.c9
-rwxr-xr-xtest/feh.i8
3 files changed, 17 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index e373ac8..bbe7d06 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+git HEAD
+
+ * Fix segfault upon unloadable images when image-related format specifiers
+ (e.g. %h) are used in --title
+
Sat, 12 Mar 2011 22:49:53 +0100 Daniel Friesel <derf@finalrewind.org>
* Release v1.12
diff --git a/src/slideshow.c b/src/slideshow.c
index 5ceee39..a75affd 100644
--- a/src/slideshow.c
+++ b/src/slideshow.c
@@ -252,10 +252,6 @@ void slideshow_change_image(winwidget winwid, int change)
filelist = feh_file_remove_from_list(filelist, last);
last = NULL;
}
- s = slideshow_create_name(FEH_FILE(current_file->data));
-
- winwidget_rename(winwid, s);
- free(s);
if ((winwidget_loadimage(winwid, FEH_FILE(current_file->data)))
!= 0) {
@@ -269,6 +265,11 @@ void slideshow_change_image(winwidget winwid, int change)
winwid->im_w = gib_imlib_image_get_width(winwid->im);
winwid->im_h = gib_imlib_image_get_height(winwid->im);
winwidget_render_image(winwid, 1, 1);
+
+ s = slideshow_create_name(FEH_FILE(current_file->data));
+ winwidget_rename(winwid, s);
+ free(s);
+
break;
} else
last = current_file;
diff --git a/test/feh.i b/test/feh.i
index 7ac6202..231f260 100755
--- a/test/feh.i
+++ b/test/feh.i
@@ -4,7 +4,7 @@ use warnings;
use 5.010;
use Cwd;
-use Test::More tests => 102;
+use Test::More tests => 103;
use Time::HiRes qw/sleep/;
use X11::GUITest qw/:ALL/;
@@ -445,3 +445,9 @@ ok(waitfor {
},
'disabled screen clip');
feh_stop();
+
+# GH-35 "Custom window title crashes feh on unloadable files"
+$win = feh_start('--title "feh %h"', 'test/ok/png test/fail/png test/ok/jpg');
+SendKeys('{RIG}');
+test_win_title($win, 'feh 16');
+feh_stop();