Krolyxon
Commit b11384a

Branches

Refs →

nsxivb11384a

code-style: misc changes (#374)

* ensure static variables comes after non-static ones
* remove depreciated DATA32 type
* prefer `sizeof(expression)` over `sizeof(Type)`.
* silence a -Wsign warning
* {gif,webp} loader: use a pointer to reduce code-noise
* gif loader: allocate in one place
Author
NRK
Date
2022-10-19 14:46 +0200
Parent
aa56aa2
Commit
b11384a6942cdf3c6b6f55e0dcc0a438eff7158a

+51 −57

5 files changed

  1. M image.c +31 −35
  2. M main.c +8 −10
  3. M thumbs.c +1 −1
  4. M util.c +2 −2
  5. M window.c +9 −9
M image.c View
@@ -23,6 +23,7 @@
2323
2424 #include <assert.h>
2525 #include <errno.h>
26+#include <stdint.h>
2627 #include <stdlib.h>
2728 #include <string.h>
2829 #include <sys/stat.h>
@@ -92,7 +93,7 @@ void img_init(img_t *img, win_t *win)
9293 img_change_gamma(img, options->gamma);
9394
9495 img->ss.on = options->slideshow > 0;
95− img->ss.delay = options->slideshow > 0 ? options->slideshow : SLIDESHOW_DELAY * 10;
96+ img->ss.delay = options->slideshow > 0 ? options->slideshow : SLIDESHOW_DELAY * 10u;
9697 }
9798
9899 #if HAVE_LIBEXIF
@@ -160,8 +161,8 @@ static bool img_load_gif(img_t *img, const fileinfo_t *file)
160161 GifRowType *rows = NULL;
161162 GifRecordType rec;
162163 ColorMapObject *cmap;
163− DATA32 bgpixel = 0, *data, *ptr;
164− DATA32 *prev_frame = NULL;
164+ uint32_t bgpixel = 0, *data, *ptr;
165+ uint32_t *prev_frame = NULL;
165166 Imlib_Image im;
166167 int i, j, bg, r, g, b;
167168 int x, y, w, h, sw, sh;
@@ -172,13 +173,7 @@ static bool img_load_gif(img_t *img, const fileinfo_t *file)
172173 unsigned int disposal = 0, prev_disposal = 0;
173174 unsigned int delay = 0;
174175 bool err = false;
175−
176− if (img->multi.cap == 0) {
177− img->multi.cap = 8;
178− img->multi.frames = emalloc(img->multi.cap * sizeof(img_frame_t));
179− }
180− img->multi.cnt = img->multi.sel = 0;
181− img->multi.length = 0;
176+ multi_img_t *m = &img->multi;
182177
183178 #if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5
184179 gif = DGifOpenFileName(file->path, NULL);
@@ -194,6 +189,7 @@ static bool img_load_gif(img_t *img, const fileinfo_t *file)
194189 sh = gif->SHeight;
195190 px = py = pw = ph = 0;
196191
192+ m->length = m->cnt = m->sel = 0;
197193 do {
198194 if (DGifGetRecordType(gif, &rec) == GIF_ERROR) {
199195 err = true;
@@ -227,9 +223,9 @@ static bool img_load_gif(img_t *img, const fileinfo_t *file)
227223 w = gif->Image.Width;
228224 h = gif->Image.Height;
229225
230− rows = emalloc(h * sizeof(GifRowType));
226+ rows = emalloc(h * sizeof(*rows));
231227 for (i = 0; i < h; i++)
232− rows[i] = emalloc(w * sizeof(GifPixelType));
228+ rows[i] = emalloc(w * sizeof(*rows[i]));
233229 if (gif->Image.Interlace) {
234230 for (i = 0; i < 4; i++) {
235231 for (j = intoffset[i]; j < h; j += intjump[i])
@@ -240,7 +236,7 @@ static bool img_load_gif(img_t *img, const fileinfo_t *file)
240236 DGifGetLine(gif, rows[i], w);
241237 }
242238
243− ptr = data = emalloc(sw * sh * sizeof(DATA32));
239+ ptr = data = emalloc(sw * sh * sizeof(*data));
244240 cmap = gif->Image.ColorMap ? gif->Image.ColorMap : gif->SColorMap;
245241 /* if bg > cmap->ColorCount, it is transparent black already */
246242 if (cmap && bg >= 0 && bg < cmap->ColorCount) {
@@ -295,16 +291,16 @@ static bool img_load_gif(img_t *img, const fileinfo_t *file)
295291 prev_disposal = disposal;
296292 px = x, py = y, pw = w, ph = h;
297293
298− if (img->multi.cnt == img->multi.cap) {
299− img->multi.cap *= 2;
300− img->multi.frames = erealloc(img->multi.frames,
301− img->multi.cap * sizeof(img_frame_t));
294+ assert(m->cnt <= m->cap);
295+ if (m->cnt == m->cap) {
296+ m->cap = m->cap == 0 ? 16 : (m->cap * 2);
297+ m->frames = erealloc(m->frames, m->cap * sizeof(*m->frames));
302298 }
303− img->multi.frames[img->multi.cnt].im = im;
304− delay = img->multi.framedelay > 0 ? img->multi.framedelay : delay;
305− img->multi.frames[img->multi.cnt].delay = delay > 0 ? delay : DEF_GIF_DELAY;
306− img->multi.length += img->multi.frames[img->multi.cnt].delay;
307− img->multi.cnt++;
299+ m->frames[m->cnt].im = im;
300+ delay = m->framedelay > 0 ? m->framedelay : delay;
301+ m->frames[m->cnt].delay = delay > 0 ? delay : DEF_GIF_DELAY;
302+ m->length += m->frames[m->cnt].delay;
303+ m->cnt++;
308304 }
309305 } while (rec != TERMINATE_RECORD_TYPE);
310306
@@ -340,6 +336,7 @@ static bool img_load_webp(img_t *img, const fileinfo_t *file)
340336 unsigned long flags;
341337 unsigned int delay;
342338 bool err = false;
339+ multi_img_t *m = &img->multi;
343340
344341 if ((webp_file = fopen(file->path, "rb")) == NULL) {
345342 error(0, errno, "%s: Error opening webp image", file->name);
@@ -375,28 +372,27 @@ static bool img_load_webp(img_t *img, const fileinfo_t *file)
375372 img->w = WebPDemuxGetI(demux, WEBP_FF_CANVAS_WIDTH);
376373 img->h = WebPDemuxGetI(demux, WEBP_FF_CANVAS_HEIGHT);
377374
378− if (info.frame_count > img->multi.cap) {
379− img->multi.cap = info.frame_count;
380− img->multi.frames = erealloc(img->multi.frames,
381− img->multi.cap * sizeof(img_frame_t));
375+ if (info.frame_count > m->cap) {
376+ m->cap = info.frame_count;
377+ m->frames = erealloc(m->frames, m->cap * sizeof(*m->frames));
382378 }
383379
384380 /* Load and decode frames (also works on images with only 1 frame) */
385− img->multi.cnt = img->multi.sel = 0;
381+ m->cnt = m->sel = 0;
386382 while (WebPAnimDecoderGetNext(dec, &buf, &ts)) {
387383 im = imlib_create_image_using_copied_data(
388− info.canvas_width, info.canvas_height, (DATA32*)buf);
384+ info.canvas_width, info.canvas_height, (uint32_t *)buf);
389385 imlib_context_set_image(im);
390386 imlib_image_set_format("webp");
391387 /* Get an iterator of this frame - used for frame info (duration, etc.) */
392− WebPDemuxGetFrame(demux, img->multi.cnt+1, &iter);
388+ WebPDemuxGetFrame(demux, m->cnt+1, &iter);
393389 imlib_image_set_has_alpha((flags & ALPHA_FLAG) == ALPHA_FLAG);
394390 /* Store info for this frame */
395− img->multi.frames[img->multi.cnt].im = im;
391+ m->frames[m->cnt].im = im;
396392 delay = iter.duration > 0 ? iter.duration : DEF_WEBP_DELAY;
397− img->multi.frames[img->multi.cnt].delay = delay;
398− img->multi.length += img->multi.frames[img->multi.cnt].delay;
399− img->multi.cnt++;
393+ m->frames[m->cnt].delay = delay;
394+ m->length += m->frames[m->cnt].delay;
395+ m->cnt++;
400396 }
401397 WebPDemuxReleaseIterator(&iter);
402398
@@ -619,8 +615,8 @@ void img_render(img_t *img)
619615
620616 if (img->alpha) {
621617 int i, c, r;
622− DATA32 col[2] = { 0xFF666666, 0xFF999999 };
623− DATA32 * data = imlib_image_get_data();
618+ uint32_t col[2] = { 0xFF666666, 0xFF999999 };
619+ uint32_t *data = imlib_image_get_data();
624620
625621 for (r = 0; r < dh; r++) {
626622 i = r * dw;
M main.c View
@@ -62,17 +62,16 @@ tns_t tns;
6262 win_t win;
6363
6464 appmode_t mode;
65−const XButtonEvent *xbutton_ev;
66−
6765 fileinfo_t *files;
6866 int filecnt, fileidx;
6967 int alternate;
7068 int markcnt;
7169 int markidx;
72−
7370 int prefix;
74−static bool extprefix;
71+bool title_dirty;
72+const XButtonEvent *xbutton_ev;
7573
74+static bool extprefix;
7675 static bool resized = false;
7776
7877 static struct {
@@ -90,8 +89,6 @@ static struct {
9089 extcmd_t f;
9190 } wintitle;
9291
93−bool title_dirty;
94−
9592 static struct {
9693 timeout_f handler;
9794 struct timeval when;
@@ -104,9 +101,10 @@ static struct {
104101 { clear_resize },
105102 };
106103
107−/**************************
108− function implementations
109− **************************/
104+/*
105+ * function implementations
106+ */
107+
110108 static void cleanup(void)
111109 {
112110 img_close(&img, false);
@@ -891,7 +889,7 @@ int main(int argc, char *argv[])
891889 }
892890 r_closedir(&dir);
893891 if (fileidx - start > 1)
894− qsort(files + start, fileidx - start, sizeof(fileinfo_t), fncmp);
892+ qsort(files + start, fileidx - start, sizeof(*files), fncmp);
895893 }
896894 }
897895
M thumbs.c View
@@ -145,7 +145,7 @@ void tns_init(tns_t *tns, fileinfo_t *tns_files, const int *cnt, int *sel, win_t
145145 const char *homedir, *dsuffix = "";
146146
147147 if (cnt != NULL && *cnt > 0)
148− tns->thumbs = ecalloc(*cnt, sizeof(thumb_t));
148+ tns->thumbs = ecalloc(*cnt, sizeof(*tns->thumbs));
149149 else
150150 tns->thumbs = NULL;
151151 tns->files = tns_files;
M util.c View
@@ -97,7 +97,7 @@ int r_opendir(r_dir_t *rdir, const char *dirname, bool recursive)
9797 }
9898
9999 rdir->stcap = 512;
100− rdir->stack = emalloc(rdir->stcap * sizeof(char*));
100+ rdir->stack = emalloc(rdir->stcap * sizeof(*rdir->stack));
101101 rdir->stlen = 0;
102102
103103 rdir->name = (char*) dirname;
@@ -164,7 +164,7 @@ char* r_readdir(r_dir_t *rdir, bool skip_dotfiles)
164164 if (rdir->stlen == rdir->stcap) {
165165 rdir->stcap *= 2;
166166 rdir->stack = erealloc(rdir->stack,
167− rdir->stcap * sizeof(char*));
167+ rdir->stcap * sizeof(*rdir->stack));
168168 }
169169 rdir->stack[rdir->stlen++] = filename;
170170 continue;
M window.c View
@@ -34,14 +34,11 @@
3434 #if HAVE_LIBFONTS
3535 #include "utf8.h"
3636 #define UTF8_PADDING 4 /* utf8_decode requires 4 bytes of zero padding */
37−static XftFont *font;
38−static double fontsize;
3937 #define TEXTWIDTH(win, text, len) \
4038 win_draw_text(win, NULL, NULL, 0, 0, text, len, 0)
4139 #endif
4240
4341 #define RES_CLASS "Nsxiv"
44−
4542 #define INIT_ATOM_(atom) \
4643 atoms[ATOM_##atom] = XInternAtom(e->dpy, #atom, False);
4744
@@ -50,6 +47,10 @@ enum {
5047 V_TEXT_PAD = 1
5148 };
5249
50+Atom atoms[ATOM_COUNT];
51+
52+static GC gc;
53+static int barheight;
5354 static struct {
5455 int name;
5556 Cursor icon;
@@ -58,11 +59,10 @@ static struct {
5859 { XC_sb_left_arrow }, { XC_sb_right_arrow }
5960 };
6061
61−static GC gc;
62−
63−static int barheight;
64−
65−Atom atoms[ATOM_COUNT];
62+#if HAVE_LIBFONTS
63+static XftFont *font;
64+static double fontsize;
65+#endif
6666
6767 #if HAVE_LIBFONTS
6868 static void win_init_font(const win_env_t *e, const char *fontstr)
@@ -116,7 +116,7 @@ void win_init(win_t *win)
116116 static char lbuf[512 + UTF8_PADDING], rbuf[64 + UTF8_PADDING];
117117 #endif
118118
119− memset(win, 0, sizeof(win_t));
119+ memset(win, 0, sizeof(*win));
120120
121121 e = &win->env;
122122 if ((e->dpy = XOpenDisplay(NULL)) == NULL)