patch-2.2.16 linux/fs/nls/nls_cp861.c
Next file: linux/fs/nls/nls_cp862.c
Previous file: linux/fs/nls/nls_cp860.c
Back to the patch index
Back to the overall index
- Lines: 56
- Date:
Wed Jun 7 14:26:43 2000
- Orig file:
v2.2.15/linux/fs/nls/nls_cp861.c
- Orig date:
Sun Jan 4 10:55:09 1998
diff -urN v2.2.15/linux/fs/nls/nls_cp861.c linux/fs/nls/nls_cp861.c
@@ -11,6 +11,7 @@
#include <linux/kernel.h>
#include <linux/string.h>
#include <linux/nls.h>
+#include <linux/init.h>
static struct nls_unicode charset2uni[256] = {
/* 0x00*/
@@ -392,6 +393,29 @@
};
#endif
+static void uni2char(unsigned char ch, unsigned char cl, unsigned char *out, int boundlen, int *outlen)
+{
+ unsigned char *uni2charset;
+
+ if (boundlen <= 0)
+ return;
+
+ uni2charset = page_uni2charset[ch];
+ if (uni2charset && uni2charset[cl])
+ out[0] = uni2charset[cl];
+ else
+ out[0] = '?';
+ *outlen = 1;
+ return;
+}
+
+static void char2uni(unsigned char *rawstring, int *offset, unsigned char *uni1, unsigned char *uni2)
+{
+ *uni1 = charset2uni[*rawstring].uni1;
+ *uni2 = charset2uni[*rawstring].uni2;
+ *offset = 1;
+ return;
+}
static void inc_use_count(void)
{
@@ -405,14 +429,14 @@
static struct nls_table table = {
"cp861",
- page_uni2charset,
- charset2uni,
+ uni2char,
+ char2uni,
inc_use_count,
dec_use_count,
NULL
};
-int init_nls_cp861(void)
+int __init init_nls_cp861(void)
{
return register_nls(&table);
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)