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 <[email protected]>
---
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
diff --git a/fs/nls/Kconfig b/fs/nls/Kconfig
index c7857e36adbb..8f82cf30a493 100644
--- a/fs/nls/Kconfig
+++ b/fs/nls/Kconfig
@@ -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
diff --git a/fs/nls/Makefile b/fs/nls/Makefile
index ac54db297128..e573db7fc173 100644
--- a/fs/nls/Makefile
+++ b/fs/nls/Makefile
@@ -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
diff --git a/fs/nls/nls_utf8.c b/fs/nls/nls_utf8.c
deleted file mode 100644
index afcfbc4a14db..000000000000
--- a/fs/nls/nls_utf8.c
+++ /dev/null
@@ -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");
--
2.20.1