diff options
Diffstat (limited to 'source3/include')
-rw-r--r-- | source3/include/kanji.h | 34 | ||||
-rw-r--r-- | source3/include/proto.h | 9 | ||||
-rw-r--r-- | source3/include/smb.h | 5 |
3 files changed, 31 insertions, 17 deletions
diff --git a/source3/include/kanji.h b/source3/include/kanji.h index 101b98cfa3..302db13a27 100644 --- a/source3/include/kanji.h +++ b/source3/include/kanji.h @@ -103,10 +103,13 @@ #define bin2hex(x) \ ( (((int) (x)) >= 10)? (((int) (x))-10 + (int) 'a'): (((int) (x)) + (int) '0') ) -#else /* not _KANJI_C_ */ +/* For Hangul (Korean - code page 949). */ +#define is_hangul(c) ((0x81 <= ((unsigned char) (c)) && ((unsigned char) (c)) <= 0xfd)) -extern char *(*_dos_to_unix)(char *str, BOOL overwrite); -extern char *(*_unix_to_dos)(char *str, BOOL overwrite); +/* For traditional Chinese (known as Big5 encoding - code page 950). */ +#define is_big5_c1(c) ((0xa1 <= ((unsigned char) (c)) && ((unsigned char) (c)) <= 0xf9)) + +#else /* not _KANJI_C_ */ /* * The following is needed for AIX systems that have @@ -130,12 +133,24 @@ extern char *(*_unix_to_dos)(char *str, BOOL overwrite); #undef strtok #endif /* strtok */ -/* Ensure we use our definitions. */ +/* Ensure we use our definitions in all other files than kanji.c. */ -#define strchr sj_strchr -#define strrchr sj_strrchr -#define strstr sj_strstr -#define strtok sj_strtok +/* Function pointers we will replace. */ +extern char *(*multibyte_strchr)(char *s, int c); +extern char *(*multibyte_strrchr)(char *s, int c); +extern char *(*multibyte_strstr)(char *s1, char *s2); +extern char *(*multibyte_strtok)(char *s1, char *s2); +extern char *(*_dos_to_unix)(char *str, BOOL overwrite); +extern char *(*_unix_to_dos)(char *str, BOOL overwrite); +extern BOOL (*is_multibyte_char)(char c); + +#define strchr(s1, c) ((*multibyte_strchr)((s1), (c))) +#define strrchr(s1, c) ((*multibyte_strrchr)((s1), (c))) +#define strstr(s1, s2) ((*multibyte_strstr)((s1), (s2))) +#define strtok(s1, s2) ((*multibyte_strtok)((s1), (s2))) +#define dos_to_unix(x,y) ((*_dos_to_unix)((x), (y))) +#define unix_to_dos(x,y) ((*_unix_to_dos)((x), (y))) +#define skip_multibyte_char(c) ((*is_multibyte_char)((c))) #endif /* _KANJI_C_ */ @@ -149,7 +164,4 @@ extern char *(*_unix_to_dos)(char *str, BOOL overwrite); #define CAP_CODE (6) #define DOSV_CODE SJIS_CODE -#define unix_to_dos(x,y) unix2dos_format(x,y) -#define dos_to_unix(x,y) dos2unix_format(x,y) - #endif /* _KANJI_H_ */ diff --git a/source3/include/proto.h b/source3/include/proto.h index 802d9973df..47ef5812ca 100644 --- a/source3/include/proto.h +++ b/source3/include/proto.h @@ -9,12 +9,14 @@ BOOL allow_access(char *deny_list,char *allow_list,char *cname,char *caddr); /*The following definitions come from asyncdns.c */ int asyncdns_fd(void); +void kill_async_dns_child(); void start_async_dns(void); void run_dns_queue(void); BOOL queue_dns_query(struct packet_struct *p,struct nmb_name *question, struct name_record **n); BOOL queue_dns_query(struct packet_struct *p,struct nmb_name *question, struct name_record **n); +void kill_async_dns_child(); /*The following definitions come from cgi.c */ @@ -206,11 +208,8 @@ int reply_trans(char *inbuf,char *outbuf, int size, int bufsize); /*The following definitions come from kanji.c */ -char *sj_strtok(char *s1, char *s2); -char *sj_strstr(char *s1, char *s2); -char *sj_strchr (char *s, int c); -char *sj_strrchr(char *s, int c); -int interpret_coding_system(char *str); +void interpret_coding_system(char *str); +void initialize_multibyte_vectors( int client_codepage); /*The following definitions come from loadparm.c */ diff --git a/source3/include/smb.h b/source3/include/smb.h index 77f4006c4a..f7a134d797 100644 --- a/source3/include/smb.h +++ b/source3/include/smb.h @@ -2099,7 +2099,10 @@ enum case_handling {CASE_LOWER,CASE_UPPER}; #endif /* Defines needed for multi-codepage support. */ +#define MSDOS_LATIN_1_CODEPAGE 850 #define KANJI_CODEPAGE 932 +#define HANGUL_CODEPAGE 949 +#define BIG5_CODEPAGE 950 #ifdef KANJI /* @@ -2110,7 +2113,7 @@ enum case_handling {CASE_LOWER,CASE_UPPER}; /* * Default client code page - 850 - Western European */ -#define DEFAULT_CLIENT_CODE_PAGE 850 +#define DEFAULT_CLIENT_CODE_PAGE MSDOS_LATIN_1_CODEPAGE #endif /* KANJI */ /* |