diff options
Diffstat (limited to 'ANDROID_3.4.5/fs/nls/nls_utf8.c')
-rw-r--r-- | ANDROID_3.4.5/fs/nls/nls_utf8.c | 68 |
1 files changed, 0 insertions, 68 deletions
diff --git a/ANDROID_3.4.5/fs/nls/nls_utf8.c b/ANDROID_3.4.5/fs/nls/nls_utf8.c deleted file mode 100644 index 0d60a44a..00000000 --- a/ANDROID_3.4.5/fs/nls/nls_utf8.c +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Module for handling utf8 just like any other charset. - * By Urban Widmark 2000 - */ - -#include <linux/module.h> -#include <linux/kernel.h> -#include <linux/string.h> -#include <linux/nls.h> -#include <linux/errno.h> - -static unsigned char identity[256]; - -static int uni2char(wchar_t uni, unsigned char *out, int boundlen) -{ - int n; - - if (boundlen <= 0) - return -ENAMETOOLONG; - - n = utf32_to_utf8(uni, out, boundlen); - if (n < 0) { - *out = '?'; - return -EINVAL; - } - return n; -} - -static int char2uni(const unsigned char *rawstring, int boundlen, wchar_t *uni) -{ - int n; - unicode_t u; - - n = utf8_to_utf32(rawstring, boundlen, &u); - if (n < 0 || u > MAX_WCHAR_T) { - *uni = 0x003f; /* ? */ - return -EINVAL; - } - *uni = (wchar_t) u; - return n; -} - -static struct nls_table table = { - .charset = "utf8", - .uni2char = uni2char, - .char2uni = char2uni, - .charset2lower = identity, /* no conversion */ - .charset2upper = identity, - .owner = THIS_MODULE, -}; - -static int __init init_nls_utf8(void) -{ - int i; - for (i=0; i<256; i++) - identity[i] = i; - - return register_nls(&table); -} - -static void __exit exit_nls_utf8(void) -{ - unregister_nls(&table); -} - -module_init(init_nls_utf8) -module_exit(exit_nls_utf8) -MODULE_LICENSE("Dual BSD/GPL"); |