From fc9b1deb56fb26e79788ba97193097923a883a84 Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Sat, 12 Mar 2011 23:38:24 +0100 Subject: Fix segfault upon unloadable image with --title %h/%w/... (closes GH-35) --- ChangeLog | 5 +++++ src/slideshow.c | 9 +++++---- test/feh.i | 8 +++++++- 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 * 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(); -- cgit v1.2.3