refactor: trim popup and XIM helpers
This commit is contained in:
1
dat.h
1
dat.h
@@ -17,7 +17,6 @@ enum
|
|||||||
LangVI = 0x16,
|
LangVI = 0x16,
|
||||||
|
|
||||||
Fontsz = 32,
|
Fontsz = 32,
|
||||||
Fontbase = 4,
|
|
||||||
Nglyphs = 0x20000,
|
Nglyphs = 0x20000,
|
||||||
Maxrunes = 64,
|
Maxrunes = 64,
|
||||||
Maxutf = Maxrunes * UTFmax + 1,
|
Maxutf = Maxrunes * UTFmax + 1,
|
||||||
|
|||||||
2
fn.h
2
fn.h
@@ -55,5 +55,5 @@ int wlstaterepeat(Wlstate*, uvlong, u32int*);
|
|||||||
void* emalloc(ulong);
|
void* emalloc(ulong);
|
||||||
void* erealloc(void*, ulong);
|
void* erealloc(void*, ulong);
|
||||||
|
|
||||||
void fontinit(char*);
|
int fontinit(char*);
|
||||||
void putfont(u32int*, int, int, int, int, Rune);
|
void putfont(u32int*, int, int, int, int, Rune);
|
||||||
|
|||||||
7
font.c
7
font.c
@@ -83,7 +83,7 @@ loadfont(char *path)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
int
|
||||||
fontinit(char *dir)
|
fontinit(char *dir)
|
||||||
{
|
{
|
||||||
static char *names[] = {
|
static char *names[] = {
|
||||||
@@ -108,11 +108,6 @@ fontinit(char *dir)
|
|||||||
blendtab[0][a] = blend(Colbg, Colfg, a);
|
blendtab[0][a] = blend(Colbg, Colfg, a);
|
||||||
blendtab[1][a] = blend(Colsel, Colfg, a);
|
blendtab[1][a] = blend(Colsel, Colfg, a);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
fontready(void)
|
|
||||||
{
|
|
||||||
return nfonts != 0;
|
return nfonts != 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,6 @@
|
|||||||
|
|
||||||
uint32_t keymaplookup(const uint32_t*, int, uint16_t);
|
uint32_t keymaplookup(const uint32_t*, int, uint16_t);
|
||||||
char *ximcompound(const char*, size_t, size_t*);
|
char *ximcompound(const char*, size_t, size_t*);
|
||||||
char *ximutf8compound(const char*, size_t, size_t*);
|
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
@@ -35,22 +34,17 @@ checktext(const char *s)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
checkfallback(void)
|
checkutf8run(void)
|
||||||
{
|
{
|
||||||
static const char s[] = "😀";
|
static const char s[] = "😀";
|
||||||
static const char want[] = "\033%G😀\033%@";
|
char *ct;
|
||||||
char *ct, *utf8;
|
size_t n;
|
||||||
size_t clen, ulen;
|
|
||||||
|
|
||||||
ct = ximutf8compound(s, sizeof s - 1, &clen);
|
ct = ximcompound(s, sizeof s - 1, &n);
|
||||||
assert(ct != NULL);
|
assert(ct != NULL);
|
||||||
assert(clen == sizeof want - 1);
|
assert(n >= 6);
|
||||||
assert(memcmp(ct, want, clen) == 0);
|
assert(memcmp(ct, "\033%G", 3) == 0);
|
||||||
utf8 = xcb_compound_text_to_utf8(ct, clen, &ulen);
|
assert(memcmp(ct+n-3, "\033%@", 3) == 0);
|
||||||
assert(utf8 != NULL);
|
|
||||||
assert(ulen == sizeof s - 1);
|
|
||||||
assert(memcmp(utf8, s, ulen) == 0);
|
|
||||||
free(utf8);
|
|
||||||
free(ct);
|
free(ct);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -83,6 +77,6 @@ main(void)
|
|||||||
checktext("😀");
|
checktext("😀");
|
||||||
checktext("❤️");
|
checktext("❤️");
|
||||||
checktext("A😀한");
|
checktext("A😀한");
|
||||||
checkfallback();
|
checkutf8run();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
5
win.c
5
win.c
@@ -16,8 +16,6 @@ static xcb_pixmap_t pix;
|
|||||||
static u32int *img;
|
static u32int *img;
|
||||||
static int depth;
|
static int depth;
|
||||||
|
|
||||||
extern int fontready(void);
|
|
||||||
|
|
||||||
static xcb_screen_t*
|
static xcb_screen_t*
|
||||||
getscr(xcb_connection_t *c, int n)
|
getscr(xcb_connection_t *c, int n)
|
||||||
{
|
{
|
||||||
@@ -142,8 +140,7 @@ wininit(void)
|
|||||||
mask = XCB_CW_BACK_PIXMAP;
|
mask = XCB_CW_BACK_PIXMAP;
|
||||||
xcb_change_window_attributes(conn, win, mask, &pix);
|
xcb_change_window_attributes(conn, win, mask, &pix);
|
||||||
img = emalloc(Imgw * Imgh * sizeof(img[0]));
|
img = emalloc(Imgw * Imgh * sizeof(img[0]));
|
||||||
fontinit(fontdir);
|
if(!fontinit(fontdir)){
|
||||||
if(!fontready()){
|
|
||||||
fprint(2, "strans: popup disabled: no usable fonts\n");
|
fprint(2, "strans: popup disabled: no usable fonts\n");
|
||||||
wincleanup();
|
wincleanup();
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <xcb-imdkit/encoding.h>
|
#include <xcb-imdkit/encoding.h>
|
||||||
|
|
||||||
char*
|
static char*
|
||||||
ximutf8compound(const char *s, size_t len, size_t *outlen)
|
ximutf8compound(const char *s, size_t len, size_t *outlen)
|
||||||
{
|
{
|
||||||
static const char begin[] = "\033%G";
|
static const char begin[] = "\033%G";
|
||||||
|
|||||||
Reference in New Issue
Block a user