From cbf1e7cc60a04bd2d0ee302eea0a331695e63c50 Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Thu, 11 Feb 2010 08:31:36 +0100 Subject: Make --draw-actions not crash the program --- TODO | 5 ++--- src/imlib.c | 29 +++++++++++++---------------- 2 files changed, 15 insertions(+), 19 deletions(-) diff --git a/TODO b/TODO index 0747ade..1fffb9d 100644 --- a/TODO +++ b/TODO @@ -9,9 +9,8 @@ overlay reminder showing what each one does :p key/option/signal/timeout to totally reload filelist (rescan directories etc) ---draw-actions doesn't work. It will miss some actions, and even if not it -can't display anything anyway because it causes a nice abort at startup if ---action is defined. +--draw-actions doesn't work too fine. It conflicts with --draw-filename and +misses some actions if there are non-defined actions in between The "No more slides left in show" bug was fixed, but now there's a rare condition (viewing a few images, removing them externally while viewing, diff --git a/src/imlib.c b/src/imlib.c index 1b2ae12..87352a9 100644 --- a/src/imlib.c +++ b/src/imlib.c @@ -1210,15 +1210,15 @@ feh_draw_actions(winwidget w) static DATA8 atab[256]; int i = 0; int num_actions = 0; - + D_ENTER(4); -// count the number of defined actions +// count the number of defined actions (this method sucks) for (num_actions=0;opt.actions[num_actions];num_actions++) - ; + ; if (num_actions == 0) return; - + if ((!w->file) || (!FEH_FILE(w->file->data)) || (!FEH_FILE(w->file->data)->filename)) D_RETURN_(4); @@ -1238,17 +1238,16 @@ feh_draw_actions(winwidget w) D_RETURN_(4); } - gib_imlib_get_text_size(fn, "defined actions:", NULL, &tw, &th, IMLIB_TEXT_TO_RIGHT); // Check for the widest line - max_tw = tw; - for (i=0;opt.actions[i];i++) { - gib_imlib_get_text_size(fn, opt.actions[i], NULL, &tw, &th, - IMLIB_TEXT_TO_RIGHT); - if (tw>max_tw) { - max_tw = tw; - } + max_tw = tw; + + for (i = 0; opt.actions[i]; i++) { + gib_imlib_get_text_size(fn, opt.actions[i], NULL, &tw, &th, + IMLIB_TEXT_TO_RIGHT); + if (tw > max_tw) + max_tw = tw; } tw = max_tw; @@ -1271,12 +1270,10 @@ feh_draw_actions(winwidget w) gib_imlib_text_draw(im, fn, NULL, 2, 2, "defined actions:", IMLIB_TEXT_TO_RIGHT, 255, 255, 255, 255); - for(i=0;i