aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorN-R-K <79544946+N-R-K@users.noreply.github.com>2021-12-19 23:05:35 +0600
committerGitHub <noreply@github.com>2021-12-19 23:05:35 +0600
commitff88908531a9d20667c6d08f01d7d887ebb60fe8 (patch)
tree7448b12f234195c7a2da9774e2323bee30b30cc9
parent494578cebbb857cd807c76b76da6a8a4e05c3db6 (diff)
specify func argument and related cleanup (#183)
* specifies the function argument type in commands.h compared to leaving it unspecified. all the functions in cmd_t must have arg_t as it's argument. * changes to commands.h will now trigger a rebuild - this restores old behavior prior to 12efa0e * cg_quit now uses it's argument as exit status * DestroyNotify invokes cg_quit rather than calling exit directly. * Explicitly pass EXIT_SUCCESS to cgquit in keybinding Co-authored-by: Berke Kocaoğlu <berke.kocaoglu@metu.edu.tr>
-rw-r--r--Makefile2
-rw-r--r--commands.c4
-rw-r--r--commands.h68
-rw-r--r--config.def.h2
-rw-r--r--main.c4
5 files changed, 40 insertions, 40 deletions
diff --git a/Makefile b/Makefile
index 0e78167..70913f8 100644
--- a/Makefile
+++ b/Makefile
@@ -64,7 +64,7 @@ nsxiv: $(OBJS)
@echo "CC $@"
$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
-$(OBJS): Makefile nsxiv.h config.h
+$(OBJS): Makefile nsxiv.h config.h commands.h
options.o: version.h
window.o: icon/data.h
diff --git a/commands.c b/commands.c
index f44cee1..64f609d 100644
--- a/commands.c
+++ b/commands.c
@@ -52,7 +52,7 @@ extern int markidx;
extern int prefix;
extern bool extprefix;
-bool cg_quit(arg_t _)
+bool cg_quit(arg_t status)
{
unsigned int i;
@@ -62,7 +62,7 @@ bool cg_quit(arg_t _)
printf("%s%c", files[i].name, options->using_null ? '\0' : '\n');
}
}
- exit(EXIT_SUCCESS);
+ exit(status);
}
bool cg_switch_mode(arg_t _)
diff --git a/commands.h b/commands.h
index bc0e340..7f49d94 100644
--- a/commands.h
+++ b/commands.h
@@ -3,42 +3,42 @@
#include <stdbool.h>
/* global */
-bool cg_change_gamma();
-bool cg_first();
-bool cg_mark_range();
-bool cg_n_or_last();
-bool cg_navigate_marked();
-bool cg_prefix_external();
-bool cg_quit();
-bool cg_reload_image();
-bool cg_remove_image();
-bool cg_reverse_marks();
-bool cg_scroll_screen();
-bool cg_switch_mode();
-bool cg_toggle_bar();
-bool cg_toggle_fullscreen();
-bool cg_toggle_image_mark();
-bool cg_unmark_all();
-bool cg_zoom();
+bool cg_change_gamma(arg_t);
+bool cg_first(arg_t);
+bool cg_mark_range(arg_t);
+bool cg_n_or_last(arg_t);
+bool cg_navigate_marked(arg_t);
+bool cg_prefix_external(arg_t);
+bool cg_quit(arg_t);
+bool cg_reload_image(arg_t);
+bool cg_remove_image(arg_t);
+bool cg_reverse_marks(arg_t);
+bool cg_scroll_screen(arg_t);
+bool cg_switch_mode(arg_t);
+bool cg_toggle_bar(arg_t);
+bool cg_toggle_fullscreen(arg_t);
+bool cg_toggle_image_mark(arg_t);
+bool cg_unmark_all(arg_t);
+bool cg_zoom(arg_t);
/* image mode */
-bool ci_alternate();
-bool ci_cursor_navigate();
-bool ci_drag();
-bool ci_fit_to_win();
-bool ci_flip();
-bool ci_navigate();
-bool ci_navigate_frame();
-bool ci_rotate();
-bool ci_scroll();
-bool ci_scroll_to_edge();
-bool ci_set_zoom();
-bool ci_slideshow();
-bool ci_toggle_alpha();
-bool ci_toggle_animation();
+bool ci_alternate(arg_t);
+bool ci_cursor_navigate(arg_t);
+bool ci_drag(arg_t);
+bool ci_fit_to_win(arg_t);
+bool ci_flip(arg_t);
+bool ci_navigate(arg_t);
+bool ci_navigate_frame(arg_t);
+bool ci_rotate(arg_t);
+bool ci_scroll(arg_t);
+bool ci_scroll_to_edge(arg_t);
+bool ci_set_zoom(arg_t);
+bool ci_slideshow(arg_t);
+bool ci_toggle_alpha(arg_t);
+bool ci_toggle_animation(arg_t);
bool ci_toggle_antialias();
/* thumbnails mode */
-bool ct_move_sel();
-bool ct_reload_all();
+bool ct_move_sel(arg_t);
+bool ct_reload_all(arg_t);
/* global */
#define g_change_gamma { cg_change_gamma, MODE_ALL }
@@ -80,4 +80,4 @@ bool ct_reload_all();
#define t_move_sel { ct_move_sel, MODE_THUMB }
#define t_reload_all { ct_reload_all, MODE_THUMB }
-#endif
+#endif /* COMMANDS_H */
diff --git a/config.def.h b/config.def.h
index 0db7a9b..3a26b7a 100644
--- a/config.def.h
+++ b/config.def.h
@@ -89,7 +89,7 @@ static const KeySym KEYHANDLER_ABORT = XK_Escape;
/* keyboard mappings for image and thumbnail mode: */
static const keymap_t keys[] = {
/* modifiers key function argument */
- { 0, XK_q, g_quit, None },
+ { 0, XK_q, g_quit, EXIT_SUCCESS },
{ 0, XK_Return, g_switch_mode, None },
{ 0, XK_f, g_toggle_fullscreen, None },
{ 0, XK_b, g_toggle_bar, None },
diff --git a/main.c b/main.c
index 713e880..732e690 100644
--- a/main.c
+++ b/main.c
@@ -802,10 +802,10 @@ static void run(void)
break;
case ClientMessage:
if ((Atom) ev.xclient.data.l[0] == atoms[ATOM_WM_DELETE_WINDOW])
- cg_quit();
+ cg_quit(EXIT_SUCCESS);
break;
case DestroyNotify:
- exit(EXIT_FAILURE);
+ cg_quit(EXIT_FAILURE);
break;
case ConfigureNotify:
if (win_configure(&win, &ev.xconfigure)) {