Introduction
Introduction Statistics Contact Development Disclaimer Help
tChanged type for UTF-32 codepoints from long to uint_least32_t - st - [fork] c…
git clone git://src.adamsgaard.dk/st
Log
Files
Refs
README
LICENSE
---
commit 38af006b5e4a36c77f25affbb3f7e28899db75ed
parent c990abfedf56cb8d3176fe6d5152ff65bb68bff0
Author: suigin <[email protected]>
Date: Tue, 5 May 2015 13:13:21 -0700
Changed type for UTF-32 codepoints from long to uint_least32_t
Diffstat:
M st.c | 52 ++++++++++++++++-------------…
1 file changed, 27 insertions(+), 25 deletions(-)
---
diff --git a/st.c b/st.c
t@@ -183,11 +183,13 @@ typedef unsigned int uint;
typedef unsigned long ulong;
typedef unsigned short ushort;
+typedef uint_least32_t Rune;
+
typedef XftDraw *Draw;
typedef XftColor Color;
typedef struct {
- long u; /* character code */
+ Rune u; /* character code */
ushort mode; /* attribute flags */
ushort fg; /* foreground */
ushort bg; /* background */
t@@ -389,20 +391,20 @@ static void tmoveato(int, int);
static void tnew(int, int);
static void tnewline(int);
static void tputtab(int);
-static void tputc(long);
+static void tputc(Rune);
static void treset(void);
static void tresize(int, int);
static void tscrollup(int, int);
static void tscrolldown(int, int);
static void tsetattr(int *, int);
-static void tsetchar(long, Glyph *, int, int);
+static void tsetchar(Rune, Glyph *, int, int);
static void tsetscroll(int, int);
static void tswapscreen(void);
static void tsetdirt(int, int);
static void tsetdirtattr(int);
static void tsetmode(bool, bool, int *, int);
static void tfulldirt(void);
-static void techo(long);
+static void techo(Rune);
static void tcontrolcode(uchar );
static void tdectest(char );
static int32_t tdefcolor(int *, int *, int);
t@@ -465,11 +467,11 @@ static int y2row(int);
static void getbuttoninfo(XEvent *);
static void mousereport(XEvent *);
-static size_t utf8decode(char *, long *, size_t);
-static long utf8decodebyte(char, size_t *);
-static size_t utf8encode(long, char *);
-static char utf8encodebyte(long, size_t);
-static size_t utf8validate(long *, size_t);
+static size_t utf8decode(char *, Rune *, size_t);
+static Rune utf8decodebyte(char, size_t *);
+static size_t utf8encode(Rune, char *);
+static char utf8encodebyte(Rune, size_t);
+static size_t utf8validate(Rune *, size_t);
static ssize_t xwrite(int, const char *, size_t);
static void *xmalloc(size_t);
t@@ -524,8 +526,8 @@ static double defaultfontsize = 0;
static uchar utfbyte[UTF_SIZ + 1] = {0x80, 0, 0xC0, 0xE0, 0xF0};
static uchar utfmask[UTF_SIZ + 1] = {0xC0, 0x80, 0xE0, 0xF0, 0xF8};
-static long utfmin[UTF_SIZ + 1] = { 0, 0, 0x80, 0x800, 0x10000};
-static long utfmax[UTF_SIZ + 1] = {0x10FFFF, 0x7F, 0x7FF, 0xFFFF, 0x10FFFF};
+static Rune utfmin[UTF_SIZ + 1] = { 0, 0, 0x80, 0x800, 0x10000};
+static Rune utfmax[UTF_SIZ + 1] = {0x10FFFF, 0x7F, 0x7FF, 0xFFFF, 0x10FFFF};
/* Font Ring Cache */
enum {
t@@ -538,7 +540,7 @@ enum {
typedef struct {
XftFont *font;
int flags;
- long unicodep;
+ Rune unicodep;
} Fontcache;
/* Fontcache is an array now. A new font will be appended to the array. */
t@@ -586,9 +588,9 @@ xstrdup(char *s) {
}
size_t
-utf8decode(char *c, long *u, size_t clen) {
+utf8decode(char *c, Rune *u, size_t clen) {
size_t i, j, len, type;
- long udecoded;
+ Rune udecoded;
*u = UTF_INVALID;
if(!clen)
t@@ -608,7 +610,7 @@ utf8decode(char *c, long *u, size_t clen) {
return len;
}
-long
+Rune
utf8decodebyte(char c, size_t *i) {
for(*i = 0; *i < LEN(utfmask); ++(*i))
if(((uchar)c & utfmask[*i]) == utfbyte[*i])
t@@ -617,7 +619,7 @@ utf8decodebyte(char c, size_t *i) {
}
size_t
-utf8encode(long u, char *c) {
+utf8encode(Rune u, char *c) {
size_t len, i;
len = utf8validate(&u, 0);
t@@ -632,12 +634,12 @@ utf8encode(long u, char *c) {
}
char
-utf8encodebyte(long u, size_t i) {
+utf8encodebyte(Rune u, size_t i) {
return utfbyte[i] | (u & ~utfmask[i]);
}
size_t
-utf8validate(long *u, size_t i) {
+utf8validate(Rune *u, size_t i) {
if(!BETWEEN(*u, utfmin[i], utfmax[i]) || BETWEEN(*u, 0xD800, 0xDFFF))
*u = UTF_INVALID;
for(i = 1; *u > utfmax[i]; ++i)
t@@ -1339,7 +1341,7 @@ ttyread(void) {
static int buflen = 0;
char *ptr;
int charsize; /* size of utf8 char in bytes */
- long unicodep;
+ Rune unicodep;
int ret;
/* append read bytes to unprocessed bytes */
t@@ -1368,7 +1370,7 @@ ttywrite(const char *s, size_t n) {
void
ttysend(char *s, size_t n) {
int len;
- long u;
+ Rune u;
ttywrite(s, n);
if(IS_SET(MODE_ECHO))
t@@ -1625,7 +1627,7 @@ tmoveto(int x, int y) {
}
void
-tsetchar(long u, Glyph *attr, int x, int y) {
+tsetchar(Rune u, Glyph *attr, int x, int y) {
static char *vt100_0[62] = { /* 0x41 - 0x7e */
"↑", "↓", "→", "←", "█", "▚", "☃", /* A - G */
0, 0, 0, 0, 0, 0, 0, 0, /* H - O */
t@@ -2440,7 +2442,7 @@ tputtab(int n) {
}
void
-techo(long u) {
+techo(Rune u) {
if(ISCONTROL(u)) { /* control code */
if(u & 0x80) {
u &= 0x7f;
t@@ -2663,7 +2665,7 @@ eschandle(uchar ascii) {
}
void
-tputc(long u) {
+tputc(Rune u) {
char c[UTF_SIZ];
bool control;
int width, len;
t@@ -3262,7 +3264,7 @@ xdraws(char *s, Glyph base, int x, int y, int charlen, i…
int frcflags, charexists;
int u8fl, u8fblen, u8cblen, doesexist;
char *u8c, *u8fs;
- long unicodep;
+ Rune unicodep;
Font *font = &dc.font;
FcResult fcres;
FcPattern *fcpattern, *fontpattern;
t@@ -3805,7 +3807,7 @@ kpress(XEvent *ev) {
KeySym ksym;
char buf[32], *customkey;
int len;
- long c;
+ Rune c;
Status status;
Shortcut *bp;
You are viewing proxied material from mx1.adamsgaard.dk. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.