apply last commit for even more functions

This commit is contained in:
speedie 2023-05-06 14:36:50 +02:00
parent c1d36670fa
commit 05c436022c
5 changed files with 46 additions and 137 deletions

View file

@ -1,6 +1,4 @@
void void eventloop(void) {
eventloop(void)
{
XEvent ev; XEvent ev;
#if USEIMAGE #if USEIMAGE
int noimg = 0; int noimg = 0;

View file

@ -1,6 +1,4 @@
void void loadhistory(void) {
loadhistory(void)
{
FILE *fp = NULL; FILE *fp = NULL;
static size_t cap = 0; static size_t cap = 0;
size_t llen; size_t llen;
@ -50,9 +48,7 @@ loadhistory(void)
} }
} }
void void navigatehistfile(int dir) {
navigatehistfile(int dir)
{
static char def[BUFSIZ]; static char def[BUFSIZ];
char *p = NULL; char *p = NULL;
size_t len = 0; size_t len = 0;

View file

@ -1,7 +1,5 @@
#if USEIMAGE #if USEIMAGE
void void setimagesize(int width, int height) {
setimagesize(int width, int height)
{
int oih = 0; int oih = 0;
int oiw = 0; int oiw = 0;
@ -28,9 +26,7 @@ setimagesize(int width, int height)
drawmenu(); drawmenu();
} }
void void flipimage(void) {
flipimage(void)
{
// flip image // flip image
switch (flip) { switch (flip) {
case 1: // horizontal case 1: // horizontal
@ -48,25 +44,19 @@ flipimage(void)
} }
} }
void void rotateimage(void) {
rotateimage(void)
{
rotation %= 4; rotation %= 4;
imlib_image_orientate(rotation); imlib_image_orientate(rotation);
} }
void void cleanupimage(void) {
cleanupimage(void)
{
if (image) { // free image using imlib2 if (image) { // free image using imlib2
imlib_free_image(); imlib_free_image();
image = NULL; image = NULL;
} }
} }
void void drawimage(void) {
drawimage(void)
{
int width = 0, height = 0; int width = 0, height = 0;
char *limg = NULL; char *limg = NULL;
@ -132,9 +122,7 @@ drawimage(void)
} }
} }
void void setimageopts(void) {
setimageopts(void)
{
imlib_set_cache_size(8192 * 1024); imlib_set_cache_size(8192 * 1024);
imlib_context_set_blend(1); imlib_context_set_blend(1);
imlib_context_set_dither(1); imlib_context_set_dither(1);
@ -145,9 +133,7 @@ setimageopts(void)
imlib_context_set_drawable(win); imlib_context_set_drawable(win);
} }
void void createifnexist(const char *dir) {
createifnexist(const char *dir)
{
// exists, so return // exists, so return
if (access(dir, F_OK) == 0) if (access(dir, F_OK) == 0)
return; return;
@ -161,9 +147,7 @@ createifnexist(const char *dir)
fprintf(stderr, "spmenu: failed to create directory: %s\n", dir); fprintf(stderr, "spmenu: failed to create directory: %s\n", dir);
} }
void void createifnexist_rec(const char *dir) {
createifnexist_rec(const char *dir)
{
char *buf, *s = (char*)dir, *bs; char *buf, *s = (char*)dir, *bs;
if(!(buf = malloc(strlen(s)+1))) if(!(buf = malloc(strlen(s)+1)))
@ -181,9 +165,7 @@ createifnexist_rec(const char *dir)
free(buf); free(buf);
} }
void void loadimage(const char *file, int *width, int *height) {
loadimage(const char *file, int *width, int *height)
{
if (!file) return; if (!file) return;
image = imlib_load_image(file); image = imlib_load_image(file);
@ -197,9 +179,7 @@ loadimage(const char *file, int *width, int *height)
*height = imlib_image_get_height(); *height = imlib_image_get_height();
} }
void void scaleimage(int *width, int *height) {
scaleimage(int *width, int *height)
{
int new_width, new_height; int new_width, new_height;
float aspect = 1.0f; float aspect = 1.0f;
@ -230,9 +210,7 @@ scaleimage(int *width, int *height)
return; return;
} }
void void loadimagecache(const char *file, int *width, int *height) {
loadimagecache(const char *file, int *width, int *height)
{
int slen = 0, i; int slen = 0, i;
unsigned char digest[MD5_DIGEST_LENGTH]; unsigned char digest[MD5_DIGEST_LENGTH];
char md5[MD5_DIGEST_LENGTH*2+1]; char md5[MD5_DIGEST_LENGTH*2+1];
@ -326,8 +304,7 @@ loadimagecache(const char *file, int *width, int *height)
} }
} }
void void jumptoindex(unsigned int index) {
jumptoindex(unsigned int index) {
unsigned int i; unsigned int i;
sel = curr = matches; sel = curr = matches;
@ -341,9 +318,7 @@ jumptoindex(unsigned int index) {
} }
} }
void void resizetoimageheight(int imageheight) {
resizetoimageheight(int imageheight)
{
int omh = mh, olines = lines; int omh = mh, olines = lines;
lines = reallines; lines = reallines;
int wtr = 0; int wtr = 0;

View file

@ -1,6 +1,4 @@
void void updatenumlockmask(void) {
updatenumlockmask(void)
{
unsigned int i, j; unsigned int i, j;
XModifierKeymap *modmap; XModifierKeymap *modmap;
@ -14,9 +12,7 @@ updatenumlockmask(void)
XFreeModifiermap(modmap); XFreeModifiermap(modmap);
} }
void void keypress(XEvent *e) {
keypress(XEvent *e)
{
updatenumlockmask(); updatenumlockmask();
{ {
unsigned int i; unsigned int i;
@ -72,9 +68,7 @@ keypress(XEvent *e)
} }
} }
void void grabkeyboard(void) {
grabkeyboard(void)
{
struct timespec ts = { .tv_sec = 0, .tv_nsec = 1000000 }; struct timespec ts = { .tv_sec = 0, .tv_nsec = 1000000 };
int i; int i;
@ -93,9 +87,7 @@ grabkeyboard(void)
die("cannot grab keyboard"); die("cannot grab keyboard");
} }
void void getcapsstate(void) {
getcapsstate(void)
{
unsigned int cs = 0; unsigned int cs = 0;
XkbGetIndicatorState(dpy, XkbUseCoreKbd, &cs); XkbGetIndicatorState(dpy, XkbUseCoreKbd, &cs);

View file

@ -28,18 +28,14 @@ static const unsigned char utfmask[UTF_SIZ + 1] = {0xC0, 0x80, 0xE0, 0xF0, 0xF8}
static const long utfmin[UTF_SIZ + 1] = { 0, 0, 0x80, 0x800, 0x10000}; static const long utfmin[UTF_SIZ + 1] = { 0, 0, 0x80, 0x800, 0x10000};
static const long utfmax[UTF_SIZ + 1] = {0x10FFFF, 0x7F, 0x7FF, 0xFFFF, 0x10FFFF}; static const long utfmax[UTF_SIZ + 1] = {0x10FFFF, 0x7F, 0x7FF, 0xFFFF, 0x10FFFF};
static long static long utf8decodebyte(const char c, size_t *i) {
utf8decodebyte(const char c, size_t *i)
{
for (*i = 0; *i < (UTF_SIZ + 1); ++(*i)) for (*i = 0; *i < (UTF_SIZ + 1); ++(*i))
if (((unsigned char)c & utfmask[*i]) == utfbyte[*i]) if (((unsigned char)c & utfmask[*i]) == utfbyte[*i])
return (unsigned char)c & ~utfmask[*i]; return (unsigned char)c & ~utfmask[*i];
return 0; return 0;
} }
static size_t static size_t utf8validate(long *u, size_t i) {
utf8validate(long *u, size_t i)
{
if (!BETWEEN(*u, utfmin[i], utfmax[i]) || BETWEEN(*u, 0xD800, 0xDFFF)) if (!BETWEEN(*u, utfmin[i], utfmax[i]) || BETWEEN(*u, 0xD800, 0xDFFF))
*u = UTF_INVALID; *u = UTF_INVALID;
for (i = 1; *u > utfmax[i]; ++i) for (i = 1; *u > utfmax[i]; ++i)
@ -47,9 +43,7 @@ utf8validate(long *u, size_t i)
return i; return i;
} }
static size_t static size_t utf8decode(const char *c, long *u, size_t clen) {
utf8decode(const char *c, long *u, size_t clen)
{
size_t i, j, len, type; size_t i, j, len, type;
long udecoded; long udecoded;
@ -75,9 +69,7 @@ utf8decode(const char *c, long *u, size_t clen)
Clr transcheme[3]; Clr transcheme[3];
Drw * Drw * drw_create(Display *dpy, int screen, Window root, unsigned int w, unsigned int h, Visual *visual, unsigned int depth, Colormap cmap) {
drw_create(Display *dpy, int screen, Window root, unsigned int w, unsigned int h, Visual *visual, unsigned int depth, Colormap cmap)
{
Drw *drw = ecalloc(1, sizeof(Drw)); Drw *drw = ecalloc(1, sizeof(Drw));
drw->dpy = dpy; drw->dpy = dpy;
@ -95,9 +87,7 @@ drw_create(Display *dpy, int screen, Window root, unsigned int w, unsigned int h
return drw; return drw;
} }
void void drw_resize(Drw *drw, unsigned int w, unsigned int h) {
drw_resize(Drw *drw, unsigned int w, unsigned int h)
{
if (!drw) if (!drw)
return; return;
@ -108,9 +98,7 @@ drw_resize(Drw *drw, unsigned int w, unsigned int h)
drw->drawable = XCreatePixmap(drw->dpy, drw->root, w, h, drw->depth); drw->drawable = XCreatePixmap(drw->dpy, drw->root, w, h, drw->depth);
} }
void void drw_free(Drw *drw) {
drw_free(Drw *drw)
{
XFreePixmap(drw->dpy, drw->drawable); XFreePixmap(drw->dpy, drw->drawable);
XFreeGC(drw->dpy, drw->gc); XFreeGC(drw->dpy, drw->gc);
drw_font_free(drw->font); drw_font_free(drw->font);
@ -118,9 +106,7 @@ drw_free(Drw *drw)
} }
#if USEPANGO #if USEPANGO
static Fnt * static Fnt * xfont_create(Drw *drw, const char *fontname) {
xfont_create(Drw *drw, const char *fontname)
{
Fnt *font; Fnt *font;
PangoFontMap *fontmap; PangoFontMap *fontmap;
PangoContext *context; PangoContext *context;
@ -149,9 +135,7 @@ xfont_create(Drw *drw, const char *fontname)
return font; return font;
} }
void void xfont_free(Fnt *font) {
xfont_free(Fnt *font)
{
if (!font) if (!font)
return; return;
if (font->layout) if (font->layout)
@ -159,9 +143,7 @@ xfont_free(Fnt *font)
free(font); free(font);
} }
#else #else
static Fnt * static Fnt * xfont_create(Drw *drw, const char *fontname, FcPattern *fontpattern) {
xfont_create(Drw *drw, const char *fontname, FcPattern *fontpattern)
{
Fnt *font; Fnt *font;
XftFont *xfont = NULL; XftFont *xfont = NULL;
FcPattern *pattern = NULL; FcPattern *pattern = NULL;
@ -205,9 +187,7 @@ xfont_create(Drw *drw, const char *fontname, FcPattern *fontpattern)
return font; return font;
} }
void void xfont_free(Fnt *font) {
xfont_free(Fnt *font)
{
if (!font) if (!font)
return; return;
if (font->pattern) if (font->pattern)
@ -217,9 +197,7 @@ xfont_free(Fnt *font)
} }
#endif #endif
Fnt* Fnt* drw_font_create(Drw* drw, char *font[], size_t fontcount) {
drw_font_create(Drw* drw, char *font[], size_t fontcount)
{
if (!drw || !font) if (!drw || !font)
return NULL; return NULL;
@ -242,9 +220,7 @@ drw_font_create(Drw* drw, char *font[], size_t fontcount)
#endif #endif
} }
void void drw_font_free(Fnt *font) {
drw_font_free(Fnt *font)
{
if (font) { if (font) {
#if !USEPANGO #if !USEPANGO
drw_font_free(font->next); drw_font_free(font->next);
@ -253,9 +229,7 @@ drw_font_free(Fnt *font)
} }
} }
void void drw_clr_create(Drw *drw, Clr *dest, char *clrname, unsigned int alpha) {
drw_clr_create(Drw *drw, Clr *dest, char *clrname, unsigned int alpha)
{
if (!drw || !dest || !clrname) if (!drw || !dest || !clrname)
return; return;
@ -268,9 +242,7 @@ drw_clr_create(Drw *drw, Clr *dest, char *clrname, unsigned int alpha)
/* Wrapper to create color schemes. The caller has to call free(3) on the /* Wrapper to create color schemes. The caller has to call free(3) on the
* returned color scheme when done using it. */ * returned color scheme when done using it. */
Clr * Clr * drw_scm_create(Drw *drw, char *clrnames[], unsigned int alphas[], size_t clrcount) {
drw_scm_create(Drw *drw, char *clrnames[], unsigned int alphas[], size_t clrcount)
{
size_t i; size_t i;
Clr *ret; Clr *ret;
@ -283,25 +255,19 @@ drw_scm_create(Drw *drw, char *clrnames[], unsigned int alphas[], size_t clrcoun
return ret; return ret;
} }
void void drw_setscheme(Drw *drw, Clr *scm) {
drw_setscheme(Drw *drw, Clr *scm)
{
if (drw) if (drw)
drw->scheme = scm; drw->scheme = scm;
} }
void void drw_settrans(Drw *drw, Clr *psc, Clr *nsc) {
drw_settrans(Drw *drw, Clr *psc, Clr *nsc)
{
if (drw) { if (drw) {
transcheme[0] = psc[ColBg]; transcheme[1] = nsc[ColBg]; transcheme[2] = psc[ColPwl]; transcheme[0] = psc[ColBg]; transcheme[1] = nsc[ColBg]; transcheme[2] = psc[ColPwl];
drw->scheme = transcheme; drw->scheme = transcheme;
} }
} }
void void drw_arrow(Drw *drw, int x, int y, unsigned int w, unsigned int h, int direction, int slash) {
drw_arrow(Drw *drw, int x, int y, unsigned int w, unsigned int h, int direction, int slash)
{
if (!drw || !drw->scheme) if (!drw || !drw->scheme)
return; return;
@ -328,9 +294,7 @@ drw_arrow(Drw *drw, int x, int y, unsigned int w, unsigned int h, int direction,
XFillPolygon(drw->dpy, drw->drawable, drw->gc, points, 3, Nonconvex, CoordModeOrigin); XFillPolygon(drw->dpy, drw->drawable, drw->gc, points, 3, Nonconvex, CoordModeOrigin);
} }
void void drw_rect(Drw *drw, int x, int y, unsigned int w, unsigned int h, int filled, int invert) {
drw_rect(Drw *drw, int x, int y, unsigned int w, unsigned int h, int filled, int invert)
{
if (!drw || !drw->scheme) if (!drw || !drw->scheme)
return; return;
XSetForeground(drw->dpy, drw->gc, invert ? drw->scheme[ColBg].pixel : drw->scheme[ColFg].pixel); XSetForeground(drw->dpy, drw->gc, invert ? drw->scheme[ColBg].pixel : drw->scheme[ColFg].pixel);
@ -340,15 +304,11 @@ drw_rect(Drw *drw, int x, int y, unsigned int w, unsigned int h, int filled, int
XDrawRectangle(drw->dpy, drw->drawable, drw->gc, x, y, w - 1, h - 1); XDrawRectangle(drw->dpy, drw->drawable, drw->gc, x, y, w - 1, h - 1);
} }
int int xerrordummy(Display *dpy, XErrorEvent *ee) {
xerrordummy(Display *dpy, XErrorEvent *ee)
{
return 0; return 0;
} }
int int drw_text(Drw *drw, int x, int y, unsigned int w, unsigned int h, unsigned int lpad, const char *text, int invert, Bool markup) {
drw_text(Drw *drw, int x, int y, unsigned int w, unsigned int h, unsigned int lpad, const char *text, int invert, Bool markup)
{
XSetErrorHandler(xerrordummy); XSetErrorHandler(xerrordummy);
#if USEPANGO // pango #if USEPANGO // pango
@ -539,9 +499,7 @@ drw_text(Drw *drw, int x, int y, unsigned int w, unsigned int h, unsigned int lp
XSync(drw->dpy, False); XSync(drw->dpy, False);
} }
void void drw_map(Drw *drw, Window win, int x, int y, unsigned int w, unsigned int h) {
drw_map(Drw *drw, Window win, int x, int y, unsigned int w, unsigned int h)
{
if (!drw) if (!drw)
return; return;
@ -549,17 +507,13 @@ drw_map(Drw *drw, Window win, int x, int y, unsigned int w, unsigned int h)
XSync(drw->dpy, False); XSync(drw->dpy, False);
} }
unsigned int unsigned int drw_font_getwidth(Drw *drw, const char *text, Bool markup) {
drw_font_getwidth(Drw *drw, const char *text, Bool markup)
{
if (!drw || !drw->font || !text) if (!drw || !drw->font || !text)
return 0; return 0;
return drw_text(drw, 0, 0, 0, 0, 0, text, 0, markup); return drw_text(drw, 0, 0, 0, 0, 0, text, 0, markup);
} }
void void drw_font_getexts(Fnt *font, const char *text, unsigned int len, unsigned int *w, unsigned int *h, Bool markup) {
drw_font_getexts(Fnt *font, const char *text, unsigned int len, unsigned int *w, unsigned int *h, Bool markup)
{
#if !USEPANGO #if !USEPANGO
XGlyphInfo ext; XGlyphInfo ext;
#endif #endif
@ -589,9 +543,7 @@ drw_font_getexts(Fnt *font, const char *text, unsigned int len, unsigned int *w,
*h = font->h; *h = font->h;
} }
Cur * Cur * drw_cur_create(Drw *drw, int shape) {
drw_cur_create(Drw *drw, int shape)
{
Cur *cur; Cur *cur;
if (!drw || !(cur = ecalloc(1, sizeof(Cur)))) if (!drw || !(cur = ecalloc(1, sizeof(Cur))))
@ -602,9 +554,7 @@ drw_cur_create(Drw *drw, int shape)
return cur; return cur;
} }
void void drw_cur_free(Drw *drw, Cur *cursor) {
drw_cur_free(Drw *drw, Cur *cursor)
{
if (!cursor) if (!cursor)
return; return;
@ -612,9 +562,7 @@ drw_cur_free(Drw *drw, Cur *cursor)
free(cursor); free(cursor);
} }
unsigned int unsigned int drw_fontset_getwidth_clamp(Drw *drw, const char *text, unsigned int n, Bool markup) {
drw_fontset_getwidth_clamp(Drw *drw, const char *text, unsigned int n, Bool markup)
{
unsigned int tmp = 0; unsigned int tmp = 0;
if (drw && drw->font && text && n) if (drw && drw->font && text && n)
tmp = drw_text(drw, 0, 0, 0, 0, 0, text, n, markup); tmp = drw_text(drw, 0, 0, 0, 0, 0, text, n, markup);