patch-2.3.31 linux/fs/ncpfs/ncplib_kernel.h
Next file: linux/fs/ncpfs/symlink.c
Previous file: linux/fs/ncpfs/ncplib_kernel.c
Back to the patch index
Back to the overall index
- Lines: 129
- Date:
Tue Dec 7 10:21:10 1999
- Orig file:
v2.3.30/linux/fs/ncpfs/ncplib_kernel.h
- Orig date:
Sun Nov 7 16:37:34 1999
diff -u --recursive --new-file v2.3.30/linux/fs/ncpfs/ncplib_kernel.h linux/fs/ncpfs/ncplib_kernel.h
@@ -4,7 +4,7 @@
* Copyright (C) 1995, 1996 by Volker Lendecke
* Modified for big endian by J.F. Chadima and David S. Miller
* Modified 1997 Peter Waltenberg, Bill Hawes, David Woodhouse for 2.1 dcache
- * Modified 1998 Wolfram Pienkoss for NLS
+ * Modified 1998, 1999 Wolfram Pienkoss for NLS
* Modified 1999 Wolfram Pienkoss for directory caching
*
*/
@@ -29,7 +29,9 @@
#ifdef CONFIG_NCPFS_NLS
#include <linux/nls.h>
-#endif
+#else
+#include <linux/ctype.h>
+#endif /* CONFIG_NCPFS_NLS */
#include <linux/ncp_fs.h>
@@ -97,81 +99,39 @@
#endif /* CONFIG_NCPFS_MOUNT_SUBDIR */
#ifdef CONFIG_NCPFS_NLS
-/* This are the NLS conversion routines with inspirations and code parts
- * from the vfat file system and hints from Petr Vandrovec.
- */
-/*
- * It should be replaced by charset specifc conversion. Gordon Chaffee
- * has prepared some things, but I don't know, what he thinks about it.
- * The conversion tables for the io charsets should be generatable by
- * Unicode table, shouldn't it? I have written so generation code for it.
- * The tables for the vendor specific codepages...? Hmm. The Samba sources
- * contains also any hints.
- */
-
-#define toupperif(c, u) ((((u) != 0) && ((c) >= 'a') && ((c) <= 'z')) \
- ? (c)-('a'-'A') : (c))
-#define tolowerif(c, u) ((((u) != 0) && ((c) >= 'A') && ((c) <= 'Z')) \
- ? (c)-('A'-'a') : (c))
-
-static inline void
-io2vol(struct ncp_server *server, char *name, int case_trans)
-{
- unsigned char nc;
- unsigned char *np;
- unsigned char *up;
- struct nls_unicode uc;
- struct nls_table *nls_in;
- struct nls_table *nls_out;
-
- nls_in = server->nls_io;
- nls_out = server->nls_vol;
- np = name;
-
- while (*np)
- {
- nc = 0;
- uc = nls_in->charset2uni[toupperif(*np, case_trans)];
- up = nls_out->page_uni2charset[uc.uni2];
- if (up != NULL) nc = up[uc.uni1];
- if (nc != 0) *np = nc;
- np++;
- }
-}
-
-static inline void
-vol2io(struct ncp_server *server, char *name, int case_trans)
-{
- unsigned char nc;
- unsigned char *np;
- unsigned char *up;
- struct nls_unicode uc;
- struct nls_table *nls_in;
- struct nls_table *nls_out;
-
- nls_in = server->nls_vol;
- nls_out = server->nls_io;
- np = name;
-
- while (*np)
- {
- nc = 0;
- uc = nls_in->charset2uni[*np];
- up = nls_out->page_uni2charset[uc.uni2];
- if (up != NULL) nc = up[uc.uni1];
- if (nc == 0) nc = *np;
- *np = tolowerif(nc, case_trans);
- np++;
- }
-}
+inline unsigned char ncp__tolower(struct nls_table *, unsigned char);
+inline unsigned char ncp__toupper(struct nls_table *, unsigned char);
+int ncp__io2vol(struct ncp_server *, unsigned char *, unsigned int *,
+ const unsigned char *, unsigned int, int);
+int ncp__vol2io(struct ncp_server *, unsigned char *, unsigned int *,
+ const unsigned char *, unsigned int, int);
+
+#define NCP_ESC ':'
+#define NCP_IO_TABLE(dentry) (NCP_SERVER((dentry)->d_inode)->nls_io)
+#define ncp_tolower(t, c) ncp__tolower(t, c)
+#define ncp_toupper(t, c) ncp__toupper(t, c)
+#define ncp_io2vol(S,m,i,n,k,U) ncp__io2vol(S,m,i,n,k,U)
+#define ncp_vol2io(S,m,i,n,k,U) ncp__vol2io(S,m,i,n,k,U)
#else
-#define io2vol(S,N,U) if (U) str_upper(N)
-#define vol2io(S,N,U) if (U) str_lower(N)
+int ncp__io2vol(unsigned char *, unsigned int *,
+ const unsigned char *, unsigned int, int);
+int ncp__vol2io(unsigned char *, unsigned int *,
+ const unsigned char *, unsigned int, int);
+
+#define NCP_IO_TABLE(dentry) NULL
+#define ncp_tolower(t, c) tolower(c)
+#define ncp_toupper(t, c) toupper(c)
+#define ncp_io2vol(S,m,i,n,k,U) ncp__io2vol(m,i,n,k,U)
+#define ncp_vol2io(S,m,i,n,k,U) ncp__vol2io(m,i,n,k,U)
#endif /* CONFIG_NCPFS_NLS */
+
+inline int
+ncp_strnicmp(struct nls_table *,
+ const unsigned char *, const unsigned char *, int);
#define NCP_GET_AGE(dentry) (jiffies - (dentry)->d_time)
#define NCP_MAX_AGE(server) ((server)->dentry_ttl)
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)