aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNRK <nrk@disroot.org>2022-08-16 10:53:05 +0200
committerNRK <nrk@disroot.org>2022-08-16 10:53:05 +0200
commit6578e6eb6533a6651bd88ecae7720aced88c8c2f (patch)
tree4aed4b6f10e012527c3aaf484826dba9a81b39a5
parent216f312578be5c959527c03ccc70d27eebcc76aa (diff)
downloadnsxiv-6578e6eb6533a6651bd88ecae7720aced88c8c2f.tar.zst
code-style: various cleanups (#356)
* run_key_handler: make the logic easier to follow * remove timeout_t the typedef is not needed. inline the declaration similar to the other static structs. * simplify estrdup reuse emalloc, instead of calling malloc and null-checking. * win_clear: initialize `e` right away * process_bindings: explicitly check against NULL most pointer checks in the codebase do explicit check. * use a named constant instead of magic number also changes the padding from 3 to 4 bytes according to [0]. but i couldn't find any situtation where this mattered, so perhaps the current padding is enough. but doesn't hurt adding one more byte. [0]: https://nullprogram.com/blog/2017/10/06/ Reviewed-on: https://codeberg.org/nsxiv/nsxiv/pulls/356 Reviewed-by: explosion-mental <explosion-mental@noreply.codeberg.org>
-rw-r--r--main.c36
-rw-r--r--util.c8
-rw-r--r--window.c12
3 files changed, 22 insertions, 34 deletions
diff --git a/main.c b/main.c
index 12cf404..02128a7 100644
--- a/main.c
+++ b/main.c
@@ -51,12 +51,6 @@
}
typedef struct {
- struct timeval when;
- bool active;
- timeout_f handler;
-} timeout_t;
-
-typedef struct {
int err;
char *cmd;
} extcmd_t;
@@ -98,12 +92,16 @@ static struct {
bool title_dirty;
-static timeout_t timeouts[] = {
- { { 0, 0 }, false, redraw },
- { { 0, 0 }, false, reset_cursor },
- { { 0, 0 }, false, slideshow },
- { { 0, 0 }, false, animate },
- { { 0, 0 }, false, clear_resize },
+static struct {
+ timeout_f handler;
+ struct timeval when;
+ bool active;
+} timeouts[] = {
+ { redraw },
+ { reset_cursor },
+ { slideshow },
+ { animate },
+ { clear_resize },
};
/**************************
@@ -611,14 +609,12 @@ static bool run_key_handler(const char *key, unsigned int mask)
/* drop user input events that occurred while running the key handler */
while (XCheckIfEvent(win.env.dpy, &dump, is_input_ev, NULL));
- if (mode == MODE_IMAGE) {
- if (changed) {
- img_close(&img, true);
- load_image(fileidx);
- }
- }
- if (mode == MODE_THUMB || !changed)
+ if (mode == MODE_IMAGE && changed) {
+ img_close(&img, true);
+ load_image(fileidx);
+ } else {
open_info();
+ }
free(oldst);
reset_cursor();
return true;
@@ -633,7 +629,7 @@ static bool process_bindings(const keymap_t *bindings, unsigned int len, KeySym
for (i = 0; i < len; i++) {
if (bindings[i].ksym_or_button == ksym_or_button &&
MODMASK(bindings[i].mask | implicit_mod) == MODMASK(state) &&
- bindings[i].cmd.func &&
+ bindings[i].cmd.func != NULL &&
(bindings[i].cmd.mode == MODE_ALL || bindings[i].cmd.mode == mode))
{
if (bindings[i].cmd.func(bindings[i].arg))
diff --git a/util.c b/util.c
index 65c39e5..f03fe23 100644
--- a/util.c
+++ b/util.c
@@ -60,14 +60,8 @@ void* erealloc(void *ptr, size_t size)
char* estrdup(const char *s)
{
- char *d;
size_t n = strlen(s) + 1;
-
- d = malloc(n);
- if (d == NULL)
- error(EXIT_FAILURE, errno, NULL);
- memcpy(d, s, n);
- return d;
+ return memcpy(emalloc(n), s, n);
}
void error(int eval, int err, const char* fmt, ...)
diff --git a/window.c b/window.c
index 9bbfbf9..e385be7 100644
--- a/window.c
+++ b/window.c
@@ -33,6 +33,7 @@
#if HAVE_LIBFONTS
#include "utf8.h"
+#define UTF8_PADDING 4 /* utf8_decode requires 4 bytes of zero padding */
static XftFont *font;
static double fontsize;
#define TEXTWIDTH(win, text, len) \
@@ -112,7 +113,7 @@ void win_init(win_t *win)
#if HAVE_LIBFONTS
const char *bar_fg, *bar_bg, *f;
- static char lbuf[512 + 3], rbuf[64 + 3];
+ static char lbuf[512 + UTF8_PADDING], rbuf[64 + UTF8_PADDING];
#endif
memset(win, 0, sizeof(win_t));
@@ -153,9 +154,8 @@ void win_init(win_t *win)
win->bar.l.buf = lbuf;
win->bar.r.buf = rbuf;
- /* 3 padding bytes needed by utf8_decode */
- win->bar.l.size = sizeof(lbuf) - 3;
- win->bar.r.size = sizeof(rbuf) - 3;
+ win->bar.l.size = sizeof(lbuf) - UTF8_PADDING;
+ win->bar.r.size = sizeof(rbuf) - UTF8_PADDING;
win->bar.h = options->hide_bar ? 0 : barheight;
win->bar.top = TOP_STATUSBAR;
#endif /* HAVE_LIBFONTS */
@@ -388,9 +388,7 @@ void win_toggle_bar(win_t *win)
void win_clear(win_t *win)
{
- win_env_t *e;
-
- e = &win->env;
+ win_env_t *e = &win->env;
if (win->w > win->buf.w || win->h + win->bar.h > win->buf.h) {
XFreePixmap(e->dpy, win->buf.pm);