@@ -608,13 +608,4 @@ config NLS_MAC_TURKISH
If unsure, say Y.
-config NLS_UTF8
- tristate "NLS UTF-8"
- help
- If you want to display filenames with native language characters
- from the Microsoft FAT file system family or from JOLIET CD-ROMs
- correctly on the screen, you need to include the appropriate
- input/output character sets. Say Y here for the UTF-8 encoding of
- the Unicode/ISO9646 universal character set.
-
endif # NLS
@@ -42,7 +42,6 @@ obj-$(CONFIG_NLS_ISO8859_14) += nls_iso8859-14.o
obj-$(CONFIG_NLS_ISO8859_15) += nls_iso8859-15.o
obj-$(CONFIG_NLS_KOI8_R) += nls_koi8-r.o
obj-$(CONFIG_NLS_KOI8_U) += nls_koi8-u.o nls_koi8-ru.o
-obj-$(CONFIG_NLS_UTF8) += nls_utf8.o
obj-$(CONFIG_NLS_MAC_CELTIC) += mac-celtic.o
obj-$(CONFIG_NLS_MAC_CENTEURO) += mac-centeuro.o
obj-$(CONFIG_NLS_MAC_CROATIAN) += mac-croatian.o
deleted file mode 100644
@@ -1,67 +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,
-};
-
-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");
NLS table for utf8 is broken and cannot be fixed. Now that all filesystems are using utf8s_to_utf16s()/utf16s_to_utf8s() functions for converting between UTF-8 and UTF-16, and functions utf8_to_utf32()/utf32_to_utf8() for converting between UTF-8 and Unicode code points, there is no need to have this broken utf8 NLS module in kernel tree anymore. There is no user of this utf8 NLS module, so completely drop it, Signed-off-by: Pali Rohár <pali@kernel.org> --- fs/nls/Kconfig | 9 ------- fs/nls/Makefile | 1 - fs/nls/nls_utf8.c | 67 ----------------------------------------------- 3 files changed, 77 deletions(-) delete mode 100644 fs/nls/nls_utf8.c