75 lines
1.4 KiB
C
75 lines
1.4 KiB
C
|
|
#ifndef _MBCSDEF_H_
|
|||
|
|
#define _MBCSDEF_H_
|
|||
|
|
|
|||
|
|
#define MBCSARRAY_SIZE 255
|
|||
|
|
|
|||
|
|
#define NEW_FILTER
|
|||
|
|
|
|||
|
|
#pragma pack(push, 1)
|
|||
|
|
typedef struct tagFT_mbcs_char
|
|||
|
|
{
|
|||
|
|
char wordEnd; //<2F><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7>Ƿ<C7B7>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD>
|
|||
|
|
#ifdef NEW_FILTER
|
|||
|
|
unsigned char idx[MBCSARRAY_SIZE];
|
|||
|
|
unsigned char count;
|
|||
|
|
tagFT_mbcs_char** mem;
|
|||
|
|
#else
|
|||
|
|
struct tagFT_mbcs_char* next[MBCSARRAY_SIZE]; //<2F><>ǰ<EFBFBD>ַ<EFBFBD><D6B7>ĺ<EFBFBD><C4BA><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ַ<EFBFBD>ֵ-1
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
#ifdef NEW_FILTER
|
|||
|
|
tagFT_mbcs_char* getNext(int index)
|
|||
|
|
{
|
|||
|
|
if (!mem) return NULL;
|
|||
|
|
unsigned char ridx = idx[index];
|
|||
|
|
if (ridx == 0) return NULL;
|
|||
|
|
return mem[ridx - 1];
|
|||
|
|
}
|
|||
|
|
void addNext(int index, tagFT_mbcs_char* next);
|
|||
|
|
#else
|
|||
|
|
tagFT_mbcs_char* getNext(int index)
|
|||
|
|
{
|
|||
|
|
return next[index];
|
|||
|
|
}
|
|||
|
|
void addNext(int index, tagFT_mbcs_char* next)
|
|||
|
|
{
|
|||
|
|
next[index] = next;
|
|||
|
|
}
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
}FT_MBCS_CHAR, *PFT_MBCS_CHAR;
|
|||
|
|
#pragma pack(pop)
|
|||
|
|
|
|||
|
|
#ifdef __cplusplus
|
|||
|
|
extern "C"
|
|||
|
|
{
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
#ifndef STDCALL
|
|||
|
|
#if (defined(WIN32) || defined(WINDOWS))
|
|||
|
|
#define STDCALL __stdcall
|
|||
|
|
#else
|
|||
|
|
#define STDCALL
|
|||
|
|
#endif
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
/*
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>MBCS<EFBFBD><EFBFBD><EFBFBD>δʱ<EFBFBD>
|
|||
|
|
*/
|
|||
|
|
PFT_MBCS_CHAR CreateMBCSFilter(void*);
|
|||
|
|
/*
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>MBCS<EFBFBD><EFBFBD><EFBFBD>δʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷű<EFBFBD>ʹ<EFBFBD>õ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>
|
|||
|
|
*/
|
|||
|
|
void STDCALL FreeMBCSFilter(PFT_MBCS_CHAR filter);
|
|||
|
|
int STDCALL LoadMBCSFilterWords(PFT_MBCS_CHAR filter, const char *fn);
|
|||
|
|
char* STDCALL MatchMBCSFilterWord(const PFT_MBCS_CHAR filter, const char *input, int *matchLen);
|
|||
|
|
//<2F><>һ<EFBFBD><D2BB><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>뵽<EFBFBD><EBB5BD><EFBFBD>δʱ<CEB4><CAB1><EFBFBD>
|
|||
|
|
int STDCALL AddMBCSFilterStrToTable(PFT_MBCS_CHAR filter,const char* str);
|
|||
|
|
|
|||
|
|
#ifdef __cplusplus
|
|||
|
|
}
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
#endif
|
|||
|
|
|