sxiv

simple X image viewer
git clone git://git.suckless.org/sxiv
Log | Files | Refs | LICENSE

commit 5dc7993478b7c4273fcbcec83616d2ac33ca43b4
parent 808a10ed04408f6154d26197a568cb1d11372475
Author: Bert M√ľnnich <ber.t@posteo.de>
Date:   Sun, 11 Jan 2015 11:38:28 +0100

Simplified command arguments

Diffstat:
Makefile | 2+-
commands.c | 89+++++++++++++++++++++++++++++++------------------------------------------------
commands.h | 2+-
config.def.h | 176++++++++++++++++++++++++++++++++++++++++----------------------------------------
4 files changed, 125 insertions(+), 144 deletions(-)

diff --git a/Makefile b/Makefile @@ -1,4 +1,4 @@ -VERSION := git-20150107 +VERSION := git-20150111 PREFIX := /usr/local MANPREFIX := $(PREFIX)/share/man diff --git a/commands.c b/commands.c @@ -55,7 +55,7 @@ extern int markcnt; extern int prefix; extern bool extprefix; -bool cg_quit(arg_t a) +bool cg_quit(arg_t _) { unsigned int i; @@ -69,7 +69,7 @@ bool cg_quit(arg_t a) exit(EXIT_SUCCESS); } -bool cg_switch_mode(arg_t a) +bool cg_switch_mode(arg_t _) { if (mode == MODE_IMAGE) { if (tns.thumbs == NULL) @@ -89,7 +89,7 @@ bool cg_switch_mode(arg_t a) return true; } -bool cg_toggle_fullscreen(arg_t a) +bool cg_toggle_fullscreen(arg_t _) { win_toggle_fullscreen(&win); /* redraw after next ConfigureNotify event */ @@ -101,7 +101,7 @@ bool cg_toggle_fullscreen(arg_t a) return false; } -bool cg_toggle_bar(arg_t a) +bool cg_toggle_bar(arg_t _) { win_toggle_bar(&win); if (mode == MODE_IMAGE) { @@ -114,13 +114,13 @@ bool cg_toggle_bar(arg_t a) return true; } -bool cg_prefix_external(arg_t a) +bool cg_prefix_external(arg_t _) { extprefix = true; return false; } -bool cg_reload_image(arg_t a) +bool cg_reload_image(arg_t _) { if (mode == MODE_IMAGE) { load_image(fileidx); @@ -134,7 +134,7 @@ bool cg_reload_image(arg_t a) return true; } -bool cg_remove_image(arg_t a) +bool cg_remove_image(arg_t _) { remove_file(fileidx, true); if (mode == MODE_IMAGE) @@ -144,7 +144,7 @@ bool cg_remove_image(arg_t a) return true; } -bool cg_first(arg_t a) +bool cg_first(arg_t _) { if (mode == MODE_IMAGE && fileidx != 0) { load_image(0); @@ -158,7 +158,7 @@ bool cg_first(arg_t a) } } -bool cg_n_or_last(arg_t a) +bool cg_n_or_last(arg_t _) { int n = prefix != 0 && prefix - 1 < filecnt ? prefix - 1 : filecnt - 1; @@ -174,20 +174,16 @@ bool cg_n_or_last(arg_t a) } } -bool cg_scroll_screen(arg_t a) +bool cg_scroll_screen(arg_t dir) { - direction_t dir = (direction_t) a; - if (mode == MODE_IMAGE) return img_pan(&img, dir, -1); else return tns_scroll(&tns, dir, true); } -bool cg_zoom(arg_t a) +bool cg_zoom(arg_t d) { - long d = (long) a; - if (mode == MODE_THUMB) return tns_zoom(&tns, d); else if (d > 0) @@ -198,7 +194,7 @@ bool cg_zoom(arg_t a) return false; } -bool cg_toggle_image_mark(arg_t a) +bool cg_toggle_image_mark(arg_t _) { files[fileidx].flags ^= FF_MARK; markcnt += files[fileidx].flags & FF_MARK ? 1 : -1; @@ -207,7 +203,7 @@ bool cg_toggle_image_mark(arg_t a) return true; } -bool cg_reverse_marks(arg_t a) +bool cg_reverse_marks(arg_t _) { int i; @@ -220,7 +216,7 @@ bool cg_reverse_marks(arg_t a) return true; } -bool cg_unmark_all(arg_t a) +bool cg_unmark_all(arg_t _) { int i; @@ -232,9 +228,8 @@ bool cg_unmark_all(arg_t a) return true; } -bool cg_navigate_marked(arg_t a) +bool cg_navigate_marked(arg_t n) { - long n = (long) a; int d, i; int new = fileidx; @@ -260,9 +255,9 @@ bool cg_navigate_marked(arg_t a) } } -bool cg_change_gamma(arg_t a) +bool cg_change_gamma(arg_t d) { - if (img_change_gamma(&img, (long) a * (prefix > 0 ? prefix : 1))) { + if (img_change_gamma(&img, d * (prefix > 0 ? prefix : 1))) { if (mode == MODE_THUMB) tns.dirty = true; return true; @@ -271,10 +266,8 @@ bool cg_change_gamma(arg_t a) } } -bool ci_navigate(arg_t a) +bool ci_navigate(arg_t n) { - long n = (long) a; - if (prefix > 0) n *= prefix; n += fileidx; @@ -291,18 +284,18 @@ bool ci_navigate(arg_t a) } } -bool ci_alternate(arg_t a) +bool ci_alternate(arg_t _) { load_image(alternate); return true; } -bool ci_navigate_frame(arg_t a) +bool ci_navigate_frame(arg_t d) { - return !img.multi.animate && img_frame_navigate(&img, (long) a); + return !img.multi.animate && img_frame_navigate(&img, d); } -bool ci_toggle_animation(arg_t a) +bool ci_toggle_animation(arg_t _) { bool dirty = false; @@ -318,17 +311,13 @@ bool ci_toggle_animation(arg_t a) return dirty; } -bool ci_scroll(arg_t a) +bool ci_scroll(arg_t dir) { - direction_t dir = (direction_t) a; - return img_pan(&img, dir, prefix); } -bool ci_scroll_to_edge(arg_t a) +bool ci_scroll_to_edge(arg_t dir) { - direction_t dir = (direction_t) a; - return img_pan_edge(&img, dir); } @@ -343,7 +332,7 @@ Bool is_motionnotify(Display *d, XEvent *e, XPointer a) ox = x, oy = y; \ break -bool ci_drag(arg_t a) +bool ci_drag(arg_t _) { int dx = 0, dy = 0, i, ox, oy, x, y; unsigned int ui; @@ -402,48 +391,42 @@ bool ci_drag(arg_t a) return true; } -bool ci_set_zoom(arg_t a) +bool ci_set_zoom(arg_t zl) { - return img_zoom(&img, (prefix ? prefix : (long) a) / 100.0); + return img_zoom(&img, (prefix ? prefix : zl) / 100.0); } -bool ci_fit_to_win(arg_t a) +bool ci_fit_to_win(arg_t sm) { - scalemode_t sm = (scalemode_t) a; - return img_fit_win(&img, sm); } -bool ci_rotate(arg_t a) +bool ci_rotate(arg_t degree) { - degree_t degree = (degree_t) a; - img_rotate(&img, degree); return true; } -bool ci_flip(arg_t a) +bool ci_flip(arg_t dir) { - flipdir_t dir = (flipdir_t) a; - img_flip(&img, dir); return true; } -bool ci_toggle_antialias(arg_t a) +bool ci_toggle_antialias(arg_t _) { img_toggle_antialias(&img); return true; } -bool ci_toggle_alpha(arg_t a) +bool ci_toggle_alpha(arg_t _) { img.alpha = !img.alpha; img.dirty = true; return true; } -bool ci_slideshow(arg_t a) +bool ci_slideshow(arg_t _) { if (prefix > 0) { img.ss.on = true; @@ -458,14 +441,12 @@ bool ci_slideshow(arg_t a) return true; } -bool ct_move_sel(arg_t a) +bool ct_move_sel(arg_t dir) { - direction_t dir = (direction_t) a; - return tns_move_selection(&tns, dir, prefix); } -bool ct_reload_all(arg_t a) +bool ct_reload_all(arg_t _) { tns_free(&tns); tns_init(&tns, files, &filecnt, &fileidx, &win); diff --git a/commands.h b/commands.h @@ -23,7 +23,7 @@ #include "types.h" -typedef void* arg_t; +typedef int arg_t; typedef bool (*cmd_f)(arg_t); #define G_CMD(c) g_##c, diff --git a/config.def.h b/config.def.h @@ -62,99 +62,99 @@ static const int thumb_sizes[] = { 32, 64, 96, 128, 160 }; /* keyboard mappings for image and thumbnail mode: */ static const keymap_t keys[] = { /* modifiers key function argument */ - { 0, XK_q, g_quit, (arg_t) None }, - { 0, XK_Return, g_switch_mode, (arg_t) None }, - { 0, XK_f, g_toggle_fullscreen, (arg_t) None }, - { 0, XK_b, g_toggle_bar, (arg_t) None }, - { ControlMask, XK_x, g_prefix_external, (arg_t) None }, - { 0, XK_g, g_first, (arg_t) None }, - { 0, XK_G, g_n_or_last, (arg_t) None }, - { 0, XK_r, g_reload_image, (arg_t) None }, - { 0, XK_D, g_remove_image, (arg_t) None }, - { ControlMask, XK_h, g_scroll_screen, (arg_t) DIR_LEFT }, - { ControlMask, XK_Left, g_scroll_screen, (arg_t) DIR_LEFT }, - { ControlMask, XK_j, g_scroll_screen, (arg_t) DIR_DOWN }, - { ControlMask, XK_Down, g_scroll_screen, (arg_t) DIR_DOWN }, - { ControlMask, XK_k, g_scroll_screen, (arg_t) DIR_UP }, - { ControlMask, XK_Up, g_scroll_screen, (arg_t) DIR_UP }, - { ControlMask, XK_l, g_scroll_screen, (arg_t) DIR_RIGHT }, - { ControlMask, XK_Right, g_scroll_screen, (arg_t) DIR_RIGHT }, - { 0, XK_plus, g_zoom, (arg_t) +1 }, - { 0, XK_KP_Add, g_zoom, (arg_t) +1 }, - { 0, XK_minus, g_zoom, (arg_t) -1 }, - { 0, XK_KP_Subtract, g_zoom, (arg_t) -1 }, - { 0, XK_m, g_toggle_image_mark, (arg_t) None }, - { 0, XK_M, g_reverse_marks, (arg_t) None }, - { ControlMask, XK_m, g_unmark_all, (arg_t) None }, - { 0, XK_N, g_navigate_marked, (arg_t) +1 }, - { 0, XK_P, g_navigate_marked, (arg_t) -1 }, - { 0, XK_braceleft, g_change_gamma, (arg_t) -1 }, - { 0, XK_braceright, g_change_gamma, (arg_t) +1 }, - { ControlMask, XK_g, g_change_gamma, (arg_t) 0 }, - - { 0, XK_h, t_move_sel, (arg_t) DIR_LEFT }, - { 0, XK_Left, t_move_sel, (arg_t) DIR_LEFT }, - { 0, XK_j, t_move_sel, (arg_t) DIR_DOWN }, - { 0, XK_Down, t_move_sel, (arg_t) DIR_DOWN }, - { 0, XK_k, t_move_sel, (arg_t) DIR_UP }, - { 0, XK_Up, t_move_sel, (arg_t) DIR_UP }, - { 0, XK_l, t_move_sel, (arg_t) DIR_RIGHT }, - { 0, XK_Right, t_move_sel, (arg_t) DIR_RIGHT }, - { 0, XK_R, t_reload_all, (arg_t) None }, - - { 0, XK_n, i_navigate, (arg_t) +1 }, - { 0, XK_n, i_scroll_to_edge, (arg_t) (DIR_LEFT | DIR_UP) }, - { 0, XK_space, i_navigate, (arg_t) +1 }, - { 0, XK_p, i_navigate, (arg_t) -1 }, - { 0, XK_p, i_scroll_to_edge, (arg_t) (DIR_LEFT | DIR_UP) }, - { 0, XK_BackSpace, i_navigate, (arg_t) -1 }, - { 0, XK_bracketright, i_navigate, (arg_t) +10 }, - { 0, XK_bracketleft, i_navigate, (arg_t) -10 }, - { ControlMask, XK_6, i_alternate, (arg_t) None }, - { ControlMask, XK_n, i_navigate_frame, (arg_t) +1 }, - { ControlMask, XK_p, i_navigate_frame, (arg_t) -1 }, - { ControlMask, XK_space, i_toggle_animation, (arg_t) None }, - { 0, XK_h, i_scroll, (arg_t) DIR_LEFT }, - { 0, XK_Left, i_scroll, (arg_t) DIR_LEFT }, - { 0, XK_j, i_scroll, (arg_t) DIR_DOWN }, - { 0, XK_Down, i_scroll, (arg_t) DIR_DOWN }, - { 0, XK_k, i_scroll, (arg_t) DIR_UP }, - { 0, XK_Up, i_scroll, (arg_t) DIR_UP }, - { 0, XK_l, i_scroll, (arg_t) DIR_RIGHT }, - { 0, XK_Right, i_scroll, (arg_t) DIR_RIGHT }, - { 0, XK_H, i_scroll_to_edge, (arg_t) DIR_LEFT }, - { 0, XK_J, i_scroll_to_edge, (arg_t) DIR_DOWN }, - { 0, XK_K, i_scroll_to_edge, (arg_t) DIR_UP }, - { 0, XK_L, i_scroll_to_edge, (arg_t) DIR_RIGHT }, - { 0, XK_equal, i_set_zoom, (arg_t) 100 }, - { 0, XK_w, i_fit_to_win, (arg_t) SCALE_DOWN }, - { 0, XK_W, i_fit_to_win, (arg_t) SCALE_FIT }, - { 0, XK_e, i_fit_to_win, (arg_t) SCALE_WIDTH }, - { 0, XK_E, i_fit_to_win, (arg_t) SCALE_HEIGHT }, - { 0, XK_less, i_rotate, (arg_t) DEGREE_270 }, - { 0, XK_greater, i_rotate, (arg_t) DEGREE_90 }, - { 0, XK_question, i_rotate, (arg_t) DEGREE_180 }, - { 0, XK_bar, i_flip, (arg_t) FLIP_HORIZONTAL }, - { 0, XK_underscore, i_flip, (arg_t) FLIP_VERTICAL }, - { 0, XK_a, i_toggle_antialias, (arg_t) None }, - { 0, XK_A, i_toggle_alpha, (arg_t) None }, - { 0, XK_s, i_slideshow, (arg_t) None }, + { 0, XK_q, g_quit, None }, + { 0, XK_Return, g_switch_mode, None }, + { 0, XK_f, g_toggle_fullscreen, None }, + { 0, XK_b, g_toggle_bar, None }, + { ControlMask, XK_x, g_prefix_external, None }, + { 0, XK_g, g_first, None }, + { 0, XK_G, g_n_or_last, None }, + { 0, XK_r, g_reload_image, None }, + { 0, XK_D, g_remove_image, None }, + { ControlMask, XK_h, g_scroll_screen, DIR_LEFT }, + { ControlMask, XK_Left, g_scroll_screen, DIR_LEFT }, + { ControlMask, XK_j, g_scroll_screen, DIR_DOWN }, + { ControlMask, XK_Down, g_scroll_screen, DIR_DOWN }, + { ControlMask, XK_k, g_scroll_screen, DIR_UP }, + { ControlMask, XK_Up, g_scroll_screen, DIR_UP }, + { ControlMask, XK_l, g_scroll_screen, DIR_RIGHT }, + { ControlMask, XK_Right, g_scroll_screen, DIR_RIGHT }, + { 0, XK_plus, g_zoom, +1 }, + { 0, XK_KP_Add, g_zoom, +1 }, + { 0, XK_minus, g_zoom, -1 }, + { 0, XK_KP_Subtract, g_zoom, -1 }, + { 0, XK_m, g_toggle_image_mark, None }, + { 0, XK_M, g_reverse_marks, None }, + { ControlMask, XK_m, g_unmark_all, None }, + { 0, XK_N, g_navigate_marked, +1 }, + { 0, XK_P, g_navigate_marked, -1 }, + { 0, XK_braceleft, g_change_gamma, -1 }, + { 0, XK_braceright, g_change_gamma, +1 }, + { ControlMask, XK_g, g_change_gamma, 0 }, + + { 0, XK_h, t_move_sel, DIR_LEFT }, + { 0, XK_Left, t_move_sel, DIR_LEFT }, + { 0, XK_j, t_move_sel, DIR_DOWN }, + { 0, XK_Down, t_move_sel, DIR_DOWN }, + { 0, XK_k, t_move_sel, DIR_UP }, + { 0, XK_Up, t_move_sel, DIR_UP }, + { 0, XK_l, t_move_sel, DIR_RIGHT }, + { 0, XK_Right, t_move_sel, DIR_RIGHT }, + { 0, XK_R, t_reload_all, None }, + + { 0, XK_n, i_navigate, +1 }, + { 0, XK_n, i_scroll_to_edge, DIR_LEFT | DIR_UP }, + { 0, XK_space, i_navigate, +1 }, + { 0, XK_p, i_navigate, -1 }, + { 0, XK_p, i_scroll_to_edge, DIR_LEFT | DIR_UP }, + { 0, XK_BackSpace, i_navigate, -1 }, + { 0, XK_bracketright, i_navigate, +10 }, + { 0, XK_bracketleft, i_navigate, -10 }, + { ControlMask, XK_6, i_alternate, None }, + { ControlMask, XK_n, i_navigate_frame, +1 }, + { ControlMask, XK_p, i_navigate_frame, -1 }, + { ControlMask, XK_space, i_toggle_animation, None }, + { 0, XK_h, i_scroll, DIR_LEFT }, + { 0, XK_Left, i_scroll, DIR_LEFT }, + { 0, XK_j, i_scroll, DIR_DOWN }, + { 0, XK_Down, i_scroll, DIR_DOWN }, + { 0, XK_k, i_scroll, DIR_UP }, + { 0, XK_Up, i_scroll, DIR_UP }, + { 0, XK_l, i_scroll, DIR_RIGHT }, + { 0, XK_Right, i_scroll, DIR_RIGHT }, + { 0, XK_H, i_scroll_to_edge, DIR_LEFT }, + { 0, XK_J, i_scroll_to_edge, DIR_DOWN }, + { 0, XK_K, i_scroll_to_edge, DIR_UP }, + { 0, XK_L, i_scroll_to_edge, DIR_RIGHT }, + { 0, XK_equal, i_set_zoom, 100 }, + { 0, XK_w, i_fit_to_win, SCALE_DOWN }, + { 0, XK_W, i_fit_to_win, SCALE_FIT }, + { 0, XK_e, i_fit_to_win, SCALE_WIDTH }, + { 0, XK_E, i_fit_to_win, SCALE_HEIGHT }, + { 0, XK_less, i_rotate, DEGREE_270 }, + { 0, XK_greater, i_rotate, DEGREE_90 }, + { 0, XK_question, i_rotate, DEGREE_180 }, + { 0, XK_bar, i_flip, FLIP_HORIZONTAL }, + { 0, XK_underscore, i_flip, FLIP_VERTICAL }, + { 0, XK_a, i_toggle_antialias, None }, + { 0, XK_A, i_toggle_alpha, None }, + { 0, XK_s, i_slideshow, None }, }; /* mouse button mappings for image mode: */ static const button_t buttons[] = { /* modifiers button function argument */ - { 0, 1, i_navigate, (arg_t) +1 }, - { 0, 3, i_navigate, (arg_t) -1 }, - { 0, 2, i_drag, (arg_t) None }, - { 0, 4, i_scroll, (arg_t) DIR_UP }, - { 0, 5, i_scroll, (arg_t) DIR_DOWN }, - { ShiftMask, 4, i_scroll, (arg_t) DIR_LEFT }, - { ShiftMask, 5, i_scroll, (arg_t) DIR_RIGHT }, - { 0, 6, i_scroll, (arg_t) DIR_LEFT }, - { 0, 7, i_scroll, (arg_t) DIR_RIGHT }, - { ControlMask, 4, g_zoom, (arg_t) +1 }, - { ControlMask, 5, g_zoom, (arg_t) -1 }, + { 0, 1, i_navigate, +1 }, + { 0, 3, i_navigate, -1 }, + { 0, 2, i_drag, None }, + { 0, 4, i_scroll, DIR_UP }, + { 0, 5, i_scroll, DIR_DOWN }, + { ShiftMask, 4, i_scroll, DIR_LEFT }, + { ShiftMask, 5, i_scroll, DIR_RIGHT }, + { 0, 6, i_scroll, DIR_LEFT }, + { 0, 7, i_scroll, DIR_RIGHT }, + { ControlMask, 4, g_zoom, +1 }, + { ControlMask, 5, g_zoom, -1 }, }; #endif