📄 nls_utf8.c
字号:
/* * Module for handling utf8 just like any other charset. * By Urban Widmark 2000 */#include <cyg/infra/cyg_type.h> #include <cyg/infra/cyg_trac.h> // tracing macros#include <cyg/infra/cyg_ass.h> // assertion macros#include <errno.h>#include <string.h>#include <nls.h>static unsigned char identity[256];static int uni2char(wchar_t uni, unsigned char *out, int boundlen){ int n; if ( (n = utf8_wctomb(out, uni, boundlen)) == -1) { *out = '?'; return -EINVAL; } return n;}static int char2uni(const unsigned char *rawstring, int boundlen, wchar_t *uni){ int n; if ( (n = utf8_mbtowc(uni, rawstring, boundlen)) == -1) { *uni = 0x003f; /* ? */ n = -EINVAL; } return n;}static struct nls_table table = { .charset = "utf8", .uni2char = uni2char, .char2uni = char2uni, .charset2lower = identity, /* no conversion */ .charset2upper = identity,};static int init_nls_utf8(void){ int i; for (i=0; i<256; i++) identity[i] = i; return register_nls(&table);}static void exit_nls_utf8(void){ unregister_nls(&table);}struct nls_table* load_nls_utf8(void){ init_nls_utf8(); return load_nls("utf8");} void unload_nls_utf8(void){ exit_nls_utf8();}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -