Files
mir_server/Gateway/common/fastFT/mbcs_def.h

75 lines
1.4 KiB
C
Raw Permalink Normal View History

2025-01-09 17:45:40 +08:00
#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