unicode: move kmscon_symbol* to tsm_symbol*

All the unicode helpers are move to TSM so move the symbols, too.

Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
This commit is contained in:
David Herrmann 2012-09-14 18:26:43 +02:00
parent fa31942c02
commit 61e0d9d098
16 changed files with 63 additions and 63 deletions

View File

@ -44,7 +44,7 @@
#define LOG_SUBSYSTEM "console"
struct cell {
kmscon_symbol_t ch;
tsm_symbol_t ch;
struct kmscon_console_attr attr;
};
@ -317,7 +317,7 @@ static void console_scroll_down(struct kmscon_console *con, unsigned int num)
}
static void console_write(struct kmscon_console *con, unsigned int x,
unsigned int y, kmscon_symbol_t ch,
unsigned int y, tsm_symbol_t ch,
const struct kmscon_console_attr *attr)
{
struct line *line;
@ -791,7 +791,7 @@ void kmscon_console_reset_all_tabstops(struct kmscon_console *con)
con->tab_ruler[i] = false;
}
void kmscon_console_write(struct kmscon_console *con, kmscon_symbol_t ch,
void kmscon_console_write(struct kmscon_console *con, tsm_symbol_t ch,
const struct kmscon_console_attr *attr)
{
unsigned int last;

View File

@ -68,7 +68,7 @@ struct kmscon_console_attr {
typedef int (*kmscon_console_prepare_cb) (struct kmscon_console *con,
void *data);
typedef int (*kmscon_console_draw_cb) (struct kmscon_console *con,
kmscon_symbol_t ch,
tsm_symbol_t ch,
unsigned int posx,
unsigned int posy,
const struct kmscon_console_attr *attr,
@ -109,7 +109,7 @@ void kmscon_console_set_tabstop(struct kmscon_console *con);
void kmscon_console_reset_tabstop(struct kmscon_console *con);
void kmscon_console_reset_all_tabstops(struct kmscon_console *con);
void kmscon_console_write(struct kmscon_console *con, kmscon_symbol_t ch,
void kmscon_console_write(struct kmscon_console *con, tsm_symbol_t ch,
const struct kmscon_console_attr *attr);
void kmscon_console_newline(struct kmscon_console *con);
void kmscon_console_scroll_up(struct kmscon_console *con, unsigned int num);

View File

@ -443,7 +443,7 @@ int kmscon_text_prepare(struct kmscon_text *txt)
*
* Returns: 0 on success or negative error code if this glyph couldn't be drawn.
*/
int kmscon_text_draw(struct kmscon_text *txt, kmscon_symbol_t ch,
int kmscon_text_draw(struct kmscon_text *txt, tsm_symbol_t ch,
unsigned int posx, unsigned int posy,
const struct kmscon_console_attr *attr)
{
@ -503,7 +503,7 @@ int kmscon_text_prepare_cb(struct kmscon_console *con, void *data)
return kmscon_text_prepare(data);
}
int kmscon_text_draw_cb(struct kmscon_console *con, kmscon_symbol_t ch,
int kmscon_text_draw_cb(struct kmscon_console *con, tsm_symbol_t ch,
unsigned int posx, unsigned int posy,
const struct kmscon_console_attr *attr, void *data)
{

View File

@ -87,7 +87,7 @@ struct kmscon_font_ops {
int (*init) (struct kmscon_font *out,
const struct kmscon_font_attr *attr);
void (*destroy) (struct kmscon_font *font);
int (*render) (struct kmscon_font *font, kmscon_symbol_t sym,
int (*render) (struct kmscon_font *font, tsm_symbol_t sym,
const struct kmscon_glyph **out);
int (*render_empty) (struct kmscon_font *font,
const struct kmscon_glyph **out);
@ -104,7 +104,7 @@ int kmscon_font_find(struct kmscon_font **out,
void kmscon_font_ref(struct kmscon_font *font);
void kmscon_font_unref(struct kmscon_font *font);
int kmscon_font_render(struct kmscon_font *font, kmscon_symbol_t sym,
int kmscon_font_render(struct kmscon_font *font, tsm_symbol_t sym,
const struct kmscon_glyph **out);
int kmscon_font_render_empty(struct kmscon_font *font,
const struct kmscon_glyph **out);
@ -135,7 +135,7 @@ struct kmscon_text_ops {
int (*set) (struct kmscon_text *txt);
void (*unset) (struct kmscon_text *txt);
int (*prepare) (struct kmscon_text *txt);
int (*draw) (struct kmscon_text *txt, kmscon_symbol_t ch,
int (*draw) (struct kmscon_text *txt, tsm_symbol_t ch,
unsigned int posx, unsigned int posy,
const struct kmscon_console_attr *attr);
int (*render) (struct kmscon_text *txt);
@ -157,14 +157,14 @@ unsigned int kmscon_text_get_cols(struct kmscon_text *txt);
unsigned int kmscon_text_get_rows(struct kmscon_text *txt);
int kmscon_text_prepare(struct kmscon_text *txt);
int kmscon_text_draw(struct kmscon_text *txt, kmscon_symbol_t ch,
int kmscon_text_draw(struct kmscon_text *txt, tsm_symbol_t ch,
unsigned int posx, unsigned int posy,
const struct kmscon_console_attr *attr);
int kmscon_text_render(struct kmscon_text *txt);
void kmscon_text_abort(struct kmscon_text *txt);
int kmscon_text_prepare_cb(struct kmscon_console *con, void *data);
int kmscon_text_draw_cb(struct kmscon_console *con, kmscon_symbol_t ch,
int kmscon_text_draw_cb(struct kmscon_console *con, tsm_symbol_t ch,
unsigned int posx, unsigned int posy,
const struct kmscon_console_attr *attr, void *data);
int kmscon_text_render_cb(struct kmscon_console *con, void *data);

View File

@ -59,7 +59,7 @@ static int bblit_set(struct kmscon_text *txt)
return 0;
}
static int bblit_draw(struct kmscon_text *txt, kmscon_symbol_t ch,
static int bblit_draw(struct kmscon_text *txt, tsm_symbol_t ch,
unsigned int posx, unsigned int posy,
const struct kmscon_console_attr *attr)
{

View File

@ -111,7 +111,7 @@ static void bbulk_unset(struct kmscon_text *txt)
bb->reqs = NULL;
}
static int bbulk_draw(struct kmscon_text *txt, kmscon_symbol_t ch,
static int bbulk_draw(struct kmscon_text *txt, tsm_symbol_t ch,
unsigned int posx, unsigned int posy,
const struct kmscon_console_attr *attr)
{

View File

@ -460,7 +460,7 @@ void kmscon_font_unref(struct kmscon_font *font)
*
* Returns: 0 on success, negative error code on failure
*/
int kmscon_font_render(struct kmscon_font *font, kmscon_symbol_t sym,
int kmscon_font_render(struct kmscon_font *font, tsm_symbol_t sym,
const struct kmscon_glyph **out)
{
if (!font || !out)

View File

@ -82,13 +82,13 @@ static void kmscon_font_8x16_destroy(struct kmscon_font *font)
}
static int kmscon_font_8x16_render(struct kmscon_font *font,
kmscon_symbol_t sym,
tsm_symbol_t sym,
const struct kmscon_glyph **out)
{
const uint32_t *val;
size_t len;
val = kmscon_symbol_get(&sym, &len);
val = tsm_symbol_get(&sym, &len);
if (len > 1 || *val >= 256)
return -ERANGE;

View File

@ -138,7 +138,7 @@ static void manager__unref()
}
static int get_glyph(struct face *face, struct kmscon_glyph **out,
kmscon_symbol_t ch)
tsm_symbol_t ch)
{
struct kmscon_glyph *glyph;
struct glyph *data;
@ -180,7 +180,7 @@ static int get_glyph(struct face *face, struct kmscon_glyph **out,
* TODO: Fix this by drawing all related characters into a single glyph
* and saving it or simply refer to the pango backend which already does
* that. */
val = kmscon_symbol_get(&ch, &len);
val = tsm_symbol_get(&ch, &len);
if (len > 1 || !*val) {
ret = -ERANGE;
goto out_glyph;
@ -549,7 +549,7 @@ static int generate_specials(struct face *face)
memset(face->empty.buf.data, 0, s);
ret = get_glyph(face, &g, kmscon_symbol_make('?'));
ret = get_glyph(face, &g, tsm_symbol_make('?'));
if (ret) {
memcpy(&face->inval, &face->empty, sizeof(face->inval));
} else {
@ -564,7 +564,7 @@ static int kmscon_font_freetype2_init(struct kmscon_font *out,
{
struct face *face = NULL;
int ret;
kmscon_symbol_t ch;
tsm_symbol_t ch;
unsigned int i, width;
struct kmscon_glyph *glyph;
struct glyph *data;
@ -592,7 +592,7 @@ static int kmscon_font_freetype2_init(struct kmscon_font *out,
if (face->shrink) {
width = 0;
for (i = 0x20; i < 0x7f; ++i) {
ch = kmscon_symbol_make(i);
ch = tsm_symbol_make(i);
ret = get_glyph(face, &glyph, ch);
if (ret)
continue;
@ -636,7 +636,7 @@ static void kmscon_font_freetype2_destroy(struct kmscon_font *font)
}
static int kmscon_font_freetype2_render(struct kmscon_font *font,
kmscon_symbol_t sym,
tsm_symbol_t sym,
const struct kmscon_glyph **out)
{
struct kmscon_glyph *glyph;

View File

@ -109,7 +109,7 @@ static void manager__unref()
}
static int get_glyph(struct face *face, struct kmscon_glyph **out,
kmscon_symbol_t ch)
tsm_symbol_t ch)
{
struct kmscon_glyph *glyph;
PangoLayout *layout;
@ -148,9 +148,9 @@ static int get_glyph(struct face *face, struct kmscon_glyph **out,
/* no line spacing */
pango_layout_set_spacing(layout, 0);
val = kmscon_symbol_get_u8(ch, &len);
val = tsm_symbol_get_u8(ch, &len);
pango_layout_set_text(layout, val, len);
kmscon_symbol_free_u8(val);
tsm_symbol_free_u8(val);
cnt = pango_layout_get_line_count(layout);
if (cnt == 0) {
@ -386,7 +386,7 @@ static void kmscon_font_pango_destroy(struct kmscon_font *font)
}
static int kmscon_font_pango_render(struct kmscon_font *font,
kmscon_symbol_t sym,
tsm_symbol_t sym,
const struct kmscon_glyph **out)
{
struct kmscon_glyph *glyph;

View File

@ -78,13 +78,13 @@ static void kmscon_font_unifont_destroy(struct kmscon_font *font)
}
static int kmscon_font_unifont_render(struct kmscon_font *font,
kmscon_symbol_t sym,
tsm_symbol_t sym,
const struct kmscon_glyph **out)
{
const uint32_t *val;
size_t len;
val = kmscon_symbol_get(&sym, &len);
val = tsm_symbol_get(&sym, &len);
if (len > 1 || *val >= kmscon_text_font_unifont_data_hex_len)
return -ERANGE;

View File

@ -366,7 +366,7 @@ err_free:
}
static int find_glyph(struct kmscon_text *txt, struct glyph **out,
kmscon_symbol_t ch)
tsm_symbol_t ch)
{
struct gltex *gt = txt->data;
struct atlas *atlas;
@ -520,7 +520,7 @@ static int gltex_prepare(struct kmscon_text *txt)
return 0;
}
static int gltex_draw(struct kmscon_text *txt, kmscon_symbol_t ch,
static int gltex_draw(struct kmscon_text *txt, tsm_symbol_t ch,
unsigned int posx, unsigned int posy,
const struct kmscon_console_attr *attr)
{

View File

@ -67,23 +67,23 @@
/*
* Unicode Symbol Handling
* The main goal of the kmscon_symbol_* functions is to provide a datatype which
* The main goal of the tsm_symbol_* functions is to provide a datatype which
* can contain the representation of any printable character. This includes all
* basic Unicode characters but also combined characters.
* To avoid all the memory management we still represent a character as a single
* integer value (kmscon_symbol_t) but internally we allocate a string which is
* integer value (tsm_symbol_t) but internally we allocate a string which is
* represented by this value.
*
* A kmscon_symbol_t is an integer which represents a single character point.
* A tsm_symbol_t is an integer which represents a single character point.
* For most Unicode characters this is simply the UCS4 representation. In fact,
* every UCS4 characters is a valid kmscon_symbol_t object.
* every UCS4 characters is a valid tsm_symbol_t object.
* However, Unicode standard allows combining marks. Therefore, some characters
* consists of more than one Unicode character.
* A global symbol-table provides all those combined characters as single
* integers. You simply create a valid base character and append your combining
* marks and the table will return a new valid kmscon_symbol_t. It is no longer
* marks and the table will return a new valid tsm_symbol_t. It is no longer
* a valid UCS4 value, though. But no memory management is needed as all
* kmscon_symbol_t objects are simple integers.
* tsm_symbol_t objects are simple integers.
*
* The symbol table contains two-way
* references. The Hash Table contains all the symbols with the symbol ucs4
@ -103,7 +103,7 @@
#define KMSCON_UCS4_MAX 0x7fffffffUL
#define KMSCON_UCS4_INVALID 0xfffd
const kmscon_symbol_t kmscon_symbol_default = 0;
const tsm_symbol_t tsm_symbol_default = 0;
static const char default_u8[] = { 0 };
static pthread_mutex_t table_mutex = PTHREAD_MUTEX_INITIALIZER;
@ -178,7 +178,7 @@ static int table__init()
return 0;
}
kmscon_symbol_t kmscon_symbol_make(uint32_t ucs4)
tsm_symbol_t tsm_symbol_make(uint32_t ucs4)
{
if (ucs4 > KMSCON_UCS4_MAX) {
log_warn("invalid ucs4 character");
@ -199,7 +199,7 @@ kmscon_symbol_t kmscon_symbol_make(uint32_t ucs4)
* This always returns a valid value. If an error happens, the default character
* is returned. If \size is NULL, then the size value is omitted.
*/
static const uint32_t *table__get(kmscon_symbol_t *sym, size_t *size)
static const uint32_t *table__get(tsm_symbol_t *sym, size_t *size)
{
uint32_t *ucs4;
@ -212,7 +212,7 @@ static const uint32_t *table__get(kmscon_symbol_t *sym, size_t *size)
if (table__init()) {
if (size)
*size = 1;
return &kmscon_symbol_default;
return &tsm_symbol_default;
}
ucs4 = *KMSCON_ARRAY_AT(table_index, uint32_t*,
@ -220,7 +220,7 @@ static const uint32_t *table__get(kmscon_symbol_t *sym, size_t *size)
if (!ucs4) {
if (size)
*size = 1;
return &kmscon_symbol_default;
return &tsm_symbol_default;
}
if (size) {
@ -232,7 +232,7 @@ static const uint32_t *table__get(kmscon_symbol_t *sym, size_t *size)
return ucs4;
}
const uint32_t *kmscon_symbol_get(kmscon_symbol_t *sym, size_t *size)
const uint32_t *tsm_symbol_get(tsm_symbol_t *sym, size_t *size)
{
const uint32_t *res;
@ -243,12 +243,12 @@ const uint32_t *kmscon_symbol_get(kmscon_symbol_t *sym, size_t *size)
return res;
}
kmscon_symbol_t kmscon_symbol_append(kmscon_symbol_t sym, uint32_t ucs4)
tsm_symbol_t tsm_symbol_append(tsm_symbol_t sym, uint32_t ucs4)
{
uint32_t buf[KMSCON_UCS4_MAXLEN + 1], nsym, *nval;
const uint32_t *ptr;
size_t s;
kmscon_symbol_t rsym;
tsm_symbol_t rsym;
void *tmp;
bool res;
@ -334,13 +334,13 @@ static size_t ucs4_to_utf8(uint32_t g, char *txt)
}
}
const char *kmscon_symbol_get_u8(kmscon_symbol_t sym, size_t *size)
const char *tsm_symbol_get_u8(tsm_symbol_t sym, size_t *size)
{
const uint32_t *ucs4;
char *val;
size_t i, pos, len;
ucs4 = kmscon_symbol_get(&sym, &len);
ucs4 = tsm_symbol_get(&sym, &len);
val = malloc(4 * len);
if (!val)
goto err_out;
@ -362,7 +362,7 @@ err_out:
return default_u8;
}
void kmscon_symbol_free_u8(const char *s)
void tsm_symbol_free_u8(const char *s)
{
if (s != default_u8)
free((void*)s);

View File

@ -44,15 +44,15 @@
/* symbols */
typedef uint32_t kmscon_symbol_t;
typedef uint32_t tsm_symbol_t;
extern const kmscon_symbol_t kmscon_symbol_default;
extern const tsm_symbol_t tsm_symbol_default;
kmscon_symbol_t kmscon_symbol_make(uint32_t ucs4);
kmscon_symbol_t kmscon_symbol_append(kmscon_symbol_t sym, uint32_t ucs4);
const uint32_t *kmscon_symbol_get(kmscon_symbol_t *sym, size_t *size);
const char *kmscon_symbol_get_u8(kmscon_symbol_t sym, size_t *size);
void kmscon_symbol_free_u8(const char *s);
tsm_symbol_t tsm_symbol_make(uint32_t ucs4);
tsm_symbol_t tsm_symbol_append(tsm_symbol_t sym, uint32_t ucs4);
const uint32_t *tsm_symbol_get(tsm_symbol_t *sym, size_t *size);
const char *tsm_symbol_get_u8(tsm_symbol_t sym, size_t *size);
void tsm_symbol_free_u8(const char *s);
/* utf8 state machine */

View File

@ -482,7 +482,7 @@ static void vte_write_debug(struct kmscon_vte *vte, const char *u8, size_t len,
vte_write_debug((_vte), (_u8), (_len), true, __FILE__, __LINE__)
/* write to console */
static void write_console(struct kmscon_vte *vte, kmscon_symbol_t sym)
static void write_console(struct kmscon_vte *vte, tsm_symbol_t sym)
{
to_rgb(vte, &vte->cattr);
kmscon_console_write(vte->con, sym, &vte->cattr);
@ -1658,7 +1658,7 @@ static uint32_t vte_map(struct kmscon_vte *vte, uint32_t val)
/* perform parser action */
static void do_action(struct kmscon_vte *vte, uint32_t data, int action)
{
kmscon_symbol_t sym;
tsm_symbol_t sym;
switch (action) {
case ACTION_NONE:
@ -1668,7 +1668,7 @@ static void do_action(struct kmscon_vte *vte, uint32_t data, int action)
/* ignore character */
break;
case ACTION_PRINT:
sym = kmscon_symbol_make(vte_map(vte, data));
sym = tsm_symbol_make(vte_map(vte, data));
write_console(vte, sym);
break;
case ACTION_EXECUTE:
@ -2119,7 +2119,7 @@ void kmscon_vte_input(struct kmscon_vte *vte, const char *u8, size_t len)
bool kmscon_vte_handle_keyboard(struct kmscon_vte *vte, uint32_t keysym,
unsigned int mods, uint32_t unicode)
{
kmscon_symbol_t sym;
tsm_symbol_t sym;
char val;
size_t len;
const char *u8;
@ -2553,10 +2553,10 @@ bool kmscon_vte_handle_keyboard(struct kmscon_vte *vte, uint32_t keysym,
}
vte_write_raw(vte, &val, 1);
} else {
sym = kmscon_symbol_make(unicode);
u8 = kmscon_symbol_get_u8(sym, &len);
sym = tsm_symbol_make(unicode);
u8 = tsm_symbol_get_u8(sym, &len);
vte_write_raw(vte, u8, len);
kmscon_symbol_free_u8(u8);
tsm_symbol_free_u8(u8);
}
return true;
}

View File

@ -39,7 +39,7 @@
/* available character sets */
typedef kmscon_symbol_t kmscon_vte_charset[96];
typedef tsm_symbol_t kmscon_vte_charset[96];
extern kmscon_vte_charset kmscon_vte_unicode_lower;
extern kmscon_vte_charset kmscon_vte_unicode_upper;