diff options
Diffstat (limited to 'source/include/charset.h')
-rw-r--r-- | source/include/charset.h | 79 |
1 files changed, 73 insertions, 6 deletions
diff --git a/source/include/charset.h b/source/include/charset.h index 07d5e2d5993..5a683e09683 100644 --- a/source/include/charset.h +++ b/source/include/charset.h @@ -1,7 +1,11 @@ +#ifndef _CHARSET_H +#define _CHARSET_H + /* - Unix SMB/CIFS implementation. - charset defines - Copyright (C) Andrew Tridgell 2001 + Unix SMB/Netbios implementation. + Version 1.9. + Character set handling + Copyright (C) Andrew Tridgell 1992-1998 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -18,7 +22,70 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -/* this defines the charset types used in samba */ -typedef enum {CH_UCS2=0, CH_UNIX=1, CH_DISPLAY=2, CH_DOS=3, CH_UTF8=4} charset_t; +#ifndef CHARSET_C + +extern char *dos_char_map; +extern char *upper_char_map; +extern char *lower_char_map; +extern void add_char_string(char *s); +extern void charset_initialise(void); + +#ifdef toupper +#undef toupper +#endif + +#ifdef tolower +#undef tolower +#endif + +#ifdef isupper +#undef isupper +#endif + +#ifdef islower +#undef islower +#endif + +#ifdef isdoschar +#undef isdoschar +#endif + +#ifdef isspace +#undef isspace +#endif + +#define toupper(c) (upper_char_map[((c)&0xff)] & 0xff) +#define tolower(c) (lower_char_map[((c)&0xff)] & 0xff) +#define isupper(c) (((c)&0xff) != tolower((c)&0xff)) +#define islower(c) (((c)&0xff) != toupper((c)&0xff)) +#define isdoschar(c) (dos_char_map[((c)&0xff)] != 0) +#define isspace(c) ((c)==' ' || (c) == '\t') + +/* this is used to determine if a character is safe to use in + something that may be put on a command line */ +#define issafe(c) (isalnum((c&0xff)) || strchr("-._",c)) +#endif + +/* Dynamic codepage files defines. */ + +/* Version id for dynamically loadable codepage files. */ +#define CODEPAGE_FILE_VERSION_ID 0x1 +/* Version 1 codepage file header size. */ +#define CODEPAGE_HEADER_SIZE 8 +/* Offsets for codepage file header entries. */ +#define CODEPAGE_VERSION_OFFSET 0 +#define CODEPAGE_CLIENT_CODEPAGE_OFFSET 2 +#define CODEPAGE_LENGTH_OFFSET 4 + +/* Version id for dynamically loadable unicode map files. */ +#define UNICODE_MAP_FILE_VERSION_ID 0x8001 +/* Version 0x80000001 unicode map file header size. */ +#define UNICODE_MAP_HEADER_SIZE 30 +#define UNICODE_MAP_CODEPAGE_ID_SIZE 20 +/* Offsets for unicode map file header entries. */ +#define UNICODE_MAP_VERSION_OFFSET 0 +#define UNICODE_MAP_CLIENT_CODEPAGE_OFFSET 2 +#define UNICODE_MAP_CP_TO_UNICODE_LENGTH_OFFSET 22 +#define UNICODE_MAP_UNICODE_TO_CP_LENGTH_OFFSET 26 -#define NUM_CHARSETS 5 +#endif /* _CHARSET_H */ |