diff options
30 files changed, 9510 insertions, 8960 deletions
diff --git a/sal/textenc/context.c b/sal/textenc/context.c new file mode 100644 index 000000000..8e76a8578 --- /dev/null +++ b/sal/textenc/context.c @@ -0,0 +1,86 @@ +/************************************************************************* + * + * $RCSfile: context.c,v $ + * + * $Revision: 1.1 $ + * + * last change: $Author: sb $ $Date: 2001-10-12 10:44:53 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRUNTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRUNTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc.. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef INCLUDED_RTL_TEXTENC_CONTEXT_H +#include "context.h" +#endif + +#ifndef _RTL_ALLOC_H_ +#include "rtl/alloc.h" +#endif + +void * ImplCreateUnicodeToTextContext(void) +{ + void * pContext = rtl_allocateMemory(sizeof (ImplUnicodeToTextContext)); + ((ImplUnicodeToTextContext *) pContext)->m_nHighSurrogate = 0; + return pContext; +} + +void ImplResetUnicodeToTextContext(void * pContext) +{ + if (pContext) + ((ImplUnicodeToTextContext *) pContext)->m_nHighSurrogate = 0; +} + +void ImplDestroyContext(void * pContext) +{ + rtl_freeMemory(pContext); +} diff --git a/sal/textenc/context.h b/sal/textenc/context.h new file mode 100644 index 000000000..1f3b3c7c0 --- /dev/null +++ b/sal/textenc/context.h @@ -0,0 +1,88 @@ +/************************************************************************* + * + * $RCSfile: context.h,v $ + * + * $Revision: 1.1 $ + * + * last change: $Author: sb $ $Date: 2001-10-12 10:44:53 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRUNTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRUNTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc.. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef INCLUDED_RTL_TEXTENC_CONTEXT_H +#define INCLUDED_RTL_TEXTENC_CONTEXT_H + +#ifndef _SAL_TYPES_H_ +#include "sal/types.h" +#endif + +#if defined __cplusplus +extern "C" { +#endif /* __cpluscplus */ + +typedef struct +{ + sal_Unicode m_nHighSurrogate; +} ImplUnicodeToTextContext; + +void * ImplCreateUnicodeToTextContext(void) SAL_THROW_EXTERN_C(); + +void ImplResetUnicodeToTextContext(void * pContext) SAL_THROW_EXTERN_C(); + +void ImplDestroyContext(void * pContext) SAL_THROW_EXTERN_C(); + +#if defined __cplusplus +} +#endif /* __cpluscplus */ + +#endif /* INCLUDED_RTL_TEXTENC_CONTEXT_H */ diff --git a/sal/textenc/converter.c b/sal/textenc/converter.c new file mode 100644 index 000000000..a5917c206 --- /dev/null +++ b/sal/textenc/converter.c @@ -0,0 +1,163 @@ +/************************************************************************* + * + * $RCSfile: converter.c,v $ + * + * $Revision: 1.1 $ + * + * last change: $Author: sb $ $Date: 2001-10-12 10:44:53 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRUNTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRUNTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc.. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef INCLUDED_RTL_TEXTENC_CONVERTER_H +#include "converter.h" +#endif + +#ifndef INCLUDED_RTL_TEXTENC_TENCHELP_H +#include "tenchelp.h" +#endif + +#ifndef _RTL_TEXTCVT_H +#include "rtl/textcvt.h" +#endif +#ifndef _SAL_TYPES_H_ +#include "sal/types.h" +#endif + +ImplBadInputConversionAction +ImplHandleBadInputMbTextToUnicodeConversion(sal_Bool bUndefined, + sal_uInt32 nFlags, + sal_Unicode ** pDestBufPtr, + sal_Unicode * pDestBufEnd, + sal_uInt32 * pInfo) +{ + *pInfo |= bUndefined ? RTL_TEXTTOUNICODE_INFO_MBUNDEFINED : + RTL_TEXTTOUNICODE_INFO_INVALID; + switch (nFlags & (bUndefined ? RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_MASK : + RTL_TEXTTOUNICODE_FLAGS_INVALID_MASK)) + { + case RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR: + case RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR: + *pInfo |= RTL_TEXTTOUNICODE_INFO_ERROR; + return IMPL_BAD_INPUT_STOP; + + case RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_IGNORE: + case RTL_TEXTTOUNICODE_FLAGS_INVALID_IGNORE: + return IMPL_BAD_INPUT_CONTINUE; + + default: /* RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_DEFAULT, + RTL_TEXTTOUNICODE_FLAGS_INVALID_DEFAULT */ + if (*pDestBufPtr != pDestBufEnd) + { + *(*pDestBufPtr)++ = RTL_UNICODE_CHAR_DEFAULT; + return IMPL_BAD_INPUT_CONTINUE; + } + else + return IMPL_BAD_INPUT_NO_OUTPUT; + } +} + +ImplBadInputConversionAction +ImplHandleBadInputUnicodeToTextConversion(sal_Bool bUndefined, + sal_uInt32 nFlags, + sal_Char ** pDestBufPtr, + sal_Char * pDestBufEnd, + sal_uInt32 * pInfo) +{ + *pInfo |= bUndefined ? RTL_UNICODETOTEXT_INFO_UNDEFINED : + RTL_UNICODETOTEXT_INFO_INVALID; + switch (nFlags & (bUndefined ? RTL_UNICODETOTEXT_FLAGS_UNDEFINED_MASK : + RTL_UNICODETOTEXT_FLAGS_INVALID_MASK)) + { + case RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR: + case RTL_UNICODETOTEXT_FLAGS_INVALID_ERROR: + *pInfo |= RTL_UNICODETOTEXT_INFO_ERROR; + return IMPL_BAD_INPUT_STOP; + + case RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE: + case RTL_UNICODETOTEXT_FLAGS_INVALID_IGNORE: + return IMPL_BAD_INPUT_CONTINUE; + + case RTL_UNICODETOTEXT_FLAGS_UNDEFINED_0: + case RTL_UNICODETOTEXT_FLAGS_INVALID_0: + if (*pDestBufPtr != pDestBufEnd) + { + *(*pDestBufPtr)++ = 0; + return IMPL_BAD_INPUT_CONTINUE; + } + else + return IMPL_BAD_INPUT_NO_OUTPUT; + + case RTL_UNICODETOTEXT_FLAGS_UNDEFINED_QUESTIONMARK: + case RTL_UNICODETOTEXT_FLAGS_INVALID_QUESTIONMARK: + default: /* RTL_UNICODETOTEXT_FLAGS_UNDEFINED_DEFAULT, + RTL_UNICODETOTEXT_FLAGS_INVALID_DEFAULT */ + if (*pDestBufPtr != pDestBufEnd) + { + *(*pDestBufPtr)++ = '?'; + return IMPL_BAD_INPUT_CONTINUE; + } + else + return IMPL_BAD_INPUT_NO_OUTPUT; + + case RTL_UNICODETOTEXT_FLAGS_UNDEFINED_UNDERLINE: + case RTL_UNICODETOTEXT_FLAGS_INVALID_UNDERLINE: + if (*pDestBufPtr != pDestBufEnd) + { + *(*pDestBufPtr)++ = '_'; + return IMPL_BAD_INPUT_CONTINUE; + } + else + return IMPL_BAD_INPUT_NO_OUTPUT; + } +} diff --git a/sal/textenc/converter.h b/sal/textenc/converter.h new file mode 100644 index 000000000..efa7a0f91 --- /dev/null +++ b/sal/textenc/converter.h @@ -0,0 +1,100 @@ +/************************************************************************* + * + * $RCSfile: converter.h,v $ + * + * $Revision: 1.1 $ + * + * last change: $Author: sb $ $Date: 2001-10-12 10:44:53 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRUNTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRUNTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc.. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef INCLUDED_RTL_TEXTENC_CONVERTER_H +#define INCLUDED_RTL_TEXTENC_CONVERTER_H + +#ifndef _SAL_TYPES_H_ +#include "sal/types.h" +#endif + +#if defined __cplusplus +extern "C" { +#endif /* __cpluscplus */ + +typedef enum +{ + IMPL_BAD_INPUT_STOP, + IMPL_BAD_INPUT_CONTINUE, + IMPL_BAD_INPUT_NO_OUTPUT +} ImplBadInputConversionAction; + +ImplBadInputConversionAction +ImplHandleBadInputMbTextToUnicodeConversion(sal_Bool bUndefined, + sal_uInt32 nFlags, + sal_Unicode ** pDestBufPtr, + sal_Unicode * pDestBufEnd, + sal_uInt32 * pInfo) + SAL_THROW_EXTERN_C(); + +ImplBadInputConversionAction +ImplHandleBadInputUnicodeToTextConversion(sal_Bool bUndefined, + sal_uInt32 nFlags, + sal_Char ** pDestBufPtr, + sal_Char * pDestBufEnd, + sal_uInt32 * pInfo) + SAL_THROW_EXTERN_C(); + +#if defined __cplusplus +} +#endif /* __cpluscplus */ + +#endif /* INCLUDED_RTL_TEXTENC_CONVERTER_H */ diff --git a/sal/textenc/converteuctw.c b/sal/textenc/converteuctw.c new file mode 100644 index 000000000..8e6f908f1 --- /dev/null +++ b/sal/textenc/converteuctw.c @@ -0,0 +1,518 @@ +/************************************************************************* + * + * $RCSfile: converteuctw.c,v $ + * + * $Revision: 1.1 $ + * + * last change: $Author: sb $ $Date: 2001-10-12 10:44:53 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRUNTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRUNTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc.. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef INCLUDED_RTL_TEXTENC_CONVERTEUCTW_H +#include "converteuctw.h" +#endif + +#ifndef INCLUDED_RTL_TEXTENC_CONTEXT_H +#include "context.h" +#endif +#ifndef INCLUDED_RTL_TEXTENC_CONVERTER_H +#include "converter.h" +#endif +#ifndef INCLUDED_RTL_TEXTENC_TENCHELP_H +#include "tenchelp.h" +#endif + +#ifndef _RTL_ALLOC_H_ +#include "rtl/alloc.h" +#endif +#ifndef _RTL_TEXTCVT_H +#include "rtl/textcvt.h" +#endif +#ifndef _SAL_TYPES_H_ +#include "sal/types.h" +#endif + +typedef enum +{ + IMPL_EUC_TW_TO_UNICODE_STATE_0, + IMPL_EUC_TW_TO_UNICODE_STATE_1, + IMPL_EUC_TW_TO_UNICODE_STATE_2_1, + IMPL_EUC_TW_TO_UNICODE_STATE_2_2, + IMPL_EUC_TW_TO_UNICODE_STATE_2_3 +} ImplEucTwToUnicodeState; + +typedef struct +{ + ImplEucTwToUnicodeState m_eState; + sal_Int32 m_nPlane; /* 0--15 */ + sal_Int32 m_nRow; /* 0--93 */ +} ImplEucTwToUnicodeContext; + +void * ImplCreateEucTwToUnicodeContext(void) +{ + void * pContext = rtl_allocateMemory(sizeof (ImplEucTwToUnicodeContext)); + ((ImplEucTwToUnicodeContext *) pContext)->m_eState + = IMPL_EUC_TW_TO_UNICODE_STATE_0; + return pContext; +} + +void ImplResetEucTwToUnicodeContext(void * pContext) +{ + if (pContext) + ((ImplEucTwToUnicodeContext *) pContext)->m_eState + = IMPL_EUC_TW_TO_UNICODE_STATE_0; +} + +sal_Size ImplConvertEucTwToUnicode(ImplTextConverterData const * pData, + void * pContext, + sal_Char const * pSrcBuf, + sal_Size nSrcBytes, + sal_Unicode * pDestBuf, + sal_Size nDestChars, + sal_uInt32 nFlags, + sal_uInt32 * pInfo, + sal_Size * pSrcCvtBytes) +{ + sal_Unicode const * pCns116431992Data + = ((ImplEucTwConverterData const *) pData)-> + m_pCns116431992ToUnicodeData; + sal_Int32 const * pCns116431992RowOffsets + = ((ImplEucTwConverterData const *) pData)-> + m_pCns116431992ToUnicodeRowOffsets; + sal_Int32 const * pCns116431992PlaneOffsets + = ((ImplEucTwConverterData const *) pData)-> + m_pCns116431992ToUnicodePlaneOffsets; + ImplEucTwToUnicodeState eState = IMPL_EUC_TW_TO_UNICODE_STATE_0; + sal_Int32 nPlane; + sal_Int32 nRow; + sal_uInt32 nInfo = 0; + sal_Size nConverted = 0; + sal_Unicode * pDestBufPtr = pDestBuf; + sal_Unicode * pDestBufEnd = pDestBuf + nDestChars; + + if (pContext) + { + eState = ((ImplEucTwToUnicodeContext *) pContext)->m_eState; + nPlane = ((ImplEucTwToUnicodeContext *) pContext)->m_nPlane; + nRow = ((ImplEucTwToUnicodeContext *) pContext)->m_nRow; + } + + for (; nConverted < nSrcBytes; ++nConverted) + { + sal_Bool bUndefined = sal_True; + sal_uInt32 nChar = *((sal_uChar const *) pSrcBuf)++; + switch (eState) + { + case IMPL_EUC_TW_TO_UNICODE_STATE_0: + if (nChar < 0x80) + if (pDestBufPtr != pDestBufEnd) + *pDestBufPtr++ = (sal_Unicode) nChar; + else + goto no_output; + else if (nChar >= 0xA1 && nChar <= 0xFE) + { + nRow = nChar - 0xA1; + eState = IMPL_EUC_TW_TO_UNICODE_STATE_1; + } + else if (nChar == 0x8E) + eState = IMPL_EUC_TW_TO_UNICODE_STATE_2_1; + else + { + bUndefined = sal_False; + goto bad_input; + } + break; + + case IMPL_EUC_TW_TO_UNICODE_STATE_1: + if (nChar >= 0xA1 && nChar <= 0xFE) + { + sal_Int32 nOffset = pCns116431992RowOffsets[nRow]; + if (nOffset == -1) + goto bad_input; + else + { + sal_Unicode nUnicode; + nOffset += nChar - 0xA1; + nUnicode = pCns116431992Data[nOffset]; + if (nUnicode == 0xFFFF) + goto bad_input; + else if (nUnicode < RTL_UNICODE_START_HIGH_SURROGATES + || nUnicode > RTL_UNICODE_END_HIGH_SURROGATES) + if (pDestBufPtr != pDestBufEnd) + *pDestBufPtr++ = nUnicode; + else + goto no_output; + else + if (pDestBufEnd - pDestBufPtr >= 2) + { + *pDestBufPtr++ = nUnicode; + *pDestBufPtr++ = pCns116431992Data[nOffset + 94]; + } + else + goto no_output; + eState = IMPL_EUC_TW_TO_UNICODE_STATE_0; + } + } + else + { + bUndefined = sal_False; + goto bad_input; + } + break; + + case IMPL_EUC_TW_TO_UNICODE_STATE_2_1: + if (nChar >= 0xA1 && nChar <= 0xB0) + { + nPlane = nChar - 0xA1; + ++eState; + } + else + { + bUndefined = sal_False; + goto bad_input; + } + break; + + case IMPL_EUC_TW_TO_UNICODE_STATE_2_2: + if (nChar >= 0xA1 && nChar <= 0xFE) + { + nRow = nChar - 0xA1; + ++eState; + } + else + { + bUndefined = sal_False; + goto bad_input; + } + break; + + case IMPL_EUC_TW_TO_UNICODE_STATE_2_3: + if (nChar >= 0xA1 && nChar <= 0xFE) + { + sal_Int32 nPlaneOffset = pCns116431992PlaneOffsets[nPlane]; + if (nPlaneOffset == -1) + goto bad_input; + else + { + sal_Int32 nOffset + = pCns116431992RowOffsets[nPlaneOffset + nRow]; + if (nOffset == -1) + goto bad_input; + else + { + sal_Unicode nUnicode; + nOffset += nChar - 0xA1; + nUnicode = pCns116431992Data[nOffset]; + if (nUnicode == 0xFFFF) + goto bad_input; + else if (nUnicode < RTL_UNICODE_START_HIGH_SURROGATES + || nUnicode + > RTL_UNICODE_END_HIGH_SURROGATES) + if (pDestBufPtr != pDestBufEnd) + *pDestBufPtr++ = nUnicode; + else + goto no_output; + else + if (pDestBufEnd - pDestBufPtr >= 2) + { + *pDestBufPtr++ = nUnicode; + *pDestBufPtr++ + = pCns116431992Data[nOffset + 94]; + } + else + goto no_output; + eState = IMPL_EUC_TW_TO_UNICODE_STATE_0; + } + } + } + else + { + bUndefined = sal_False; + goto bad_input; + } + break; + } + continue; + + bad_input: + switch (ImplHandleBadInputMbTextToUnicodeConversion(bUndefined, + nFlags, + &pDestBufPtr, + pDestBufEnd, + &nInfo)) + { + case IMPL_BAD_INPUT_STOP: + eState = IMPL_EUC_TW_TO_UNICODE_STATE_0; + break; + + case IMPL_BAD_INPUT_CONTINUE: + eState = IMPL_EUC_TW_TO_UNICODE_STATE_0; + continue; + + case IMPL_BAD_INPUT_NO_OUTPUT: + goto no_output; + } + break; + + no_output: + --pSrcBuf; + nInfo |= RTL_TEXTTOUNICODE_INFO_DESTBUFFERTOSMALL; + break; + } + + if (eState != IMPL_EUC_TW_TO_UNICODE_STATE_0 + && (nInfo & (RTL_TEXTTOUNICODE_INFO_ERROR + | RTL_TEXTTOUNICODE_INFO_DESTBUFFERTOSMALL)) + == 0) + if ((nFlags & RTL_TEXTTOUNICODE_FLAGS_FLUSH) == 0) + nInfo |= RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOSMALL; + else + switch (ImplHandleBadInputMbTextToUnicodeConversion(sal_False, + nFlags, + &pDestBufPtr, + pDestBufEnd, + &nInfo)) + { + case IMPL_BAD_INPUT_STOP: + case IMPL_BAD_INPUT_CONTINUE: + eState = IMPL_EUC_TW_TO_UNICODE_STATE_0; + break; + + case IMPL_BAD_INPUT_NO_OUTPUT: + nInfo |= RTL_TEXTTOUNICODE_INFO_DESTBUFFERTOSMALL; + break; + } + + if (pContext) + { + ((ImplEucTwToUnicodeContext *) pContext)->m_eState = eState; + ((ImplEucTwToUnicodeContext *) pContext)->m_nPlane = nPlane; + ((ImplEucTwToUnicodeContext *) pContext)->m_nRow = nRow; + } + if (pInfo) + *pInfo = nInfo; + if (pSrcCvtBytes) + *pSrcCvtBytes = nConverted; + + return pDestBufPtr - pDestBuf; +} + +sal_Size ImplConvertUnicodeToEucTw(ImplTextConverterData const * pData, + void * pContext, + sal_Unicode const * pSrcBuf, + sal_Size nSrcChars, + sal_Char * pDestBuf, + sal_Size nDestBytes, + sal_uInt32 nFlags, + sal_uInt32 * pInfo, + sal_Size * pSrcCvtChars) +{ + /* TODO! RTL_UNICODETOTEXT_FLAGS_UNDEFINED_REPLACE + RTL_UNICODETOTEXT_FLAGS_UNDEFINED_REPLACESTR + RTL_UNICODETOTEXT_FLAGS_PRIVATE_MAPTO0 + RTL_UNICODETOTEXT_FLAGS_NONSPACING_IGNORE + RTL_UNICODETOTEXT_FLAGS_CONTROL_IGNORE + RTL_UNICODETOTEXT_FLAGS_PRIVATE_IGNORE + RTL_UNICODETOTEXT_FLAGS_NOCOMPOSITE */ + + sal_uInt32 const * pCns116431992Data + = ((ImplEucTwConverterData const *) pData)-> + m_pUnicodeToCns116431992Data; + sal_Int32 const * pCns116431992PageOffsets + = ((ImplEucTwConverterData const *) pData)-> + m_pUnicodeToCns116431992PageOffsets; + sal_Int32 const * pCns116431992PlaneOffsets + = ((ImplEucTwConverterData const *) pData)-> + m_pUnicodeToCns116431992PlaneOffsets; + sal_Unicode nHighSurrogate = 0; + sal_uInt32 nInfo = 0; + sal_Size nConverted = 0; + sal_Char * pDestBufPtr = pDestBuf; + sal_Char * pDestBufEnd = pDestBuf + nDestBytes; + + if (pContext) + nHighSurrogate + = ((ImplUnicodeToTextContext *) pContext)->m_nHighSurrogate; + + for (; nConverted < nSrcChars; ++nConverted) + { + sal_Bool bUndefined = sal_True; + sal_uInt32 nChar = *pSrcBuf++; + if (nHighSurrogate == 0) + if (nChar < 0x80) + if (pDestBufPtr != pDestBufEnd) + *pDestBufPtr++ = (sal_Char) nChar; + else + goto no_output; + else if (nChar >= RTL_UNICODE_START_HIGH_SURROGATES + && nChar <= RTL_UNICODE_END_HIGH_SURROGATES) + nHighSurrogate = (sal_Unicode) nChar; + else if ((nChar < RTL_UNICODE_START_LOW_SURROGATES + || nChar > RTL_UNICODE_END_LOW_SURROGATES) + && (nChar < 0xFDD0 || nChar > 0xFDEF) + && nChar < 0xFFFE) + goto translate; + else + { + bUndefined = sal_False; + goto bad_input; + } + else + if (nChar >= RTL_UNICODE_START_LOW_SURROGATES + && nChar <= RTL_UNICODE_END_LOW_SURROGATES) + { + nChar = ((nHighSurrogate & 0x3FF) << 10 | nChar & 0x3FF) + + 0x10000; + if ((nChar & 0xFFFF) < 0xFFFE) + goto translate; + else + { + bUndefined = sal_False; + goto bad_input; + } + } + else + { + bUndefined = sal_False; + goto bad_input; + } + continue; + + translate: + { + sal_Int32 nOffset = pCns116431992PlaneOffsets[nChar >> 16]; + sal_uInt32 nData; + sal_uInt32 nPlane; + if (nOffset == -1) + goto bad_input; + nOffset + = pCns116431992PageOffsets[nOffset + ((nChar & 0xFF00) >> 8)]; + if (nOffset == -1) + goto bad_input; + nData = pCns116431992Data[nOffset + (nChar & 0xFF)]; + if (nData == 0) + goto bad_input; + nPlane = nData >> 16; + if (pDestBufEnd - pDestBufPtr < (nPlane == 1 ? 2 : 4)) + goto no_output; + if (nPlane != 1) + { + *pDestBufPtr++ = (sal_Char) 0x8E; + *pDestBufPtr++ = (sal_Char) (0xA0 + nPlane); + } + *pDestBufPtr++ = (sal_Char) (nData >> 8 & 0xFF); + *pDestBufPtr++ = (sal_Char) (nData & 0xFF); + nHighSurrogate = 0; + } + continue; + + bad_input: + switch (ImplHandleBadInputUnicodeToTextConversion(bUndefined, + nFlags, + &pDestBufPtr, + pDestBufEnd, + &nInfo)) + { + case IMPL_BAD_INPUT_STOP: + nHighSurrogate = 0; + break; + + case IMPL_BAD_INPUT_CONTINUE: + nHighSurrogate = 0; + continue; + + case IMPL_BAD_INPUT_NO_OUTPUT: + goto no_output; + } + break; + + no_output: + --pSrcBuf; + nInfo |= RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL; + break; + } + + if (nHighSurrogate != 0 + && (nInfo & (RTL_UNICODETOTEXT_INFO_ERROR + | RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL)) + == 0) + if ((nFlags & RTL_UNICODETOTEXT_FLAGS_FLUSH) != 0) + nInfo |= RTL_UNICODETOTEXT_INFO_SRCBUFFERTOSMALL; + else + switch (ImplHandleBadInputUnicodeToTextConversion(sal_False, + nFlags, + &pDestBufPtr, + pDestBufEnd, + &nInfo)) + { + case IMPL_BAD_INPUT_STOP: + case IMPL_BAD_INPUT_CONTINUE: + nHighSurrogate = 0; + break; + + case IMPL_BAD_INPUT_NO_OUTPUT: + nInfo |= RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL; + break; + } + + if (pContext) + ((ImplUnicodeToTextContext *) pContext)->m_nHighSurrogate + = nHighSurrogate; + if (pInfo) + *pInfo = nInfo; + if (pSrcCvtChars) + *pSrcCvtChars = nConverted; + + return pDestBufPtr - pDestBuf; +} diff --git a/sal/textenc/converteuctw.h b/sal/textenc/converteuctw.h new file mode 100644 index 000000000..9f176b8dc --- /dev/null +++ b/sal/textenc/converteuctw.h @@ -0,0 +1,117 @@ +/************************************************************************* + * + * $RCSfile: converteuctw.h,v $ + * + * $Revision: 1.1 $ + * + * last change: $Author: sb $ $Date: 2001-10-12 10:44:53 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRUNTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRUNTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc.. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef INCLUDED_RTL_TEXTENC_CONVERTEUCTW_H +#define INCLUDED_RTL_TEXTENC_CONVERTEUCTW_H + +#ifndef INCLUDED_RTL_TEXTENC_TENCHELP_H +#include "tenchelp.h" +#endif + +#ifndef _SAL_TYPES_H_ +#include "sal/types.h" +#endif + +#if defined __cplusplus +extern "C" { +#endif /* __cpluscplus */ + +typedef struct +{ + sal_Unicode const * m_pCns116431992ToUnicodeData; + sal_Int32 const * m_pCns116431992ToUnicodeRowOffsets; + sal_Int32 const * m_pCns116431992ToUnicodePlaneOffsets; + sal_uInt32 const * m_pUnicodeToCns116431992Data; + sal_Int32 const * m_pUnicodeToCns116431992PageOffsets; + sal_Int32 const * m_pUnicodeToCns116431992PlaneOffsets; +} ImplEucTwConverterData; + +void * ImplCreateEucTwToUnicodeContext(void) SAL_THROW_EXTERN_C(); + +void ImplResetEucTwToUnicodeContext(void * pContext) SAL_THROW_EXTERN_C(); + +sal_Size ImplConvertEucTwToUnicode(ImplTextConverterData const * pData, + void * pContext, + sal_Char const * pSrcBuf, + sal_Size nSrcBytes, + sal_Unicode * pDestBuf, + sal_Size nDestChars, + sal_uInt32 nFlags, + sal_uInt32 * pInfo, + sal_Size * pSrcCvtBytes) + SAL_THROW_EXTERN_C(); + +sal_Size ImplConvertUnicodeToEucTw(ImplTextConverterData const * pData, + void * pContext, + sal_Unicode const * pSrcBuf, + sal_Size nSrcChars, + sal_Char * pDestBuf, + sal_Size nDestBytes, + sal_uInt32 nFlags, + sal_uInt32 * pInfo, + sal_Size * pSrcCvtChars) + SAL_THROW_EXTERN_C(); + +#if defined __cplusplus +} +#endif /* __cpluscplus */ + +#endif /* INCLUDED_RTL_TEXTENC_CONVERTEUCTW_H */ diff --git a/sal/textenc/converteuctw.tab b/sal/textenc/converteuctw.tab new file mode 100644 index 000000000..79b8595b0 --- /dev/null +++ b/sal/textenc/converteuctw.tab @@ -0,0 +1,109 @@ +/************************************************************************* + * + * $RCSfile: converteuctw.tab,v $ + * + * $Revision: 1.1 $ + * + * last change: $Author: sb $ $Date: 2001-10-12 10:44:53 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRUNTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRUNTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc.. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef INCLUDED_RTL_TEXTENC_CONTEXT_H +#include "context.h" +#endif +#ifndef INCLUDED_RTL_TEXTENC_CONVERTEUCTW_H +#include "converteuctw.h" +#endif + +#ifndef _RTL_TENCINFO_H +#include "rtl/tencinfo.h" +#endif +#ifndef _RTL_TEXTENC_H +#include "rtl/textenc.h" +#endif + +#ifndef INCLUDED_STDDEF_H +#include <stddef.h> +#define INCLUDED_STDDEF_H +#endif + +#include "generate/cns116431992.tab" + +static ImplEucTwConverterData const aImplEucTwConvertData + = { aImplCns116431992ToUnicodeData, + aImplCns116431992ToUnicodeRowOffsets, + aImplCns116431992ToUnicodePlaneOffsets, + aImplUnicodeToCns116431992Data, + aImplUnicodeToCns116431992PageOffsets, + aImplUnicodeToCns116431992PlaneOffsets }; + +static ImplTextEncodingData const aImplEucTwTextEncodingData + = { { &aImplEucTwConvertData, + &ImplConvertEucTwToUnicode, + &ImplConvertUnicodeToEucTw, + &ImplCreateEucTwToUnicodeContext, + &ImplDestroyContext, + &ImplResetEucTwToUnicodeContext, + &ImplCreateUnicodeToTextContext, + &ImplDestroyContext, + &ImplResetUnicodeToTextContext }, + RTL_TEXTENCODING_EUC_TW, + 1, + 4, + 2, + 0, /* TODO! */ + NULL, /* TODO! */ + NULL, /* TODO! */ + RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MULTIBYTE }; + /* SCRIPT_CHINESE_TRADITIONAL */ diff --git a/sal/textenc/convertgb18030.c b/sal/textenc/convertgb18030.c new file mode 100644 index 000000000..318ed0174 --- /dev/null +++ b/sal/textenc/convertgb18030.c @@ -0,0 +1,533 @@ +/************************************************************************* + * + * $RCSfile: convertgb18030.c,v $ + * + * $Revision: 1.1 $ + * + * last change: $Author: sb $ $Date: 2001-10-12 10:44:53 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRUNTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRUNTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc.. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef INCLUDED_RTL_TEXTENC_CONVERTGB18030_H +#include "convertgb18030.h" +#endif + +#ifndef INCLUDED_RTL_TEXTENC_CONTEXT_H +#include "context.h" +#endif +#ifndef INCLUDED_RTL_TEXTENC_CONVERTER_H +#include "converter.h" +#endif +#ifndef INCLUDED_RTL_TEXTENC_TENCHELP_H +#include "tenchelp.h" +#endif + +#ifndef _RTL_ALLOC_H_ +#include "rtl/alloc.h" +#endif +#ifndef _RTL_TEXTCVT_H +#include "rtl/textcvt.h" +#endif +#ifndef _SAL_TYPES_H_ +#include "sal/types.h" +#endif + +typedef enum +{ + IMPL_GB_18030_TO_UNICODE_STATE_0, + IMPL_GB_18030_TO_UNICODE_STATE_1, + IMPL_GB_18030_TO_UNICODE_STATE_2, + IMPL_GB_18030_TO_UNICODE_STATE_3 +} ImplGb18030ToUnicodeState; + +typedef struct +{ + ImplGb18030ToUnicodeState m_eState; + sal_uInt32 m_nCode; +} ImplGb18030ToUnicodeContext; + +void * ImplCreateGb18030ToUnicodeContext(void) +{ + void * pContext + = rtl_allocateMemory(sizeof (ImplGb18030ToUnicodeContext)); + ((ImplGb18030ToUnicodeContext *) pContext)->m_eState + = IMPL_GB_18030_TO_UNICODE_STATE_0; + return pContext; +} + +void ImplResetGb18030ToUnicodeContext(void * pContext) +{ + if (pContext) + ((ImplGb18030ToUnicodeContext *) pContext)->m_eState + = IMPL_GB_18030_TO_UNICODE_STATE_0; +} + +sal_Size ImplConvertGb18030ToUnicode(ImplTextConverterData const * pData, + void * pContext, + sal_Char const * pSrcBuf, + sal_Size nSrcBytes, + sal_Unicode * pDestBuf, + sal_Size nDestChars, + sal_uInt32 nFlags, + sal_uInt32 * pInfo, + sal_Size * pSrcCvtBytes) +{ + sal_Unicode const * pGb18030Data + = ((ImplGb18030ConverterData const *) pData)->m_pGb18030ToUnicodeData; + ImplGb180302000ToUnicodeRange const * pGb18030Ranges + = ((ImplGb18030ConverterData const *) pData)-> + m_pGb18030ToUnicodeRanges; + ImplGb18030ToUnicodeState eState = IMPL_GB_18030_TO_UNICODE_STATE_0; + sal_uInt32 nCode; + sal_uInt32 nInfo = 0; + sal_Size nConverted = 0; + sal_Unicode * pDestBufPtr = pDestBuf; + sal_Unicode * pDestBufEnd = pDestBuf + nDestChars; + + if (pContext) + { + eState = ((ImplGb18030ToUnicodeContext *) pContext)->m_eState; + nCode = ((ImplGb18030ToUnicodeContext *) pContext)->m_nCode; + } + + for (; nConverted < nSrcBytes; ++nConverted) + { + sal_Bool bUndefined = sal_True; + sal_uInt32 nChar = *((sal_uChar const *) pSrcBuf)++; + switch (eState) + { + case IMPL_GB_18030_TO_UNICODE_STATE_0: + if (nChar < 0x80) + if (pDestBufPtr != pDestBufEnd) + *pDestBufPtr++ = (sal_Unicode) nChar; + else + goto no_output; + else if (nChar == 0x80) + goto bad_input; + else if (nChar <= 0xFE) + { + nCode = nChar - 0x81; + eState = IMPL_GB_18030_TO_UNICODE_STATE_1; + } + else + { + bUndefined = sal_False; + goto bad_input; + } + break; + + case IMPL_GB_18030_TO_UNICODE_STATE_1: + if (nChar >= 0x30 && nChar <= 0x39) + { + nCode = nCode * 10 + (nChar - 0x30); + eState = IMPL_GB_18030_TO_UNICODE_STATE_2; + } + else if (nChar >= 0x40 && nChar <= 0x7E + || nChar >= 0x80 && nChar <= 0xFE) + { + nCode = nCode * 190 + (nChar <= 0x7E ? nChar - 0x40 : + nChar - 0x80 + 63); + if (pDestBufPtr != pDestBufEnd) + *pDestBufPtr++ = pGb18030Data[nCode]; + else + goto no_output; + eState = IMPL_GB_18030_TO_UNICODE_STATE_0; + } + else + { + bUndefined = sal_False; + goto bad_input; + } + break; + + case IMPL_GB_18030_TO_UNICODE_STATE_2: + if (nChar >= 0x81 && nChar <= 0xFE) + { + nCode = nCode * 126 + (nChar - 0x81); + eState = IMPL_GB_18030_TO_UNICODE_STATE_3; + } + else + { + bUndefined = sal_False; + goto bad_input; + } + break; + + case IMPL_GB_18030_TO_UNICODE_STATE_3: + if (nChar >= 0x30 && nChar <= 0x39) + { + nCode = nCode * 10 + (nChar - 0x30); + + /* 90 30 81 30 to E3 32 9A 35 maps to U+10000 to U+10FFFF: */ + if (nCode >= 189000 && nCode <= 1237575) + if (pDestBufEnd - pDestBufPtr >= 2) + { + nCode -= 189000; + *pDestBufPtr++ + = (sal_Unicode) + (RTL_UNICODE_START_HIGH_SURROGATES + | (nCode >> 10)); + *pDestBufPtr++ + = (sal_Unicode) + (RTL_UNICODE_START_LOW_SURROGATES + | (nCode & 0x3FF)); + } + else + goto no_output; + else + { + ImplGb180302000ToUnicodeRange const * pRange + = pGb18030Ranges; + sal_uInt32 nFirstNonRange = 0; + for (;;) + { + if (pRange->m_nNonRangeDataIndex == -1) + goto bad_input; + else if (nCode < pRange->m_nFirstLinear) + { + if (pDestBufPtr != pDestBufEnd) + *pDestBufPtr++ + = pGb18030Data[ + pRange->m_nNonRangeDataIndex + + (nCode - nFirstNonRange)]; + else + goto no_output; + break; + } + else if (nCode < pRange->m_nPastLinear) + { + if (pDestBufPtr != pDestBufEnd) + *pDestBufPtr++ + = (sal_Unicode) + (pRange->m_nFirstUnicode + + (nCode + - pRange-> + m_nFirstLinear)); + else + goto no_output; + break; + } + nFirstNonRange = (pRange++)->m_nPastLinear; + } + } + eState = IMPL_GB_18030_TO_UNICODE_STATE_0; + } + else + { + bUndefined = sal_False; + goto bad_input; + } + break; + } + continue; + + bad_input: + switch (ImplHandleBadInputMbTextToUnicodeConversion(bUndefined, + nFlags, + &pDestBufPtr, + pDestBufEnd, + &nInfo)) + { + case IMPL_BAD_INPUT_STOP: + eState = IMPL_GB_18030_TO_UNICODE_STATE_0; + break; + + case IMPL_BAD_INPUT_CONTINUE: + eState = IMPL_GB_18030_TO_UNICODE_STATE_0; + continue; + + case IMPL_BAD_INPUT_NO_OUTPUT: + goto no_output; + } + break; + + no_output: + --pSrcBuf; + nInfo |= RTL_TEXTTOUNICODE_INFO_DESTBUFFERTOSMALL; + break; + } + + if (eState != IMPL_GB_18030_TO_UNICODE_STATE_0 + && (nInfo & (RTL_TEXTTOUNICODE_INFO_ERROR + | RTL_TEXTTOUNICODE_INFO_DESTBUFFERTOSMALL)) + == 0) + if ((nFlags & RTL_TEXTTOUNICODE_FLAGS_FLUSH) == 0) + nInfo |= RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOSMALL; + else + switch (ImplHandleBadInputMbTextToUnicodeConversion(sal_False, + nFlags, + &pDestBufPtr, + pDestBufEnd, + &nInfo)) + { + case IMPL_BAD_INPUT_STOP: + case IMPL_BAD_INPUT_CONTINUE: + eState = IMPL_GB_18030_TO_UNICODE_STATE_0; + break; + + case IMPL_BAD_INPUT_NO_OUTPUT: + nInfo |= RTL_TEXTTOUNICODE_INFO_DESTBUFFERTOSMALL; + break; + } + + if (pContext) + { + ((ImplGb18030ToUnicodeContext *) pContext)->m_eState = eState; + ((ImplGb18030ToUnicodeContext *) pContext)->m_nCode = nCode; + } + if (pInfo) + *pInfo = nInfo; + if (pSrcCvtBytes) + *pSrcCvtBytes = nConverted; + + return pDestBufPtr - pDestBuf; +} + +sal_Size ImplConvertUnicodeToGb18030(ImplTextConverterData const * pData, + void * pContext, + sal_Unicode const * pSrcBuf, + sal_Size nSrcChars, + sal_Char * pDestBuf, + sal_Size nDestBytes, + sal_uInt32 nFlags, + sal_uInt32 * pInfo, + sal_Size * pSrcCvtChars) +{ + /* TODO! RTL_UNICODETOTEXT_FLAGS_UNDEFINED_REPLACE + RTL_UNICODETOTEXT_FLAGS_UNDEFINED_REPLACESTR + RTL_UNICODETOTEXT_FLAGS_PRIVATE_MAPTO0 + RTL_UNICODETOTEXT_FLAGS_NONSPACING_IGNORE + RTL_UNICODETOTEXT_FLAGS_CONTROL_IGNORE + RTL_UNICODETOTEXT_FLAGS_PRIVATE_IGNORE + RTL_UNICODETOTEXT_FLAGS_NOCOMPOSITE */ + + sal_uInt32 const * pGb18030Data + = ((ImplGb18030ConverterData const *) pData)-> + m_pUnicodeToGb18030Data; + ImplUnicodeToGb180302000Range const * pGb18030Ranges + = ((ImplGb18030ConverterData const *) pData)-> + m_pUnicodeToGb18030Ranges; + sal_Unicode nHighSurrogate = 0; + sal_uInt32 nInfo = 0; + sal_Size nConverted = 0; + sal_Char * pDestBufPtr = pDestBuf; + sal_Char * pDestBufEnd = pDestBuf + nDestBytes; + + if (pContext) + nHighSurrogate + = ((ImplUnicodeToTextContext *) pContext)->m_nHighSurrogate; + + for (; nConverted < nSrcChars; ++nConverted) + { + sal_Bool bUndefined = sal_True; + sal_uInt32 nChar = *pSrcBuf++; + if (nHighSurrogate == 0) + if (nChar < 0x80) + if (pDestBufPtr != pDestBufEnd) + *pDestBufPtr++ = (sal_Char) nChar; + else + goto no_output; + else if (nChar >= RTL_UNICODE_START_HIGH_SURROGATES + && nChar <= RTL_UNICODE_END_HIGH_SURROGATES) + nHighSurrogate = (sal_Unicode) nChar; + else if ((nChar < RTL_UNICODE_START_LOW_SURROGATES + || nChar > RTL_UNICODE_END_LOW_SURROGATES) + && (nChar < 0xFDD0 || nChar > 0xFDEF) + && nChar < 0xFFFE) + { + ImplUnicodeToGb180302000Range const * pRange + = pGb18030Ranges; + sal_Unicode nFirstNonRange = 0x80; + for (;;) + { + if (nChar < pRange->m_nFirstUnicode) + { + sal_uInt32 nCode + = pGb18030Data[pRange->m_nNonRangeDataIndex + + (nChar - nFirstNonRange)]; + if (pDestBufEnd - pDestBufPtr + >= (nCode <= 0xFFFF ? 2 : 4)) + { + if (nCode > 0xFFFF) + { + *pDestBufPtr++ = (sal_Char) (nCode >> 24); + *pDestBufPtr++ = (sal_Char) (nCode >> 16 + & 0xFF); + } + *pDestBufPtr++ = (sal_Char) (nCode >> 8 & 0xFF); + *pDestBufPtr++ = (sal_Char) (nCode & 0xFF); + } + else + goto no_output; + break; + } + else if (nChar <= pRange->m_nLastUnicode) + { + if (pDestBufEnd - pDestBufPtr >= 4) + { + sal_uInt32 nCode + = pRange->m_nFirstLinear + + (nChar - pRange->m_nFirstUnicode); + *pDestBufPtr++ = (sal_Char) (nCode / 12600 + + 0x81); + *pDestBufPtr++ = (sal_Char) (nCode / 1260 % 10 + + 0x30); + *pDestBufPtr++ = (sal_Char) (nCode / 10 % 126 + + 0x81); + *pDestBufPtr++ = (sal_Char) (nCode % 10 + 0x30); + } + else + goto no_output; + break; + } + nFirstNonRange = (sal_Unicode) ((pRange++)->m_nLastUnicode + + 1); + } + nHighSurrogate = 0; + } + else + { + bUndefined = sal_False; + goto bad_input; + } + else + if (nChar >= RTL_UNICODE_START_LOW_SURROGATES + && nChar <= RTL_UNICODE_END_LOW_SURROGATES) + { + sal_uInt32 nCode = (nHighSurrogate & 0x3FF) << 10 + | nChar & 0x3FF; + if ((nCode & 0xFFFF) < 0xFFFE) + if (pDestBufEnd - pDestBufPtr >= 4) + { + *pDestBufPtr++ = (sal_Char) (nCode / 12600 + 0x90); + *pDestBufPtr++ = (sal_Char) (nCode / 1260 % 10 + + 0x30); + *pDestBufPtr++ = (sal_Char) (nCode / 10 % 126 + 0x81); + *pDestBufPtr++ = (sal_Char) (nCode % 10 + 0x30); + nHighSurrogate = 0; + } + else + goto no_output; + else + { + bUndefined = sal_False; + goto bad_input; + } + } + else + { + bUndefined = sal_False; + goto bad_input; + } + continue; + + bad_input: + switch (ImplHandleBadInputUnicodeToTextConversion(bUndefined, + nFlags, + &pDestBufPtr, + pDestBufEnd, + &nInfo)) + { + case IMPL_BAD_INPUT_STOP: + nHighSurrogate = 0; + break; + + case IMPL_BAD_INPUT_CONTINUE: + nHighSurrogate = 0; + continue; + + case IMPL_BAD_INPUT_NO_OUTPUT: + goto no_output; + } + break; + + no_output: + --pSrcBuf; + nInfo |= RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL; + break; + } + + if (nHighSurrogate != 0 + && (nInfo & (RTL_UNICODETOTEXT_INFO_ERROR + | RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL)) + == 0) + if ((nFlags & RTL_UNICODETOTEXT_FLAGS_FLUSH) != 0) + nInfo |= RTL_UNICODETOTEXT_INFO_SRCBUFFERTOSMALL; + else + switch (ImplHandleBadInputUnicodeToTextConversion(sal_False, + nFlags, + &pDestBufPtr, + pDestBufEnd, + &nInfo)) + { + case IMPL_BAD_INPUT_STOP: + case IMPL_BAD_INPUT_CONTINUE: + nHighSurrogate = 0; + break; + + case IMPL_BAD_INPUT_NO_OUTPUT: + nInfo |= RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL; + break; + } + + if (pContext) + ((ImplUnicodeToTextContext *) pContext)->m_nHighSurrogate + = nHighSurrogate; + if (pInfo) + *pInfo = nInfo; + if (pSrcCvtChars) + *pSrcCvtChars = nConverted; + + return pDestBufPtr - pDestBuf; +} diff --git a/sal/textenc/convertgb18030.h b/sal/textenc/convertgb18030.h new file mode 100644 index 000000000..d265e46f4 --- /dev/null +++ b/sal/textenc/convertgb18030.h @@ -0,0 +1,131 @@ +/************************************************************************* + * + * $RCSfile: convertgb18030.h,v $ + * + * $Revision: 1.1 $ + * + * last change: $Author: sb $ $Date: 2001-10-12 10:44:53 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRUNTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRUNTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc.. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef INCLUDED_RTL_TEXTENC_CONVERTGB18030_H +#define INCLUDED_RTL_TEXTENC_CONVERTGB18030_H + +#ifndef INCLUDED_RTL_TEXTENC_TENCHELP_H +#include "tenchelp.h" +#endif + +#ifndef _SAL_TYPES_H_ +#include "sal/types.h" +#endif + +#if defined __cplusplus +extern "C" { +#endif /* __cpluscplus */ + +typedef struct +{ + sal_Int32 m_nNonRangeDataIndex; + sal_uInt32 m_nFirstLinear; + sal_uInt32 m_nPastLinear; + sal_Unicode m_nFirstUnicode; +} ImplGb180302000ToUnicodeRange; + +typedef struct +{ + sal_Int32 m_nNonRangeDataIndex; + sal_Unicode m_nFirstUnicode; + sal_Unicode m_nLastUnicode; + sal_uInt32 m_nFirstLinear; +} ImplUnicodeToGb180302000Range; + +typedef struct +{ + sal_Unicode const * m_pGb18030ToUnicodeData; + ImplGb180302000ToUnicodeRange const * m_pGb18030ToUnicodeRanges; + sal_uInt32 const * m_pUnicodeToGb18030Data; + ImplUnicodeToGb180302000Range const * m_pUnicodeToGb18030Ranges; +} ImplGb18030ConverterData; + +void * ImplCreateGb18030ToUnicodeContext(void) SAL_THROW_EXTERN_C(); + +void ImplResetGb18030ToUnicodeContext(void * pContext) SAL_THROW_EXTERN_C(); + +sal_Size ImplConvertGb18030ToUnicode(ImplTextConverterData const * pData, + void * pContext, + sal_Char const * pSrcBuf, + sal_Size nSrcBytes, + sal_Unicode * pDestBuf, + sal_Size nDestChars, + sal_uInt32 nFlags, + sal_uInt32 * pInfo, + sal_Size * pSrcCvtBytes) + SAL_THROW_EXTERN_C(); + +sal_Size ImplConvertUnicodeToGb18030(ImplTextConverterData const * pData, + void * pContext, + sal_Unicode const * pSrcBuf, + sal_Size nSrcChars, + sal_Char * pDestBuf, + sal_Size nDestBytes, + sal_uInt32 nFlags, + sal_uInt32 * pInfo, + sal_Size * pSrcCvtChars) + SAL_THROW_EXTERN_C(); + +#if defined __cplusplus +} +#endif /* __cpluscplus */ + +#endif /* INCLUDED_RTL_TEXTENC_CONVERTGB18030_H */ diff --git a/sal/textenc/convertgb18030.tab b/sal/textenc/convertgb18030.tab new file mode 100644 index 000000000..b3337ad42 --- /dev/null +++ b/sal/textenc/convertgb18030.tab @@ -0,0 +1,107 @@ +/************************************************************************* + * + * $RCSfile: convertgb18030.tab,v $ + * + * $Revision: 1.1 $ + * + * last change: $Author: sb $ $Date: 2001-10-12 10:44:53 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRUNTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRUNTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc.. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef INCLUDED_RTL_TEXTENC_CONTEXT_H +#include "context.h" +#endif +#ifndef INCLUDED_RTL_TEXTENC_CONVERTGB18030_H +#include "convertgb18030.h" +#endif + +#ifndef _RTL_TENCINFO_H +#include "rtl/tencinfo.h" +#endif +#ifndef _RTL_TEXTENC_H +#include "rtl/textenc.h" +#endif + +#ifndef INCLUDED_STDDEF_H +#include <stddef.h> +#define INCLUDED_STDDEF_H +#endif + +#include "generate/gb180302000.tab" + +static ImplGb18030ConverterData const aImplGb18030ConvertData + = { aImplGb180302000ToUnicodeData, + aImplGb180302000ToUnicodeRanges, + aImplUnicodeToGb180302000Data, + aImplUnicodeToGb180302000Ranges }; + +static ImplTextEncodingData const aImplGb18030TextEncodingData + = { { &aImplGb18030ConvertData, + &ImplConvertGb18030ToUnicode, + &ImplConvertUnicodeToGb18030, + &ImplCreateGb18030ToUnicodeContext, + &ImplDestroyContext, + &ImplResetGb18030ToUnicodeContext, + &ImplCreateUnicodeToTextContext, + &ImplDestroyContext, + &ImplResetUnicodeToTextContext }, + RTL_TEXTENCODING_GB_18030, + 1, + 4, + 2, + 0, /* TODO! */ + NULL, /* TODO! */ + "UTF-8", + RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MULTIBYTE }; + /* SCRIPT_CHINESE_SIMPLIFIED */ diff --git a/sal/textenc/gettextencodingdata.h b/sal/textenc/gettextencodingdata.h new file mode 100644 index 000000000..57d5d8171 --- /dev/null +++ b/sal/textenc/gettextencodingdata.h @@ -0,0 +1,87 @@ +/************************************************************************* + * + * $RCSfile: gettextencodingdata.h,v $ + * + * $Revision: 1.1 $ + * + * last change: $Author: sb $ $Date: 2001-10-12 10:44:53 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef INCLUDED_RTL_TEXTENC_GETTEXTENCODINGDATA_H +#define INCLUDED_RTL_TEXTENC_GETTEXTENCODINGDATA_H + +#ifndef INCLUDED_RTL_TEXTENC_TENCHELP_H +#include "tenchelp.h" +#endif + +#ifndef _RTL_TEXTENC_H +#include "rtl/textenc.h" +#endif +#ifndef _SAL_TYPES_H_ +#include "sal/types.h" +#endif + +#if defined __cplusplus +extern "C" { +#endif /* __cplusplus */ + +ImplTextEncodingData const * +Impl_getTextEncodingData(rtl_TextEncoding nEncoding) SAL_THROW_EXTERN_C(); + +#if defined __cplusplus +} +#endif /* __cplusplus */ + +#endif /* INCLUDED_RTL_TEXTENC_GETTEXTENCODINGDATA_H */ diff --git a/sal/textenc/makefile.mk b/sal/textenc/makefile.mk index 1a996483b..c55034166 100644 --- a/sal/textenc/makefile.mk +++ b/sal/textenc/makefile.mk @@ -2,9 +2,9 @@ # # $RCSfile: makefile.mk,v $ # -# $Revision: 1.2 $ +# $Revision: 1.3 $ # -# last change: $Author: hr $ $Date: 2001-05-30 12:20:10 $ +# last change: $Author: sb $ $Date: 2001-10-12 10:44:53 $ # # The Contents of this file are made available subject to the terms of # either of the following licenses @@ -57,49 +57,54 @@ # Contributor(s): _______________________________________ # # -# #************************************************************************* -PRJ=.. +PRJ = .. +PRJNAME = sal +TARGET = textenc + +.INCLUDE: settings.mk -PRJNAME=sal -TARGET=textenc +SLOFILES = \ + $(SLO)$/context.obj \ + $(SLO)$/converter.obj \ + $(SLO)$/converteuctw.obj \ + $(SLO)$/convertgb18030.obj \ + $(SLO)$/tcvtbyte.obj \ + $(SLO)$/tcvtmb.obj \ + $(SLO)$/tcvtutf7.obj \ + $(SLO)$/tcvtutf8.obj \ + $(SLO)$/tenchelp.obj \ + $(SLO)$/tencinfo.obj \ + $(SLO)$/textcvt.obj \ + $(SLO)$/textenc.obj -# --- Settings ----------------------------------------------------- +.IF "$(UPDATER)" != "" -.INCLUDE : svpre.mk -.INCLUDE : settings.mk -.INCLUDE : sv.mk +OBJFILES = \ + $(OBJ)$/context.obj \ + $(OBJ)$/converter.obj \ + $(OBJ)$/converteuctw.obj \ + $(OBJ)$/convertgb18030.obj \ + $(OBJ)$/tcvtbyte.obj \ + $(OBJ)$/tcvtmb.obj \ + $(OBJ)$/tcvtutf7.obj \ + $(OBJ)$/tcvtutf8.obj \ + $(OBJ)$/tenchelp.obj \ + $(OBJ)$/tencinfo.obj \ + $(OBJ)$/textcvt.obj \ + $(OBJ)$/textenc.obj -# --- Files -------------------------------------------------------- +.ENDIF # UPDATER -SLOFILES= $(SLO)$/textenc.obj \ - $(SLO)$/tencinfo.obj \ - $(SLO)$/tenchelp.obj \ - $(SLO)$/textcvt.obj \ - $(SLO)$/tcvtbyte.obj \ - $(SLO)$/tcvtmb.obj \ - $(SLO)$/tcvtutf7.obj \ - $(SLO)$/tcvtutf8.obj +# Optimization off on Solaris Intel due to internal compiler error; to be +# reevaluated after compiler upgrade: +.IF "$(OS)$(CPU)" == "SOLARISI" -.IF "$(UPDATER)"!="" -OBJFILES= $(OBJ)$/textenc.obj \ - $(OBJ)$/tencinfo.obj \ - $(OBJ)$/tenchelp.obj \ - $(OBJ)$/textcvt.obj \ - $(OBJ)$/tcvtbyte.obj \ - $(OBJ)$/tcvtmb.obj \ - $(OBJ)$/tcvtutf7.obj \ - $(OBJ)$/tcvtutf8.obj -.ENDIF +NOOPTFILES = \ + $(OBJ)$/textenc.obj \ + $(SLO)$/textenc.obj -# Optimization of on Solaris Intel due to internal compiler error -# To be reevaluated after compiler upgrade -.IF "$(OS)$(CPU)"=="SOLARISI" -NOOPTFILES= \ - $(SLO)$/textenc.obj \ - $(OBJ)$/textenc.obj -.ENDIF -# --- Targets ------------------------------------------------------ +.ENDIF # OS, CPU, SOLARISI -.INCLUDE : target.mk +.INCLUDE: target.mk diff --git a/sal/textenc/tcvtarb1.tab b/sal/textenc/tcvtarb1.tab index 2c3a0948f..a0e55e1fb 100644 --- a/sal/textenc/tcvtarb1.tab +++ b/sal/textenc/tcvtarb1.tab @@ -2,9 +2,9 @@ * * $RCSfile: tcvtarb1.tab,v $ * - * $Revision: 1.2 $ + * $Revision: 1.3 $ * - * last change: $Author: th $ $Date: 2001-07-16 11:04:34 $ + * last change: $Author: sb $ $Date: 2001-10-12 10:44:53 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -238,46 +238,27 @@ static ImplByteConvertData const aImplIBM862ByteCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData const aImplIBM862TextConverterData = -{ - &aImplIBM862ByteCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplIBM862TextConverter = -{ - &aImplIBM862TextConverterData, - ImplCharToUnicode, - ImplUnicodeToChar, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplIBM862TextEncodingData = -{ - &aImplIBM862TextConverter, - RTL_TEXTENCODING_IBM_862, - 1, 1, 1, - 177, - 862, - 5, - (const sal_Char*)"iso8859-8", - (const sal_Char*)"DOS-862", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_MIME | - RTL_TEXTENCODING_INFO_R2L | - RTL_TEXTENCODING_INFO_DOS_OS2, - SCRIPT_HEBREW -}; +static ImplTextEncodingData const aImplIBM862TextEncodingData + = { { &aImplIBM862ByteCvtData, + ImplCharToUnicode, + ImplUnicodeToChar, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_IBM_862, + 1, + 1, + 1, + 177, + "iso8859-8", + "DOS-862", + RTL_TEXTENCODING_INFO_ASCII + | RTL_TEXTENCODING_INFO_MIME + | RTL_TEXTENCODING_INFO_R2L }; + /* DOS/OS2, SCRIPT_HEBREW, pc code page 862, mac encoding 5 */ /* ======================================================================= */ @@ -416,45 +397,25 @@ static ImplByteConvertData const aImplIBM864ByteCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData const aImplIBM864TextConverterData = -{ - &aImplIBM864ByteCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplIBM864TextConverter = -{ - &aImplIBM864TextConverterData, - ImplCharToUnicode, - ImplUnicodeToChar, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplIBM864TextEncodingData = -{ - &aImplIBM864TextConverter, - RTL_TEXTENCODING_IBM_864, - 1, 1, 1, - 178, - 864, - 4, - (const sal_Char*)"iso8859-6", - (const sal_Char*)"iso-8859-6", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_R2L | - RTL_TEXTENCODING_INFO_DOS_OS2, - SCRIPT_ARABIC -}; +static ImplTextEncodingData const aImplIBM864TextEncodingData + = { { &aImplIBM864ByteCvtData, + ImplCharToUnicode, + ImplUnicodeToChar, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_IBM_864, + 1, + 1, + 1, + 178, + "iso8859-6", + "iso-8859-6", + RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_R2L }; + /* DOS/OS2, SCRIPT_ARABIC, pc code page 864, mac encoding 4 */ /* ======================================================================= */ @@ -588,46 +549,27 @@ static ImplByteConvertData const aImplMS1255ByteCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData const aImplMS1255TextConverterData = -{ - &aImplMS1255ByteCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplMS1255TextConverter = -{ - &aImplMS1255TextConverterData, - ImplCharToUnicode, - ImplUnicodeToChar, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplMS1255TextEncodingData = -{ - &aImplMS1255TextConverter, - RTL_TEXTENCODING_MS_1255, - 1, 1, 1, - 177, - 862, - 5, - (const sal_Char*)"iso8859-8", - (const sal_Char*)"windows-1255", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_MIME | - RTL_TEXTENCODING_INFO_R2L | - RTL_TEXTENCODING_INFO_WIN, - SCRIPT_HEBREW -}; +static ImplTextEncodingData const aImplMS1255TextEncodingData + = { { &aImplMS1255ByteCvtData, + ImplCharToUnicode, + ImplUnicodeToChar, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_MS_1255, + 1, + 1, + 1, + 177, + "iso8859-8", + "windows-1255", + RTL_TEXTENCODING_INFO_ASCII + | RTL_TEXTENCODING_INFO_MIME + | RTL_TEXTENCODING_INFO_R2L }; + /* WIN, SCRIPT_HEBREW, pc code page 862, mac encoding 5 */ /* ======================================================================= */ @@ -779,46 +721,27 @@ static ImplByteConvertData const aImplMS1256ByteCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData const aImplMS1256TextConverterData = -{ - &aImplMS1256ByteCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplMS1256TextConverter = -{ - &aImplMS1256TextConverterData, - ImplCharToUnicode, - ImplUnicodeToChar, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplMS1256TextEncodingData = -{ - &aImplMS1256TextConverter, - RTL_TEXTENCODING_MS_1256, - 1, 1, 1, - 178, - 864, - 4, - (const sal_Char*)"iso8859-6", - (const sal_Char*)"windows-1256", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_MIME | - RTL_TEXTENCODING_INFO_R2L | - RTL_TEXTENCODING_INFO_WIN, - SCRIPT_ARABIC -}; +static ImplTextEncodingData const aImplMS1256TextEncodingData + = { { &aImplMS1256ByteCvtData, + ImplCharToUnicode, + ImplUnicodeToChar, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_MS_1256, + 1, + 1, + 1, + 178, + "iso8859-6", + "windows-1256", + RTL_TEXTENCODING_INFO_ASCII + | RTL_TEXTENCODING_INFO_MIME + | RTL_TEXTENCODING_INFO_R2L }; + /* WIN, SCRIPT_ARABIC, pc code page 864, mac encoding 4 */ /* ======================================================================= */ @@ -899,45 +822,27 @@ static ImplByteConvertData const aImplISO88596ByteCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData const aImplISO88596TextConverterData = -{ - &aImplISO88596ByteCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplISO88596TextConverter = -{ - &aImplISO88596TextConverterData, - ImplCharToUnicode, - ImplUnicodeToChar, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplISO88596TextEncodingData = -{ - &aImplISO88596TextConverter, - RTL_TEXTENCODING_ISO_8859_8, - 1, 1, 1, - 178, - 864, - 4, - (const sal_Char*)"iso8859-6", - (const sal_Char*)"iso-8859-6", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_R2L | - RTL_TEXTENCODING_INFO_MIME, - SCRIPT_ARABIC -}; +static ImplTextEncodingData const aImplISO88596TextEncodingData + = { { &aImplISO88596ByteCvtData, + ImplCharToUnicode, + ImplUnicodeToChar, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_ISO_8859_8, + 1, + 1, + 1, + 178, + "iso8859-6", + "iso-8859-6", + RTL_TEXTENCODING_INFO_ASCII + | RTL_TEXTENCODING_INFO_R2L + | RTL_TEXTENCODING_INFO_MIME }; + /* SCRIPT_ARABIC, pc code page 864, mac encoding 4 */ /* ======================================================================= */ @@ -1040,42 +945,24 @@ static ImplByteConvertData const aImplISO88598ByteCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData const aImplISO88598TextConverterData = -{ - &aImplISO88598ByteCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplISO88598TextConverter = -{ - &aImplISO88598TextConverterData, - ImplCharToUnicode, - ImplUnicodeToChar, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplISO88598TextEncodingData = -{ - &aImplISO88598TextConverter, - RTL_TEXTENCODING_ISO_8859_8, - 1, 1, 1, - 177, - 862, - 5, - (const sal_Char*)"iso8859-8", - (const sal_Char*)"iso-8859-8", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_R2L | - RTL_TEXTENCODING_INFO_MIME, - SCRIPT_HEBREW -}; +static ImplTextEncodingData const aImplISO88598TextEncodingData + = { { &aImplISO88598ByteCvtData, + ImplCharToUnicode, + ImplUnicodeToChar, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_ISO_8859_8, + 1, + 1, + 1, + 177, + "iso8859-8", + "iso-8859-8", + RTL_TEXTENCODING_INFO_ASCII + | RTL_TEXTENCODING_INFO_R2L + | RTL_TEXTENCODING_INFO_MIME }; + /* SCRIPT_HEBREW, pc code page 862, mac encoding 5 */ diff --git a/sal/textenc/tcvtbyte.c b/sal/textenc/tcvtbyte.c index 00cde7e8f..9d6071945 100644 --- a/sal/textenc/tcvtbyte.c +++ b/sal/textenc/tcvtbyte.c @@ -2,9 +2,9 @@ * * $RCSfile: tcvtbyte.c,v $ * - * $Revision: 1.1.1.1 $ + * $Revision: 1.2 $ * - * last change: $Author: hr $ $Date: 2000-09-18 15:17:28 $ + * last change: $Author: sb $ $Date: 2001-10-12 10:44:53 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -59,17 +59,451 @@ * ************************************************************************/ -#define _RTL_TCVTBYTE_C - -#ifndef _RTL_TENCHELP_H -#include <tenchelp.h> +#ifndef INCLUDED_RTL_TEXTENC_TENCHELP_H +#include "tenchelp.h" #endif + #ifndef _RTL_TEXTCVT_H -#include <rtl/textcvt.h> +#include "rtl/textcvt.h" #endif /* ======================================================================= */ +#define IMPL_MAX_REPLACECHAR 5 + +sal_uInt16 ImplGetReplaceChar(sal_Unicode c); + +sal_uInt16 const * ImplGetReplaceString(sal_Unicode c); + +/* ----------------------------------------------------------------------- */ + +typedef struct +{ + sal_uInt16 mnUniChar; + sal_uInt16 mnReplaceChar; +} ImplReplaceCharData; + +static ImplReplaceCharData const aImplRepCharTab[] = +{ + { 0x00A0, 0x0020 }, /* NO-BREAK-SPACE */ + { 0x00A1, 0x0021 }, /* INVERTED EXCLAMATION MARK */ + { 0x00B7, 0x0045 }, /* MIDDLE DOT */ + { 0x00BF, 0x003F }, /* INVERTED QUESTION MARK */ + { 0x00D7, 0x002A }, /* MULTIPLIKATION SIGN */ + { 0x00F7, 0x002F }, /* DIVISION SIGN */ + { 0x2000, 0x0020 }, /* EN QUAD */ + { 0x2001, 0x0020 }, /* EM QUAD */ + { 0x2002, 0x0020 }, /* EN SPACE */ + { 0x2003, 0x0020 }, /* EM SPACE */ + { 0x2004, 0x0020 }, /* THREE-PER-EM SPACE */ + { 0x2005, 0x0020 }, /* FOUR-PER-EM SPACE */ + { 0x2006, 0x0020 }, /* SIX-PER-EM SPACE */ + { 0x2007, 0x0020 }, /* FIGURE SPACE */ + { 0x2008, 0x0020 }, /* PUNCTATION SPACE */ + { 0x2009, 0x0020 }, /* THIN SPACE */ + { 0x200A, 0x0020 }, /* HAIR SPACE */ + { 0x2010, 0x002D }, /* HYPHEN */ + { 0x2011, 0x002D }, /* NON-BREAKING HYPHEN */ + { 0x2012, 0x002D }, /* FIGURE DASH */ + { 0x2013, 0x002D }, /* EN DASH */ + { 0x2014, 0x002D }, /* EM DASH */ + { 0x2015, 0x002D }, /* HORIZONTAL BAR */ + { 0x2018, 0x0027 }, /* LEFT SINGLE QUOTATION MARK */ + { 0x2019, 0x0027 }, /* RIGHT SINGLE QUOTATION MARK */ + { 0x201A, 0x002C }, /* SINGLE LOW-9 QUOTATION MARK */ + { 0x201B, 0x0027 }, /* SINGLE HIGH-RESERVED-9 QUOTATION MARK */ + { 0x201C, 0x0022 }, /* LEFT DOUBLE QUOTATION MARK */ + { 0x201D, 0x0022 }, /* RIGHT DOUBLE QUOTATION MARK */ + { 0x201E, 0x0022 }, /* DOUBLE LOW-9 QUOTATION MARK */ + { 0x201F, 0x0022 }, /* DOUBLE HIGH-RESERVED-9 QUOTATION MARK */ + { 0x2022, 0x002D }, /* BULLET */ + { 0x2023, 0x002D }, /* TRIANGULAR BULLET */ + { 0x2024, 0x002D }, /* ONE DOT LEADER */ + { 0x2027, 0x002D }, /* HYPHENATION POINT */ + { 0x2028, 0x000A }, /* LINE SEPARATOR */ + { 0x2029, 0x000D }, /* PARAGRAPH SEPARATOR */ + { 0x2032, 0x0027 }, /* PRIME */ + { 0x2033, 0x0022 }, /* DOUBLE PRIME */ + { 0x2035, 0x0027 }, /* RESERVED PRIME */ + { 0x2036, 0x0022 }, /* RESERVED DOUBLE PRIME */ + { 0x2039, 0x003C }, /* SINGLE LEFT-POINTING ANGLE QUOTATION MARK */ + { 0x203A, 0x003E }, /* SINGLE RIGHT-POINTING ANGLE QUOTATION MARK */ + { 0x2043, 0x002D }, /* HYPHEN BULLET */ + { 0x2044, 0x002F }, /* FRACTION SLASH */ + { 0x2160, 0x0049 }, /* ROMAN NUMERAL ONE */ + { 0x2164, 0x0056 }, /* ROMAN NUMERAL FIVE */ + { 0x2169, 0x0058 }, /* ROMAN NUMERAL TEN */ + { 0x216C, 0x004C }, /* ROMAN NUMERAL FIFTY */ + { 0x216D, 0x0043 }, /* ROMAN NUMERAL ONE HUNDRED */ + { 0x216E, 0x0044 }, /* ROMAN NUMERAL FIVE HUNDRED */ + { 0x216F, 0x004D }, /* ROMAN NUMERAL ONE THOUSAND */ + { 0x2170, 0x0069 }, /* SMALL ROMAN NUMERAL ONE */ + { 0x2174, 0x0076 }, /* SMALL ROMAN NUMERAL FIVE */ + { 0x2179, 0x0078 }, /* SMALL ROMAN NUMERAL TEN */ + { 0x217C, 0x006C }, /* SMALL ROMAN NUMERAL FIFTY */ + { 0x217D, 0x0063 }, /* SMALL ROMAN NUMERAL ONE HUNDRED */ + { 0x217E, 0x0064 }, /* SMALL ROMAN NUMERAL FIVE HUNDRED */ + { 0x217F, 0x006D }, /* SMALL ROMAN NUMERAL ONE THOUSAND */ + { 0x2215, 0x002F }, /* DIVISION SLASH */ + { 0x2217, 0x002A }, /* ASTERIX OPERATOR */ + { 0xFF00, 0x0020 }, /* FULLWIDTH ASCII FORMS */ + { 0xFF01, 0x0021 }, /* FULLWIDTH ASCII FORMS */ + { 0xFF02, 0x0022 }, /* FULLWIDTH ASCII FORMS*/ + { 0xFF03, 0x0023 }, /* FULLWIDTH ASCII FORMS */ + { 0xFF04, 0x0024 }, /* FULLWIDTH ASCII FORMS*/ + { 0xFF05, 0x0025 }, /* FULLWIDTH ASCII FORMS */ + { 0xFF06, 0x0026 }, /* FULLWIDTH ASCII FORMS*/ + { 0xFF07, 0x0027 }, /* FULLWIDTH ASCII FORMS */ + { 0xFF08, 0x0028 }, /* FULLWIDTH ASCII FORMS*/ + { 0xFF09, 0x0029 }, /* FULLWIDTH ASCII FORMS */ + { 0xFF0A, 0x002A }, /* FULLWIDTH ASCII FORMS*/ + { 0xFF0B, 0x002B }, /* FULLWIDTH ASCII FORMS */ + { 0xFF0C, 0x002C }, /* FULLWIDTH ASCII FORMS*/ + { 0xFF0D, 0x002D }, /* FULLWIDTH ASCII FORMS */ + { 0xFF0E, 0x002E }, /* FULLWIDTH ASCII FORMS*/ + { 0xFF0F, 0x002F }, /* FULLWIDTH ASCII FORMS */ + { 0xFF10, 0x0030 }, /* FULLWIDTH ASCII FORMS */ + { 0xFF11, 0x0031 }, /* FULLWIDTH ASCII FORMS */ + { 0xFF12, 0x0032 }, /* FULLWIDTH ASCII FORMS*/ + { 0xFF13, 0x0033 }, /* FULLWIDTH ASCII FORMS */ + { 0xFF14, 0x0034 }, /* FULLWIDTH ASCII FORMS*/ + { 0xFF15, 0x0035 }, /* FULLWIDTH ASCII FORMS */ + { 0xFF16, 0x0036 }, /* FULLWIDTH ASCII FORMS*/ + { 0xFF17, 0x0037 }, /* FULLWIDTH ASCII FORMS */ + { 0xFF18, 0x0038 }, /* FULLWIDTH ASCII FORMS*/ + { 0xFF19, 0x0039 }, /* FULLWIDTH ASCII FORMS */ + { 0xFF1A, 0x003A }, /* FULLWIDTH ASCII FORMS*/ + { 0xFF1B, 0x003B }, /* FULLWIDTH ASCII FORMS */ + { 0xFF1C, 0x003C }, /* FULLWIDTH ASCII FORMS*/ + { 0xFF1D, 0x003D }, /* FULLWIDTH ASCII FORMS */ + { 0xFF1E, 0x003E }, /* FULLWIDTH ASCII FORMS*/ + { 0xFF1F, 0x003F }, /* FULLWIDTH ASCII FORMS */ + { 0xFF20, 0x0040 }, /* FULLWIDTH ASCII FORMS */ + { 0xFF21, 0x0041 }, /* FULLWIDTH ASCII FORMS */ + { 0xFF22, 0x0042 }, /* FULLWIDTH ASCII FORMS*/ + { 0xFF23, 0x0043 }, /* FULLWIDTH ASCII FORMS */ + { 0xFF24, 0x0044 }, /* FULLWIDTH ASCII FORMS*/ + { 0xFF25, 0x0045 }, /* FULLWIDTH ASCII FORMS */ + { 0xFF26, 0x0046 }, /* FULLWIDTH ASCII FORMS*/ + { 0xFF27, 0x0047 }, /* FULLWIDTH ASCII FORMS */ + { 0xFF28, 0x0048 }, /* FULLWIDTH ASCII FORMS*/ + { 0xFF29, 0x0049 }, /* FULLWIDTH ASCII FORMS */ + { 0xFF2A, 0x004A }, /* FULLWIDTH ASCII FORMS*/ + { 0xFF2B, 0x004B }, /* FULLWIDTH ASCII FORMS */ + { 0xFF2C, 0x004C }, /* FULLWIDTH ASCII FORMS*/ + { 0xFF2D, 0x004D }, /* FULLWIDTH ASCII FORMS */ + { 0xFF2E, 0x004E }, /* FULLWIDTH ASCII FORMS*/ + { 0xFF2F, 0x004F }, /* FULLWIDTH ASCII FORMS */ + { 0xFF30, 0x0050 }, /* FULLWIDTH ASCII FORMS */ + { 0xFF31, 0x0051 }, /* FULLWIDTH ASCII FORMS */ + { 0xFF32, 0x0052 }, /* FULLWIDTH ASCII FORMS*/ + { 0xFF33, 0x0053 }, /* FULLWIDTH ASCII FORMS */ + { 0xFF34, 0x0054 }, /* FULLWIDTH ASCII FORMS*/ + { 0xFF35, 0x0055 }, /* FULLWIDTH ASCII FORMS */ + { 0xFF36, 0x0056 }, /* FULLWIDTH ASCII FORMS*/ + { 0xFF37, 0x0057 }, /* FULLWIDTH ASCII FORMS */ + { 0xFF38, 0x0058 }, /* FULLWIDTH ASCII FORMS*/ + { 0xFF39, 0x0059 }, /* FULLWIDTH ASCII FORMS */ + { 0xFF3A, 0x005A }, /* FULLWIDTH ASCII FORMS*/ + { 0xFF3B, 0x005B }, /* FULLWIDTH ASCII FORMS */ + { 0xFF3C, 0x005C }, /* FULLWIDTH ASCII FORMS*/ + { 0xFF3D, 0x005D }, /* FULLWIDTH ASCII FORMS */ + { 0xFF3E, 0x005E }, /* FULLWIDTH ASCII FORMS*/ + { 0xFF3F, 0x005F }, /* FULLWIDTH ASCII FORMS */ + { 0xFF40, 0x0060 }, /* FULLWIDTH ASCII FORMS */ + { 0xFF41, 0x0061 }, /* FULLWIDTH ASCII FORMS */ + { 0xFF42, 0x0062 }, /* FULLWIDTH ASCII FORMS*/ + { 0xFF43, 0x0063 }, /* FULLWIDTH ASCII FORMS */ + { 0xFF44, 0x0064 }, /* FULLWIDTH ASCII FORMS*/ + { 0xFF45, 0x0065 }, /* FULLWIDTH ASCII FORMS */ + { 0xFF46, 0x0066 }, /* FULLWIDTH ASCII FORMS*/ + { 0xFF47, 0x0067 }, /* FULLWIDTH ASCII FORMS */ + { 0xFF48, 0x0068 }, /* FULLWIDTH ASCII FORMS*/ + { 0xFF49, 0x0069 }, /* FULLWIDTH ASCII FORMS */ + { 0xFF4A, 0x006A }, /* FULLWIDTH ASCII FORMS*/ + { 0xFF4B, 0x006B }, /* FULLWIDTH ASCII FORMS */ + { 0xFF4C, 0x006C }, /* FULLWIDTH ASCII FORMS*/ + { 0xFF4D, 0x006D }, /* FULLWIDTH ASCII FORMS */ + { 0xFF4E, 0x006E }, /* FULLWIDTH ASCII FORMS*/ + { 0xFF4F, 0x006F }, /* FULLWIDTH ASCII FORMS */ + { 0xFF50, 0x0070 }, /* FULLWIDTH ASCII FORMS */ + { 0xFF51, 0x0071 }, /* FULLWIDTH ASCII FORMS */ + { 0xFF52, 0x0072 }, /* FULLWIDTH ASCII FORMS*/ + { 0xFF53, 0x0073 }, /* FULLWIDTH ASCII FORMS */ + { 0xFF54, 0x0074 }, /* FULLWIDTH ASCII FORMS*/ + { 0xFF55, 0x0075 }, /* FULLWIDTH ASCII FORMS */ + { 0xFF56, 0x0076 }, /* FULLWIDTH ASCII FORMS*/ + { 0xFF57, 0x0077 }, /* FULLWIDTH ASCII FORMS */ + { 0xFF58, 0x0078 }, /* FULLWIDTH ASCII FORMS*/ + { 0xFF59, 0x0079 }, /* FULLWIDTH ASCII FORMS */ + { 0xFF5A, 0x007A }, /* FULLWIDTH ASCII FORMS*/ + { 0xFF5B, 0x007B }, /* FULLWIDTH ASCII FORMS */ + { 0xFF5C, 0x007C }, /* FULLWIDTH ASCII FORMS*/ + { 0xFF5D, 0x007D }, /* FULLWIDTH ASCII FORMS */ + { 0xFF5E, 0x007E }, /* FULLWIDTH ASCII FORMS*/ + { 0xFF5F, 0x007F }, /* FULLWIDTH ASCII FORMS */ + { 0xFF61, 0x3002 }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF62, 0x300C }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF63, 0x300D }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF64, 0x3001 }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF65, 0x30FB }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF66, 0x30F2 }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF67, 0x30A1 }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF68, 0x30A3 }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF69, 0x30A5 }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF6A, 0x30A7 }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF6B, 0x30A9 }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF6C, 0x30E3 }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF6D, 0x30E5 }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF6E, 0x30E7 }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF6F, 0x30C3 }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF70, 0x30FC }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF71, 0x30A2 }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF72, 0x30A4 }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF73, 0x30A6 }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF74, 0x30A8 }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF75, 0x30AA }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF76, 0x30AB }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF77, 0x30AD }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF78, 0x30AF }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF79, 0x30B1 }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF7A, 0x30B3 }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF7B, 0x30B5 }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF7C, 0x30B7 }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF7D, 0x30B9 }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF7E, 0x30BB }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF7F, 0x30BD }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF80, 0x30BF }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF81, 0x30C1 }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF82, 0x30C4 }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF83, 0x30C6 }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF84, 0x30C8 }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF85, 0x30CA }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF86, 0x30CB }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF87, 0x30CC }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF88, 0x30CD }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF89, 0x30CE }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF8A, 0x30CF }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF8B, 0x30D2 }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF8C, 0x30D5 }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF8D, 0x30D8 }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF8E, 0x30DB }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF8F, 0x30DE }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF90, 0x30DF }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF91, 0x30E0 }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF92, 0x30E1 }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF93, 0x30E2 }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF94, 0x30E4 }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF95, 0x30E6 }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF96, 0x30E8 }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF97, 0x30E9 }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF98, 0x30EA }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF99, 0x30EB }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF9A, 0x30EC }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF9B, 0x30ED }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF9C, 0x30EF }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF9D, 0x30F3 }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF9E, 0x309B }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFF9F, 0x309C }, /* HALFWIDTH KATAKANA FORMS */ + { 0xFFA0, 0x3164 }, /* HALFWIDTH HANGUL FORMS */ + { 0xFFA1, 0x3131 }, /* HALFWIDTH HANGUL FORMS */ + { 0xFFA2, 0x3132 }, /* HALFWIDTH HANGUL FORMS */ + { 0xFFA3, 0x3133 }, /* HALFWIDTH HANGUL FORMS */ + { 0xFFA4, 0x3134 }, /* HALFWIDTH HANGUL FORMS */ + { 0xFFA5, 0x3135 }, /* HALFWIDTH HANGUL FORMS */ + { 0xFFA6, 0x3136 }, /* HALFWIDTH HANGUL FORMS */ + { 0xFFA7, 0x3137 }, /* HALFWIDTH HANGUL FORMS */ + { 0xFFA8, 0x3138 }, /* HALFWIDTH HANGUL FORMS */ + { 0xFFA9, 0x3139 }, /* HALFWIDTH HANGUL FORMS */ + { 0xFFAA, 0x313A }, /* HALFWIDTH HANGUL FORMS */ + { 0xFFAB, 0x313B }, /* HALFWIDTH HANGUL FORMS */ + { 0xFFAC, 0x313C }, /* HALFWIDTH HANGUL FORMS */ + { 0xFFAD, 0x313D }, /* HALFWIDTH HANGUL FORMS */ + { 0xFFAE, 0x313E }, /* HALFWIDTH HANGUL FORMS */ + { 0xFFAF, 0x313F }, /* HALFWIDTH HANGUL FORMS */ + { 0xFFB0, 0x3140 }, /* HALFWIDTH HANGUL FORMS */ + { 0xFFB1, 0x3141 }, /* HALFWIDTH HANGUL FORMS */ + { 0xFFB2, 0x3142 }, /* HALFWIDTH HANGUL FORMS */ + { 0xFFB3, 0x3143 }, /* HALFWIDTH HANGUL FORMS */ + { 0xFFB4, 0x3144 }, /* HALFWIDTH HANGUL FORMS */ + { 0xFFB5, 0x3145 }, /* HALFWIDTH HANGUL FORMS */ + { 0xFFB6, 0x3146 }, /* HALFWIDTH HANGUL FORMS */ + { 0xFFB7, 0x3147 }, /* HALFWIDTH HANGUL FORMS */ + { 0xFFB8, 0x3148 }, /* HALFWIDTH HANGUL FORMS */ + { 0xFFB9, 0x3149 }, /* HALFWIDTH HANGUL FORMS */ + { 0xFFBA, 0x314A }, /* HALFWIDTH HANGUL FORMS */ + { 0xFFBB, 0x314B }, /* HALFWIDTH HANGUL FORMS */ + { 0xFFBC, 0x314C }, /* HALFWIDTH HANGUL FORMS */ + { 0xFFBD, 0x314D }, /* HALFWIDTH HANGUL FORMS */ + { 0xFFBE, 0x314E }, /* HALFWIDTH HANGUL FORMS */ + { 0xFFC2, 0x314F }, /* HALFWIDTH HANGUL FORMS */ + { 0xFFC3, 0x3150 }, /* HALFWIDTH HANGUL FORMS */ + { 0xFFC4, 0x3151 }, /* HALFWIDTH HANGUL FORMS */ + { 0xFFC5, 0x3152 }, /* HALFWIDTH HANGUL FORMS */ + { 0xFFC6, 0x3153 }, /* HALFWIDTH HANGUL FORMS */ + { 0xFFC7, 0x3154 }, /* HALFWIDTH HANGUL FORMS */ + { 0xFFCA, 0x3155 }, /* HALFWIDTH HANGUL FORMS */ + { 0xFFCB, 0x3156 }, /* HALFWIDTH HANGUL FORMS */ + { 0xFFCC, 0x3157 }, /* HALFWIDTH HANGUL FORMS */ + { 0xFFCD, 0x3158 }, /* HALFWIDTH HANGUL FORMS */ + { 0xFFCE, 0x3159 }, /* HALFWIDTH HANGUL FORMS */ + { 0xFFCF, 0x315A }, /* HALFWIDTH HANGUL FORMS */ + { 0xFFD2, 0x315B }, /* HALFWIDTH HANGUL FORMS */ + { 0xFFD3, 0x315C }, /* HALFWIDTH HANGUL FORMS */ + { 0xFFD4, 0x315D }, /* HALFWIDTH HANGUL FORMS */ + { 0xFFD5, 0x315E }, /* HALFWIDTH HANGUL FORMS */ + { 0xFFD6, 0x315F }, /* HALFWIDTH HANGUL FORMS */ + { 0xFFD7, 0x3160 }, /* HALFWIDTH HANGUL FORMS */ + { 0xFFDA, 0x3161 }, /* HALFWIDTH HANGUL FORMS */ + { 0xFFDB, 0x3162 }, /* HALFWIDTH HANGUL FORMS */ + { 0xFFDC, 0x3163 }, /* HALFWIDTH HANGUL FORMS */ + { 0xFFE0, 0x00A2 }, /* FULLWIDTH CENT SIGN */ + { 0xFFE1, 0x00A3 }, /* FULLWIDTH POUND SIGN */ + { 0xFFE2, 0x00AC }, /* FULLWIDTH NOT SIGN */ + { 0xFFE3, 0x00AF }, /* FULLWIDTH MACRON */ + { 0xFFE4, 0x00A6 }, /* FULLWIDTH BROKEN BAR */ + { 0xFFE5, 0x00A5 }, /* FULLWIDTH YEN SIGN */ + { 0xFFE6, 0x20A9 }, /* FULLWIDTH WON SIGN */ + { 0xFFE8, 0x2502 }, /* HALFWIDTH FORMS LIGHT VERTICAL */ + { 0xFFE9, 0x2190 }, /* HALFWIDTH LEFTWARDS ARROW */ + { 0xFFEA, 0x2191 }, /* HALFWIDTH UPWARDS ARROW */ + { 0xFFEB, 0x2192 }, /* HALFWIDTH RIGHTWARDS ARROW */ + { 0xFFEC, 0x2193 }, /* HALFWIDTH DOWNWARDS ARROW */ + { 0xFFED, 0x25A0 }, /* HALFWIDTH BLACK SQUARE */ + { 0xFFEE, 0x25CB }, /* HALFWIDTH WHITE CIRCLE */ + { 0xFFFD, 0x003F } /* REPLACEMENT CHARACTER */ +}; + +sal_uInt16 ImplGetReplaceChar( sal_Unicode c ) +{ + sal_uInt16 nLow; + sal_uInt16 nHigh; + sal_uInt16 nMid; + sal_uInt16 nCompareChar; + const ImplReplaceCharData* pCharData; + + nLow = 0; + nHigh = (sizeof( aImplRepCharTab )/sizeof( ImplReplaceCharData ))-1; + do + { + nMid = (nLow+nHigh)/2; + pCharData = aImplRepCharTab+nMid; + nCompareChar = pCharData->mnUniChar; + if ( c < nCompareChar ) + { + if ( !nMid ) + break; + nHigh = nMid-1; + } + else + { + if ( c > nCompareChar ) + nLow = nMid+1; + else + return pCharData->mnReplaceChar; + } + } + while ( nLow <= nHigh ); + + return 0; +} + +/* ----------------------------------------------------------------------- */ + +typedef struct +{ + sal_uInt16 mnUniChar; + sal_uInt16 maReplaceChars[IMPL_MAX_REPLACECHAR]; +} ImplReplaceCharStrData; + +static ImplReplaceCharStrData const aImplRepCharStrTab[] = +{ + { 0x00A9, { 0x0028, 0x0063, 0x0029, 0x0000, 0x0000 } }, /* COPYRIGHT SIGN */ + { 0x00AB, { 0x003C, 0x003C, 0x0000, 0x0000, 0x0000 } }, /* LEFT-POINTING-DOUBLE ANGLE QUOTATION MARK */ + { 0x0AE0, { 0x0028, 0x0072, 0x0029, 0x0000, 0x0000 } }, /* REGISTERED SIGN */ + { 0x00BB, { 0x003E, 0x003E, 0x0000, 0x0000, 0x0000 } }, /* RIGHT-POINTING-DOUBLE ANGLE QUOTATION MARK */ + { 0x00BC, { 0x0031, 0x002F, 0x0034, 0x0000, 0x0000 } }, /* VULGAR FRACTION ONE QUARTER */ + { 0x00BD, { 0x0031, 0x002F, 0x0032, 0x0000, 0x0000 } }, /* VULGAR FRACTION ONE HALF */ + { 0x00BE, { 0x0033, 0x002F, 0x0034, 0x0000, 0x0000 } }, /* VULGAR FRACTION THREE QUARTERS */ + { 0x00C6, { 0x0041, 0x0045, 0x0000, 0x0000, 0x0000 } }, /* LATIN CAPITAL LETTER AE */ + { 0x00E6, { 0x0061, 0x0065, 0x0000, 0x0000, 0x0000 } }, /* LATIN SMALL LETTER AE */ + { 0x0152, { 0x004F, 0x0045, 0x0000, 0x0000, 0x0000 } }, /* LATIN CAPITAL LIGATURE OE */ + { 0x0153, { 0x006F, 0x0065, 0x0000, 0x0000, 0x0000 } }, /* LATIN SMALL LIGATURE OE */ + { 0x2025, { 0x002E, 0x002E, 0x0000, 0x0000, 0x0000 } }, /* TWO DOT LEADER */ + { 0x2026, { 0x002E, 0x002E, 0x002E, 0x0000, 0x0000 } }, /* HORIZONTAL ELLIPSES */ + { 0x2034, { 0x0027, 0x0027, 0x0027, 0x0000, 0x0000 } }, /* TRIPPLE PRIME */ + { 0x2037, { 0x0027, 0x0027, 0x0027, 0x0000, 0x0000 } }, /* RESERVED TRIPPLE PRIME */ + { 0x20AC, { 0x0045, 0x0055, 0x0052, 0x0000, 0x0000 } }, /* EURO SIGN */ + { 0x2122, { 0x0028, 0x0074, 0x006D, 0x0029, 0x0000 } }, /* TRADE MARK SIGN */ + { 0x2153, { 0x0031, 0x002F, 0x0033, 0x0000, 0x0000 } }, /* VULGAR FRACTION ONE THIRD */ + { 0x2154, { 0x0032, 0x002F, 0x0033, 0x0000, 0x0000 } }, /* VULGAR FRACTION TWO THIRD */ + { 0x2155, { 0x0031, 0x002F, 0x0035, 0x0000, 0x0000 } }, /* VULGAR FRACTION ONE FIFTH */ + { 0x2156, { 0x0032, 0x002F, 0x0035, 0x0000, 0x0000 } }, /* VULGAR FRACTION TWO FIFTH */ + { 0x2157, { 0x0033, 0x002F, 0x0035, 0x0000, 0x0000 } }, /* VULGAR FRACTION THREE FIFTH */ + { 0x2158, { 0x0034, 0x002F, 0x0035, 0x0000, 0x0000 } }, /* VULGAR FRACTION FOUR FIFTH */ + { 0x2159, { 0x0031, 0x002F, 0x0036, 0x0000, 0x0000 } }, /* VULGAR FRACTION ONE SIXTH */ + { 0x215A, { 0x0035, 0x002F, 0x0036, 0x0000, 0x0000 } }, /* VULGAR FRACTION FIVE SIXTH */ + { 0x215B, { 0x0031, 0x002F, 0x0038, 0x0000, 0x0000 } }, /* VULGAR FRACTION ONE EIGHTH */ + { 0x215C, { 0x0033, 0x002F, 0x0038, 0x0000, 0x0000 } }, /* VULGAR FRACTION THREE EIGHTH */ + { 0x215D, { 0x0035, 0x002F, 0x0038, 0x0000, 0x0000 } }, /* VULGAR FRACTION FIVE EIGHTH */ + { 0x215E, { 0x0037, 0x002F, 0x0038, 0x0000, 0x0000 } }, /* VULGAR FRACTION SEVEN EIGHTH */ + { 0x215F, { 0x0031, 0x002F, 0x0000, 0x0000, 0x0000 } }, /* FRACTION NUMERATOR ONE */ + { 0x2161, { 0x0049, 0x0049, 0x0000, 0x0000, 0x0000 } }, /* ROMAN NUMERAL TWO */ + { 0x2162, { 0x0049, 0x0049, 0x0049, 0x0000, 0x0000 } }, /* ROMAN NUMERAL THREE */ + { 0x2163, { 0x0049, 0x0056, 0x0000, 0x0000, 0x0000 } }, /* ROMAN NUMERAL FOUR */ + { 0x2165, { 0x0056, 0x0049, 0x0000, 0x0000, 0x0000 } }, /* ROMAN NUMERAL SIX */ + { 0x2166, { 0x0056, 0x0049, 0x0049, 0x0000, 0x0000 } }, /* ROMAN NUMERAL SEVEN */ + { 0x2168, { 0x0056, 0x0049, 0x0049, 0x0049, 0x0000 } }, /* ROMAN NUMERAL EIGHT */ + { 0x2169, { 0x0049, 0x0058, 0x0000, 0x0000, 0x0000 } }, /* ROMAN NUMERAL NINE */ + { 0x216A, { 0x0058, 0x0049, 0x0000, 0x0000, 0x0000 } }, /* ROMAN NUMERAL ELEVEN */ + { 0x216B, { 0x0058, 0x0049, 0x0049, 0x0000, 0x0000 } }, /* ROMAN NUMERAL TWELVE */ + { 0x2171, { 0x0069, 0x0069, 0x0000, 0x0000, 0x0000 } }, /* SMALL ROMAN NUMERAL TWO */ + { 0x2172, { 0x0069, 0x0069, 0x0069, 0x0000, 0x0000 } }, /* SMALL ROMAN NUMERAL THREE */ + { 0x2173, { 0x0069, 0x0076, 0x0000, 0x0000, 0x0000 } }, /* SMALL ROMAN NUMERAL FOUR */ + { 0x2175, { 0x0076, 0x0069, 0x0000, 0x0000, 0x0000 } }, /* SMALL ROMAN NUMERAL SIX */ + { 0x2176, { 0x0076, 0x0069, 0x0069, 0x0000, 0x0000 } }, /* SMALL ROMAN NUMERAL SEVEN */ + { 0x2178, { 0x0076, 0x0069, 0x0069, 0x0069, 0x0000 } }, /* SMALL ROMAN NUMERAL EIGHT */ + { 0x2179, { 0x0069, 0x0078, 0x0000, 0x0000, 0x0000 } }, /* SMALL ROMAN NUMERAL NINE */ + { 0x217A, { 0x0078, 0x0069, 0x0000, 0x0000, 0x0000 } }, /* SMALL ROMAN NUMERAL ELEVEN */ + { 0x217B, { 0x0058, 0x0069, 0x0069, 0x0000, 0x0000 } } /* SMALL ROMAN NUMERAL TWELVE */ +}; + +const sal_uInt16* ImplGetReplaceString( sal_Unicode c ) +{ + sal_uInt16 nLow; + sal_uInt16 nHigh; + sal_uInt16 nMid; + sal_uInt16 nCompareChar; + const ImplReplaceCharStrData* pCharData; + + nLow = 0; + nHigh = (sizeof( aImplRepCharStrTab )/sizeof( ImplReplaceCharStrData ))-1; + do + { + nMid = (nLow+nHigh)/2; + pCharData = aImplRepCharStrTab+nMid; + nCompareChar = pCharData->mnUniChar; + if ( c < nCompareChar ) + { + if ( !nMid ) + break; + nHigh = nMid-1; + } + else + { + if ( c > nCompareChar ) + nLow = nMid+1; + else + return pCharData->maReplaceChars; + } + } + while ( nLow <= nHigh ); + + return 0; +} + +/* ======================================================================= */ + sal_Size ImplSymbolToUnicode( const ImplTextConverterData* pData, void* pContext, const sal_Char* pSrcBuf, sal_Size nSrcBytes, @@ -77,13 +511,13 @@ sal_Size ImplSymbolToUnicode( const ImplTextConverterData* pData, sal_uInt32 nFlags, sal_uInt32* pInfo, sal_Size* pSrcCvtBytes ) { - sal_uChar c; - sal_Unicode* pEndDestBuf; - const sal_Char* pEndSrcBuf; + sal_uChar c; + sal_Unicode* pEndDestBuf; + const sal_Char* pEndSrcBuf; *pInfo = 0; pEndDestBuf = pDestBuf+nDestChars; - pEndSrcBuf = pSrcBuf+nSrcBytes; + pEndSrcBuf = pSrcBuf+nSrcBytes; while ( pSrcBuf < pEndSrcBuf ) { if ( pDestBuf == pEndDestBuf ) @@ -115,14 +549,13 @@ sal_Size ImplUnicodeToSymbol( const ImplTextConverterData* pData, sal_uInt32 nFlags, sal_uInt32* pInfo, sal_Size* pSrcCvtChars ) { - int nAction; - sal_Unicode c; - sal_Char* pEndDestBuf; - const sal_Unicode* pEndSrcBuf; + sal_Unicode c; + sal_Char* pEndDestBuf; + const sal_Unicode* pEndSrcBuf; *pInfo = 0; pEndDestBuf = pDestBuf+nDestBytes; - pEndSrcBuf = pSrcBuf+nSrcChars; + pEndSrcBuf = pSrcBuf+nSrcChars; while ( pSrcBuf < pEndSrcBuf ) { if ( pDestBuf == pEndDestBuf ) @@ -157,11 +590,13 @@ sal_Size ImplUnicodeToSymbol( const ImplTextConverterData* pData, /* Handle undefined and surrogates characters */ /* (all surrogates characters are undefined) */ - nAction = ImplHandleUndefinedUnicodeToTextChar( pData, - &pSrcBuf, pEndSrcBuf, - &pDestBuf, pEndDestBuf, - nFlags, pInfo ); - if ( nAction == IMPL_TEXTCVT_BREAK ) + if (!ImplHandleUndefinedUnicodeToTextChar(pData, + &pSrcBuf, + pEndSrcBuf, + &pDestBuf, + pEndDestBuf, + nFlags, + pInfo)) break; } } @@ -179,15 +614,15 @@ sal_Size ImplCharToUnicode( const ImplTextConverterData* pData, sal_uInt32 nFlags, sal_uInt32* pInfo, sal_Size* pSrcCvtBytes ) { - sal_uChar c; - sal_Unicode cConv; - const ImplByteConvertData* pConvertData = (const ImplByteConvertData*)(pData->mpConvertTables); - sal_Unicode* pEndDestBuf; - const sal_Char* pEndSrcBuf; + sal_uChar c; + sal_Unicode cConv; + const ImplByteConvertData* pConvertData = (const ImplByteConvertData*)pData; + sal_Unicode* pEndDestBuf; + const sal_Char* pEndSrcBuf; *pInfo = 0; pEndDestBuf = pDestBuf+nDestChars; - pEndSrcBuf = pSrcBuf+nSrcBytes; + pEndSrcBuf = pSrcBuf+nSrcBytes; while ( pSrcBuf < pEndSrcBuf ) { c = (sal_uChar)*pSrcBuf; @@ -215,7 +650,7 @@ sal_Size ImplCharToUnicode( const ImplTextConverterData* pData, continue; } else - cConv = ImplGetUndefinedUnicodeChar( c, nFlags, pData ); + cConv = ImplGetUndefinedUnicodeChar(c, nFlags); } } @@ -239,8 +674,8 @@ sal_Size ImplCharToUnicode( const ImplTextConverterData* pData, static sal_Char ImplConvertUnicodeCharToChar( const ImplByteConvertData* pConvertData, sal_Unicode c ) { - sal_Char cConv; - const ImplUniCharTabData* pToCharExTab; + sal_Char cConv; + const ImplUniCharTabData* pToCharExTab; if ( c < 0x80 ) cConv = (sal_Char)c; @@ -257,11 +692,11 @@ static sal_Char ImplConvertUnicodeCharToChar( const ImplByteConvertData* pConver pToCharExTab = pConvertData->mpToCharExTab; if ( pToCharExTab ) { - sal_uInt16 nLow; - sal_uInt16 nHigh; - sal_uInt16 nMid; - sal_uInt16 nCompareChar; - const ImplUniCharTabData* pCharExData; + sal_uInt16 nLow; + sal_uInt16 nHigh; + sal_uInt16 nMid; + sal_uInt16 nCompareChar; + const ImplUniCharTabData* pCharExData; nLow = 0; nHigh = pConvertData->mnToCharExCount-1; @@ -304,21 +739,20 @@ sal_Size ImplUnicodeToChar( const ImplTextConverterData* pData, sal_uInt32 nFlags, sal_uInt32* pInfo, sal_Size* pSrcCvtChars ) { - int nAction; - sal_Unicode c; - sal_Char cConv; - const ImplByteConvertData* pConvertData = (const ImplByteConvertData*)(pData->mpConvertTables); - sal_Char* pEndDestBuf; - const sal_Unicode* pEndSrcBuf; - int i; - int n; - sal_uInt16 cTemp; - sal_Char aTempBuf[IMPL_MAX_REPLACECHAR+1]; - const sal_uInt16* pReplace; + sal_Unicode c; + sal_Char cConv; + const ImplByteConvertData* pConvertData = (const ImplByteConvertData*)pData; + sal_Char* pEndDestBuf; + const sal_Unicode* pEndSrcBuf; + int i; + int n; + sal_uInt16 cTemp; + sal_Char aTempBuf[IMPL_MAX_REPLACECHAR+1]; + const sal_uInt16* pReplace; *pInfo = 0; pEndDestBuf = pDestBuf+nDestBytes; - pEndSrcBuf = pSrcBuf+nSrcChars; + pEndSrcBuf = pSrcBuf+nSrcChars; while ( pSrcBuf < pEndSrcBuf ) { c = *pSrcBuf; @@ -378,14 +812,16 @@ sal_Size ImplUnicodeToChar( const ImplTextConverterData* pData, /* Handle undefined and surrogates characters */ /* (all surrogates characters are undefined) */ - nAction = ImplHandleUndefinedUnicodeToTextChar( pData, - &pSrcBuf, pEndSrcBuf, - &pDestBuf, pEndDestBuf, - nFlags, pInfo ); - if ( nAction == IMPL_TEXTCVT_BREAK ) - break; - else + if (ImplHandleUndefinedUnicodeToTextChar(pData, + &pSrcBuf, + pEndSrcBuf, + &pDestBuf, + pEndDestBuf, + nFlags, + pInfo)) continue; + else + break; } } } @@ -404,4 +840,3 @@ sal_Size ImplUnicodeToChar( const ImplTextConverterData* pData, *pSrcCvtChars = nSrcChars - (pEndSrcBuf-pSrcBuf); return (nDestBytes - (pEndDestBuf-pDestBuf)); } - diff --git a/sal/textenc/tcvteas1.tab b/sal/textenc/tcvteas1.tab index b0a29e00a..b939c0fa0 100644 --- a/sal/textenc/tcvteas1.tab +++ b/sal/textenc/tcvteas1.tab @@ -2,9 +2,9 @@ * * $RCSfile: tcvteas1.tab,v $ * - * $Revision: 1.2 $ + * $Revision: 1.3 $ * - * last change: $Author: th $ $Date: 2001-07-16 11:19:26 $ + * last change: $Author: sb $ $Date: 2001-10-12 10:44:53 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -155,46 +155,25 @@ static ImplByteConvertData const aImplMS874ByteCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData const aImplMS874TextConverterData = -{ - &aImplMS874ByteCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplMS874TextConverter = -{ - &aImplMS874TextConverterData, - ImplCharToUnicode, - ImplUnicodeToChar, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplMS874TextEncodingData = -{ - &aImplMS874TextConverter, - RTL_TEXTENCODING_MS_874, - 1, 1, 1, - 222, - 874, - 21, - (const sal_Char*)"iso8859-1", /* ??? */ - (const sal_Char*)"windows-874", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_MIME | - RTL_TEXTENCODING_INFO_WIN | - RTL_TEXTENCODING_INFO_DOS_OS2, - SCRIPT_THAI -}; +static ImplTextEncodingData const aImplMS874TextEncodingData + = { { &aImplMS874ByteCvtData, + ImplCharToUnicode, + ImplUnicodeToChar, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_MS_874, + 1, + 1, + 1, + 222, + "iso8859-1", /* TODO! correct? */ + "windows-874", + RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME }; + /* WIN/DOS/OS2, SCRIPT_THAI, pc code page 874, mac encoding 21 */ /* ======================================================================= */ @@ -314,42 +293,22 @@ static ImplByteConvertData const aImplMS1258ByteCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData const aImplMS1258TextConverterData = -{ - &aImplMS1258ByteCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplMS1258TextConverter = -{ - &aImplMS1258TextConverterData, - ImplCharToUnicode, - ImplUnicodeToChar, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplMS1258TextEncodingData = -{ - &aImplMS1258TextConverter, - RTL_TEXTENCODING_MS_1258, - 1, 1, 1, - 163, - 0, - 30, - (const sal_Char*)"iso8859-1", /* ??? */ - (const sal_Char*)"windows-1258", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_MIME | - RTL_TEXTENCODING_INFO_WIN, - SCRIPT_VIETNAMESE -}; +static ImplTextEncodingData const aImplMS1258TextEncodingData + = { { &aImplMS1258ByteCvtData, + ImplCharToUnicode, + ImplUnicodeToChar, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_MS_1258, + 1, + 1, + 1, + 163, + "iso8859-1", /* TODO! correct? */ + "windows-1258", + RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME }; + /* WIN, SCRIPT_VIETNAMESE, mac encoding 30 */ diff --git a/sal/textenc/tcvtest1.tab b/sal/textenc/tcvtest1.tab index 51c281238..17b618a31 100644 --- a/sal/textenc/tcvtest1.tab +++ b/sal/textenc/tcvtest1.tab @@ -2,9 +2,9 @@ * * $RCSfile: tcvtest1.tab,v $ * - * $Revision: 1.2 $ + * $Revision: 1.3 $ * - * last change: $Author: th $ $Date: 2001-07-16 11:20:11 $ + * last change: $Author: sb $ $Date: 2001-10-12 10:44:53 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -204,44 +204,25 @@ static ImplByteConvertData const aImplIBM737ByteCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData const aImplIBM737TextConverterData = -{ - &aImplIBM737ByteCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplIBM737TextConverter = -{ - &aImplIBM737TextConverterData, - ImplCharToUnicode, - ImplUnicodeToChar, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplIBM737TextEncodingData = -{ - &aImplIBM737TextConverter, - RTL_TEXTENCODING_IBM_737, - 1, 1, 1, - 161, - 737, - 6, - (const sal_Char*)"iso8859-7", - (const sal_Char*)"iso-8859-7", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_DOS_OS2, - SCRIPT_GREEK -}; +static ImplTextEncodingData const aImplIBM737TextEncodingData + = { { &aImplIBM737ByteCvtData, + ImplCharToUnicode, + ImplUnicodeToChar, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_IBM_737, + 1, + 1, + 1, + 161, + "iso8859-7", + "iso-8859-7", + RTL_TEXTENCODING_INFO_ASCII }; + /* DOS/OS2, SCRIPT_GREEK, pc code page 737, mac encoding 6 */ /* ======================================================================= */ @@ -430,44 +411,25 @@ static ImplByteConvertData const aImplIBM775ByteCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData const aImplIBM775TextConverterData = -{ - &aImplIBM775ByteCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplIBM775TextConverter = -{ - &aImplIBM775TextConverterData, - ImplCharToUnicode, - ImplUnicodeToChar, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplIBM775TextEncodingData = -{ - &aImplIBM775TextConverter, - RTL_TEXTENCODING_IBM_775, - 1, 1, 1, - 186, - 775, - 29, /* ??? */ - (const sal_Char*)"iso8859-4", - (const sal_Char*)"iso-8859-4", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_DOS_OS2, - SCRIPT_BALTIC -}; +static ImplTextEncodingData const aImplIBM775TextEncodingData + = { { &aImplIBM775ByteCvtData, + ImplCharToUnicode, + ImplUnicodeToChar, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_IBM_775, + 1, + 1, + 1, + 186, + "iso8859-4", + "iso-8859-4", + RTL_TEXTENCODING_INFO_ASCII }; + /* DOS/OS2, SCRIPT_BALTIC, pc code page 775, mac encoding 29 (?) */ /* ======================================================================= */ @@ -656,45 +618,25 @@ static ImplByteConvertData const aImplIBM852ByteCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData const aImplIBM852TextConverterData = -{ - &aImplIBM852ByteCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplIBM852TextConverter = -{ - &aImplIBM852TextConverterData, - ImplCharToUnicode, - ImplUnicodeToChar, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplIBM852TextEncodingData = -{ - &aImplIBM852TextConverter, - RTL_TEXTENCODING_IBM_852, - 1, 1, 1, - 238, - 852, - 29, - (const sal_Char*)"iso8859-2", - (const sal_Char*)"ibm852", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_MIME | - RTL_TEXTENCODING_INFO_DOS_OS2, - SCRIPT_EASTEUROPE -}; +static ImplTextEncodingData const aImplIBM852TextEncodingData + = { { &aImplIBM852ByteCvtData, + ImplCharToUnicode, + ImplUnicodeToChar, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_IBM_852, + 1, + 1, + 1, + 238, + "iso8859-2", + "ibm852", + RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME }; + /* DOS/OS2, SCRIPT_EASTEUROPE, pc code page 852, mac encoding 29 */ /* ======================================================================= */ @@ -813,44 +755,25 @@ static ImplByteConvertData const aImplIBM855ByteCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData const aImplIBM855TextConverterData = -{ - &aImplIBM855ByteCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplIBM855TextConverter = -{ - &aImplIBM855TextConverterData, - ImplCharToUnicode, - ImplUnicodeToChar, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplIBM855TextEncodingData = -{ - &aImplIBM855TextConverter, - RTL_TEXTENCODING_IBM_855, - 1, 1, 1, - 204, - 855, - 7, - (const sal_Char*)"iso8859-5", - (const sal_Char*)"iso-8859-5", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_DOS_OS2, - SCRIPT_CYRILLIC -}; +static ImplTextEncodingData const aImplIBM855TextEncodingData + = { { &aImplIBM855ByteCvtData, + ImplCharToUnicode, + ImplUnicodeToChar, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_IBM_855, + 1, + 1, + 1, + 204, + "iso8859-5", + "iso-8859-5", + RTL_TEXTENCODING_INFO_ASCII }; + /* DOS/OS2, SCRIPT_CYRILLIC, pc code page 855, mac encoding 7 */ /* ======================================================================= */ @@ -968,44 +891,25 @@ static ImplByteConvertData const aImplIBM857ByteCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData const aImplIBM857TextConverterData = -{ - &aImplIBM857ByteCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplIBM857TextConverter = -{ - &aImplIBM857TextConverterData, - ImplCharToUnicode, - ImplUnicodeToChar, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplIBM857TextEncodingData = -{ - &aImplIBM857TextConverter, - RTL_TEXTENCODING_IBM_857, - 1, 1, 1, - 162, - 857, - 35, - (const sal_Char*)"iso8859-9", - (const sal_Char*)"iso-8859-9", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_DOS_OS2, - SCRIPT_TURKISH -}; +static ImplTextEncodingData const aImplIBM857TextEncodingData + = { { &aImplIBM857ByteCvtData, + ImplCharToUnicode, + ImplUnicodeToChar, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_IBM_857, + 1, + 1, + 1, + 162, + "iso8859-9", + "iso-8859-9", + RTL_TEXTENCODING_INFO_ASCII }; + /* DOS/OS2, SCRIPT_TURKISH, pc code page 857, mac encoding 35 */ /* ======================================================================= */ @@ -1144,45 +1048,25 @@ static ImplByteConvertData const aImplIBM866ByteCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData const aImplIBM866TextConverterData = -{ - &aImplIBM866ByteCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplIBM866TextConverter = -{ - &aImplIBM866TextConverterData, - ImplCharToUnicode, - ImplUnicodeToChar, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplIBM866TextEncodingData = -{ - &aImplIBM866TextConverter, - RTL_TEXTENCODING_IBM_866, - 1, 1, 1, - 204, - 866, - 7, - (const sal_Char*)"iso8859-5", - (const sal_Char*)"cp866", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_MIME | - RTL_TEXTENCODING_INFO_DOS_OS2, - SCRIPT_LATIN -}; +static ImplTextEncodingData const aImplIBM866TextEncodingData + = { { &aImplIBM866ByteCvtData, + ImplCharToUnicode, + ImplUnicodeToChar, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_IBM_866, + 1, + 1, + 1, + 204, + "iso8859-5", + "cp866", + RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME }; + /* DOS/OS2, SCRIPT_LATIN, pc code page 866, mac encoding 7 */ /* ======================================================================= */ @@ -1311,44 +1195,25 @@ static ImplByteConvertData const aImplIBM869ByteCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData const aImplIBM869TextConverterData = -{ - &aImplIBM869ByteCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplIBM869TextConverter = -{ - &aImplIBM869TextConverterData, - ImplCharToUnicode, - ImplUnicodeToChar, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplIBM869TextEncodingData = -{ - &aImplIBM869TextConverter, - RTL_TEXTENCODING_IBM_869, - 1, 1, 1, - 161, - 869, - 6, - (const sal_Char*)"iso8859-7", - (const sal_Char*)"iso-8859-7", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_DOS_OS2, - SCRIPT_LATIN -}; +static ImplTextEncodingData const aImplIBM869TextEncodingData + = { { &aImplIBM869ByteCvtData, + ImplCharToUnicode, + ImplUnicodeToChar, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_IBM_869, + 1, + 1, + 1, + 161, + "iso8859-7", + "iso-8859-7", + RTL_TEXTENCODING_INFO_ASCII }; + /* DOS/OS2, SCRIPT_LATIN, pc code page 869, mac encoding 6 */ /* ======================================================================= */ @@ -1532,45 +1397,25 @@ static ImplByteConvertData const aImplMS1250ByteCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData const aImplMS1250TextConverterData = -{ - &aImplMS1250ByteCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplMS1250TextConverter = -{ - &aImplMS1250TextConverterData, - ImplCharToUnicode, - ImplUnicodeToChar, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplMS1250TextEncodingData = -{ - &aImplMS1250TextConverter, - RTL_TEXTENCODING_MS_1250, - 1, 1, 1, - 238, - 852, - 29, - (const sal_Char*)"iso8859-2", - (const sal_Char*)"windows-1250", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_MIME | - RTL_TEXTENCODING_INFO_WIN, - SCRIPT_EASTEUROPE -}; +static ImplTextEncodingData const aImplMS1250TextEncodingData + = { { &aImplMS1250ByteCvtData, + ImplCharToUnicode, + ImplUnicodeToChar, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_MS_1250, + 1, + 1, + 1, + 238, + "iso8859-2", + "windows-1250", + RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME }; + /* WIN, SCRIPT_EASTEUROPE, pc code page 852, mac encoding 29 */ /* ======================================================================= */ @@ -1688,45 +1533,25 @@ static ImplByteConvertData const aImplMS1251ByteCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData const aImplMS1251TextConverterData = -{ - &aImplMS1251ByteCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplMS1251TextConverter = -{ - &aImplMS1251TextConverterData, - ImplCharToUnicode, - ImplUnicodeToChar, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplMS1251TextEncodingData = -{ - &aImplMS1251TextConverter, - RTL_TEXTENCODING_MS_1251, - 1, 1, 1, - 204, - 866, /* ??? 855 */ - 7, - (const sal_Char*)"iso8859-5", - (const sal_Char*)"windows-1251", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_MIME | - RTL_TEXTENCODING_INFO_WIN, - SCRIPT_CYRILLIC -}; +static ImplTextEncodingData const aImplMS1251TextEncodingData + = { { &aImplMS1251ByteCvtData, + ImplCharToUnicode, + ImplUnicodeToChar, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_MS_1251, + 1, + 1, + 1, + 204, + "iso8859-5", + "windows-1251", + RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME }; + /* WIN, SCRIPT_CYRILLIC, pc code page 866 (855?), mac encoding 7 */ /* ======================================================================= */ @@ -1847,45 +1672,25 @@ static ImplByteConvertData const aImplMS1253ByteCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData const aImplMS1253TextConverterData = -{ - &aImplMS1253ByteCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplMS1253TextConverter = -{ - &aImplMS1253TextConverterData, - ImplCharToUnicode, - ImplUnicodeToChar, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplMS1253TextEncodingData = -{ - &aImplMS1253TextConverter, - RTL_TEXTENCODING_MS_1253, - 1, 1, 1, - 161, - 869, - 6, - (const sal_Char*)"iso8859-7", - (const sal_Char*)"windows-1253", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_MIME | - RTL_TEXTENCODING_INFO_WIN, - SCRIPT_GREEK -}; +static ImplTextEncodingData const aImplMS1253TextEncodingData + = { { &aImplMS1253ByteCvtData, + ImplCharToUnicode, + ImplUnicodeToChar, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_MS_1253, + 1, + 1, + 1, + 161, + "iso8859-7", + "windows-1253", + RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME }; + /* WIN, SCRIPT_GREEK, pc code page 869, mac encoding 6 */ /* ======================================================================= */ @@ -1999,45 +1804,25 @@ static ImplByteConvertData const aImplMS1254ByteCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData const aImplMS1254TextConverterData = -{ - &aImplMS1254ByteCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplMS1254TextConverter = -{ - &aImplMS1254TextConverterData, - ImplCharToUnicode, - ImplUnicodeToChar, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplMS1254TextEncodingData = -{ - &aImplMS1254TextConverter, - RTL_TEXTENCODING_MS_1254, - 1, 1, 1, - 162, - 857, - 35, - (const sal_Char*)"iso8859-9", - (const sal_Char*)"windows-1254", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_MIME | - RTL_TEXTENCODING_INFO_WIN, - SCRIPT_TURKISH -}; +static ImplTextEncodingData const aImplMS1254TextEncodingData + = { { &aImplMS1254ByteCvtData, + ImplCharToUnicode, + ImplUnicodeToChar, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_MS_1254, + 1, + 1, + 1, + 162, + "iso8859-9", + "windows-1254", + RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME }; + /* WIN, SCRIPT_TURKISH, pc code page 857, mac encoding 35 */ /* ======================================================================= */ @@ -2156,45 +1941,25 @@ static ImplByteConvertData const aImplMS1257ByteCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData const aImplMS1257TextConverterData = -{ - &aImplMS1257ByteCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplMS1257TextConverter = -{ - &aImplMS1257TextConverterData, - ImplCharToUnicode, - ImplUnicodeToChar, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplMS1257TextEncodingData = -{ - &aImplMS1257TextConverter, - RTL_TEXTENCODING_MS_1257, - 1, 1, 1, - 186, - 775, - 29, - (const sal_Char*)"iso8859-4", - (const sal_Char*)"windows-1257", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_MIME | - RTL_TEXTENCODING_INFO_WIN, - SCRIPT_BALTIC -}; +static ImplTextEncodingData const aImplMS1257TextEncodingData + = { { &aImplMS1257ByteCvtData, + ImplCharToUnicode, + ImplUnicodeToChar, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_MS_1257, + 1, + 1, + 1, + 186, + "iso8859-4", + "windows-1257", + RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME }; + /* WIN, SCRIPT_BALTIC, pc code page 775, mac encoding 29 */ /* ======================================================================= */ @@ -2345,44 +2110,25 @@ static ImplByteConvertData const aImplISO88592ByteCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData const aImplISO88592TextConverterData = -{ - &aImplISO88592ByteCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplISO88592TextConverter = -{ - &aImplISO88592TextConverterData, - ImplCharToUnicode, - ImplUnicodeToChar, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplISO88592TextEncodingData = -{ - &aImplISO88592TextConverter, - RTL_TEXTENCODING_ISO_8859_2, - 1, 1, 1, - 238, - 852, - 29, - (const sal_Char*)"iso8859-2", - (const sal_Char*)"iso-8859-2", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_MIME, - SCRIPT_EASTEUROPE -}; +static ImplTextEncodingData const aImplISO88592TextEncodingData + = { { &aImplISO88592ByteCvtData, + ImplCharToUnicode, + ImplUnicodeToChar, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_ISO_8859_2, + 1, + 1, + 1, + 238, + "iso8859-2", + "iso-8859-2", + RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME }; + /* SCRIPT_EASTEUROPE, pc code page 852, mac encoding 29 */ /* ======================================================================= */ @@ -2526,44 +2272,25 @@ static ImplByteConvertData const aImplISO88593ByteCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData const aImplISO88593TextConverterData = -{ - &aImplISO88593ByteCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplISO88593TextConverter = -{ - &aImplISO88593TextConverterData, - ImplCharToUnicode, - ImplUnicodeToChar, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplISO88593TextEncodingData = -{ - &aImplISO88593TextConverter, - RTL_TEXTENCODING_ISO_8859_3, - 1, 1, 1, - 0, - 850, - 0, - (const sal_Char*)"iso8859-3", - (const sal_Char*)"iso-8859-3", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_MIME, - SCRIPT_LATIN -}; +static ImplTextEncodingData const aImplISO88593TextEncodingData + = { { &aImplISO88593ByteCvtData, + ImplCharToUnicode, + ImplUnicodeToChar, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_ISO_8859_3, + 1, + 1, + 1, + 0, + "iso8859-3", + "iso-8859-3", + RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME }; + /* SCRIPT_LATIN, pc code page 850 */ /* ======================================================================= */ @@ -2714,44 +2441,25 @@ static ImplByteConvertData const aImplISO88594ByteCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData const aImplISO88594TextConverterData = -{ - &aImplISO88594ByteCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplISO88594TextConverter = -{ - &aImplISO88594TextConverterData, - ImplCharToUnicode, - ImplUnicodeToChar, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplISO88594TextEncodingData = -{ - &aImplISO88594TextConverter, - RTL_TEXTENCODING_ISO_8859_4, - 1, 1, 1, - 186, - 775, - 29, /* ??? */ - (const sal_Char*)"iso8859-4", - (const sal_Char*)"iso-8859-4", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_MIME, - SCRIPT_BALTIC -}; +static ImplTextEncodingData const aImplISO88594TextEncodingData + = { { &aImplISO88594ByteCvtData, + ImplCharToUnicode, + ImplUnicodeToChar, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_ISO_8859_4, + 1, + 1, + 1, + 186, + "iso8859-4", + "iso-8859-4", + RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME }; + /* SCRIPT_BALTIC, pc code page 775, mac encoding 29 (?) */ /* ======================================================================= */ @@ -2832,44 +2540,25 @@ static ImplByteConvertData const aImplISO88595ByteCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData const aImplISO88595TextConverterData = -{ - &aImplISO88595ByteCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplISO88595TextConverter = -{ - &aImplISO88595TextConverterData, - ImplCharToUnicode, - ImplUnicodeToChar, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplISO88595TextEncodingData = -{ - &aImplISO88595TextConverter, - RTL_TEXTENCODING_ISO_8859_5, - 1, 1, 1, - 204, - 866, /* ??? 855 */ - 7, - (const sal_Char*)"iso8859-5", - (const sal_Char*)"iso-8859-5", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_MIME, - SCRIPT_CYRILLIC -}; +static ImplTextEncodingData const aImplISO88595TextEncodingData + = { { &aImplISO88595ByteCvtData, + ImplCharToUnicode, + ImplUnicodeToChar, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_ISO_8859_5, + 1, + 1, + 1, + 204, + "iso8859-5", + "iso-8859-5", + RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME }; + /* SCRIPT_CYRILLIC, pc code page 866 (855?), mac encoding 7 */ /* ======================================================================= */ @@ -2963,44 +2652,25 @@ static ImplByteConvertData const aImplISO88597ByteCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData const aImplISO88597TextConverterData = -{ - &aImplISO88597ByteCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplISO88597TextConverter = -{ - &aImplISO88597TextConverterData, - ImplCharToUnicode, - ImplUnicodeToChar, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplISO88597TextEncodingData = -{ - &aImplISO88597TextConverter, - RTL_TEXTENCODING_ISO_8859_7, - 1, 1, 1, - 161, - 869, - 6, - (const sal_Char*)"iso8859-7", - (const sal_Char*)"iso-8859-7", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_MIME, - SCRIPT_GREEK -}; +static ImplTextEncodingData const aImplISO88597TextEncodingData + = { { &aImplISO88597ByteCvtData, + ImplCharToUnicode, + ImplUnicodeToChar, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_ISO_8859_7, + 1, + 1, + 1, + 161, + "iso8859-7", + "iso-8859-7", + RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME }; + /* SCRIPT_GREEK, pc code page 869, mac encoding 6 */ /* ======================================================================= */ @@ -3083,44 +2753,25 @@ static ImplByteConvertData const aImplISO88599ByteCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData const aImplISO88599TextConverterData = -{ - &aImplISO88599ByteCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplISO88599TextConverter = -{ - &aImplISO88599TextConverterData, - ImplCharToUnicode, - ImplUnicodeToChar, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplISO88599TextEncodingData = -{ - &aImplISO88599TextConverter, - RTL_TEXTENCODING_ISO_8859_9, - 1, 1, 1, - 162, - 857, - 35, - (const sal_Char*)"iso8859-9", - (const sal_Char*)"iso-8859-9", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_MIME, - SCRIPT_TURKISH -}; +static ImplTextEncodingData const aImplISO88599TextEncodingData + = { { &aImplISO88599ByteCvtData, + ImplCharToUnicode, + ImplUnicodeToChar, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_ISO_8859_9, + 1, + 1, + 1, + 162, + "iso8859-9", + "iso-8859-9", + RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME }; + /* SCRIPT_TURKISH, pc code page 857, mac encoding 35 */ /* ======================================================================= */ @@ -3244,44 +2895,25 @@ static ImplByteConvertData const aImplISO885910ByteCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData const aImplISO885910TextConverterData = -{ - &aImplISO885910ByteCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplISO885910TextConverter = -{ - &aImplISO885910TextConverterData, - ImplCharToUnicode, - ImplUnicodeToChar, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplISO885910TextEncodingData = -{ - &aImplISO885910TextConverter, - RTL_TEXTENCODING_ISO_8859_10, - 1, 1, 1, - 238, - 852, - 29, - (const sal_Char*)"iso8859-10", - (const sal_Char*)"iso-8859-10", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_MIME, - SCRIPT_EASTEUROPE -}; +static ImplTextEncodingData const aImplISO885910TextEncodingData + = { { &aImplISO885910ByteCvtData, + ImplCharToUnicode, + ImplUnicodeToChar, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_ISO_8859_10, + 1, + 1, + 1, + 238, + "iso8859-10", + "iso-8859-10", + RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME }; + /* SCRIPT_EASTEUROPE, pc code page 852, mac encoding 29 */ /* ======================================================================= */ @@ -3432,44 +3064,25 @@ static ImplByteConvertData const aImplISO885913ByteCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData const aImplISO885913TextConverterData = -{ - &aImplISO885913ByteCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplISO885913TextConverter = -{ - &aImplISO885913TextConverterData, - ImplCharToUnicode, - ImplUnicodeToChar, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplISO885913TextEncodingData = -{ - &aImplISO885913TextConverter, - RTL_TEXTENCODING_ISO_8859_13, - 1, 1, 1, - 238, - 852, - 29, - (const sal_Char*)"iso8859-13", - (const sal_Char*)"iso-8859-13", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_MIME, - SCRIPT_EASTEUROPE -}; +static ImplTextEncodingData const aImplISO885913TextEncodingData + = { { &aImplISO885913ByteCvtData, + ImplCharToUnicode, + ImplUnicodeToChar, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_ISO_8859_13, + 1, + 1, + 1, + 238, + "iso8859-13", + "iso-8859-13", + RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME }; + /* SCRIPT_EASTEUROPE, pc code page 852, mac encoding 29 */ /* ======================================================================= */ @@ -3657,44 +3270,25 @@ static ImplByteConvertData const aImplAPPLECENTEUROByteCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData const aImplAPPLECENTEUROTextConverterData = -{ - &aImplAPPLECENTEUROByteCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplAPPLECENTEUROTextConverter = -{ - &aImplAPPLECENTEUROTextConverterData, - ImplCharToUnicode, - ImplUnicodeToChar, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplAPPLECENTEUROTextEncodingData = -{ - &aImplAPPLECENTEUROTextConverter, - RTL_TEXTENCODING_APPLE_CENTEURO, - 1, 1, 1, - 238, - 852, - 29, - (const sal_Char*)"iso8859-2", - (const sal_Char*)"iso-8859-2", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_MAC, - SCRIPT_EASTEUROPE -}; +static ImplTextEncodingData const aImplAPPLECENTEUROTextEncodingData + = { { &aImplAPPLECENTEUROByteCvtData, + ImplCharToUnicode, + ImplUnicodeToChar, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_APPLE_CENTEURO, + 1, + 1, + 1, + 238, + "iso8859-2", + "iso-8859-2", + RTL_TEXTENCODING_INFO_ASCII }; + /* MAC, SCRIPT_EASTEUROPE, pc code page 852, mac encoding 29 */ /* ======================================================================= */ @@ -3825,44 +3419,25 @@ static ImplByteConvertData const aImplAPPLECROATIANByteCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData const aImplAPPLECROATIANTextConverterData = -{ - &aImplAPPLECROATIANByteCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplAPPLECROATIANTextConverter = -{ - &aImplAPPLECROATIANTextConverterData, - ImplCharToUnicode, - ImplUnicodeToChar, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplAPPLECROATIANTextEncodingData = -{ - &aImplAPPLECROATIANTextConverter, - RTL_TEXTENCODING_APPLE_CROATIAN, - 1, 1, 1, - 238, - 852, - 36, - (const sal_Char*)"iso8859-2", - (const sal_Char*)"iso-8859-2", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_MAC, - SCRIPT_EASTEUROPE -}; +static ImplTextEncodingData const aImplAPPLECROATIANTextEncodingData + = { { &aImplAPPLECROATIANByteCvtData, + ImplCharToUnicode, + ImplUnicodeToChar, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_APPLE_CROATIAN, + 1, + 1, + 1, + 238, + "iso8859-2", + "iso-8859-2", + RTL_TEXTENCODING_INFO_ASCII }; + /* MAC, SCRIPT_EASTEUROPE, pc code page 852, mac encoding 36 */ /* ======================================================================= */ @@ -3980,44 +3555,25 @@ static ImplByteConvertData const aImplAPPLECYRILLICByteCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData const aImplAPPLECYRILLICTextConverterData = -{ - &aImplAPPLECYRILLICByteCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplAPPLECYRILLICTextConverter = -{ - &aImplAPPLECYRILLICTextConverterData, - ImplCharToUnicode, - ImplUnicodeToChar, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplAPPLECYRILLICTextEncodingData = -{ - &aImplAPPLECYRILLICTextConverter, - RTL_TEXTENCODING_APPLE_CYRILLIC, - 1, 1, 1, - 204, - 866, /* ??? 855 */ - 7, - (const sal_Char*)"iso8859-5", - (const sal_Char*)"iso-8859-5", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_MAC, - SCRIPT_CYRILLIC -}; +static ImplTextEncodingData const aImplAPPLECYRILLICTextEncodingData + = { { &aImplAPPLECYRILLICByteCvtData, + ImplCharToUnicode, + ImplUnicodeToChar, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_APPLE_CYRILLIC, + 1, + 1, + 1, + 204, + "iso8859-5", + "iso-8859-5", + RTL_TEXTENCODING_INFO_ASCII }; + /* MAC, SCRIPT_CYRILLIC, pc code page 866 (855?), mac encoding 7 */ /* ======================================================================= */ @@ -4154,44 +3710,25 @@ static ImplByteConvertData const aImplAPPLEGREEKByteCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData const aImplAPPLEGREEKTextConverterData = -{ - &aImplAPPLEGREEKByteCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplAPPLEGREEKTextConverter = -{ - &aImplAPPLEGREEKTextConverterData, - ImplCharToUnicode, - ImplUnicodeToChar, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplAPPLEGREEKTextEncodingData = -{ - &aImplAPPLEGREEKTextConverter, - RTL_TEXTENCODING_APPLE_GREEK, - 1, 1, 1, - 161, - 869, - 6, - (const sal_Char*)"iso8859-7", - (const sal_Char*)"iso-8859-7", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_MAC, - SCRIPT_GREEK -}; +static ImplTextEncodingData const aImplAPPLEGREEKTextEncodingData + = { { &aImplAPPLEGREEKByteCvtData, + ImplCharToUnicode, + ImplUnicodeToChar, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_APPLE_GREEK, + 1, + 1, + 1, + 161, + "iso8859-7", + "iso-8859-7", + RTL_TEXTENCODING_INFO_ASCII }; + /* MAC, SCRIPT_GREEK, pc code page 869, mac encoding 6 */ /* ======================================================================= */ @@ -4328,44 +3865,25 @@ static ImplByteConvertData const aImplAPPLEROMANIANByteCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData const aImplAPPLEROMANIANTextConverterData = -{ - &aImplAPPLEROMANIANByteCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplAPPLEROMANIANTextConverter = -{ - &aImplAPPLEROMANIANTextConverterData, - ImplCharToUnicode, - ImplUnicodeToChar, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplAPPLEROMANIANTextEncodingData = -{ - &aImplAPPLEROMANIANTextConverter, - RTL_TEXTENCODING_APPLE_ROMANIAN, - 1, 1, 1, - 238, - 852, - 38, - (const sal_Char*)"iso8859-2", - (const sal_Char*)"iso-8859-2", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_MAC, - SCRIPT_EASTEUROPE -}; +static ImplTextEncodingData const aImplAPPLEROMANIANTextEncodingData + = { { &aImplAPPLEROMANIANByteCvtData, + ImplCharToUnicode, + ImplUnicodeToChar, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_APPLE_ROMANIAN, + 1, + 1, + 1, + 238, + "iso8859-2", + "iso-8859-2", + RTL_TEXTENCODING_INFO_ASCII }; + /* MAC, SCRIPT_EASTEUROPE, pc code page 852, mac encoding 38 */ /* ======================================================================= */ @@ -4495,44 +4013,25 @@ static ImplByteConvertData const aImplAPPLETURKISHByteCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData const aImplAPPLETURKISHTextConverterData = -{ - &aImplAPPLETURKISHByteCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplAPPLETURKISHTextConverter = -{ - &aImplAPPLETURKISHTextConverterData, - ImplCharToUnicode, - ImplUnicodeToChar, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplAPPLETURKISHTextEncodingData = -{ - &aImplAPPLETURKISHTextConverter, - RTL_TEXTENCODING_APPLE_TURKISH, - 1, 1, 1, - 162, - 857, - 35, - (const sal_Char*)"iso8859-9", - (const sal_Char*)"iso-8859-9", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_MAC, - SCRIPT_TURKISH -}; +static ImplTextEncodingData const aImplAPPLETURKISHTextEncodingData + = { { &aImplAPPLETURKISHByteCvtData, + ImplCharToUnicode, + ImplUnicodeToChar, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_APPLE_TURKISH, + 1, + 1, + 1, + 162, + "iso8859-9", + "iso-8859-9", + RTL_TEXTENCODING_INFO_ASCII }; + /* MAC, SCRIPT_TURKISH, pc code page 857, mac encoding 35 */ /* ======================================================================= */ @@ -4650,44 +4149,26 @@ static ImplByteConvertData const aImplAPPLEUKRAINIANByteCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData const aImplAPPLEUKRAINIANTextConverterData = -{ - &aImplAPPLEUKRAINIANByteCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplAPPLEUKRAINIANTextConverter = -{ - &aImplAPPLEUKRAINIANTextConverterData, - ImplCharToUnicode, - ImplUnicodeToChar, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplAPPLEUKRAINIANTextEncodingData = -{ - &aImplAPPLEUKRAINIANTextConverter, - RTL_TEXTENCODING_APPLE_UKRAINIAN, - 1, 1, 1, - 204, - 866, /* ??? 855 */ - 0x98, /* Only available from MAC 8.5 */ - (const sal_Char*)"iso8859-5", - (const sal_Char*)"iso-8859-5", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_MAC, - SCRIPT_CYRILLIC -}; +static ImplTextEncodingData const aImplAPPLEUKRAINIANTextEncodingData + = { { &aImplAPPLEUKRAINIANByteCvtData, + ImplCharToUnicode, + ImplUnicodeToChar, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_APPLE_UKRAINIAN, + 1, + 1, + 1, + 204, + "iso8859-5", + "iso-8859-5", + RTL_TEXTENCODING_INFO_ASCII }; + /* MAC, SCRIPT_CYRILLIC, pc code page 866 (855?), mac encoding 0x98 + (MAC 8.5 and above) */ /* ======================================================================= */ @@ -4828,42 +4309,22 @@ static ImplByteConvertData const aImplKOI8RByteCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData const aImplKOI8RTextConverterData = -{ - &aImplKOI8RByteCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplKOI8RTextConverter = -{ - &aImplKOI8RTextConverterData, - ImplCharToUnicode, - ImplUnicodeToChar, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplKOI8RTextEncodingData = -{ - &aImplKOI8RTextConverter, - RTL_TEXTENCODING_KOI8_R, - 1, 1, 1, - 204, - 866, /* ??? 855 */ - 7, - (const sal_Char*)"koi8-r", - (const sal_Char*)"koi8-r", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_MIME, - SCRIPT_CYRILLIC -}; - +static ImplTextEncodingData const aImplKOI8RTextEncodingData + = { { &aImplKOI8RByteCvtData, + ImplCharToUnicode, + ImplUnicodeToChar, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_KOI8_R, + 1, + 1, + 1, + 204, + "koi8-r", + "koi8-r", + RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME }; + /* SCRIPT_CYRILLIC, pc code page 866 (855?), mac encoding 7 */ diff --git a/sal/textenc/tcvtjp6.tab b/sal/textenc/tcvtjp6.tab index bb0c409b9..f03e8516c 100644 --- a/sal/textenc/tcvtjp6.tab +++ b/sal/textenc/tcvtjp6.tab @@ -1,60 +1,60 @@ /************************************************************************* * - * $RCSfile: tcvtjp6.tab,v $ + * $RCSfile: tcvtjp6.tab,v $ * - * $Revision: 1.3 $ + * $Revision: 1.4 $ * - * last change: $Author: th $ $Date: 2000-12-13 22:22:57 $ + * last change: $Author: sb $ $Date: 2001-10-12 10:44:53 $ * - * The Contents of this file are made available subject to the terms of - * either of the following licenses + * The Contents of this file are made available subject to the terms of + * either of the following licenses * - * - GNU Lesser General Public License Version 2.1 - * - Sun Industry Standards Source License Version 1.1 + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 * - * Sun Microsystems Inc., October, 2000 + * Sun Microsystems Inc., October, 2000 * - * GNU Lesser General Public License Version 2.1 - * ============================================= - * Copyright 2000 by Sun Microsystems, Inc. - * 901 San Antonio Road, Palo Alto, CA 94303, USA + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License version 2.1, as published by the Free Software Foundation. + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA * * - * Sun Industry Standards Source License Version 1.1 - * ================================================= - * The contents of this file are subject to the Sun Industry Standards - * Source License Version 1.1 (the "License"); You may not use this file - * except in compliance with the License. You may obtain a copy of the - * License at http://www.openoffice.org/license.html. + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. * - * Software provided under this License is provided on an "AS IS" basis, - * WITHOUT WARRUNTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, - * WITHOUT LIMITATION, WARRUNTIES THAT THE SOFTWARE IS FREE OF DEFECTS, - * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. - * See the License for the specific provisions governing your rights and - * obligations concerning the Software. + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRUNTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRUNTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. * - * The Initial Developer of the Original Code is: Sun Microsystems, Inc.. + * The Initial Developer of the Original Code is: Sun Microsystems, Inc.. * - * Copyright: 2000 by Sun Microsystems, Inc. + * Copyright: 2000 by Sun Microsystems, Inc. * - * All Rights Reserved. + * All Rights Reserved. * - * Contributor(s): _______________________________________ + * Contributor(s): _______________________________________ * * ************************************************************************/ @@ -68,262 +68,262 @@ static ImplDBCSToUniLeadTab const aSJISUniLeadTab[256] = { - { 0x0000, 0, 0, NULL }, /* 0x00 */ - { 0x0001, 0, 0, NULL }, /* 0x01 */ - { 0x0002, 0, 0, NULL }, /* 0x02 */ - { 0x0003, 0, 0, NULL }, /* 0x03 */ - { 0x0004, 0, 0, NULL }, /* 0x04 */ - { 0x0005, 0, 0, NULL }, /* 0x05 */ - { 0x0006, 0, 0, NULL }, /* 0x06 */ - { 0x0007, 0, 0, NULL }, /* 0x07 */ - { 0x0008, 0, 0, NULL }, /* 0x08 */ - { 0x0009, 0, 0, NULL }, /* 0x09 */ - { 0x000A, 0, 0, NULL }, /* 0x0A */ - { 0x000B, 0, 0, NULL }, /* 0x0B */ - { 0x000C, 0, 0, NULL }, /* 0x0C */ - { 0x000D, 0, 0, NULL }, /* 0x0D */ - { 0x000E, 0, 0, NULL }, /* 0x0E */ - { 0x000F, 0, 0, NULL }, /* 0x0F */ - { 0x0010, 0, 0, NULL }, /* 0x10 */ - { 0x0011, 0, 0, NULL }, /* 0x11 */ - { 0x0012, 0, 0, NULL }, /* 0x12 */ - { 0x0013, 0, 0, NULL }, /* 0x13 */ - { 0x0014, 0, 0, NULL }, /* 0x14 */ - { 0x0015, 0, 0, NULL }, /* 0x15 */ - { 0x0016, 0, 0, NULL }, /* 0x16 */ - { 0x0017, 0, 0, NULL }, /* 0x17 */ - { 0x0018, 0, 0, NULL }, /* 0x18 */ - { 0x0019, 0, 0, NULL }, /* 0x19 */ - { 0x001A, 0, 0, NULL }, /* 0x1A */ - { 0x001B, 0, 0, NULL }, /* 0x1B */ - { 0x001C, 0, 0, NULL }, /* 0x1C */ - { 0x001D, 0, 0, NULL }, /* 0x1D */ - { 0x001E, 0, 0, NULL }, /* 0x1E */ - { 0x001F, 0, 0, NULL }, /* 0x1F */ - { 0x0020, 0, 0, NULL }, /* 0x20 */ - { 0x0021, 0, 0, NULL }, /* 0x21 */ - { 0x0022, 0, 0, NULL }, /* 0x22 */ - { 0x0023, 0, 0, NULL }, /* 0x23 */ - { 0x0024, 0, 0, NULL }, /* 0x24 */ - { 0x0025, 0, 0, NULL }, /* 0x25 */ - { 0x0026, 0, 0, NULL }, /* 0x26 */ - { 0x0027, 0, 0, NULL }, /* 0x27 */ - { 0x0028, 0, 0, NULL }, /* 0x28 */ - { 0x0029, 0, 0, NULL }, /* 0x29 */ - { 0x002A, 0, 0, NULL }, /* 0x2A */ - { 0x002B, 0, 0, NULL }, /* 0x2B */ - { 0x002C, 0, 0, NULL }, /* 0x2C */ - { 0x002D, 0, 0, NULL }, /* 0x2D */ - { 0x002E, 0, 0, NULL }, /* 0x2E */ - { 0x002F, 0, 0, NULL }, /* 0x2F */ - { 0x0030, 0, 0, NULL }, /* 0x30 */ - { 0x0031, 0, 0, NULL }, /* 0x31 */ - { 0x0032, 0, 0, NULL }, /* 0x32 */ - { 0x0033, 0, 0, NULL }, /* 0x33 */ - { 0x0034, 0, 0, NULL }, /* 0x34 */ - { 0x0035, 0, 0, NULL }, /* 0x35 */ - { 0x0036, 0, 0, NULL }, /* 0x36 */ - { 0x0037, 0, 0, NULL }, /* 0x37 */ - { 0x0038, 0, 0, NULL }, /* 0x38 */ - { 0x0039, 0, 0, NULL }, /* 0x39 */ - { 0x003A, 0, 0, NULL }, /* 0x3A */ - { 0x003B, 0, 0, NULL }, /* 0x3B */ - { 0x003C, 0, 0, NULL }, /* 0x3C */ - { 0x003D, 0, 0, NULL }, /* 0x3D */ - { 0x003E, 0, 0, NULL }, /* 0x3E */ - { 0x003F, 0, 0, NULL }, /* 0x3F */ - { 0x0040, 0, 0, NULL }, /* 0x40 */ - { 0x0041, 0, 0, NULL }, /* 0x41 */ - { 0x0042, 0, 0, NULL }, /* 0x42 */ - { 0x0043, 0, 0, NULL }, /* 0x43 */ - { 0x0044, 0, 0, NULL }, /* 0x44 */ - { 0x0045, 0, 0, NULL }, /* 0x45 */ - { 0x0046, 0, 0, NULL }, /* 0x46 */ - { 0x0047, 0, 0, NULL }, /* 0x47 */ - { 0x0048, 0, 0, NULL }, /* 0x48 */ - { 0x0049, 0, 0, NULL }, /* 0x49 */ - { 0x004A, 0, 0, NULL }, /* 0x4A */ - { 0x004B, 0, 0, NULL }, /* 0x4B */ - { 0x004C, 0, 0, NULL }, /* 0x4C */ - { 0x004D, 0, 0, NULL }, /* 0x4D */ - { 0x004E, 0, 0, NULL }, /* 0x4E */ - { 0x004F, 0, 0, NULL }, /* 0x4F */ - { 0x0050, 0, 0, NULL }, /* 0x50 */ - { 0x0051, 0, 0, NULL }, /* 0x51 */ - { 0x0052, 0, 0, NULL }, /* 0x52 */ - { 0x0053, 0, 0, NULL }, /* 0x53 */ - { 0x0054, 0, 0, NULL }, /* 0x54 */ - { 0x0055, 0, 0, NULL }, /* 0x55 */ - { 0x0056, 0, 0, NULL }, /* 0x56 */ - { 0x0057, 0, 0, NULL }, /* 0x57 */ - { 0x0058, 0, 0, NULL }, /* 0x58 */ - { 0x0059, 0, 0, NULL }, /* 0x59 */ - { 0x005A, 0, 0, NULL }, /* 0x5A */ - { 0x005B, 0, 0, NULL }, /* 0x5B */ - { 0x005C, 0, 0, NULL }, /* 0x5C */ /* is A5 (YEN SIGN), but for compatibiliy with ascii, we use 0x5C (SLASH) like MS CP392 */ - { 0x005D, 0, 0, NULL }, /* 0x5D */ - { 0x005E, 0, 0, NULL }, /* 0x5E */ - { 0x005F, 0, 0, NULL }, /* 0x5F */ - { 0x0060, 0, 0, NULL }, /* 0x60 */ - { 0x0061, 0, 0, NULL }, /* 0x61 */ - { 0x0062, 0, 0, NULL }, /* 0x62 */ - { 0x0063, 0, 0, NULL }, /* 0x63 */ - { 0x0064, 0, 0, NULL }, /* 0x64 */ - { 0x0065, 0, 0, NULL }, /* 0x65 */ - { 0x0066, 0, 0, NULL }, /* 0x66 */ - { 0x0067, 0, 0, NULL }, /* 0x67 */ - { 0x0068, 0, 0, NULL }, /* 0x68 */ - { 0x0069, 0, 0, NULL }, /* 0x69 */ - { 0x006A, 0, 0, NULL }, /* 0x6A */ - { 0x006B, 0, 0, NULL }, /* 0x6B */ - { 0x006C, 0, 0, NULL }, /* 0x6C */ - { 0x006D, 0, 0, NULL }, /* 0x6D */ - { 0x006E, 0, 0, NULL }, /* 0x6E */ - { 0x006F, 0, 0, NULL }, /* 0x6F */ - { 0x0070, 0, 0, NULL }, /* 0x70 */ - { 0x0071, 0, 0, NULL }, /* 0x71 */ - { 0x0072, 0, 0, NULL }, /* 0x72 */ - { 0x0073, 0, 0, NULL }, /* 0x73 */ - { 0x0074, 0, 0, NULL }, /* 0x74 */ - { 0x0075, 0, 0, NULL }, /* 0x75 */ - { 0x0076, 0, 0, NULL }, /* 0x76 */ - { 0x0077, 0, 0, NULL }, /* 0x77 */ - { 0x0078, 0, 0, NULL }, /* 0x78 */ - { 0x0079, 0, 0, NULL }, /* 0x79 */ - { 0x007A, 0, 0, NULL }, /* 0x7A */ - { 0x007B, 0, 0, NULL }, /* 0x7B */ - { 0x007C, 0, 0, NULL }, /* 0x7C */ - { 0x007D, 0, 0, NULL }, /* 0x7D */ - { 0x007E, 0, 0, NULL }, /* 0x7E */ /* is 0x0203E (SPACING OVERSCORE), but for compatibiliy with ascii, we use 0x7E (TILDE) like MS CP392 */ - { 0x007F, 0, 0, NULL }, /* 0x7F */ - { 0x005C, 0, 0, NULL }, /* 0x80 */ /* APPLE additons over SJIS, we convert this like apple, because I think, this gives better result, than we take a replacement char */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_MS932_81 }, /* 0x81 */ - { 0, 0x4F, 0xF1, aImplDBCSToUniTab_SJIS_82 }, /* 0x82 */ - { 0, 0x40, 0xD6, aImplDBCSToUniTab_SJIS_83 }, /* 0x83 */ - { 0, 0x40, 0xBF, aImplDBCSToUniTab_SJIS_84 }, /* 0x84 */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x85 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x86 */ /* We convert this as double byte */ - { 0, 0x40, 0x9C, aImplDBCSToUniTab_MS932_87 }, /* 0x87 */ /* We use the MS table for better MS compatibility */ - { 0, 0x9F, 0xFC, aImplDBCSToUniTab_SJIS_88 }, /* 0x88 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_89 }, /* 0x89 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8A }, /* 0x8A */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8B }, /* 0x8B */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8C }, /* 0x8C */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8D }, /* 0x8D */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8E }, /* 0x8E */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8F }, /* 0x8F */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_90 }, /* 0x90 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_91 }, /* 0x91 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_92 }, /* 0x92 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_93 }, /* 0x93 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_94 }, /* 0x94 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_95 }, /* 0x95 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_96 }, /* 0x96 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_97 }, /* 0x97 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_98 }, /* 0x98 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_99 }, /* 0x99 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9A }, /* 0x9A */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9B }, /* 0x9B */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9C }, /* 0x9C */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9D }, /* 0x9D */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9E }, /* 0x9E */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9F }, /* 0x9F */ - { 0x00A0, 0, 0, NULL }, /* 0xA0 */ /* APPLE additons over SJIS, we convert this like apple, because I think, this gives better result, than we take a replacement char */ - { 0xFF61, 0, 0, NULL }, /* 0xA1 */ - { 0xFF62, 0, 0, NULL }, /* 0xA2 */ - { 0xFF63, 0, 0, NULL }, /* 0xA3 */ - { 0xFF64, 0, 0, NULL }, /* 0xA4 */ - { 0xFF65, 0, 0, NULL }, /* 0xA5 */ - { 0xFF66, 0, 0, NULL }, /* 0xA6 */ - { 0xFF67, 0, 0, NULL }, /* 0xA7 */ - { 0xFF68, 0, 0, NULL }, /* 0xA8 */ - { 0xFF69, 0, 0, NULL }, /* 0xA9 */ - { 0xFF6A, 0, 0, NULL }, /* 0xAA */ - { 0xFF6B, 0, 0, NULL }, /* 0xAB */ - { 0xFF6C, 0, 0, NULL }, /* 0xAC */ - { 0xFF6D, 0, 0, NULL }, /* 0xAD */ - { 0xFF6E, 0, 0, NULL }, /* 0xAE */ - { 0xFF6F, 0, 0, NULL }, /* 0xAF */ - { 0xFF70, 0, 0, NULL }, /* 0xB0 */ - { 0xFF71, 0, 0, NULL }, /* 0xB1 */ - { 0xFF72, 0, 0, NULL }, /* 0xB2 */ - { 0xFF73, 0, 0, NULL }, /* 0xB3 */ - { 0xFF74, 0, 0, NULL }, /* 0xB4 */ - { 0xFF75, 0, 0, NULL }, /* 0xB5 */ - { 0xFF76, 0, 0, NULL }, /* 0xB6 */ - { 0xFF77, 0, 0, NULL }, /* 0xB7 */ - { 0xFF78, 0, 0, NULL }, /* 0xB8 */ - { 0xFF79, 0, 0, NULL }, /* 0xB9 */ - { 0xFF7A, 0, 0, NULL }, /* 0xBA */ - { 0xFF7B, 0, 0, NULL }, /* 0xBB */ - { 0xFF7C, 0, 0, NULL }, /* 0xBC */ - { 0xFF7D, 0, 0, NULL }, /* 0xBD */ - { 0xFF7E, 0, 0, NULL }, /* 0xBE */ - { 0xFF7F, 0, 0, NULL }, /* 0xBF */ - { 0xFF80, 0, 0, NULL }, /* 0xC0 */ - { 0xFF81, 0, 0, NULL }, /* 0xC1 */ - { 0xFF82, 0, 0, NULL }, /* 0xC2 */ - { 0xFF83, 0, 0, NULL }, /* 0xC3 */ - { 0xFF84, 0, 0, NULL }, /* 0xC4 */ - { 0xFF85, 0, 0, NULL }, /* 0xC5 */ - { 0xFF86, 0, 0, NULL }, /* 0xC6 */ - { 0xFF87, 0, 0, NULL }, /* 0xC7 */ - { 0xFF88, 0, 0, NULL }, /* 0xC8 */ - { 0xFF89, 0, 0, NULL }, /* 0xC9 */ - { 0xFF8A, 0, 0, NULL }, /* 0xCA */ - { 0xFF8B, 0, 0, NULL }, /* 0xCB */ - { 0xFF8C, 0, 0, NULL }, /* 0xCC */ - { 0xFF8D, 0, 0, NULL }, /* 0xCD */ - { 0xFF8E, 0, 0, NULL }, /* 0xCE */ - { 0xFF8F, 0, 0, NULL }, /* 0xCF */ - { 0xFF90, 0, 0, NULL }, /* 0xD0 */ - { 0xFF91, 0, 0, NULL }, /* 0xD1 */ - { 0xFF92, 0, 0, NULL }, /* 0xD2 */ - { 0xFF93, 0, 0, NULL }, /* 0xD3 */ - { 0xFF94, 0, 0, NULL }, /* 0xD4 */ - { 0xFF95, 0, 0, NULL }, /* 0xD5 */ - { 0xFF96, 0, 0, NULL }, /* 0xD6 */ - { 0xFF97, 0, 0, NULL }, /* 0xD7 */ - { 0xFF98, 0, 0, NULL }, /* 0xD8 */ - { 0xFF99, 0, 0, NULL }, /* 0xD9 */ - { 0xFF9A, 0, 0, NULL }, /* 0xDA */ - { 0xFF9B, 0, 0, NULL }, /* 0xDB */ - { 0xFF9C, 0, 0, NULL }, /* 0xDC */ - { 0xFF9D, 0, 0, NULL }, /* 0xDD */ - { 0xFF9E, 0, 0, NULL }, /* 0xDE */ - { 0xFF9F, 0, 0, NULL }, /* 0xDF */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E0 }, /* 0xE0 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E1 }, /* 0xE1 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E2 }, /* 0xE2 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E3 }, /* 0xE3 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E4 }, /* 0xE4 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E5 }, /* 0xE5 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E6 }, /* 0xE6 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E7 }, /* 0xE7 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E8 }, /* 0xE8 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E9 }, /* 0xE9 */ - { 0, 0x40, 0xA4, aImplDBCSToUniTab_SJIS_EA }, /* 0xEA */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xEB */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xEC */ /* We convert this as double byte */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_MS932_ED }, /* 0xED */ /* We use the MS table for better MS compatibility */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_MS932_EE }, /* 0xEE */ /* We use the MS table for better MS compatibility */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xEF */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF0 */ /* EUDC Range */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF1 */ /* EUDC Range */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF2 */ /* EUDC Range */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF3 */ /* EUDC Range */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF4 */ /* EUDC Range */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF5 */ /* EUDC Range */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF6 */ /* EUDC Range */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF7 */ /* EUDC Range */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF8 */ /* EUDC Range */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF9 */ /* EUDC Range */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_MS932_FA }, /* 0xFA */ /* We use the MS table for better MS compatibility */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_MS932_FB }, /* 0xFB */ /* We use the MS table for better MS compatibility */ - { 0, 0x40, 0x4B, aImplDBCSToUniTab_MS932_FC }, /* 0xFC */ /* We use the MS table for better MS compatibility */ - { 0x00A9, 0, 0, NULL }, /* 0xFD */ /* APPLE additons over SJIS, we convert this like apple, because I think, this gives better result, than we take a replacement char */ - { 0x2122, 0, 0, NULL }, /* 0xFE */ /* APPLE additons over SJIS, we convert this like apple, because I think, this gives better result, than we take a replacement char */ - { 0x2026, 0, 0, NULL } /* 0xFF */ /* APPLE additons over SJIS, we convert this like apple, because I think, this gives better result, than we take a replacement char */ + { 0x0000, 0, 0, NULL }, /* 0x00 */ + { 0x0001, 0, 0, NULL }, /* 0x01 */ + { 0x0002, 0, 0, NULL }, /* 0x02 */ + { 0x0003, 0, 0, NULL }, /* 0x03 */ + { 0x0004, 0, 0, NULL }, /* 0x04 */ + { 0x0005, 0, 0, NULL }, /* 0x05 */ + { 0x0006, 0, 0, NULL }, /* 0x06 */ + { 0x0007, 0, 0, NULL }, /* 0x07 */ + { 0x0008, 0, 0, NULL }, /* 0x08 */ + { 0x0009, 0, 0, NULL }, /* 0x09 */ + { 0x000A, 0, 0, NULL }, /* 0x0A */ + { 0x000B, 0, 0, NULL }, /* 0x0B */ + { 0x000C, 0, 0, NULL }, /* 0x0C */ + { 0x000D, 0, 0, NULL }, /* 0x0D */ + { 0x000E, 0, 0, NULL }, /* 0x0E */ + { 0x000F, 0, 0, NULL }, /* 0x0F */ + { 0x0010, 0, 0, NULL }, /* 0x10 */ + { 0x0011, 0, 0, NULL }, /* 0x11 */ + { 0x0012, 0, 0, NULL }, /* 0x12 */ + { 0x0013, 0, 0, NULL }, /* 0x13 */ + { 0x0014, 0, 0, NULL }, /* 0x14 */ + { 0x0015, 0, 0, NULL }, /* 0x15 */ + { 0x0016, 0, 0, NULL }, /* 0x16 */ + { 0x0017, 0, 0, NULL }, /* 0x17 */ + { 0x0018, 0, 0, NULL }, /* 0x18 */ + { 0x0019, 0, 0, NULL }, /* 0x19 */ + { 0x001A, 0, 0, NULL }, /* 0x1A */ + { 0x001B, 0, 0, NULL }, /* 0x1B */ + { 0x001C, 0, 0, NULL }, /* 0x1C */ + { 0x001D, 0, 0, NULL }, /* 0x1D */ + { 0x001E, 0, 0, NULL }, /* 0x1E */ + { 0x001F, 0, 0, NULL }, /* 0x1F */ + { 0x0020, 0, 0, NULL }, /* 0x20 */ + { 0x0021, 0, 0, NULL }, /* 0x21 */ + { 0x0022, 0, 0, NULL }, /* 0x22 */ + { 0x0023, 0, 0, NULL }, /* 0x23 */ + { 0x0024, 0, 0, NULL }, /* 0x24 */ + { 0x0025, 0, 0, NULL }, /* 0x25 */ + { 0x0026, 0, 0, NULL }, /* 0x26 */ + { 0x0027, 0, 0, NULL }, /* 0x27 */ + { 0x0028, 0, 0, NULL }, /* 0x28 */ + { 0x0029, 0, 0, NULL }, /* 0x29 */ + { 0x002A, 0, 0, NULL }, /* 0x2A */ + { 0x002B, 0, 0, NULL }, /* 0x2B */ + { 0x002C, 0, 0, NULL }, /* 0x2C */ + { 0x002D, 0, 0, NULL }, /* 0x2D */ + { 0x002E, 0, 0, NULL }, /* 0x2E */ + { 0x002F, 0, 0, NULL }, /* 0x2F */ + { 0x0030, 0, 0, NULL }, /* 0x30 */ + { 0x0031, 0, 0, NULL }, /* 0x31 */ + { 0x0032, 0, 0, NULL }, /* 0x32 */ + { 0x0033, 0, 0, NULL }, /* 0x33 */ + { 0x0034, 0, 0, NULL }, /* 0x34 */ + { 0x0035, 0, 0, NULL }, /* 0x35 */ + { 0x0036, 0, 0, NULL }, /* 0x36 */ + { 0x0037, 0, 0, NULL }, /* 0x37 */ + { 0x0038, 0, 0, NULL }, /* 0x38 */ + { 0x0039, 0, 0, NULL }, /* 0x39 */ + { 0x003A, 0, 0, NULL }, /* 0x3A */ + { 0x003B, 0, 0, NULL }, /* 0x3B */ + { 0x003C, 0, 0, NULL }, /* 0x3C */ + { 0x003D, 0, 0, NULL }, /* 0x3D */ + { 0x003E, 0, 0, NULL }, /* 0x3E */ + { 0x003F, 0, 0, NULL }, /* 0x3F */ + { 0x0040, 0, 0, NULL }, /* 0x40 */ + { 0x0041, 0, 0, NULL }, /* 0x41 */ + { 0x0042, 0, 0, NULL }, /* 0x42 */ + { 0x0043, 0, 0, NULL }, /* 0x43 */ + { 0x0044, 0, 0, NULL }, /* 0x44 */ + { 0x0045, 0, 0, NULL }, /* 0x45 */ + { 0x0046, 0, 0, NULL }, /* 0x46 */ + { 0x0047, 0, 0, NULL }, /* 0x47 */ + { 0x0048, 0, 0, NULL }, /* 0x48 */ + { 0x0049, 0, 0, NULL }, /* 0x49 */ + { 0x004A, 0, 0, NULL }, /* 0x4A */ + { 0x004B, 0, 0, NULL }, /* 0x4B */ + { 0x004C, 0, 0, NULL }, /* 0x4C */ + { 0x004D, 0, 0, NULL }, /* 0x4D */ + { 0x004E, 0, 0, NULL }, /* 0x4E */ + { 0x004F, 0, 0, NULL }, /* 0x4F */ + { 0x0050, 0, 0, NULL }, /* 0x50 */ + { 0x0051, 0, 0, NULL }, /* 0x51 */ + { 0x0052, 0, 0, NULL }, /* 0x52 */ + { 0x0053, 0, 0, NULL }, /* 0x53 */ + { 0x0054, 0, 0, NULL }, /* 0x54 */ + { 0x0055, 0, 0, NULL }, /* 0x55 */ + { 0x0056, 0, 0, NULL }, /* 0x56 */ + { 0x0057, 0, 0, NULL }, /* 0x57 */ + { 0x0058, 0, 0, NULL }, /* 0x58 */ + { 0x0059, 0, 0, NULL }, /* 0x59 */ + { 0x005A, 0, 0, NULL }, /* 0x5A */ + { 0x005B, 0, 0, NULL }, /* 0x5B */ + { 0x005C, 0, 0, NULL }, /* 0x5C */ /* is A5 (YEN SIGN), but for compatibiliy with ascii, we use 0x5C (SLASH) like MS CP392 */ + { 0x005D, 0, 0, NULL }, /* 0x5D */ + { 0x005E, 0, 0, NULL }, /* 0x5E */ + { 0x005F, 0, 0, NULL }, /* 0x5F */ + { 0x0060, 0, 0, NULL }, /* 0x60 */ + { 0x0061, 0, 0, NULL }, /* 0x61 */ + { 0x0062, 0, 0, NULL }, /* 0x62 */ + { 0x0063, 0, 0, NULL }, /* 0x63 */ + { 0x0064, 0, 0, NULL }, /* 0x64 */ + { 0x0065, 0, 0, NULL }, /* 0x65 */ + { 0x0066, 0, 0, NULL }, /* 0x66 */ + { 0x0067, 0, 0, NULL }, /* 0x67 */ + { 0x0068, 0, 0, NULL }, /* 0x68 */ + { 0x0069, 0, 0, NULL }, /* 0x69 */ + { 0x006A, 0, 0, NULL }, /* 0x6A */ + { 0x006B, 0, 0, NULL }, /* 0x6B */ + { 0x006C, 0, 0, NULL }, /* 0x6C */ + { 0x006D, 0, 0, NULL }, /* 0x6D */ + { 0x006E, 0, 0, NULL }, /* 0x6E */ + { 0x006F, 0, 0, NULL }, /* 0x6F */ + { 0x0070, 0, 0, NULL }, /* 0x70 */ + { 0x0071, 0, 0, NULL }, /* 0x71 */ + { 0x0072, 0, 0, NULL }, /* 0x72 */ + { 0x0073, 0, 0, NULL }, /* 0x73 */ + { 0x0074, 0, 0, NULL }, /* 0x74 */ + { 0x0075, 0, 0, NULL }, /* 0x75 */ + { 0x0076, 0, 0, NULL }, /* 0x76 */ + { 0x0077, 0, 0, NULL }, /* 0x77 */ + { 0x0078, 0, 0, NULL }, /* 0x78 */ + { 0x0079, 0, 0, NULL }, /* 0x79 */ + { 0x007A, 0, 0, NULL }, /* 0x7A */ + { 0x007B, 0, 0, NULL }, /* 0x7B */ + { 0x007C, 0, 0, NULL }, /* 0x7C */ + { 0x007D, 0, 0, NULL }, /* 0x7D */ + { 0x007E, 0, 0, NULL }, /* 0x7E */ /* is 0x0203E (SPACING OVERSCORE), but for compatibiliy with ascii, we use 0x7E (TILDE) like MS CP392 */ + { 0x007F, 0, 0, NULL }, /* 0x7F */ + { 0x005C, 0, 0, NULL }, /* 0x80 */ /* APPLE additons over SJIS, we convert this like apple, because I think, this gives better result, than we take a replacement char */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_MS932_81 }, /* 0x81 */ + { 0, 0x4F, 0xF1, aImplDBCSToUniTab_SJIS_82 }, /* 0x82 */ + { 0, 0x40, 0xD6, aImplDBCSToUniTab_SJIS_83 }, /* 0x83 */ + { 0, 0x40, 0xBF, aImplDBCSToUniTab_SJIS_84 }, /* 0x84 */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x85 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x86 */ /* We convert this as double byte */ + { 0, 0x40, 0x9C, aImplDBCSToUniTab_MS932_87 }, /* 0x87 */ /* We use the MS table for better MS compatibility */ + { 0, 0x9F, 0xFC, aImplDBCSToUniTab_SJIS_88 }, /* 0x88 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_89 }, /* 0x89 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8A }, /* 0x8A */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8B }, /* 0x8B */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8C }, /* 0x8C */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8D }, /* 0x8D */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8E }, /* 0x8E */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8F }, /* 0x8F */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_90 }, /* 0x90 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_91 }, /* 0x91 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_92 }, /* 0x92 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_93 }, /* 0x93 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_94 }, /* 0x94 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_95 }, /* 0x95 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_96 }, /* 0x96 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_97 }, /* 0x97 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_98 }, /* 0x98 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_99 }, /* 0x99 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9A }, /* 0x9A */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9B }, /* 0x9B */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9C }, /* 0x9C */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9D }, /* 0x9D */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9E }, /* 0x9E */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9F }, /* 0x9F */ + { 0x00A0, 0, 0, NULL }, /* 0xA0 */ /* APPLE additons over SJIS, we convert this like apple, because I think, this gives better result, than we take a replacement char */ + { 0xFF61, 0, 0, NULL }, /* 0xA1 */ + { 0xFF62, 0, 0, NULL }, /* 0xA2 */ + { 0xFF63, 0, 0, NULL }, /* 0xA3 */ + { 0xFF64, 0, 0, NULL }, /* 0xA4 */ + { 0xFF65, 0, 0, NULL }, /* 0xA5 */ + { 0xFF66, 0, 0, NULL }, /* 0xA6 */ + { 0xFF67, 0, 0, NULL }, /* 0xA7 */ + { 0xFF68, 0, 0, NULL }, /* 0xA8 */ + { 0xFF69, 0, 0, NULL }, /* 0xA9 */ + { 0xFF6A, 0, 0, NULL }, /* 0xAA */ + { 0xFF6B, 0, 0, NULL }, /* 0xAB */ + { 0xFF6C, 0, 0, NULL }, /* 0xAC */ + { 0xFF6D, 0, 0, NULL }, /* 0xAD */ + { 0xFF6E, 0, 0, NULL }, /* 0xAE */ + { 0xFF6F, 0, 0, NULL }, /* 0xAF */ + { 0xFF70, 0, 0, NULL }, /* 0xB0 */ + { 0xFF71, 0, 0, NULL }, /* 0xB1 */ + { 0xFF72, 0, 0, NULL }, /* 0xB2 */ + { 0xFF73, 0, 0, NULL }, /* 0xB3 */ + { 0xFF74, 0, 0, NULL }, /* 0xB4 */ + { 0xFF75, 0, 0, NULL }, /* 0xB5 */ + { 0xFF76, 0, 0, NULL }, /* 0xB6 */ + { 0xFF77, 0, 0, NULL }, /* 0xB7 */ + { 0xFF78, 0, 0, NULL }, /* 0xB8 */ + { 0xFF79, 0, 0, NULL }, /* 0xB9 */ + { 0xFF7A, 0, 0, NULL }, /* 0xBA */ + { 0xFF7B, 0, 0, NULL }, /* 0xBB */ + { 0xFF7C, 0, 0, NULL }, /* 0xBC */ + { 0xFF7D, 0, 0, NULL }, /* 0xBD */ + { 0xFF7E, 0, 0, NULL }, /* 0xBE */ + { 0xFF7F, 0, 0, NULL }, /* 0xBF */ + { 0xFF80, 0, 0, NULL }, /* 0xC0 */ + { 0xFF81, 0, 0, NULL }, /* 0xC1 */ + { 0xFF82, 0, 0, NULL }, /* 0xC2 */ + { 0xFF83, 0, 0, NULL }, /* 0xC3 */ + { 0xFF84, 0, 0, NULL }, /* 0xC4 */ + { 0xFF85, 0, 0, NULL }, /* 0xC5 */ + { 0xFF86, 0, 0, NULL }, /* 0xC6 */ + { 0xFF87, 0, 0, NULL }, /* 0xC7 */ + { 0xFF88, 0, 0, NULL }, /* 0xC8 */ + { 0xFF89, 0, 0, NULL }, /* 0xC9 */ + { 0xFF8A, 0, 0, NULL }, /* 0xCA */ + { 0xFF8B, 0, 0, NULL }, /* 0xCB */ + { 0xFF8C, 0, 0, NULL }, /* 0xCC */ + { 0xFF8D, 0, 0, NULL }, /* 0xCD */ + { 0xFF8E, 0, 0, NULL }, /* 0xCE */ + { 0xFF8F, 0, 0, NULL }, /* 0xCF */ + { 0xFF90, 0, 0, NULL }, /* 0xD0 */ + { 0xFF91, 0, 0, NULL }, /* 0xD1 */ + { 0xFF92, 0, 0, NULL }, /* 0xD2 */ + { 0xFF93, 0, 0, NULL }, /* 0xD3 */ + { 0xFF94, 0, 0, NULL }, /* 0xD4 */ + { 0xFF95, 0, 0, NULL }, /* 0xD5 */ + { 0xFF96, 0, 0, NULL }, /* 0xD6 */ + { 0xFF97, 0, 0, NULL }, /* 0xD7 */ + { 0xFF98, 0, 0, NULL }, /* 0xD8 */ + { 0xFF99, 0, 0, NULL }, /* 0xD9 */ + { 0xFF9A, 0, 0, NULL }, /* 0xDA */ + { 0xFF9B, 0, 0, NULL }, /* 0xDB */ + { 0xFF9C, 0, 0, NULL }, /* 0xDC */ + { 0xFF9D, 0, 0, NULL }, /* 0xDD */ + { 0xFF9E, 0, 0, NULL }, /* 0xDE */ + { 0xFF9F, 0, 0, NULL }, /* 0xDF */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E0 }, /* 0xE0 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E1 }, /* 0xE1 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E2 }, /* 0xE2 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E3 }, /* 0xE3 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E4 }, /* 0xE4 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E5 }, /* 0xE5 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E6 }, /* 0xE6 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E7 }, /* 0xE7 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E8 }, /* 0xE8 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E9 }, /* 0xE9 */ + { 0, 0x40, 0xA4, aImplDBCSToUniTab_SJIS_EA }, /* 0xEA */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xEB */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xEC */ /* We convert this as double byte */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_MS932_ED }, /* 0xED */ /* We use the MS table for better MS compatibility */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_MS932_EE }, /* 0xEE */ /* We use the MS table for better MS compatibility */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xEF */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF0 */ /* EUDC Range */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF1 */ /* EUDC Range */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF2 */ /* EUDC Range */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF3 */ /* EUDC Range */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF4 */ /* EUDC Range */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF5 */ /* EUDC Range */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF6 */ /* EUDC Range */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF7 */ /* EUDC Range */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF8 */ /* EUDC Range */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF9 */ /* EUDC Range */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_MS932_FA }, /* 0xFA */ /* We use the MS table for better MS compatibility */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_MS932_FB }, /* 0xFB */ /* We use the MS table for better MS compatibility */ + { 0, 0x40, 0x4B, aImplDBCSToUniTab_MS932_FC }, /* 0xFC */ /* We use the MS table for better MS compatibility */ + { 0x00A9, 0, 0, NULL }, /* 0xFD */ /* APPLE additons over SJIS, we convert this like apple, because I think, this gives better result, than we take a replacement char */ + { 0x2122, 0, 0, NULL }, /* 0xFE */ /* APPLE additons over SJIS, we convert this like apple, because I think, this gives better result, than we take a replacement char */ + { 0x2026, 0, 0, NULL } /* 0xFF */ /* APPLE additons over SJIS, we convert this like apple, because I think, this gives better result, than we take a replacement char */ }; /* ----------------------------------------------------------------------- */ @@ -332,274 +332,274 @@ static ImplDBCSToUniLeadTab const aSJISUniLeadTab[256] = static ImplUniToDBCSHighTab const aSJISDBCSHighTab[256] = { - { 0x00, 0xF7, aImplUniToDBCSTab_SJIS_00 }, /* 0x00 */ - { 1, 0, NULL }, /* 0x01 */ - { 1, 0, NULL }, /* 0x02 */ - { 0x91, 0xC9, aImplUniToDBCSTab_SJIS_03 }, /* 0x03 */ - { 0x01, 0x51, aImplUniToDBCSTab_SJIS_04 }, /* 0x04 */ - { 1, 0, NULL }, /* 0x05 */ - { 1, 0, NULL }, /* 0x06 */ - { 1, 0, NULL }, /* 0x07 */ - { 1, 0, NULL }, /* 0x08 */ - { 1, 0, NULL }, /* 0x09 */ - { 1, 0, NULL }, /* 0x0A */ - { 1, 0, NULL }, /* 0x0B */ - { 1, 0, NULL }, /* 0x0C */ - { 1, 0, NULL }, /* 0x0D */ - { 1, 0, NULL }, /* 0x0E */ - { 1, 0, NULL }, /* 0x0F */ - { 1, 0, NULL }, /* 0x10 */ - { 1, 0, NULL }, /* 0x11 */ - { 1, 0, NULL }, /* 0x12 */ - { 1, 0, NULL }, /* 0x13 */ - { 1, 0, NULL }, /* 0x14 */ - { 1, 0, NULL }, /* 0x15 */ - { 1, 0, NULL }, /* 0x16 */ - { 1, 0, NULL }, /* 0x17 */ - { 1, 0, NULL }, /* 0x18 */ - { 1, 0, NULL }, /* 0x19 */ - { 1, 0, NULL }, /* 0x1A */ - { 1, 0, NULL }, /* 0x1B */ - { 1, 0, NULL }, /* 0x1C */ - { 1, 0, NULL }, /* 0x1D */ - { 1, 0, NULL }, /* 0x1E */ - { 1, 0, NULL }, /* 0x1F */ - { 0x10, 0x3E, aImplUniToDBCSTab_SJIS_20 }, /* 0x20 */ - { 0x03, 0xD4, aImplUniToDBCSTab_MS932_21 }, /* 0x21 */ - { 0x00, 0xBF, aImplUniToDBCSTab_MS932_22 }, /* 0x22 */ - { 0x12, 0x12, aImplUniToDBCSTab_SJIS_23 }, /* 0x23 */ - { 0x60, 0x73, aImplUniToDBCSTab_MS932_24 }, /* 0x24 */ - { 0x00, 0xEF, aImplUniToDBCSTab_SJIS_25 }, /* 0x25 */ - { 0x05, 0x6F, aImplUniToDBCSTab_SJIS_26 }, /* 0x26 */ - { 1, 0, NULL }, /* 0x27 */ - { 1, 0, NULL }, /* 0x28 */ - { 1, 0, NULL }, /* 0x29 */ - { 1, 0, NULL }, /* 0x2A */ - { 1, 0, NULL }, /* 0x2B */ - { 1, 0, NULL }, /* 0x2C */ - { 1, 0, NULL }, /* 0x2D */ - { 1, 0, NULL }, /* 0x2E */ - { 1, 0, NULL }, /* 0x2F */ - { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_30 }, /* 0x30 */ - { 1, 0, NULL }, /* 0x31 */ - { 0x31, 0xA8, aImplUniToDBCSTab_MS932_32 }, /* 0x32 */ - { 0x03, 0xCD, aImplUniToDBCSTab_MS932_33 }, /* 0x33 */ - { 1, 0, NULL }, /* 0x34 */ - { 1, 0, NULL }, /* 0x35 */ - { 1, 0, NULL }, /* 0x36 */ - { 1, 0, NULL }, /* 0x37 */ - { 1, 0, NULL }, /* 0x38 */ - { 1, 0, NULL }, /* 0x39 */ - { 1, 0, NULL }, /* 0x3A */ - { 1, 0, NULL }, /* 0x3B */ - { 1, 0, NULL }, /* 0x3C */ - { 1, 0, NULL }, /* 0x3D */ - { 1, 0, NULL }, /* 0x3E */ - { 1, 0, NULL }, /* 0x3F */ - { 1, 0, NULL }, /* 0x40 */ - { 1, 0, NULL }, /* 0x41 */ - { 1, 0, NULL }, /* 0x42 */ - { 1, 0, NULL }, /* 0x43 */ - { 1, 0, NULL }, /* 0x44 */ - { 1, 0, NULL }, /* 0x45 */ - { 1, 0, NULL }, /* 0x46 */ - { 1, 0, NULL }, /* 0x47 */ - { 1, 0, NULL }, /* 0x48 */ - { 1, 0, NULL }, /* 0x49 */ - { 1, 0, NULL }, /* 0x4A */ - { 1, 0, NULL }, /* 0x4B */ - { 1, 0, NULL }, /* 0x4C */ - { 1, 0, NULL }, /* 0x4D */ - { 0x00, 0xFC, aImplUniToDBCSTab_SJIS_4E }, /* 0x4E */ - { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_4F }, /* 0x4F */ - { 0x05, 0xFB, aImplUniToDBCSTab_SJIS_50 }, /* 0x50 */ - { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_51 }, /* 0x51 */ - { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_52 }, /* 0x52 */ - { 0x00, 0xFA, aImplUniToDBCSTab_SJIS_53 }, /* 0x53 */ - { 0x01, 0xFF, aImplUniToDBCSTab_SJIS_54 }, /* 0x54 */ - { 0x04, 0xFE, aImplUniToDBCSTab_SJIS_55 }, /* 0x55 */ - { 0x06, 0xFF, aImplUniToDBCSTab_SJIS_56 }, /* 0x56 */ - { 0x00, 0xFC, aImplUniToDBCSTab_SJIS_57 }, /* 0x57 */ - { 0x00, 0xFD, aImplUniToDBCSTab_SJIS_58 }, /* 0x58 */ - { 0x02, 0xFF, aImplUniToDBCSTab_SJIS_59 }, /* 0x59 */ - { 0x01, 0xFB, aImplUniToDBCSTab_SJIS_5A }, /* 0x5A */ - { 0x09, 0xFF, aImplUniToDBCSTab_SJIS_5B }, /* 0x5B */ - { 0x01, 0xFD, aImplUniToDBCSTab_SJIS_5C }, /* 0x5C */ - { 0x07, 0xFE, aImplUniToDBCSTab_SJIS_5D }, /* 0x5D */ - { 0x02, 0xFF, aImplUniToDBCSTab_SJIS_5E }, /* 0x5E */ - { 0x01, 0xFF, aImplUniToDBCSTab_SJIS_5F }, /* 0x5F */ - { 0x0E, 0xFB, aImplUniToDBCSTab_SJIS_60 }, /* 0x60 */ - { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_61 }, /* 0x61 */ - { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_62 }, /* 0x62 */ - { 0x01, 0xFA, aImplUniToDBCSTab_SJIS_63 }, /* 0x63 */ - { 0x06, 0xFE, aImplUniToDBCSTab_SJIS_64 }, /* 0x64 */ - { 0x00, 0xFB, aImplUniToDBCSTab_SJIS_65 }, /* 0x65 */ - { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_66 }, /* 0x66 */ - { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_67 }, /* 0x67 */ - { 0x01, 0xFA, aImplUniToDBCSTab_SJIS_68 }, /* 0x68 */ - { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_69 }, /* 0x69 */ - { 0x02, 0xFB, aImplUniToDBCSTab_SJIS_6A }, /* 0x6A */ - { 0x04, 0xF3, aImplUniToDBCSTab_SJIS_6B }, /* 0x6B */ - { 0x08, 0xF3, aImplUniToDBCSTab_SJIS_6C }, /* 0x6C */ - { 0x04, 0xFC, aImplUniToDBCSTab_SJIS_6D }, /* 0x6D */ - { 0x05, 0xFF, aImplUniToDBCSTab_SJIS_6E }, /* 0x6E */ - { 0x01, 0xFE, aImplUniToDBCSTab_SJIS_6F }, /* 0x6F */ - { 0x01, 0xFD, aImplUniToDBCSTab_SJIS_70 }, /* 0x70 */ - { 0x04, 0xFF, aImplUniToDBCSTab_SJIS_71 }, /* 0x71 */ - { 0x06, 0xFD, aImplUniToDBCSTab_SJIS_72 }, /* 0x72 */ - { 0x0A, 0xFE, aImplUniToDBCSTab_SJIS_73 }, /* 0x73 */ - { 0x03, 0xF8, aImplUniToDBCSTab_SJIS_74 }, /* 0x74 */ - { 0x01, 0xFF, aImplUniToDBCSTab_SJIS_75 }, /* 0x75 */ - { 0x01, 0xFE, aImplUniToDBCSTab_SJIS_76 }, /* 0x76 */ - { 0x01, 0xFC, aImplUniToDBCSTab_SJIS_77 }, /* 0x77 */ - { 0x02, 0xFD, aImplUniToDBCSTab_SJIS_78 }, /* 0x78 */ - { 0x01, 0xFB, aImplUniToDBCSTab_SJIS_79 }, /* 0x79 */ - { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_7A }, /* 0x7A */ - { 0x02, 0xF7, aImplUniToDBCSTab_SJIS_7B }, /* 0x7B */ - { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_7C }, /* 0x7C */ - { 0x00, 0xFB, aImplUniToDBCSTab_SJIS_7D }, /* 0x7D */ - { 0x01, 0x9C, aImplUniToDBCSTab_SJIS_7E }, /* 0x7E */ - { 0x36, 0xFC, aImplUniToDBCSTab_SJIS_7F }, /* 0x7F */ - { 0x00, 0xFD, aImplUniToDBCSTab_SJIS_80 }, /* 0x80 */ - { 0x02, 0xFE, aImplUniToDBCSTab_SJIS_81 }, /* 0x81 */ - { 0x01, 0xFB, aImplUniToDBCSTab_SJIS_82 }, /* 0x82 */ - { 0x01, 0xFD, aImplUniToDBCSTab_SJIS_83 }, /* 0x83 */ - { 0x03, 0xFF, aImplUniToDBCSTab_SJIS_84 }, /* 0x84 */ - { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_85 }, /* 0x85 */ - { 0x02, 0xFE, aImplUniToDBCSTab_SJIS_86 }, /* 0x86 */ - { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_87 }, /* 0x87 */ - { 0x05, 0xFE, aImplUniToDBCSTab_SJIS_88 }, /* 0x88 */ - { 0x02, 0xF8, aImplUniToDBCSTab_SJIS_89 }, /* 0x89 */ - { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_8A }, /* 0x8A */ - { 0x00, 0x9A, aImplUniToDBCSTab_SJIS_8B }, /* 0x8B */ - { 0x37, 0xFD, aImplUniToDBCSTab_SJIS_8C }, /* 0x8C */ - { 0x04, 0xFF, aImplUniToDBCSTab_SJIS_8D }, /* 0x8D */ - { 0x08, 0xFE, aImplUniToDBCSTab_SJIS_8E }, /* 0x8E */ - { 0x03, 0xFD, aImplUniToDBCSTab_SJIS_8F }, /* 0x8F */ - { 0x00, 0xFD, aImplUniToDBCSTab_SJIS_90 }, /* 0x90 */ - { 0x02, 0xFF, aImplUniToDBCSTab_SJIS_91 }, /* 0x91 */ - { 0x06, 0xFF, aImplUniToDBCSTab_SJIS_92 }, /* 0x92 */ - { 0x02, 0xF8, aImplUniToDBCSTab_SJIS_93 }, /* 0x93 */ - { 0x03, 0x81, aImplUniToDBCSTab_SJIS_94 }, /* 0x94 */ - { 0x77, 0xE5, aImplUniToDBCSTab_SJIS_95 }, /* 0x95 */ - { 0x1C, 0xFB, aImplUniToDBCSTab_SJIS_96 }, /* 0x96 */ - { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_97 }, /* 0x97 */ - { 0x01, 0xFE, aImplUniToDBCSTab_SJIS_98 }, /* 0x98 */ - { 0x03, 0xFF, aImplUniToDBCSTab_SJIS_99 }, /* 0x99 */ - { 0x01, 0xFB, aImplUniToDBCSTab_SJIS_9A }, /* 0x9A */ - { 0x06, 0xF5, aImplUniToDBCSTab_SJIS_9B }, /* 0x9B */ - { 0x00, 0xF6, aImplUniToDBCSTab_SJIS_9C }, /* 0x9C */ - { 0x03, 0xFD, aImplUniToDBCSTab_SJIS_9D }, /* 0x9D */ - { 0x19, 0xFD, aImplUniToDBCSTab_SJIS_9E }, /* 0x9E */ - { 0x07, 0xA0, aImplUniToDBCSTab_SJIS_9F }, /* 0x9F */ - { 1, 0, NULL }, /* 0xA0 */ - { 1, 0, NULL }, /* 0xA1 */ - { 1, 0, NULL }, /* 0xA2 */ - { 1, 0, NULL }, /* 0xA3 */ - { 1, 0, NULL }, /* 0xA4 */ - { 1, 0, NULL }, /* 0xA5 */ - { 1, 0, NULL }, /* 0xA6 */ - { 1, 0, NULL }, /* 0xA7 */ - { 1, 0, NULL }, /* 0xA8 */ - { 1, 0, NULL }, /* 0xA9 */ - { 1, 0, NULL }, /* 0xAA */ - { 1, 0, NULL }, /* 0xAB */ - { 1, 0, NULL }, /* 0xAC */ - { 1, 0, NULL }, /* 0xAD */ - { 1, 0, NULL }, /* 0xAE */ - { 1, 0, NULL }, /* 0xAF */ - { 1, 0, NULL }, /* 0xB0 */ - { 1, 0, NULL }, /* 0xB1 */ - { 1, 0, NULL }, /* 0xB2 */ - { 1, 0, NULL }, /* 0xB3 */ - { 1, 0, NULL }, /* 0xB4 */ - { 1, 0, NULL }, /* 0xB5 */ - { 1, 0, NULL }, /* 0xB6 */ - { 1, 0, NULL }, /* 0xB7 */ - { 1, 0, NULL }, /* 0xB8 */ - { 1, 0, NULL }, /* 0xB9 */ - { 1, 0, NULL }, /* 0xBA */ - { 1, 0, NULL }, /* 0xBB */ - { 1, 0, NULL }, /* 0xBC */ - { 1, 0, NULL }, /* 0xBD */ - { 1, 0, NULL }, /* 0xBE */ - { 1, 0, NULL }, /* 0xBF */ - { 1, 0, NULL }, /* 0xC0 */ - { 1, 0, NULL }, /* 0xC1 */ - { 1, 0, NULL }, /* 0xC2 */ - { 1, 0, NULL }, /* 0xC3 */ - { 1, 0, NULL }, /* 0xC4 */ - { 1, 0, NULL }, /* 0xC5 */ - { 1, 0, NULL }, /* 0xC6 */ - { 1, 0, NULL }, /* 0xC7 */ - { 1, 0, NULL }, /* 0xC8 */ - { 1, 0, NULL }, /* 0xC9 */ - { 1, 0, NULL }, /* 0xCA */ - { 1, 0, NULL }, /* 0xCB */ - { 1, 0, NULL }, /* 0xCC */ - { 1, 0, NULL }, /* 0xCD */ - { 1, 0, NULL }, /* 0xCE */ - { 1, 0, NULL }, /* 0xCF */ - { 1, 0, NULL }, /* 0xD0 */ - { 1, 0, NULL }, /* 0xD1 */ - { 1, 0, NULL }, /* 0xD2 */ - { 1, 0, NULL }, /* 0xD3 */ - { 1, 0, NULL }, /* 0xD4 */ - { 1, 0, NULL }, /* 0xD5 */ - { 1, 0, NULL }, /* 0xD6 */ - { 1, 0, NULL }, /* 0xD7 */ - { 1, 0, NULL }, /* 0xD8 */ - { 1, 0, NULL }, /* 0xD9 */ - { 1, 0, NULL }, /* 0xDA */ - { 1, 0, NULL }, /* 0xDB */ - { 1, 0, NULL }, /* 0xDC */ - { 1, 0, NULL }, /* 0xDD */ - { 1, 0, NULL }, /* 0xDE */ - { 1, 0, NULL }, /* 0xDF */ - { 1, 0, NULL }, /* 0xE0 */ - { 1, 0, NULL }, /* 0xE1 */ - { 1, 0, NULL }, /* 0xE2 */ - { 1, 0, NULL }, /* 0xE3 */ - { 1, 0, NULL }, /* 0xE4 */ - { 1, 0, NULL }, /* 0xE5 */ - { 1, 0, NULL }, /* 0xE6 */ - { 1, 0, NULL }, /* 0xE7 */ - { 1, 0, NULL }, /* 0xE8 */ - { 1, 0, NULL }, /* 0xE9 */ - { 1, 0, NULL }, /* 0xEA */ - { 1, 0, NULL }, /* 0xEB */ - { 1, 0, NULL }, /* 0xEC */ - { 1, 0, NULL }, /* 0xED */ - { 1, 0, NULL }, /* 0xEE */ - { 1, 0, NULL }, /* 0xEF */ - { 1, 0, NULL }, /* 0xF0 */ - { 1, 0, NULL }, /* 0xF1 */ - { 1, 0, NULL }, /* 0xF2 */ - { 1, 0, NULL }, /* 0xF3 */ - { 1, 0, NULL }, /* 0xF4 */ - { 1, 0, NULL }, /* 0xF5 */ - { 1, 0, NULL }, /* 0xF6 */ - { 1, 0, NULL }, /* 0xF7 */ - { 1, 0, NULL }, /* 0xF8 */ - { 0x29, 0xDC, aImplUniToDBCSTab_MS932_F9 }, /* 0xF9 */ - { 0x0E, 0x2D, aImplUniToDBCSTab_MS932_FA }, /* 0xFA */ - { 1, 0, NULL }, /* 0xFB */ - { 1, 0, NULL }, /* 0xFC */ - { 1, 0, NULL }, /* 0xFD */ - { 1, 0, NULL }, /* 0xFE */ - { 0x01, 0xE5, aImplUniToDBCSTab_SJIS_FF } /* 0xFF */ + { 0x00, 0xF7, aImplUniToDBCSTab_SJIS_00 }, /* 0x00 */ + { 1, 0, NULL }, /* 0x01 */ + { 1, 0, NULL }, /* 0x02 */ + { 0x91, 0xC9, aImplUniToDBCSTab_SJIS_03 }, /* 0x03 */ + { 0x01, 0x51, aImplUniToDBCSTab_SJIS_04 }, /* 0x04 */ + { 1, 0, NULL }, /* 0x05 */ + { 1, 0, NULL }, /* 0x06 */ + { 1, 0, NULL }, /* 0x07 */ + { 1, 0, NULL }, /* 0x08 */ + { 1, 0, NULL }, /* 0x09 */ + { 1, 0, NULL }, /* 0x0A */ + { 1, 0, NULL }, /* 0x0B */ + { 1, 0, NULL }, /* 0x0C */ + { 1, 0, NULL }, /* 0x0D */ + { 1, 0, NULL }, /* 0x0E */ + { 1, 0, NULL }, /* 0x0F */ + { 1, 0, NULL }, /* 0x10 */ + { 1, 0, NULL }, /* 0x11 */ + { 1, 0, NULL }, /* 0x12 */ + { 1, 0, NULL }, /* 0x13 */ + { 1, 0, NULL }, /* 0x14 */ + { 1, 0, NULL }, /* 0x15 */ + { 1, 0, NULL }, /* 0x16 */ + { 1, 0, NULL }, /* 0x17 */ + { 1, 0, NULL }, /* 0x18 */ + { 1, 0, NULL }, /* 0x19 */ + { 1, 0, NULL }, /* 0x1A */ + { 1, 0, NULL }, /* 0x1B */ + { 1, 0, NULL }, /* 0x1C */ + { 1, 0, NULL }, /* 0x1D */ + { 1, 0, NULL }, /* 0x1E */ + { 1, 0, NULL }, /* 0x1F */ + { 0x10, 0x3E, aImplUniToDBCSTab_SJIS_20 }, /* 0x20 */ + { 0x03, 0xD4, aImplUniToDBCSTab_MS932_21 }, /* 0x21 */ + { 0x00, 0xBF, aImplUniToDBCSTab_MS932_22 }, /* 0x22 */ + { 0x12, 0x12, aImplUniToDBCSTab_SJIS_23 }, /* 0x23 */ + { 0x60, 0x73, aImplUniToDBCSTab_MS932_24 }, /* 0x24 */ + { 0x00, 0xEF, aImplUniToDBCSTab_SJIS_25 }, /* 0x25 */ + { 0x05, 0x6F, aImplUniToDBCSTab_SJIS_26 }, /* 0x26 */ + { 1, 0, NULL }, /* 0x27 */ + { 1, 0, NULL }, /* 0x28 */ + { 1, 0, NULL }, /* 0x29 */ + { 1, 0, NULL }, /* 0x2A */ + { 1, 0, NULL }, /* 0x2B */ + { 1, 0, NULL }, /* 0x2C */ + { 1, 0, NULL }, /* 0x2D */ + { 1, 0, NULL }, /* 0x2E */ + { 1, 0, NULL }, /* 0x2F */ + { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_30 }, /* 0x30 */ + { 1, 0, NULL }, /* 0x31 */ + { 0x31, 0xA8, aImplUniToDBCSTab_MS932_32 }, /* 0x32 */ + { 0x03, 0xCD, aImplUniToDBCSTab_MS932_33 }, /* 0x33 */ + { 1, 0, NULL }, /* 0x34 */ + { 1, 0, NULL }, /* 0x35 */ + { 1, 0, NULL }, /* 0x36 */ + { 1, 0, NULL }, /* 0x37 */ + { 1, 0, NULL }, /* 0x38 */ + { 1, 0, NULL }, /* 0x39 */ + { 1, 0, NULL }, /* 0x3A */ + { 1, 0, NULL }, /* 0x3B */ + { 1, 0, NULL }, /* 0x3C */ + { 1, 0, NULL }, /* 0x3D */ + { 1, 0, NULL }, /* 0x3E */ + { 1, 0, NULL }, /* 0x3F */ + { 1, 0, NULL }, /* 0x40 */ + { 1, 0, NULL }, /* 0x41 */ + { 1, 0, NULL }, /* 0x42 */ + { 1, 0, NULL }, /* 0x43 */ + { 1, 0, NULL }, /* 0x44 */ + { 1, 0, NULL }, /* 0x45 */ + { 1, 0, NULL }, /* 0x46 */ + { 1, 0, NULL }, /* 0x47 */ + { 1, 0, NULL }, /* 0x48 */ + { 1, 0, NULL }, /* 0x49 */ + { 1, 0, NULL }, /* 0x4A */ + { 1, 0, NULL }, /* 0x4B */ + { 1, 0, NULL }, /* 0x4C */ + { 1, 0, NULL }, /* 0x4D */ + { 0x00, 0xFC, aImplUniToDBCSTab_SJIS_4E }, /* 0x4E */ + { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_4F }, /* 0x4F */ + { 0x05, 0xFB, aImplUniToDBCSTab_SJIS_50 }, /* 0x50 */ + { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_51 }, /* 0x51 */ + { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_52 }, /* 0x52 */ + { 0x00, 0xFA, aImplUniToDBCSTab_SJIS_53 }, /* 0x53 */ + { 0x01, 0xFF, aImplUniToDBCSTab_SJIS_54 }, /* 0x54 */ + { 0x04, 0xFE, aImplUniToDBCSTab_SJIS_55 }, /* 0x55 */ + { 0x06, 0xFF, aImplUniToDBCSTab_SJIS_56 }, /* 0x56 */ + { 0x00, 0xFC, aImplUniToDBCSTab_SJIS_57 }, /* 0x57 */ + { 0x00, 0xFD, aImplUniToDBCSTab_SJIS_58 }, /* 0x58 */ + { 0x02, 0xFF, aImplUniToDBCSTab_SJIS_59 }, /* 0x59 */ + { 0x01, 0xFB, aImplUniToDBCSTab_SJIS_5A }, /* 0x5A */ + { 0x09, 0xFF, aImplUniToDBCSTab_SJIS_5B }, /* 0x5B */ + { 0x01, 0xFD, aImplUniToDBCSTab_SJIS_5C }, /* 0x5C */ + { 0x07, 0xFE, aImplUniToDBCSTab_SJIS_5D }, /* 0x5D */ + { 0x02, 0xFF, aImplUniToDBCSTab_SJIS_5E }, /* 0x5E */ + { 0x01, 0xFF, aImplUniToDBCSTab_SJIS_5F }, /* 0x5F */ + { 0x0E, 0xFB, aImplUniToDBCSTab_SJIS_60 }, /* 0x60 */ + { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_61 }, /* 0x61 */ + { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_62 }, /* 0x62 */ + { 0x01, 0xFA, aImplUniToDBCSTab_SJIS_63 }, /* 0x63 */ + { 0x06, 0xFE, aImplUniToDBCSTab_SJIS_64 }, /* 0x64 */ + { 0x00, 0xFB, aImplUniToDBCSTab_SJIS_65 }, /* 0x65 */ + { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_66 }, /* 0x66 */ + { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_67 }, /* 0x67 */ + { 0x01, 0xFA, aImplUniToDBCSTab_SJIS_68 }, /* 0x68 */ + { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_69 }, /* 0x69 */ + { 0x02, 0xFB, aImplUniToDBCSTab_SJIS_6A }, /* 0x6A */ + { 0x04, 0xF3, aImplUniToDBCSTab_SJIS_6B }, /* 0x6B */ + { 0x08, 0xF3, aImplUniToDBCSTab_SJIS_6C }, /* 0x6C */ + { 0x04, 0xFC, aImplUniToDBCSTab_SJIS_6D }, /* 0x6D */ + { 0x05, 0xFF, aImplUniToDBCSTab_SJIS_6E }, /* 0x6E */ + { 0x01, 0xFE, aImplUniToDBCSTab_SJIS_6F }, /* 0x6F */ + { 0x01, 0xFD, aImplUniToDBCSTab_SJIS_70 }, /* 0x70 */ + { 0x04, 0xFF, aImplUniToDBCSTab_SJIS_71 }, /* 0x71 */ + { 0x06, 0xFD, aImplUniToDBCSTab_SJIS_72 }, /* 0x72 */ + { 0x0A, 0xFE, aImplUniToDBCSTab_SJIS_73 }, /* 0x73 */ + { 0x03, 0xF8, aImplUniToDBCSTab_SJIS_74 }, /* 0x74 */ + { 0x01, 0xFF, aImplUniToDBCSTab_SJIS_75 }, /* 0x75 */ + { 0x01, 0xFE, aImplUniToDBCSTab_SJIS_76 }, /* 0x76 */ + { 0x01, 0xFC, aImplUniToDBCSTab_SJIS_77 }, /* 0x77 */ + { 0x02, 0xFD, aImplUniToDBCSTab_SJIS_78 }, /* 0x78 */ + { 0x01, 0xFB, aImplUniToDBCSTab_SJIS_79 }, /* 0x79 */ + { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_7A }, /* 0x7A */ + { 0x02, 0xF7, aImplUniToDBCSTab_SJIS_7B }, /* 0x7B */ + { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_7C }, /* 0x7C */ + { 0x00, 0xFB, aImplUniToDBCSTab_SJIS_7D }, /* 0x7D */ + { 0x01, 0x9C, aImplUniToDBCSTab_SJIS_7E }, /* 0x7E */ + { 0x36, 0xFC, aImplUniToDBCSTab_SJIS_7F }, /* 0x7F */ + { 0x00, 0xFD, aImplUniToDBCSTab_SJIS_80 }, /* 0x80 */ + { 0x02, 0xFE, aImplUniToDBCSTab_SJIS_81 }, /* 0x81 */ + { 0x01, 0xFB, aImplUniToDBCSTab_SJIS_82 }, /* 0x82 */ + { 0x01, 0xFD, aImplUniToDBCSTab_SJIS_83 }, /* 0x83 */ + { 0x03, 0xFF, aImplUniToDBCSTab_SJIS_84 }, /* 0x84 */ + { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_85 }, /* 0x85 */ + { 0x02, 0xFE, aImplUniToDBCSTab_SJIS_86 }, /* 0x86 */ + { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_87 }, /* 0x87 */ + { 0x05, 0xFE, aImplUniToDBCSTab_SJIS_88 }, /* 0x88 */ + { 0x02, 0xF8, aImplUniToDBCSTab_SJIS_89 }, /* 0x89 */ + { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_8A }, /* 0x8A */ + { 0x00, 0x9A, aImplUniToDBCSTab_SJIS_8B }, /* 0x8B */ + { 0x37, 0xFD, aImplUniToDBCSTab_SJIS_8C }, /* 0x8C */ + { 0x04, 0xFF, aImplUniToDBCSTab_SJIS_8D }, /* 0x8D */ + { 0x08, 0xFE, aImplUniToDBCSTab_SJIS_8E }, /* 0x8E */ + { 0x03, 0xFD, aImplUniToDBCSTab_SJIS_8F }, /* 0x8F */ + { 0x00, 0xFD, aImplUniToDBCSTab_SJIS_90 }, /* 0x90 */ + { 0x02, 0xFF, aImplUniToDBCSTab_SJIS_91 }, /* 0x91 */ + { 0x06, 0xFF, aImplUniToDBCSTab_SJIS_92 }, /* 0x92 */ + { 0x02, 0xF8, aImplUniToDBCSTab_SJIS_93 }, /* 0x93 */ + { 0x03, 0x81, aImplUniToDBCSTab_SJIS_94 }, /* 0x94 */ + { 0x77, 0xE5, aImplUniToDBCSTab_SJIS_95 }, /* 0x95 */ + { 0x1C, 0xFB, aImplUniToDBCSTab_SJIS_96 }, /* 0x96 */ + { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_97 }, /* 0x97 */ + { 0x01, 0xFE, aImplUniToDBCSTab_SJIS_98 }, /* 0x98 */ + { 0x03, 0xFF, aImplUniToDBCSTab_SJIS_99 }, /* 0x99 */ + { 0x01, 0xFB, aImplUniToDBCSTab_SJIS_9A }, /* 0x9A */ + { 0x06, 0xF5, aImplUniToDBCSTab_SJIS_9B }, /* 0x9B */ + { 0x00, 0xF6, aImplUniToDBCSTab_SJIS_9C }, /* 0x9C */ + { 0x03, 0xFD, aImplUniToDBCSTab_SJIS_9D }, /* 0x9D */ + { 0x19, 0xFD, aImplUniToDBCSTab_SJIS_9E }, /* 0x9E */ + { 0x07, 0xA0, aImplUniToDBCSTab_SJIS_9F }, /* 0x9F */ + { 1, 0, NULL }, /* 0xA0 */ + { 1, 0, NULL }, /* 0xA1 */ + { 1, 0, NULL }, /* 0xA2 */ + { 1, 0, NULL }, /* 0xA3 */ + { 1, 0, NULL }, /* 0xA4 */ + { 1, 0, NULL }, /* 0xA5 */ + { 1, 0, NULL }, /* 0xA6 */ + { 1, 0, NULL }, /* 0xA7 */ + { 1, 0, NULL }, /* 0xA8 */ + { 1, 0, NULL }, /* 0xA9 */ + { 1, 0, NULL }, /* 0xAA */ + { 1, 0, NULL }, /* 0xAB */ + { 1, 0, NULL }, /* 0xAC */ + { 1, 0, NULL }, /* 0xAD */ + { 1, 0, NULL }, /* 0xAE */ + { 1, 0, NULL }, /* 0xAF */ + { 1, 0, NULL }, /* 0xB0 */ + { 1, 0, NULL }, /* 0xB1 */ + { 1, 0, NULL }, /* 0xB2 */ + { 1, 0, NULL }, /* 0xB3 */ + { 1, 0, NULL }, /* 0xB4 */ + { 1, 0, NULL }, /* 0xB5 */ + { 1, 0, NULL }, /* 0xB6 */ + { 1, 0, NULL }, /* 0xB7 */ + { 1, 0, NULL }, /* 0xB8 */ + { 1, 0, NULL }, /* 0xB9 */ + { 1, 0, NULL }, /* 0xBA */ + { 1, 0, NULL }, /* 0xBB */ + { 1, 0, NULL }, /* 0xBC */ + { 1, 0, NULL }, /* 0xBD */ + { 1, 0, NULL }, /* 0xBE */ + { 1, 0, NULL }, /* 0xBF */ + { 1, 0, NULL }, /* 0xC0 */ + { 1, 0, NULL }, /* 0xC1 */ + { 1, 0, NULL }, /* 0xC2 */ + { 1, 0, NULL }, /* 0xC3 */ + { 1, 0, NULL }, /* 0xC4 */ + { 1, 0, NULL }, /* 0xC5 */ + { 1, 0, NULL }, /* 0xC6 */ + { 1, 0, NULL }, /* 0xC7 */ + { 1, 0, NULL }, /* 0xC8 */ + { 1, 0, NULL }, /* 0xC9 */ + { 1, 0, NULL }, /* 0xCA */ + { 1, 0, NULL }, /* 0xCB */ + { 1, 0, NULL }, /* 0xCC */ + { 1, 0, NULL }, /* 0xCD */ + { 1, 0, NULL }, /* 0xCE */ + { 1, 0, NULL }, /* 0xCF */ + { 1, 0, NULL }, /* 0xD0 */ + { 1, 0, NULL }, /* 0xD1 */ + { 1, 0, NULL }, /* 0xD2 */ + { 1, 0, NULL }, /* 0xD3 */ + { 1, 0, NULL }, /* 0xD4 */ + { 1, 0, NULL }, /* 0xD5 */ + { 1, 0, NULL }, /* 0xD6 */ + { 1, 0, NULL }, /* 0xD7 */ + { 1, 0, NULL }, /* 0xD8 */ + { 1, 0, NULL }, /* 0xD9 */ + { 1, 0, NULL }, /* 0xDA */ + { 1, 0, NULL }, /* 0xDB */ + { 1, 0, NULL }, /* 0xDC */ + { 1, 0, NULL }, /* 0xDD */ + { 1, 0, NULL }, /* 0xDE */ + { 1, 0, NULL }, /* 0xDF */ + { 1, 0, NULL }, /* 0xE0 */ + { 1, 0, NULL }, /* 0xE1 */ + { 1, 0, NULL }, /* 0xE2 */ + { 1, 0, NULL }, /* 0xE3 */ + { 1, 0, NULL }, /* 0xE4 */ + { 1, 0, NULL }, /* 0xE5 */ + { 1, 0, NULL }, /* 0xE6 */ + { 1, 0, NULL }, /* 0xE7 */ + { 1, 0, NULL }, /* 0xE8 */ + { 1, 0, NULL }, /* 0xE9 */ + { 1, 0, NULL }, /* 0xEA */ + { 1, 0, NULL }, /* 0xEB */ + { 1, 0, NULL }, /* 0xEC */ + { 1, 0, NULL }, /* 0xED */ + { 1, 0, NULL }, /* 0xEE */ + { 1, 0, NULL }, /* 0xEF */ + { 1, 0, NULL }, /* 0xF0 */ + { 1, 0, NULL }, /* 0xF1 */ + { 1, 0, NULL }, /* 0xF2 */ + { 1, 0, NULL }, /* 0xF3 */ + { 1, 0, NULL }, /* 0xF4 */ + { 1, 0, NULL }, /* 0xF5 */ + { 1, 0, NULL }, /* 0xF6 */ + { 1, 0, NULL }, /* 0xF7 */ + { 1, 0, NULL }, /* 0xF8 */ + { 0x29, 0xDC, aImplUniToDBCSTab_MS932_F9 }, /* 0xF9 */ + { 0x0E, 0x2D, aImplUniToDBCSTab_MS932_FA }, /* 0xFA */ + { 1, 0, NULL }, /* 0xFB */ + { 1, 0, NULL }, /* 0xFC */ + { 1, 0, NULL }, /* 0xFD */ + { 1, 0, NULL }, /* 0xFE */ + { 0x01, 0xE5, aImplUniToDBCSTab_SJIS_FF } /* 0xFF */ }; /* ----------------------------------------------------------------------- */ -/* F040-F9FC --> E000-E757 */ +/* F040-F9FC --> E000-E757 */ -#define DBCS_EUDC_SJIS_COUNT 1 +#define DBCS_EUDC_SJIS_COUNT 1 static ImplDBCSEUDCData const aImplSJISDBCSEUDCTab[DBCS_EUDC_SJIS_COUNT] = { /* EUDC-Range */ - /* Lead: F0-F9 */ - /* Trail: 40-7E, 80-FC */ + /* Lead: F0-F9 */ + /* Trail: 40-7E, 80-FC */ { 0xF0, 0xF9, 0x40, 0x7E, 0x7F, 0xFC, 0, 0, 2, 0xBC, 0xE000, 0xE757 } }; @@ -616,568 +616,550 @@ static ImplDBCSConvertData const aImplSJISDBCSCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData const aImplSJISTextConverterData = -{ - &aImplSJISDBCSCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplSJISTextConverter = -{ - &aImplSJISTextConverterData, - ImplDBCSToUnicode, - ImplUnicodeToDBCS, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplSJISTextEncodingData = -{ - &aImplSJISTextConverter, - RTL_TEXTENCODING_SHIFT_JIS, - 1, 2, 2, - 128, - 932, - 1, - (const sal_Char*)"euc-jp", - (const sal_Char*)"shift_jis", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_MULTIBYTE | - RTL_TEXTENCODING_INFO_MIME, - SCRIPT_JAPANESE -}; +static ImplTextEncodingData const aImplSJISTextEncodingData + = { { &aImplSJISDBCSCvtData, + ImplDBCSToUnicode, + ImplUnicodeToDBCS, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_SHIFT_JIS, + 1, + 2, + 2, + 128, + "euc-jp", + "shift_jis", + RTL_TEXTENCODING_INFO_ASCII + | RTL_TEXTENCODING_INFO_MULTIBYTE + | RTL_TEXTENCODING_INFO_MIME }; + /* SCRIPT_JAPANESE, pc code page 932, mac encoding 1 */ /* ======================================================================= */ static ImplDBCSToUniLeadTab const aMS932UniLeadTab[256] = { - { 0x0000, 0, 0, NULL }, /* 0x00 */ - { 0x0001, 0, 0, NULL }, /* 0x01 */ - { 0x0002, 0, 0, NULL }, /* 0x02 */ - { 0x0003, 0, 0, NULL }, /* 0x03 */ - { 0x0004, 0, 0, NULL }, /* 0x04 */ - { 0x0005, 0, 0, NULL }, /* 0x05 */ - { 0x0006, 0, 0, NULL }, /* 0x06 */ - { 0x0007, 0, 0, NULL }, /* 0x07 */ - { 0x0008, 0, 0, NULL }, /* 0x08 */ - { 0x0009, 0, 0, NULL }, /* 0x09 */ - { 0x000A, 0, 0, NULL }, /* 0x0A */ - { 0x000B, 0, 0, NULL }, /* 0x0B */ - { 0x000C, 0, 0, NULL }, /* 0x0C */ - { 0x000D, 0, 0, NULL }, /* 0x0D */ - { 0x000E, 0, 0, NULL }, /* 0x0E */ - { 0x000F, 0, 0, NULL }, /* 0x0F */ - { 0x0010, 0, 0, NULL }, /* 0x10 */ - { 0x0011, 0, 0, NULL }, /* 0x11 */ - { 0x0012, 0, 0, NULL }, /* 0x12 */ - { 0x0013, 0, 0, NULL }, /* 0x13 */ - { 0x0014, 0, 0, NULL }, /* 0x14 */ - { 0x0015, 0, 0, NULL }, /* 0x15 */ - { 0x0016, 0, 0, NULL }, /* 0x16 */ - { 0x0017, 0, 0, NULL }, /* 0x17 */ - { 0x0018, 0, 0, NULL }, /* 0x18 */ - { 0x0019, 0, 0, NULL }, /* 0x19 */ - { 0x001A, 0, 0, NULL }, /* 0x1A */ - { 0x001B, 0, 0, NULL }, /* 0x1B */ - { 0x001C, 0, 0, NULL }, /* 0x1C */ - { 0x001D, 0, 0, NULL }, /* 0x1D */ - { 0x001E, 0, 0, NULL }, /* 0x1E */ - { 0x001F, 0, 0, NULL }, /* 0x1F */ - { 0x0020, 0, 0, NULL }, /* 0x20 */ - { 0x0021, 0, 0, NULL }, /* 0x21 */ - { 0x0022, 0, 0, NULL }, /* 0x22 */ - { 0x0023, 0, 0, NULL }, /* 0x23 */ - { 0x0024, 0, 0, NULL }, /* 0x24 */ - { 0x0025, 0, 0, NULL }, /* 0x25 */ - { 0x0026, 0, 0, NULL }, /* 0x26 */ - { 0x0027, 0, 0, NULL }, /* 0x27 */ - { 0x0028, 0, 0, NULL }, /* 0x28 */ - { 0x0029, 0, 0, NULL }, /* 0x29 */ - { 0x002A, 0, 0, NULL }, /* 0x2A */ - { 0x002B, 0, 0, NULL }, /* 0x2B */ - { 0x002C, 0, 0, NULL }, /* 0x2C */ - { 0x002D, 0, 0, NULL }, /* 0x2D */ - { 0x002E, 0, 0, NULL }, /* 0x2E */ - { 0x002F, 0, 0, NULL }, /* 0x2F */ - { 0x0030, 0, 0, NULL }, /* 0x30 */ - { 0x0031, 0, 0, NULL }, /* 0x31 */ - { 0x0032, 0, 0, NULL }, /* 0x32 */ - { 0x0033, 0, 0, NULL }, /* 0x33 */ - { 0x0034, 0, 0, NULL }, /* 0x34 */ - { 0x0035, 0, 0, NULL }, /* 0x35 */ - { 0x0036, 0, 0, NULL }, /* 0x36 */ - { 0x0037, 0, 0, NULL }, /* 0x37 */ - { 0x0038, 0, 0, NULL }, /* 0x38 */ - { 0x0039, 0, 0, NULL }, /* 0x39 */ - { 0x003A, 0, 0, NULL }, /* 0x3A */ - { 0x003B, 0, 0, NULL }, /* 0x3B */ - { 0x003C, 0, 0, NULL }, /* 0x3C */ - { 0x003D, 0, 0, NULL }, /* 0x3D */ - { 0x003E, 0, 0, NULL }, /* 0x3E */ - { 0x003F, 0, 0, NULL }, /* 0x3F */ - { 0x0040, 0, 0, NULL }, /* 0x40 */ - { 0x0041, 0, 0, NULL }, /* 0x41 */ - { 0x0042, 0, 0, NULL }, /* 0x42 */ - { 0x0043, 0, 0, NULL }, /* 0x43 */ - { 0x0044, 0, 0, NULL }, /* 0x44 */ - { 0x0045, 0, 0, NULL }, /* 0x45 */ - { 0x0046, 0, 0, NULL }, /* 0x46 */ - { 0x0047, 0, 0, NULL }, /* 0x47 */ - { 0x0048, 0, 0, NULL }, /* 0x48 */ - { 0x0049, 0, 0, NULL }, /* 0x49 */ - { 0x004A, 0, 0, NULL }, /* 0x4A */ - { 0x004B, 0, 0, NULL }, /* 0x4B */ - { 0x004C, 0, 0, NULL }, /* 0x4C */ - { 0x004D, 0, 0, NULL }, /* 0x4D */ - { 0x004E, 0, 0, NULL }, /* 0x4E */ - { 0x004F, 0, 0, NULL }, /* 0x4F */ - { 0x0050, 0, 0, NULL }, /* 0x50 */ - { 0x0051, 0, 0, NULL }, /* 0x51 */ - { 0x0052, 0, 0, NULL }, /* 0x52 */ - { 0x0053, 0, 0, NULL }, /* 0x53 */ - { 0x0054, 0, 0, NULL }, /* 0x54 */ - { 0x0055, 0, 0, NULL }, /* 0x55 */ - { 0x0056, 0, 0, NULL }, /* 0x56 */ - { 0x0057, 0, 0, NULL }, /* 0x57 */ - { 0x0058, 0, 0, NULL }, /* 0x58 */ - { 0x0059, 0, 0, NULL }, /* 0x59 */ - { 0x005A, 0, 0, NULL }, /* 0x5A */ - { 0x005B, 0, 0, NULL }, /* 0x5B */ - { 0x005C, 0, 0, NULL }, /* 0x5C */ /* in SJIS this is A5 (YEN SIGN), but for compatibiliy with ascii, we use 0x5C like MS CP392 */ - { 0x005D, 0, 0, NULL }, /* 0x5D */ - { 0x005E, 0, 0, NULL }, /* 0x5E */ - { 0x005F, 0, 0, NULL }, /* 0x5F */ - { 0x0060, 0, 0, NULL }, /* 0x60 */ - { 0x0061, 0, 0, NULL }, /* 0x61 */ - { 0x0062, 0, 0, NULL }, /* 0x62 */ - { 0x0063, 0, 0, NULL }, /* 0x63 */ - { 0x0064, 0, 0, NULL }, /* 0x64 */ - { 0x0065, 0, 0, NULL }, /* 0x65 */ - { 0x0066, 0, 0, NULL }, /* 0x66 */ - { 0x0067, 0, 0, NULL }, /* 0x67 */ - { 0x0068, 0, 0, NULL }, /* 0x68 */ - { 0x0069, 0, 0, NULL }, /* 0x69 */ - { 0x006A, 0, 0, NULL }, /* 0x6A */ - { 0x006B, 0, 0, NULL }, /* 0x6B */ - { 0x006C, 0, 0, NULL }, /* 0x6C */ - { 0x006D, 0, 0, NULL }, /* 0x6D */ - { 0x006E, 0, 0, NULL }, /* 0x6E */ - { 0x006F, 0, 0, NULL }, /* 0x6F */ - { 0x0070, 0, 0, NULL }, /* 0x70 */ - { 0x0071, 0, 0, NULL }, /* 0x71 */ - { 0x0072, 0, 0, NULL }, /* 0x72 */ - { 0x0073, 0, 0, NULL }, /* 0x73 */ - { 0x0074, 0, 0, NULL }, /* 0x74 */ - { 0x0075, 0, 0, NULL }, /* 0x75 */ - { 0x0076, 0, 0, NULL }, /* 0x76 */ - { 0x0077, 0, 0, NULL }, /* 0x77 */ - { 0x0078, 0, 0, NULL }, /* 0x78 */ - { 0x0079, 0, 0, NULL }, /* 0x79 */ - { 0x007A, 0, 0, NULL }, /* 0x7A */ - { 0x007B, 0, 0, NULL }, /* 0x7B */ - { 0x007C, 0, 0, NULL }, /* 0x7C */ - { 0x007D, 0, 0, NULL }, /* 0x7D */ - { 0x007E, 0, 0, NULL }, /* 0x7E */ /* in SJIS this is 0x0203E (SPACING OVERSCORE), but for compatibiliy with ascii, we use 0x7E (TILDE) like MS CP392 */ - { 0x007F, 0, 0, NULL }, /* 0x7F */ - { 0x005C, 0, 0, NULL }, /* 0x80 */ /* APPLE additons over SJIS, we convert this like apple, because I think, this gives better result, than we take a replacement char */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_MS932_81 }, /* 0x81 */ - { 0, 0x4F, 0xF1, aImplDBCSToUniTab_SJIS_82 }, /* 0x82 */ - { 0, 0x40, 0xD6, aImplDBCSToUniTab_SJIS_83 }, /* 0x83 */ - { 0, 0x40, 0xBF, aImplDBCSToUniTab_SJIS_84 }, /* 0x84 */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x85 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x86 */ /* We convert this as double byte */ - { 0, 0x40, 0x9C, aImplDBCSToUniTab_MS932_87 }, /* 0x87 */ - { 0, 0x9F, 0xFC, aImplDBCSToUniTab_SJIS_88 }, /* 0x88 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_89 }, /* 0x89 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8A }, /* 0x8A */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8B }, /* 0x8B */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8C }, /* 0x8C */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8D }, /* 0x8D */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8E }, /* 0x8E */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8F }, /* 0x8F */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_90 }, /* 0x90 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_91 }, /* 0x91 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_92 }, /* 0x92 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_93 }, /* 0x93 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_94 }, /* 0x94 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_95 }, /* 0x95 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_96 }, /* 0x96 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_97 }, /* 0x97 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_98 }, /* 0x98 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_99 }, /* 0x99 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9A }, /* 0x9A */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9B }, /* 0x9B */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9C }, /* 0x9C */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9D }, /* 0x9D */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9E }, /* 0x9E */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9F }, /* 0x9F */ - { 0x00A0, 0, 0, NULL }, /* 0xA0 */ /* APPLE additons over SJIS, we convert this like apple, because I think, this gives better result, than we take a replacement char */ - { 0xFF61, 0, 0, NULL }, /* 0xA1 */ - { 0xFF62, 0, 0, NULL }, /* 0xA2 */ - { 0xFF63, 0, 0, NULL }, /* 0xA3 */ - { 0xFF64, 0, 0, NULL }, /* 0xA4 */ - { 0xFF65, 0, 0, NULL }, /* 0xA5 */ - { 0xFF66, 0, 0, NULL }, /* 0xA6 */ - { 0xFF67, 0, 0, NULL }, /* 0xA7 */ - { 0xFF68, 0, 0, NULL }, /* 0xA8 */ - { 0xFF69, 0, 0, NULL }, /* 0xA9 */ - { 0xFF6A, 0, 0, NULL }, /* 0xAA */ - { 0xFF6B, 0, 0, NULL }, /* 0xAB */ - { 0xFF6C, 0, 0, NULL }, /* 0xAC */ - { 0xFF6D, 0, 0, NULL }, /* 0xAD */ - { 0xFF6E, 0, 0, NULL }, /* 0xAE */ - { 0xFF6F, 0, 0, NULL }, /* 0xAF */ - { 0xFF70, 0, 0, NULL }, /* 0xB0 */ - { 0xFF71, 0, 0, NULL }, /* 0xB1 */ - { 0xFF72, 0, 0, NULL }, /* 0xB2 */ - { 0xFF73, 0, 0, NULL }, /* 0xB3 */ - { 0xFF74, 0, 0, NULL }, /* 0xB4 */ - { 0xFF75, 0, 0, NULL }, /* 0xB5 */ - { 0xFF76, 0, 0, NULL }, /* 0xB6 */ - { 0xFF77, 0, 0, NULL }, /* 0xB7 */ - { 0xFF78, 0, 0, NULL }, /* 0xB8 */ - { 0xFF79, 0, 0, NULL }, /* 0xB9 */ - { 0xFF7A, 0, 0, NULL }, /* 0xBA */ - { 0xFF7B, 0, 0, NULL }, /* 0xBB */ - { 0xFF7C, 0, 0, NULL }, /* 0xBC */ - { 0xFF7D, 0, 0, NULL }, /* 0xBD */ - { 0xFF7E, 0, 0, NULL }, /* 0xBE */ - { 0xFF7F, 0, 0, NULL }, /* 0xBF */ - { 0xFF80, 0, 0, NULL }, /* 0xC0 */ - { 0xFF81, 0, 0, NULL }, /* 0xC1 */ - { 0xFF82, 0, 0, NULL }, /* 0xC2 */ - { 0xFF83, 0, 0, NULL }, /* 0xC3 */ - { 0xFF84, 0, 0, NULL }, /* 0xC4 */ - { 0xFF85, 0, 0, NULL }, /* 0xC5 */ - { 0xFF86, 0, 0, NULL }, /* 0xC6 */ - { 0xFF87, 0, 0, NULL }, /* 0xC7 */ - { 0xFF88, 0, 0, NULL }, /* 0xC8 */ - { 0xFF89, 0, 0, NULL }, /* 0xC9 */ - { 0xFF8A, 0, 0, NULL }, /* 0xCA */ - { 0xFF8B, 0, 0, NULL }, /* 0xCB */ - { 0xFF8C, 0, 0, NULL }, /* 0xCC */ - { 0xFF8D, 0, 0, NULL }, /* 0xCD */ - { 0xFF8E, 0, 0, NULL }, /* 0xCE */ - { 0xFF8F, 0, 0, NULL }, /* 0xCF */ - { 0xFF90, 0, 0, NULL }, /* 0xD0 */ - { 0xFF91, 0, 0, NULL }, /* 0xD1 */ - { 0xFF92, 0, 0, NULL }, /* 0xD2 */ - { 0xFF93, 0, 0, NULL }, /* 0xD3 */ - { 0xFF94, 0, 0, NULL }, /* 0xD4 */ - { 0xFF95, 0, 0, NULL }, /* 0xD5 */ - { 0xFF96, 0, 0, NULL }, /* 0xD6 */ - { 0xFF97, 0, 0, NULL }, /* 0xD7 */ - { 0xFF98, 0, 0, NULL }, /* 0xD8 */ - { 0xFF99, 0, 0, NULL }, /* 0xD9 */ - { 0xFF9A, 0, 0, NULL }, /* 0xDA */ - { 0xFF9B, 0, 0, NULL }, /* 0xDB */ - { 0xFF9C, 0, 0, NULL }, /* 0xDC */ - { 0xFF9D, 0, 0, NULL }, /* 0xDD */ - { 0xFF9E, 0, 0, NULL }, /* 0xDE */ - { 0xFF9F, 0, 0, NULL }, /* 0xDF */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E0 }, /* 0xE0 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E1 }, /* 0xE1 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E2 }, /* 0xE2 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E3 }, /* 0xE3 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E4 }, /* 0xE4 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E5 }, /* 0xE5 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E6 }, /* 0xE6 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E7 }, /* 0xE7 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E8 }, /* 0xE8 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E9 }, /* 0xE9 */ - { 0, 0x40, 0xA4, aImplDBCSToUniTab_SJIS_EA }, /* 0xEA */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xEB */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xEC */ /* We convert this as double byte */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_MS932_ED }, /* 0xED */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_MS932_EE }, /* 0xEE */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xEF */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF0 */ /* EUDC Range */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF1 */ /* EUDC Range */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF2 */ /* EUDC Range */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF3 */ /* EUDC Range */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF4 */ /* EUDC Range */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF5 */ /* EUDC Range */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF6 */ /* EUDC Range */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF7 */ /* EUDC Range */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF8 */ /* EUDC Range */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF9 */ /* EUDC Range */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_MS932_FA }, /* 0xFA */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_MS932_FB }, /* 0xFB */ - { 0, 0x40, 0x4B, aImplDBCSToUniTab_MS932_FC }, /* 0xFC */ - { 0x00A9, 0, 0, NULL }, /* 0xFD */ /* APPLE additons over SJIS, we convert this like apple, because I think, this gives better result, than we take a replacement char */ - { 0x2122, 0, 0, NULL }, /* 0xFE */ /* APPLE additons over SJIS, we convert this like apple, because I think, this gives better result, than we take a replacement char */ - { 0x2026, 0, 0, NULL } /* 0xFF */ /* APPLE additons over SJIS, we convert this like apple, because I think, this gives better result, than we take a replacement char */ + { 0x0000, 0, 0, NULL }, /* 0x00 */ + { 0x0001, 0, 0, NULL }, /* 0x01 */ + { 0x0002, 0, 0, NULL }, /* 0x02 */ + { 0x0003, 0, 0, NULL }, /* 0x03 */ + { 0x0004, 0, 0, NULL }, /* 0x04 */ + { 0x0005, 0, 0, NULL }, /* 0x05 */ + { 0x0006, 0, 0, NULL }, /* 0x06 */ + { 0x0007, 0, 0, NULL }, /* 0x07 */ + { 0x0008, 0, 0, NULL }, /* 0x08 */ + { 0x0009, 0, 0, NULL }, /* 0x09 */ + { 0x000A, 0, 0, NULL }, /* 0x0A */ + { 0x000B, 0, 0, NULL }, /* 0x0B */ + { 0x000C, 0, 0, NULL }, /* 0x0C */ + { 0x000D, 0, 0, NULL }, /* 0x0D */ + { 0x000E, 0, 0, NULL }, /* 0x0E */ + { 0x000F, 0, 0, NULL }, /* 0x0F */ + { 0x0010, 0, 0, NULL }, /* 0x10 */ + { 0x0011, 0, 0, NULL }, /* 0x11 */ + { 0x0012, 0, 0, NULL }, /* 0x12 */ + { 0x0013, 0, 0, NULL }, /* 0x13 */ + { 0x0014, 0, 0, NULL }, /* 0x14 */ + { 0x0015, 0, 0, NULL }, /* 0x15 */ + { 0x0016, 0, 0, NULL }, /* 0x16 */ + { 0x0017, 0, 0, NULL }, /* 0x17 */ + { 0x0018, 0, 0, NULL }, /* 0x18 */ + { 0x0019, 0, 0, NULL }, /* 0x19 */ + { 0x001A, 0, 0, NULL }, /* 0x1A */ + { 0x001B, 0, 0, NULL }, /* 0x1B */ + { 0x001C, 0, 0, NULL }, /* 0x1C */ + { 0x001D, 0, 0, NULL }, /* 0x1D */ + { 0x001E, 0, 0, NULL }, /* 0x1E */ + { 0x001F, 0, 0, NULL }, /* 0x1F */ + { 0x0020, 0, 0, NULL }, /* 0x20 */ + { 0x0021, 0, 0, NULL }, /* 0x21 */ + { 0x0022, 0, 0, NULL }, /* 0x22 */ + { 0x0023, 0, 0, NULL }, /* 0x23 */ + { 0x0024, 0, 0, NULL }, /* 0x24 */ + { 0x0025, 0, 0, NULL }, /* 0x25 */ + { 0x0026, 0, 0, NULL }, /* 0x26 */ + { 0x0027, 0, 0, NULL }, /* 0x27 */ + { 0x0028, 0, 0, NULL }, /* 0x28 */ + { 0x0029, 0, 0, NULL }, /* 0x29 */ + { 0x002A, 0, 0, NULL }, /* 0x2A */ + { 0x002B, 0, 0, NULL }, /* 0x2B */ + { 0x002C, 0, 0, NULL }, /* 0x2C */ + { 0x002D, 0, 0, NULL }, /* 0x2D */ + { 0x002E, 0, 0, NULL }, /* 0x2E */ + { 0x002F, 0, 0, NULL }, /* 0x2F */ + { 0x0030, 0, 0, NULL }, /* 0x30 */ + { 0x0031, 0, 0, NULL }, /* 0x31 */ + { 0x0032, 0, 0, NULL }, /* 0x32 */ + { 0x0033, 0, 0, NULL }, /* 0x33 */ + { 0x0034, 0, 0, NULL }, /* 0x34 */ + { 0x0035, 0, 0, NULL }, /* 0x35 */ + { 0x0036, 0, 0, NULL }, /* 0x36 */ + { 0x0037, 0, 0, NULL }, /* 0x37 */ + { 0x0038, 0, 0, NULL }, /* 0x38 */ + { 0x0039, 0, 0, NULL }, /* 0x39 */ + { 0x003A, 0, 0, NULL }, /* 0x3A */ + { 0x003B, 0, 0, NULL }, /* 0x3B */ + { 0x003C, 0, 0, NULL }, /* 0x3C */ + { 0x003D, 0, 0, NULL }, /* 0x3D */ + { 0x003E, 0, 0, NULL }, /* 0x3E */ + { 0x003F, 0, 0, NULL }, /* 0x3F */ + { 0x0040, 0, 0, NULL }, /* 0x40 */ + { 0x0041, 0, 0, NULL }, /* 0x41 */ + { 0x0042, 0, 0, NULL }, /* 0x42 */ + { 0x0043, 0, 0, NULL }, /* 0x43 */ + { 0x0044, 0, 0, NULL }, /* 0x44 */ + { 0x0045, 0, 0, NULL }, /* 0x45 */ + { 0x0046, 0, 0, NULL }, /* 0x46 */ + { 0x0047, 0, 0, NULL }, /* 0x47 */ + { 0x0048, 0, 0, NULL }, /* 0x48 */ + { 0x0049, 0, 0, NULL }, /* 0x49 */ + { 0x004A, 0, 0, NULL }, /* 0x4A */ + { 0x004B, 0, 0, NULL }, /* 0x4B */ + { 0x004C, 0, 0, NULL }, /* 0x4C */ + { 0x004D, 0, 0, NULL }, /* 0x4D */ + { 0x004E, 0, 0, NULL }, /* 0x4E */ + { 0x004F, 0, 0, NULL }, /* 0x4F */ + { 0x0050, 0, 0, NULL }, /* 0x50 */ + { 0x0051, 0, 0, NULL }, /* 0x51 */ + { 0x0052, 0, 0, NULL }, /* 0x52 */ + { 0x0053, 0, 0, NULL }, /* 0x53 */ + { 0x0054, 0, 0, NULL }, /* 0x54 */ + { 0x0055, 0, 0, NULL }, /* 0x55 */ + { 0x0056, 0, 0, NULL }, /* 0x56 */ + { 0x0057, 0, 0, NULL }, /* 0x57 */ + { 0x0058, 0, 0, NULL }, /* 0x58 */ + { 0x0059, 0, 0, NULL }, /* 0x59 */ + { 0x005A, 0, 0, NULL }, /* 0x5A */ + { 0x005B, 0, 0, NULL }, /* 0x5B */ + { 0x005C, 0, 0, NULL }, /* 0x5C */ /* in SJIS this is A5 (YEN SIGN), but for compatibiliy with ascii, we use 0x5C like MS CP392 */ + { 0x005D, 0, 0, NULL }, /* 0x5D */ + { 0x005E, 0, 0, NULL }, /* 0x5E */ + { 0x005F, 0, 0, NULL }, /* 0x5F */ + { 0x0060, 0, 0, NULL }, /* 0x60 */ + { 0x0061, 0, 0, NULL }, /* 0x61 */ + { 0x0062, 0, 0, NULL }, /* 0x62 */ + { 0x0063, 0, 0, NULL }, /* 0x63 */ + { 0x0064, 0, 0, NULL }, /* 0x64 */ + { 0x0065, 0, 0, NULL }, /* 0x65 */ + { 0x0066, 0, 0, NULL }, /* 0x66 */ + { 0x0067, 0, 0, NULL }, /* 0x67 */ + { 0x0068, 0, 0, NULL }, /* 0x68 */ + { 0x0069, 0, 0, NULL }, /* 0x69 */ + { 0x006A, 0, 0, NULL }, /* 0x6A */ + { 0x006B, 0, 0, NULL }, /* 0x6B */ + { 0x006C, 0, 0, NULL }, /* 0x6C */ + { 0x006D, 0, 0, NULL }, /* 0x6D */ + { 0x006E, 0, 0, NULL }, /* 0x6E */ + { 0x006F, 0, 0, NULL }, /* 0x6F */ + { 0x0070, 0, 0, NULL }, /* 0x70 */ + { 0x0071, 0, 0, NULL }, /* 0x71 */ + { 0x0072, 0, 0, NULL }, /* 0x72 */ + { 0x0073, 0, 0, NULL }, /* 0x73 */ + { 0x0074, 0, 0, NULL }, /* 0x74 */ + { 0x0075, 0, 0, NULL }, /* 0x75 */ + { 0x0076, 0, 0, NULL }, /* 0x76 */ + { 0x0077, 0, 0, NULL }, /* 0x77 */ + { 0x0078, 0, 0, NULL }, /* 0x78 */ + { 0x0079, 0, 0, NULL }, /* 0x79 */ + { 0x007A, 0, 0, NULL }, /* 0x7A */ + { 0x007B, 0, 0, NULL }, /* 0x7B */ + { 0x007C, 0, 0, NULL }, /* 0x7C */ + { 0x007D, 0, 0, NULL }, /* 0x7D */ + { 0x007E, 0, 0, NULL }, /* 0x7E */ /* in SJIS this is 0x0203E (SPACING OVERSCORE), but for compatibiliy with ascii, we use 0x7E (TILDE) like MS CP392 */ + { 0x007F, 0, 0, NULL }, /* 0x7F */ + { 0x005C, 0, 0, NULL }, /* 0x80 */ /* APPLE additons over SJIS, we convert this like apple, because I think, this gives better result, than we take a replacement char */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_MS932_81 }, /* 0x81 */ + { 0, 0x4F, 0xF1, aImplDBCSToUniTab_SJIS_82 }, /* 0x82 */ + { 0, 0x40, 0xD6, aImplDBCSToUniTab_SJIS_83 }, /* 0x83 */ + { 0, 0x40, 0xBF, aImplDBCSToUniTab_SJIS_84 }, /* 0x84 */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x85 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x86 */ /* We convert this as double byte */ + { 0, 0x40, 0x9C, aImplDBCSToUniTab_MS932_87 }, /* 0x87 */ + { 0, 0x9F, 0xFC, aImplDBCSToUniTab_SJIS_88 }, /* 0x88 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_89 }, /* 0x89 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8A }, /* 0x8A */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8B }, /* 0x8B */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8C }, /* 0x8C */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8D }, /* 0x8D */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8E }, /* 0x8E */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8F }, /* 0x8F */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_90 }, /* 0x90 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_91 }, /* 0x91 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_92 }, /* 0x92 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_93 }, /* 0x93 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_94 }, /* 0x94 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_95 }, /* 0x95 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_96 }, /* 0x96 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_97 }, /* 0x97 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_98 }, /* 0x98 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_99 }, /* 0x99 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9A }, /* 0x9A */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9B }, /* 0x9B */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9C }, /* 0x9C */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9D }, /* 0x9D */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9E }, /* 0x9E */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9F }, /* 0x9F */ + { 0x00A0, 0, 0, NULL }, /* 0xA0 */ /* APPLE additons over SJIS, we convert this like apple, because I think, this gives better result, than we take a replacement char */ + { 0xFF61, 0, 0, NULL }, /* 0xA1 */ + { 0xFF62, 0, 0, NULL }, /* 0xA2 */ + { 0xFF63, 0, 0, NULL }, /* 0xA3 */ + { 0xFF64, 0, 0, NULL }, /* 0xA4 */ + { 0xFF65, 0, 0, NULL }, /* 0xA5 */ + { 0xFF66, 0, 0, NULL }, /* 0xA6 */ + { 0xFF67, 0, 0, NULL }, /* 0xA7 */ + { 0xFF68, 0, 0, NULL }, /* 0xA8 */ + { 0xFF69, 0, 0, NULL }, /* 0xA9 */ + { 0xFF6A, 0, 0, NULL }, /* 0xAA */ + { 0xFF6B, 0, 0, NULL }, /* 0xAB */ + { 0xFF6C, 0, 0, NULL }, /* 0xAC */ + { 0xFF6D, 0, 0, NULL }, /* 0xAD */ + { 0xFF6E, 0, 0, NULL }, /* 0xAE */ + { 0xFF6F, 0, 0, NULL }, /* 0xAF */ + { 0xFF70, 0, 0, NULL }, /* 0xB0 */ + { 0xFF71, 0, 0, NULL }, /* 0xB1 */ + { 0xFF72, 0, 0, NULL }, /* 0xB2 */ + { 0xFF73, 0, 0, NULL }, /* 0xB3 */ + { 0xFF74, 0, 0, NULL }, /* 0xB4 */ + { 0xFF75, 0, 0, NULL }, /* 0xB5 */ + { 0xFF76, 0, 0, NULL }, /* 0xB6 */ + { 0xFF77, 0, 0, NULL }, /* 0xB7 */ + { 0xFF78, 0, 0, NULL }, /* 0xB8 */ + { 0xFF79, 0, 0, NULL }, /* 0xB9 */ + { 0xFF7A, 0, 0, NULL }, /* 0xBA */ + { 0xFF7B, 0, 0, NULL }, /* 0xBB */ + { 0xFF7C, 0, 0, NULL }, /* 0xBC */ + { 0xFF7D, 0, 0, NULL }, /* 0xBD */ + { 0xFF7E, 0, 0, NULL }, /* 0xBE */ + { 0xFF7F, 0, 0, NULL }, /* 0xBF */ + { 0xFF80, 0, 0, NULL }, /* 0xC0 */ + { 0xFF81, 0, 0, NULL }, /* 0xC1 */ + { 0xFF82, 0, 0, NULL }, /* 0xC2 */ + { 0xFF83, 0, 0, NULL }, /* 0xC3 */ + { 0xFF84, 0, 0, NULL }, /* 0xC4 */ + { 0xFF85, 0, 0, NULL }, /* 0xC5 */ + { 0xFF86, 0, 0, NULL }, /* 0xC6 */ + { 0xFF87, 0, 0, NULL }, /* 0xC7 */ + { 0xFF88, 0, 0, NULL }, /* 0xC8 */ + { 0xFF89, 0, 0, NULL }, /* 0xC9 */ + { 0xFF8A, 0, 0, NULL }, /* 0xCA */ + { 0xFF8B, 0, 0, NULL }, /* 0xCB */ + { 0xFF8C, 0, 0, NULL }, /* 0xCC */ + { 0xFF8D, 0, 0, NULL }, /* 0xCD */ + { 0xFF8E, 0, 0, NULL }, /* 0xCE */ + { 0xFF8F, 0, 0, NULL }, /* 0xCF */ + { 0xFF90, 0, 0, NULL }, /* 0xD0 */ + { 0xFF91, 0, 0, NULL }, /* 0xD1 */ + { 0xFF92, 0, 0, NULL }, /* 0xD2 */ + { 0xFF93, 0, 0, NULL }, /* 0xD3 */ + { 0xFF94, 0, 0, NULL }, /* 0xD4 */ + { 0xFF95, 0, 0, NULL }, /* 0xD5 */ + { 0xFF96, 0, 0, NULL }, /* 0xD6 */ + { 0xFF97, 0, 0, NULL }, /* 0xD7 */ + { 0xFF98, 0, 0, NULL }, /* 0xD8 */ + { 0xFF99, 0, 0, NULL }, /* 0xD9 */ + { 0xFF9A, 0, 0, NULL }, /* 0xDA */ + { 0xFF9B, 0, 0, NULL }, /* 0xDB */ + { 0xFF9C, 0, 0, NULL }, /* 0xDC */ + { 0xFF9D, 0, 0, NULL }, /* 0xDD */ + { 0xFF9E, 0, 0, NULL }, /* 0xDE */ + { 0xFF9F, 0, 0, NULL }, /* 0xDF */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E0 }, /* 0xE0 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E1 }, /* 0xE1 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E2 }, /* 0xE2 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E3 }, /* 0xE3 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E4 }, /* 0xE4 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E5 }, /* 0xE5 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E6 }, /* 0xE6 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E7 }, /* 0xE7 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E8 }, /* 0xE8 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E9 }, /* 0xE9 */ + { 0, 0x40, 0xA4, aImplDBCSToUniTab_SJIS_EA }, /* 0xEA */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xEB */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xEC */ /* We convert this as double byte */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_MS932_ED }, /* 0xED */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_MS932_EE }, /* 0xEE */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xEF */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF0 */ /* EUDC Range */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF1 */ /* EUDC Range */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF2 */ /* EUDC Range */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF3 */ /* EUDC Range */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF4 */ /* EUDC Range */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF5 */ /* EUDC Range */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF6 */ /* EUDC Range */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF7 */ /* EUDC Range */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF8 */ /* EUDC Range */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF9 */ /* EUDC Range */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_MS932_FA }, /* 0xFA */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_MS932_FB }, /* 0xFB */ + { 0, 0x40, 0x4B, aImplDBCSToUniTab_MS932_FC }, /* 0xFC */ + { 0x00A9, 0, 0, NULL }, /* 0xFD */ /* APPLE additons over SJIS, we convert this like apple, because I think, this gives better result, than we take a replacement char */ + { 0x2122, 0, 0, NULL }, /* 0xFE */ /* APPLE additons over SJIS, we convert this like apple, because I think, this gives better result, than we take a replacement char */ + { 0x2026, 0, 0, NULL } /* 0xFF */ /* APPLE additons over SJIS, we convert this like apple, because I think, this gives better result, than we take a replacement char */ }; /* ----------------------------------------------------------------------- */ static ImplUniToDBCSHighTab const aMS932DBCSHighTab[256] = { - { 0x00, 0xF7, aImplUniToDBCSTab_SJIS_00 }, /* 0x00 */ - { 1, 0, NULL }, /* 0x01 */ - { 1, 0, NULL }, /* 0x02 */ - { 0x91, 0xC9, aImplUniToDBCSTab_SJIS_03 }, /* 0x03 */ - { 0x01, 0x51, aImplUniToDBCSTab_SJIS_04 }, /* 0x04 */ - { 1, 0, NULL }, /* 0x05 */ - { 1, 0, NULL }, /* 0x06 */ - { 1, 0, NULL }, /* 0x07 */ - { 1, 0, NULL }, /* 0x08 */ - { 1, 0, NULL }, /* 0x09 */ - { 1, 0, NULL }, /* 0x0A */ - { 1, 0, NULL }, /* 0x0B */ - { 1, 0, NULL }, /* 0x0C */ - { 1, 0, NULL }, /* 0x0D */ - { 1, 0, NULL }, /* 0x0E */ - { 1, 0, NULL }, /* 0x0F */ - { 1, 0, NULL }, /* 0x10 */ - { 1, 0, NULL }, /* 0x11 */ - { 1, 0, NULL }, /* 0x12 */ - { 1, 0, NULL }, /* 0x13 */ - { 1, 0, NULL }, /* 0x14 */ - { 1, 0, NULL }, /* 0x15 */ - { 1, 0, NULL }, /* 0x16 */ - { 1, 0, NULL }, /* 0x17 */ - { 1, 0, NULL }, /* 0x18 */ - { 1, 0, NULL }, /* 0x19 */ - { 1, 0, NULL }, /* 0x1A */ - { 1, 0, NULL }, /* 0x1B */ - { 1, 0, NULL }, /* 0x1C */ - { 1, 0, NULL }, /* 0x1D */ - { 1, 0, NULL }, /* 0x1E */ - { 1, 0, NULL }, /* 0x1F */ - { 0x10, 0x3E, aImplUniToDBCSTab_SJIS_20 }, /* 0x20 */ - { 0x03, 0xD4, aImplUniToDBCSTab_MS932_21 }, /* 0x21 */ - { 0x00, 0xBF, aImplUniToDBCSTab_MS932_22 }, /* 0x22 */ - { 0x12, 0x12, aImplUniToDBCSTab_SJIS_23 }, /* 0x23 */ - { 0x60, 0x73, aImplUniToDBCSTab_MS932_24 }, /* 0x24 */ - { 0x00, 0xEF, aImplUniToDBCSTab_SJIS_25 }, /* 0x25 */ - { 0x05, 0x6F, aImplUniToDBCSTab_SJIS_26 }, /* 0x26 */ - { 1, 0, NULL }, /* 0x27 */ - { 1, 0, NULL }, /* 0x28 */ - { 1, 0, NULL }, /* 0x29 */ - { 1, 0, NULL }, /* 0x2A */ - { 1, 0, NULL }, /* 0x2B */ - { 1, 0, NULL }, /* 0x2C */ - { 1, 0, NULL }, /* 0x2D */ - { 1, 0, NULL }, /* 0x2E */ - { 1, 0, NULL }, /* 0x2F */ - { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_30 }, /* 0x30 */ - { 1, 0, NULL }, /* 0x31 */ - { 0x31, 0xA8, aImplUniToDBCSTab_MS932_32 }, /* 0x32 */ - { 0x03, 0xCD, aImplUniToDBCSTab_MS932_33 }, /* 0x33 */ - { 1, 0, NULL }, /* 0x34 */ - { 1, 0, NULL }, /* 0x35 */ - { 1, 0, NULL }, /* 0x36 */ - { 1, 0, NULL }, /* 0x37 */ - { 1, 0, NULL }, /* 0x38 */ - { 1, 0, NULL }, /* 0x39 */ - { 1, 0, NULL }, /* 0x3A */ - { 1, 0, NULL }, /* 0x3B */ - { 1, 0, NULL }, /* 0x3C */ - { 1, 0, NULL }, /* 0x3D */ - { 1, 0, NULL }, /* 0x3E */ - { 1, 0, NULL }, /* 0x3F */ - { 1, 0, NULL }, /* 0x40 */ - { 1, 0, NULL }, /* 0x41 */ - { 1, 0, NULL }, /* 0x42 */ - { 1, 0, NULL }, /* 0x43 */ - { 1, 0, NULL }, /* 0x44 */ - { 1, 0, NULL }, /* 0x45 */ - { 1, 0, NULL }, /* 0x46 */ - { 1, 0, NULL }, /* 0x47 */ - { 1, 0, NULL }, /* 0x48 */ - { 1, 0, NULL }, /* 0x49 */ - { 1, 0, NULL }, /* 0x4A */ - { 1, 0, NULL }, /* 0x4B */ - { 1, 0, NULL }, /* 0x4C */ - { 1, 0, NULL }, /* 0x4D */ - { 0x00, 0xFC, aImplUniToDBCSTab_SJIS_4E }, /* 0x4E */ - { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_4F }, /* 0x4F */ - { 0x05, 0xFB, aImplUniToDBCSTab_SJIS_50 }, /* 0x50 */ - { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_51 }, /* 0x51 */ - { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_52 }, /* 0x52 */ - { 0x00, 0xFA, aImplUniToDBCSTab_SJIS_53 }, /* 0x53 */ - { 0x01, 0xFF, aImplUniToDBCSTab_SJIS_54 }, /* 0x54 */ - { 0x04, 0xFE, aImplUniToDBCSTab_SJIS_55 }, /* 0x55 */ - { 0x06, 0xFF, aImplUniToDBCSTab_SJIS_56 }, /* 0x56 */ - { 0x00, 0xFC, aImplUniToDBCSTab_SJIS_57 }, /* 0x57 */ - { 0x00, 0xFD, aImplUniToDBCSTab_SJIS_58 }, /* 0x58 */ - { 0x02, 0xFF, aImplUniToDBCSTab_SJIS_59 }, /* 0x59 */ - { 0x01, 0xFB, aImplUniToDBCSTab_SJIS_5A }, /* 0x5A */ - { 0x09, 0xFF, aImplUniToDBCSTab_SJIS_5B }, /* 0x5B */ - { 0x01, 0xFD, aImplUniToDBCSTab_SJIS_5C }, /* 0x5C */ - { 0x07, 0xFE, aImplUniToDBCSTab_SJIS_5D }, /* 0x5D */ - { 0x02, 0xFF, aImplUniToDBCSTab_SJIS_5E }, /* 0x5E */ - { 0x01, 0xFF, aImplUniToDBCSTab_SJIS_5F }, /* 0x5F */ - { 0x0E, 0xFB, aImplUniToDBCSTab_SJIS_60 }, /* 0x60 */ - { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_61 }, /* 0x61 */ - { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_62 }, /* 0x62 */ - { 0x01, 0xFA, aImplUniToDBCSTab_SJIS_63 }, /* 0x63 */ - { 0x06, 0xFE, aImplUniToDBCSTab_SJIS_64 }, /* 0x64 */ - { 0x00, 0xFB, aImplUniToDBCSTab_SJIS_65 }, /* 0x65 */ - { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_66 }, /* 0x66 */ - { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_67 }, /* 0x67 */ - { 0x01, 0xFA, aImplUniToDBCSTab_SJIS_68 }, /* 0x68 */ - { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_69 }, /* 0x69 */ - { 0x02, 0xFB, aImplUniToDBCSTab_SJIS_6A }, /* 0x6A */ - { 0x04, 0xF3, aImplUniToDBCSTab_SJIS_6B }, /* 0x6B */ - { 0x08, 0xF3, aImplUniToDBCSTab_SJIS_6C }, /* 0x6C */ - { 0x04, 0xFC, aImplUniToDBCSTab_SJIS_6D }, /* 0x6D */ - { 0x05, 0xFF, aImplUniToDBCSTab_SJIS_6E }, /* 0x6E */ - { 0x01, 0xFE, aImplUniToDBCSTab_SJIS_6F }, /* 0x6F */ - { 0x01, 0xFD, aImplUniToDBCSTab_SJIS_70 }, /* 0x70 */ - { 0x04, 0xFF, aImplUniToDBCSTab_SJIS_71 }, /* 0x71 */ - { 0x06, 0xFD, aImplUniToDBCSTab_SJIS_72 }, /* 0x72 */ - { 0x0A, 0xFE, aImplUniToDBCSTab_SJIS_73 }, /* 0x73 */ - { 0x03, 0xF8, aImplUniToDBCSTab_SJIS_74 }, /* 0x74 */ - { 0x01, 0xFF, aImplUniToDBCSTab_SJIS_75 }, /* 0x75 */ - { 0x01, 0xFE, aImplUniToDBCSTab_SJIS_76 }, /* 0x76 */ - { 0x01, 0xFC, aImplUniToDBCSTab_SJIS_77 }, /* 0x77 */ - { 0x02, 0xFD, aImplUniToDBCSTab_SJIS_78 }, /* 0x78 */ - { 0x01, 0xFB, aImplUniToDBCSTab_SJIS_79 }, /* 0x79 */ - { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_7A }, /* 0x7A */ - { 0x02, 0xF7, aImplUniToDBCSTab_SJIS_7B }, /* 0x7B */ - { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_7C }, /* 0x7C */ - { 0x00, 0xFB, aImplUniToDBCSTab_SJIS_7D }, /* 0x7D */ - { 0x01, 0x9C, aImplUniToDBCSTab_SJIS_7E }, /* 0x7E */ - { 0x36, 0xFC, aImplUniToDBCSTab_SJIS_7F }, /* 0x7F */ - { 0x00, 0xFD, aImplUniToDBCSTab_SJIS_80 }, /* 0x80 */ - { 0x02, 0xFE, aImplUniToDBCSTab_SJIS_81 }, /* 0x81 */ - { 0x01, 0xFB, aImplUniToDBCSTab_SJIS_82 }, /* 0x82 */ - { 0x01, 0xFD, aImplUniToDBCSTab_SJIS_83 }, /* 0x83 */ - { 0x03, 0xFF, aImplUniToDBCSTab_SJIS_84 }, /* 0x84 */ - { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_85 }, /* 0x85 */ - { 0x02, 0xFE, aImplUniToDBCSTab_SJIS_86 }, /* 0x86 */ - { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_87 }, /* 0x87 */ - { 0x05, 0xFE, aImplUniToDBCSTab_SJIS_88 }, /* 0x88 */ - { 0x02, 0xF8, aImplUniToDBCSTab_SJIS_89 }, /* 0x89 */ - { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_8A }, /* 0x8A */ - { 0x00, 0x9A, aImplUniToDBCSTab_SJIS_8B }, /* 0x8B */ - { 0x37, 0xFD, aImplUniToDBCSTab_SJIS_8C }, /* 0x8C */ - { 0x04, 0xFF, aImplUniToDBCSTab_SJIS_8D }, /* 0x8D */ - { 0x08, 0xFE, aImplUniToDBCSTab_SJIS_8E }, /* 0x8E */ - { 0x03, 0xFD, aImplUniToDBCSTab_SJIS_8F }, /* 0x8F */ - { 0x00, 0xFD, aImplUniToDBCSTab_SJIS_90 }, /* 0x90 */ - { 0x02, 0xFF, aImplUniToDBCSTab_SJIS_91 }, /* 0x91 */ - { 0x06, 0xFF, aImplUniToDBCSTab_SJIS_92 }, /* 0x92 */ - { 0x02, 0xF8, aImplUniToDBCSTab_SJIS_93 }, /* 0x93 */ - { 0x03, 0x81, aImplUniToDBCSTab_SJIS_94 }, /* 0x94 */ - { 0x77, 0xE5, aImplUniToDBCSTab_SJIS_95 }, /* 0x95 */ - { 0x1C, 0xFB, aImplUniToDBCSTab_SJIS_96 }, /* 0x96 */ - { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_97 }, /* 0x97 */ - { 0x01, 0xFE, aImplUniToDBCSTab_SJIS_98 }, /* 0x98 */ - { 0x03, 0xFF, aImplUniToDBCSTab_SJIS_99 }, /* 0x99 */ - { 0x01, 0xFB, aImplUniToDBCSTab_SJIS_9A }, /* 0x9A */ - { 0x06, 0xF5, aImplUniToDBCSTab_SJIS_9B }, /* 0x9B */ - { 0x00, 0xF6, aImplUniToDBCSTab_SJIS_9C }, /* 0x9C */ - { 0x03, 0xFD, aImplUniToDBCSTab_SJIS_9D }, /* 0x9D */ - { 0x19, 0xFD, aImplUniToDBCSTab_SJIS_9E }, /* 0x9E */ - { 0x07, 0xA0, aImplUniToDBCSTab_SJIS_9F }, /* 0x9F */ - { 1, 0, NULL }, /* 0xA0 */ - { 1, 0, NULL }, /* 0xA1 */ - { 1, 0, NULL }, /* 0xA2 */ - { 1, 0, NULL }, /* 0xA3 */ - { 1, 0, NULL }, /* 0xA4 */ - { 1, 0, NULL }, /* 0xA5 */ - { 1, 0, NULL }, /* 0xA6 */ - { 1, 0, NULL }, /* 0xA7 */ - { 1, 0, NULL }, /* 0xA8 */ - { 1, 0, NULL }, /* 0xA9 */ - { 1, 0, NULL }, /* 0xAA */ - { 1, 0, NULL }, /* 0xAB */ - { 1, 0, NULL }, /* 0xAC */ - { 1, 0, NULL }, /* 0xAD */ - { 1, 0, NULL }, /* 0xAE */ - { 1, 0, NULL }, /* 0xAF */ - { 1, 0, NULL }, /* 0xB0 */ - { 1, 0, NULL }, /* 0xB1 */ - { 1, 0, NULL }, /* 0xB2 */ - { 1, 0, NULL }, /* 0xB3 */ - { 1, 0, NULL }, /* 0xB4 */ - { 1, 0, NULL }, /* 0xB5 */ - { 1, 0, NULL }, /* 0xB6 */ - { 1, 0, NULL }, /* 0xB7 */ - { 1, 0, NULL }, /* 0xB8 */ - { 1, 0, NULL }, /* 0xB9 */ - { 1, 0, NULL }, /* 0xBA */ - { 1, 0, NULL }, /* 0xBB */ - { 1, 0, NULL }, /* 0xBC */ - { 1, 0, NULL }, /* 0xBD */ - { 1, 0, NULL }, /* 0xBE */ - { 1, 0, NULL }, /* 0xBF */ - { 1, 0, NULL }, /* 0xC0 */ - { 1, 0, NULL }, /* 0xC1 */ - { 1, 0, NULL }, /* 0xC2 */ - { 1, 0, NULL }, /* 0xC3 */ - { 1, 0, NULL }, /* 0xC4 */ - { 1, 0, NULL }, /* 0xC5 */ - { 1, 0, NULL }, /* 0xC6 */ - { 1, 0, NULL }, /* 0xC7 */ - { 1, 0, NULL }, /* 0xC8 */ - { 1, 0, NULL }, /* 0xC9 */ - { 1, 0, NULL }, /* 0xCA */ - { 1, 0, NULL }, /* 0xCB */ - { 1, 0, NULL }, /* 0xCC */ - { 1, 0, NULL }, /* 0xCD */ - { 1, 0, NULL }, /* 0xCE */ - { 1, 0, NULL }, /* 0xCF */ - { 1, 0, NULL }, /* 0xD0 */ - { 1, 0, NULL }, /* 0xD1 */ - { 1, 0, NULL }, /* 0xD2 */ - { 1, 0, NULL }, /* 0xD3 */ - { 1, 0, NULL }, /* 0xD4 */ - { 1, 0, NULL }, /* 0xD5 */ - { 1, 0, NULL }, /* 0xD6 */ - { 1, 0, NULL }, /* 0xD7 */ - { 1, 0, NULL }, /* 0xD8 */ - { 1, 0, NULL }, /* 0xD9 */ - { 1, 0, NULL }, /* 0xDA */ - { 1, 0, NULL }, /* 0xDB */ - { 1, 0, NULL }, /* 0xDC */ - { 1, 0, NULL }, /* 0xDD */ - { 1, 0, NULL }, /* 0xDE */ - { 1, 0, NULL }, /* 0xDF */ - { 1, 0, NULL }, /* 0xE0 */ - { 1, 0, NULL }, /* 0xE1 */ - { 1, 0, NULL }, /* 0xE2 */ - { 1, 0, NULL }, /* 0xE3 */ - { 1, 0, NULL }, /* 0xE4 */ - { 1, 0, NULL }, /* 0xE5 */ - { 1, 0, NULL }, /* 0xE6 */ - { 1, 0, NULL }, /* 0xE7 */ - { 1, 0, NULL }, /* 0xE8 */ - { 1, 0, NULL }, /* 0xE9 */ - { 1, 0, NULL }, /* 0xEA */ - { 1, 0, NULL }, /* 0xEB */ - { 1, 0, NULL }, /* 0xEC */ - { 1, 0, NULL }, /* 0xED */ - { 1, 0, NULL }, /* 0xEE */ - { 1, 0, NULL }, /* 0xEF */ - { 1, 0, NULL }, /* 0xF0 */ - { 1, 0, NULL }, /* 0xF1 */ - { 1, 0, NULL }, /* 0xF2 */ - { 1, 0, NULL }, /* 0xF3 */ - { 1, 0, NULL }, /* 0xF4 */ - { 1, 0, NULL }, /* 0xF5 */ - { 1, 0, NULL }, /* 0xF6 */ - { 1, 0, NULL }, /* 0xF7 */ - { 1, 0, NULL }, /* 0xF8 */ - { 0x29, 0xDC, aImplUniToDBCSTab_MS932_F9 }, /* 0xF9 */ - { 0x0E, 0x2D, aImplUniToDBCSTab_MS932_FA }, /* 0xFA */ - { 1, 0, NULL }, /* 0xFB */ - { 1, 0, NULL }, /* 0xFC */ - { 1, 0, NULL }, /* 0xFD */ - { 1, 0, NULL }, /* 0xFE */ - { 0x01, 0xE5, aImplUniToDBCSTab_SJIS_FF } /* 0xFF */ + { 0x00, 0xF7, aImplUniToDBCSTab_SJIS_00 }, /* 0x00 */ + { 1, 0, NULL }, /* 0x01 */ + { 1, 0, NULL }, /* 0x02 */ + { 0x91, 0xC9, aImplUniToDBCSTab_SJIS_03 }, /* 0x03 */ + { 0x01, 0x51, aImplUniToDBCSTab_SJIS_04 }, /* 0x04 */ + { 1, 0, NULL }, /* 0x05 */ + { 1, 0, NULL }, /* 0x06 */ + { 1, 0, NULL }, /* 0x07 */ + { 1, 0, NULL }, /* 0x08 */ + { 1, 0, NULL }, /* 0x09 */ + { 1, 0, NULL }, /* 0x0A */ + { 1, 0, NULL }, /* 0x0B */ + { 1, 0, NULL }, /* 0x0C */ + { 1, 0, NULL }, /* 0x0D */ + { 1, 0, NULL }, /* 0x0E */ + { 1, 0, NULL }, /* 0x0F */ + { 1, 0, NULL }, /* 0x10 */ + { 1, 0, NULL }, /* 0x11 */ + { 1, 0, NULL }, /* 0x12 */ + { 1, 0, NULL }, /* 0x13 */ + { 1, 0, NULL }, /* 0x14 */ + { 1, 0, NULL }, /* 0x15 */ + { 1, 0, NULL }, /* 0x16 */ + { 1, 0, NULL }, /* 0x17 */ + { 1, 0, NULL }, /* 0x18 */ + { 1, 0, NULL }, /* 0x19 */ + { 1, 0, NULL }, /* 0x1A */ + { 1, 0, NULL }, /* 0x1B */ + { 1, 0, NULL }, /* 0x1C */ + { 1, 0, NULL }, /* 0x1D */ + { 1, 0, NULL }, /* 0x1E */ + { 1, 0, NULL }, /* 0x1F */ + { 0x10, 0x3E, aImplUniToDBCSTab_SJIS_20 }, /* 0x20 */ + { 0x03, 0xD4, aImplUniToDBCSTab_MS932_21 }, /* 0x21 */ + { 0x00, 0xBF, aImplUniToDBCSTab_MS932_22 }, /* 0x22 */ + { 0x12, 0x12, aImplUniToDBCSTab_SJIS_23 }, /* 0x23 */ + { 0x60, 0x73, aImplUniToDBCSTab_MS932_24 }, /* 0x24 */ + { 0x00, 0xEF, aImplUniToDBCSTab_SJIS_25 }, /* 0x25 */ + { 0x05, 0x6F, aImplUniToDBCSTab_SJIS_26 }, /* 0x26 */ + { 1, 0, NULL }, /* 0x27 */ + { 1, 0, NULL }, /* 0x28 */ + { 1, 0, NULL }, /* 0x29 */ + { 1, 0, NULL }, /* 0x2A */ + { 1, 0, NULL }, /* 0x2B */ + { 1, 0, NULL }, /* 0x2C */ + { 1, 0, NULL }, /* 0x2D */ + { 1, 0, NULL }, /* 0x2E */ + { 1, 0, NULL }, /* 0x2F */ + { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_30 }, /* 0x30 */ + { 1, 0, NULL }, /* 0x31 */ + { 0x31, 0xA8, aImplUniToDBCSTab_MS932_32 }, /* 0x32 */ + { 0x03, 0xCD, aImplUniToDBCSTab_MS932_33 }, /* 0x33 */ + { 1, 0, NULL }, /* 0x34 */ + { 1, 0, NULL }, /* 0x35 */ + { 1, 0, NULL }, /* 0x36 */ + { 1, 0, NULL }, /* 0x37 */ + { 1, 0, NULL }, /* 0x38 */ + { 1, 0, NULL }, /* 0x39 */ + { 1, 0, NULL }, /* 0x3A */ + { 1, 0, NULL }, /* 0x3B */ + { 1, 0, NULL }, /* 0x3C */ + { 1, 0, NULL }, /* 0x3D */ + { 1, 0, NULL }, /* 0x3E */ + { 1, 0, NULL }, /* 0x3F */ + { 1, 0, NULL }, /* 0x40 */ + { 1, 0, NULL }, /* 0x41 */ + { 1, 0, NULL }, /* 0x42 */ + { 1, 0, NULL }, /* 0x43 */ + { 1, 0, NULL }, /* 0x44 */ + { 1, 0, NULL }, /* 0x45 */ + { 1, 0, NULL }, /* 0x46 */ + { 1, 0, NULL }, /* 0x47 */ + { 1, 0, NULL }, /* 0x48 */ + { 1, 0, NULL }, /* 0x49 */ + { 1, 0, NULL }, /* 0x4A */ + { 1, 0, NULL }, /* 0x4B */ + { 1, 0, NULL }, /* 0x4C */ + { 1, 0, NULL }, /* 0x4D */ + { 0x00, 0xFC, aImplUniToDBCSTab_SJIS_4E }, /* 0x4E */ + { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_4F }, /* 0x4F */ + { 0x05, 0xFB, aImplUniToDBCSTab_SJIS_50 }, /* 0x50 */ + { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_51 }, /* 0x51 */ + { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_52 }, /* 0x52 */ + { 0x00, 0xFA, aImplUniToDBCSTab_SJIS_53 }, /* 0x53 */ + { 0x01, 0xFF, aImplUniToDBCSTab_SJIS_54 }, /* 0x54 */ + { 0x04, 0xFE, aImplUniToDBCSTab_SJIS_55 }, /* 0x55 */ + { 0x06, 0xFF, aImplUniToDBCSTab_SJIS_56 }, /* 0x56 */ + { 0x00, 0xFC, aImplUniToDBCSTab_SJIS_57 }, /* 0x57 */ + { 0x00, 0xFD, aImplUniToDBCSTab_SJIS_58 }, /* 0x58 */ + { 0x02, 0xFF, aImplUniToDBCSTab_SJIS_59 }, /* 0x59 */ + { 0x01, 0xFB, aImplUniToDBCSTab_SJIS_5A }, /* 0x5A */ + { 0x09, 0xFF, aImplUniToDBCSTab_SJIS_5B }, /* 0x5B */ + { 0x01, 0xFD, aImplUniToDBCSTab_SJIS_5C }, /* 0x5C */ + { 0x07, 0xFE, aImplUniToDBCSTab_SJIS_5D }, /* 0x5D */ + { 0x02, 0xFF, aImplUniToDBCSTab_SJIS_5E }, /* 0x5E */ + { 0x01, 0xFF, aImplUniToDBCSTab_SJIS_5F }, /* 0x5F */ + { 0x0E, 0xFB, aImplUniToDBCSTab_SJIS_60 }, /* 0x60 */ + { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_61 }, /* 0x61 */ + { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_62 }, /* 0x62 */ + { 0x01, 0xFA, aImplUniToDBCSTab_SJIS_63 }, /* 0x63 */ + { 0x06, 0xFE, aImplUniToDBCSTab_SJIS_64 }, /* 0x64 */ + { 0x00, 0xFB, aImplUniToDBCSTab_SJIS_65 }, /* 0x65 */ + { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_66 }, /* 0x66 */ + { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_67 }, /* 0x67 */ + { 0x01, 0xFA, aImplUniToDBCSTab_SJIS_68 }, /* 0x68 */ + { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_69 }, /* 0x69 */ + { 0x02, 0xFB, aImplUniToDBCSTab_SJIS_6A }, /* 0x6A */ + { 0x04, 0xF3, aImplUniToDBCSTab_SJIS_6B }, /* 0x6B */ + { 0x08, 0xF3, aImplUniToDBCSTab_SJIS_6C }, /* 0x6C */ + { 0x04, 0xFC, aImplUniToDBCSTab_SJIS_6D }, /* 0x6D */ + { 0x05, 0xFF, aImplUniToDBCSTab_SJIS_6E }, /* 0x6E */ + { 0x01, 0xFE, aImplUniToDBCSTab_SJIS_6F }, /* 0x6F */ + { 0x01, 0xFD, aImplUniToDBCSTab_SJIS_70 }, /* 0x70 */ + { 0x04, 0xFF, aImplUniToDBCSTab_SJIS_71 }, /* 0x71 */ + { 0x06, 0xFD, aImplUniToDBCSTab_SJIS_72 }, /* 0x72 */ + { 0x0A, 0xFE, aImplUniToDBCSTab_SJIS_73 }, /* 0x73 */ + { 0x03, 0xF8, aImplUniToDBCSTab_SJIS_74 }, /* 0x74 */ + { 0x01, 0xFF, aImplUniToDBCSTab_SJIS_75 }, /* 0x75 */ + { 0x01, 0xFE, aImplUniToDBCSTab_SJIS_76 }, /* 0x76 */ + { 0x01, 0xFC, aImplUniToDBCSTab_SJIS_77 }, /* 0x77 */ + { 0x02, 0xFD, aImplUniToDBCSTab_SJIS_78 }, /* 0x78 */ + { 0x01, 0xFB, aImplUniToDBCSTab_SJIS_79 }, /* 0x79 */ + { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_7A }, /* 0x7A */ + { 0x02, 0xF7, aImplUniToDBCSTab_SJIS_7B }, /* 0x7B */ + { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_7C }, /* 0x7C */ + { 0x00, 0xFB, aImplUniToDBCSTab_SJIS_7D }, /* 0x7D */ + { 0x01, 0x9C, aImplUniToDBCSTab_SJIS_7E }, /* 0x7E */ + { 0x36, 0xFC, aImplUniToDBCSTab_SJIS_7F }, /* 0x7F */ + { 0x00, 0xFD, aImplUniToDBCSTab_SJIS_80 }, /* 0x80 */ + { 0x02, 0xFE, aImplUniToDBCSTab_SJIS_81 }, /* 0x81 */ + { 0x01, 0xFB, aImplUniToDBCSTab_SJIS_82 }, /* 0x82 */ + { 0x01, 0xFD, aImplUniToDBCSTab_SJIS_83 }, /* 0x83 */ + { 0x03, 0xFF, aImplUniToDBCSTab_SJIS_84 }, /* 0x84 */ + { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_85 }, /* 0x85 */ + { 0x02, 0xFE, aImplUniToDBCSTab_SJIS_86 }, /* 0x86 */ + { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_87 }, /* 0x87 */ + { 0x05, 0xFE, aImplUniToDBCSTab_SJIS_88 }, /* 0x88 */ + { 0x02, 0xF8, aImplUniToDBCSTab_SJIS_89 }, /* 0x89 */ + { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_8A }, /* 0x8A */ + { 0x00, 0x9A, aImplUniToDBCSTab_SJIS_8B }, /* 0x8B */ + { 0x37, 0xFD, aImplUniToDBCSTab_SJIS_8C }, /* 0x8C */ + { 0x04, 0xFF, aImplUniToDBCSTab_SJIS_8D }, /* 0x8D */ + { 0x08, 0xFE, aImplUniToDBCSTab_SJIS_8E }, /* 0x8E */ + { 0x03, 0xFD, aImplUniToDBCSTab_SJIS_8F }, /* 0x8F */ + { 0x00, 0xFD, aImplUniToDBCSTab_SJIS_90 }, /* 0x90 */ + { 0x02, 0xFF, aImplUniToDBCSTab_SJIS_91 }, /* 0x91 */ + { 0x06, 0xFF, aImplUniToDBCSTab_SJIS_92 }, /* 0x92 */ + { 0x02, 0xF8, aImplUniToDBCSTab_SJIS_93 }, /* 0x93 */ + { 0x03, 0x81, aImplUniToDBCSTab_SJIS_94 }, /* 0x94 */ + { 0x77, 0xE5, aImplUniToDBCSTab_SJIS_95 }, /* 0x95 */ + { 0x1C, 0xFB, aImplUniToDBCSTab_SJIS_96 }, /* 0x96 */ + { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_97 }, /* 0x97 */ + { 0x01, 0xFE, aImplUniToDBCSTab_SJIS_98 }, /* 0x98 */ + { 0x03, 0xFF, aImplUniToDBCSTab_SJIS_99 }, /* 0x99 */ + { 0x01, 0xFB, aImplUniToDBCSTab_SJIS_9A }, /* 0x9A */ + { 0x06, 0xF5, aImplUniToDBCSTab_SJIS_9B }, /* 0x9B */ + { 0x00, 0xF6, aImplUniToDBCSTab_SJIS_9C }, /* 0x9C */ + { 0x03, 0xFD, aImplUniToDBCSTab_SJIS_9D }, /* 0x9D */ + { 0x19, 0xFD, aImplUniToDBCSTab_SJIS_9E }, /* 0x9E */ + { 0x07, 0xA0, aImplUniToDBCSTab_SJIS_9F }, /* 0x9F */ + { 1, 0, NULL }, /* 0xA0 */ + { 1, 0, NULL }, /* 0xA1 */ + { 1, 0, NULL }, /* 0xA2 */ + { 1, 0, NULL }, /* 0xA3 */ + { 1, 0, NULL }, /* 0xA4 */ + { 1, 0, NULL }, /* 0xA5 */ + { 1, 0, NULL }, /* 0xA6 */ + { 1, 0, NULL }, /* 0xA7 */ + { 1, 0, NULL }, /* 0xA8 */ + { 1, 0, NULL }, /* 0xA9 */ + { 1, 0, NULL }, /* 0xAA */ + { 1, 0, NULL }, /* 0xAB */ + { 1, 0, NULL }, /* 0xAC */ + { 1, 0, NULL }, /* 0xAD */ + { 1, 0, NULL }, /* 0xAE */ + { 1, 0, NULL }, /* 0xAF */ + { 1, 0, NULL }, /* 0xB0 */ + { 1, 0, NULL }, /* 0xB1 */ + { 1, 0, NULL }, /* 0xB2 */ + { 1, 0, NULL }, /* 0xB3 */ + { 1, 0, NULL }, /* 0xB4 */ + { 1, 0, NULL }, /* 0xB5 */ + { 1, 0, NULL }, /* 0xB6 */ + { 1, 0, NULL }, /* 0xB7 */ + { 1, 0, NULL }, /* 0xB8 */ + { 1, 0, NULL }, /* 0xB9 */ + { 1, 0, NULL }, /* 0xBA */ + { 1, 0, NULL }, /* 0xBB */ + { 1, 0, NULL }, /* 0xBC */ + { 1, 0, NULL }, /* 0xBD */ + { 1, 0, NULL }, /* 0xBE */ + { 1, 0, NULL }, /* 0xBF */ + { 1, 0, NULL }, /* 0xC0 */ + { 1, 0, NULL }, /* 0xC1 */ + { 1, 0, NULL }, /* 0xC2 */ + { 1, 0, NULL }, /* 0xC3 */ + { 1, 0, NULL }, /* 0xC4 */ + { 1, 0, NULL }, /* 0xC5 */ + { 1, 0, NULL }, /* 0xC6 */ + { 1, 0, NULL }, /* 0xC7 */ + { 1, 0, NULL }, /* 0xC8 */ + { 1, 0, NULL }, /* 0xC9 */ + { 1, 0, NULL }, /* 0xCA */ + { 1, 0, NULL }, /* 0xCB */ + { 1, 0, NULL }, /* 0xCC */ + { 1, 0, NULL }, /* 0xCD */ + { 1, 0, NULL }, /* 0xCE */ + { 1, 0, NULL }, /* 0xCF */ + { 1, 0, NULL }, /* 0xD0 */ + { 1, 0, NULL }, /* 0xD1 */ + { 1, 0, NULL }, /* 0xD2 */ + { 1, 0, NULL }, /* 0xD3 */ + { 1, 0, NULL }, /* 0xD4 */ + { 1, 0, NULL }, /* 0xD5 */ + { 1, 0, NULL }, /* 0xD6 */ + { 1, 0, NULL }, /* 0xD7 */ + { 1, 0, NULL }, /* 0xD8 */ + { 1, 0, NULL }, /* 0xD9 */ + { 1, 0, NULL }, /* 0xDA */ + { 1, 0, NULL }, /* 0xDB */ + { 1, 0, NULL }, /* 0xDC */ + { 1, 0, NULL }, /* 0xDD */ + { 1, 0, NULL }, /* 0xDE */ + { 1, 0, NULL }, /* 0xDF */ + { 1, 0, NULL }, /* 0xE0 */ + { 1, 0, NULL }, /* 0xE1 */ + { 1, 0, NULL }, /* 0xE2 */ + { 1, 0, NULL }, /* 0xE3 */ + { 1, 0, NULL }, /* 0xE4 */ + { 1, 0, NULL }, /* 0xE5 */ + { 1, 0, NULL }, /* 0xE6 */ + { 1, 0, NULL }, /* 0xE7 */ + { 1, 0, NULL }, /* 0xE8 */ + { 1, 0, NULL }, /* 0xE9 */ + { 1, 0, NULL }, /* 0xEA */ + { 1, 0, NULL }, /* 0xEB */ + { 1, 0, NULL }, /* 0xEC */ + { 1, 0, NULL }, /* 0xED */ + { 1, 0, NULL }, /* 0xEE */ + { 1, 0, NULL }, /* 0xEF */ + { 1, 0, NULL }, /* 0xF0 */ + { 1, 0, NULL }, /* 0xF1 */ + { 1, 0, NULL }, /* 0xF2 */ + { 1, 0, NULL }, /* 0xF3 */ + { 1, 0, NULL }, /* 0xF4 */ + { 1, 0, NULL }, /* 0xF5 */ + { 1, 0, NULL }, /* 0xF6 */ + { 1, 0, NULL }, /* 0xF7 */ + { 1, 0, NULL }, /* 0xF8 */ + { 0x29, 0xDC, aImplUniToDBCSTab_MS932_F9 }, /* 0xF9 */ + { 0x0E, 0x2D, aImplUniToDBCSTab_MS932_FA }, /* 0xFA */ + { 1, 0, NULL }, /* 0xFB */ + { 1, 0, NULL }, /* 0xFC */ + { 1, 0, NULL }, /* 0xFD */ + { 1, 0, NULL }, /* 0xFE */ + { 0x01, 0xE5, aImplUniToDBCSTab_SJIS_FF } /* 0xFF */ }; /* ----------------------------------------------------------------------- */ @@ -1193,569 +1175,548 @@ static ImplDBCSConvertData const aImplMS932DBCSCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData const aImplMS932TextConverterData = -{ - &aImplMS932DBCSCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplMS932TextConverter = -{ - &aImplMS932TextConverterData, - ImplDBCSToUnicode, - ImplUnicodeToDBCS, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplMS932TextEncodingData = -{ - &aImplMS932TextConverter, - RTL_TEXTENCODING_MS_932, - 1, 2, 2, - 128, - 932, - 1, - (const sal_Char*)"euc-jp", - (const sal_Char*)"shift_jis", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_MULTIBYTE | - RTL_TEXTENCODING_INFO_WIN | - RTL_TEXTENCODING_INFO_DOS_OS2, - SCRIPT_JAPANESE -}; +static ImplTextEncodingData const aImplMS932TextEncodingData + = { { &aImplMS932DBCSCvtData, + ImplDBCSToUnicode, + ImplUnicodeToDBCS, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_MS_932, + 1, + 2, + 2, + 128, + "euc-jp", + "shift_jis", + RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MULTIBYTE }; + /* WIN/DOS/OS2, SCRIPT_JAPANESE, pc code page 932, mac encoding 1 */ /* ======================================================================= */ static ImplDBCSToUniLeadTab const aAPPLEJAPANESEUniLeadTab[256] = { - { 0x0000, 0, 0, NULL }, /* 0x00 */ - { 0x0001, 0, 0, NULL }, /* 0x01 */ - { 0x0002, 0, 0, NULL }, /* 0x02 */ - { 0x0003, 0, 0, NULL }, /* 0x03 */ - { 0x0004, 0, 0, NULL }, /* 0x04 */ - { 0x0005, 0, 0, NULL }, /* 0x05 */ - { 0x0006, 0, 0, NULL }, /* 0x06 */ - { 0x0007, 0, 0, NULL }, /* 0x07 */ - { 0x0008, 0, 0, NULL }, /* 0x08 */ - { 0x0009, 0, 0, NULL }, /* 0x09 */ - { 0x000A, 0, 0, NULL }, /* 0x0A */ - { 0x000B, 0, 0, NULL }, /* 0x0B */ - { 0x000C, 0, 0, NULL }, /* 0x0C */ - { 0x000D, 0, 0, NULL }, /* 0x0D */ - { 0x000E, 0, 0, NULL }, /* 0x0E */ - { 0x000F, 0, 0, NULL }, /* 0x0F */ - { 0x0010, 0, 0, NULL }, /* 0x10 */ - { 0x0011, 0, 0, NULL }, /* 0x11 */ - { 0x0012, 0, 0, NULL }, /* 0x12 */ - { 0x0013, 0, 0, NULL }, /* 0x13 */ - { 0x0014, 0, 0, NULL }, /* 0x14 */ - { 0x0015, 0, 0, NULL }, /* 0x15 */ - { 0x0016, 0, 0, NULL }, /* 0x16 */ - { 0x0017, 0, 0, NULL }, /* 0x17 */ - { 0x0018, 0, 0, NULL }, /* 0x18 */ - { 0x0019, 0, 0, NULL }, /* 0x19 */ - { 0x001A, 0, 0, NULL }, /* 0x1A */ - { 0x001B, 0, 0, NULL }, /* 0x1B */ - { 0x001C, 0, 0, NULL }, /* 0x1C */ - { 0x001D, 0, 0, NULL }, /* 0x1D */ - { 0x001E, 0, 0, NULL }, /* 0x1E */ - { 0x001F, 0, 0, NULL }, /* 0x1F */ - { 0x0020, 0, 0, NULL }, /* 0x20 */ - { 0x0021, 0, 0, NULL }, /* 0x21 */ - { 0x0022, 0, 0, NULL }, /* 0x22 */ - { 0x0023, 0, 0, NULL }, /* 0x23 */ - { 0x0024, 0, 0, NULL }, /* 0x24 */ - { 0x0025, 0, 0, NULL }, /* 0x25 */ - { 0x0026, 0, 0, NULL }, /* 0x26 */ - { 0x0027, 0, 0, NULL }, /* 0x27 */ - { 0x0028, 0, 0, NULL }, /* 0x28 */ - { 0x0029, 0, 0, NULL }, /* 0x29 */ - { 0x002A, 0, 0, NULL }, /* 0x2A */ - { 0x002B, 0, 0, NULL }, /* 0x2B */ - { 0x002C, 0, 0, NULL }, /* 0x2C */ - { 0x002D, 0, 0, NULL }, /* 0x2D */ - { 0x002E, 0, 0, NULL }, /* 0x2E */ - { 0x002F, 0, 0, NULL }, /* 0x2F */ - { 0x0030, 0, 0, NULL }, /* 0x30 */ - { 0x0031, 0, 0, NULL }, /* 0x31 */ - { 0x0032, 0, 0, NULL }, /* 0x32 */ - { 0x0033, 0, 0, NULL }, /* 0x33 */ - { 0x0034, 0, 0, NULL }, /* 0x34 */ - { 0x0035, 0, 0, NULL }, /* 0x35 */ - { 0x0036, 0, 0, NULL }, /* 0x36 */ - { 0x0037, 0, 0, NULL }, /* 0x37 */ - { 0x0038, 0, 0, NULL }, /* 0x38 */ - { 0x0039, 0, 0, NULL }, /* 0x39 */ - { 0x003A, 0, 0, NULL }, /* 0x3A */ - { 0x003B, 0, 0, NULL }, /* 0x3B */ - { 0x003C, 0, 0, NULL }, /* 0x3C */ - { 0x003D, 0, 0, NULL }, /* 0x3D */ - { 0x003E, 0, 0, NULL }, /* 0x3E */ - { 0x003F, 0, 0, NULL }, /* 0x3F */ - { 0x0040, 0, 0, NULL }, /* 0x40 */ - { 0x0041, 0, 0, NULL }, /* 0x41 */ - { 0x0042, 0, 0, NULL }, /* 0x42 */ - { 0x0043, 0, 0, NULL }, /* 0x43 */ - { 0x0044, 0, 0, NULL }, /* 0x44 */ - { 0x0045, 0, 0, NULL }, /* 0x45 */ - { 0x0046, 0, 0, NULL }, /* 0x46 */ - { 0x0047, 0, 0, NULL }, /* 0x47 */ - { 0x0048, 0, 0, NULL }, /* 0x48 */ - { 0x0049, 0, 0, NULL }, /* 0x49 */ - { 0x004A, 0, 0, NULL }, /* 0x4A */ - { 0x004B, 0, 0, NULL }, /* 0x4B */ - { 0x004C, 0, 0, NULL }, /* 0x4C */ - { 0x004D, 0, 0, NULL }, /* 0x4D */ - { 0x004E, 0, 0, NULL }, /* 0x4E */ - { 0x004F, 0, 0, NULL }, /* 0x4F */ - { 0x0050, 0, 0, NULL }, /* 0x50 */ - { 0x0051, 0, 0, NULL }, /* 0x51 */ - { 0x0052, 0, 0, NULL }, /* 0x52 */ - { 0x0053, 0, 0, NULL }, /* 0x53 */ - { 0x0054, 0, 0, NULL }, /* 0x54 */ - { 0x0055, 0, 0, NULL }, /* 0x55 */ - { 0x0056, 0, 0, NULL }, /* 0x56 */ - { 0x0057, 0, 0, NULL }, /* 0x57 */ - { 0x0058, 0, 0, NULL }, /* 0x58 */ - { 0x0059, 0, 0, NULL }, /* 0x59 */ - { 0x005A, 0, 0, NULL }, /* 0x5A */ - { 0x005B, 0, 0, NULL }, /* 0x5B */ - { 0x005C, 0, 0, NULL }, /* 0x5C */ /* is A5 (YEN SIGN), but for compatibiliy with ascii, we use 0x5C like MS CP392 */ - { 0x005D, 0, 0, NULL }, /* 0x5D */ - { 0x005E, 0, 0, NULL }, /* 0x5E */ - { 0x005F, 0, 0, NULL }, /* 0x5F */ - { 0x0060, 0, 0, NULL }, /* 0x60 */ - { 0x0061, 0, 0, NULL }, /* 0x61 */ - { 0x0062, 0, 0, NULL }, /* 0x62 */ - { 0x0063, 0, 0, NULL }, /* 0x63 */ - { 0x0064, 0, 0, NULL }, /* 0x64 */ - { 0x0065, 0, 0, NULL }, /* 0x65 */ - { 0x0066, 0, 0, NULL }, /* 0x66 */ - { 0x0067, 0, 0, NULL }, /* 0x67 */ - { 0x0068, 0, 0, NULL }, /* 0x68 */ - { 0x0069, 0, 0, NULL }, /* 0x69 */ - { 0x006A, 0, 0, NULL }, /* 0x6A */ - { 0x006B, 0, 0, NULL }, /* 0x6B */ - { 0x006C, 0, 0, NULL }, /* 0x6C */ - { 0x006D, 0, 0, NULL }, /* 0x6D */ - { 0x006E, 0, 0, NULL }, /* 0x6E */ - { 0x006F, 0, 0, NULL }, /* 0x6F */ - { 0x0070, 0, 0, NULL }, /* 0x70 */ - { 0x0071, 0, 0, NULL }, /* 0x71 */ - { 0x0072, 0, 0, NULL }, /* 0x72 */ - { 0x0073, 0, 0, NULL }, /* 0x73 */ - { 0x0074, 0, 0, NULL }, /* 0x74 */ - { 0x0075, 0, 0, NULL }, /* 0x75 */ - { 0x0076, 0, 0, NULL }, /* 0x76 */ - { 0x0077, 0, 0, NULL }, /* 0x77 */ - { 0x0078, 0, 0, NULL }, /* 0x78 */ - { 0x0079, 0, 0, NULL }, /* 0x79 */ - { 0x007A, 0, 0, NULL }, /* 0x7A */ - { 0x007B, 0, 0, NULL }, /* 0x7B */ - { 0x007C, 0, 0, NULL }, /* 0x7C */ - { 0x007D, 0, 0, NULL }, /* 0x7D */ - { 0x007E, 0, 0, NULL }, /* 0x7E */ /* in SJIS this is 0x0203E (SPACING OVERSCORE), but for compatibiliy with ascii, we use 0x7E (TILDE) like MS CP392 */ - { 0x007F, 0, 0, NULL }, /* 0x7F */ - { 0x005C, 0, 0, NULL }, /* 0x80 */ /* APPLE additons over SJIS */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_MS932_81 }, /* 0x81 */ - { 0, 0x4F, 0xF1, aImplDBCSToUniTab_SJIS_82 }, /* 0x82 */ - { 0, 0x40, 0xD6, aImplDBCSToUniTab_SJIS_83 }, /* 0x83 */ - { 0, 0x40, 0xBF, aImplDBCSToUniTab_SJIS_84 }, /* 0x84 */ - { 0, 0x40, 0xF4, aImplDBCSToUniTab_APPLEJAPANESE_85 }, /* 0x85 */ - { 0, 0x40, 0xD2, aImplDBCSToUniTab_APPLEJAPANESE_86 }, /* 0x86 */ - { 0, 0x40, 0xFA, aImplDBCSToUniTab_APPLEJAPANESE_87 }, /* 0x87 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_APPLEJAPANESE_88 }, /* 0x88 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_89 }, /* 0x89 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8A }, /* 0x8A */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8B }, /* 0x8B */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8C }, /* 0x8C */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8D }, /* 0x8D */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8E }, /* 0x8E */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8F }, /* 0x8F */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_90 }, /* 0x90 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_91 }, /* 0x91 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_92 }, /* 0x92 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_93 }, /* 0x93 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_94 }, /* 0x94 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_95 }, /* 0x95 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_96 }, /* 0x96 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_97 }, /* 0x97 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_98 }, /* 0x98 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_99 }, /* 0x99 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9A }, /* 0x9A */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9B }, /* 0x9B */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9C }, /* 0x9C */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9D }, /* 0x9D */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9E }, /* 0x9E */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9F }, /* 0x9F */ - { 0x00A0, 0, 0, NULL }, /* 0xA0 */ /* APPLE additons over SJIS */ - { 0xFF61, 0, 0, NULL }, /* 0xA1 */ - { 0xFF62, 0, 0, NULL }, /* 0xA2 */ - { 0xFF63, 0, 0, NULL }, /* 0xA3 */ - { 0xFF64, 0, 0, NULL }, /* 0xA4 */ - { 0xFF65, 0, 0, NULL }, /* 0xA5 */ - { 0xFF66, 0, 0, NULL }, /* 0xA6 */ - { 0xFF67, 0, 0, NULL }, /* 0xA7 */ - { 0xFF68, 0, 0, NULL }, /* 0xA8 */ - { 0xFF69, 0, 0, NULL }, /* 0xA9 */ - { 0xFF6A, 0, 0, NULL }, /* 0xAA */ - { 0xFF6B, 0, 0, NULL }, /* 0xAB */ - { 0xFF6C, 0, 0, NULL }, /* 0xAC */ - { 0xFF6D, 0, 0, NULL }, /* 0xAD */ - { 0xFF6E, 0, 0, NULL }, /* 0xAE */ - { 0xFF6F, 0, 0, NULL }, /* 0xAF */ - { 0xFF70, 0, 0, NULL }, /* 0xB0 */ - { 0xFF71, 0, 0, NULL }, /* 0xB1 */ - { 0xFF72, 0, 0, NULL }, /* 0xB2 */ - { 0xFF73, 0, 0, NULL }, /* 0xB3 */ - { 0xFF74, 0, 0, NULL }, /* 0xB4 */ - { 0xFF75, 0, 0, NULL }, /* 0xB5 */ - { 0xFF76, 0, 0, NULL }, /* 0xB6 */ - { 0xFF77, 0, 0, NULL }, /* 0xB7 */ - { 0xFF78, 0, 0, NULL }, /* 0xB8 */ - { 0xFF79, 0, 0, NULL }, /* 0xB9 */ - { 0xFF7A, 0, 0, NULL }, /* 0xBA */ - { 0xFF7B, 0, 0, NULL }, /* 0xBB */ - { 0xFF7C, 0, 0, NULL }, /* 0xBC */ - { 0xFF7D, 0, 0, NULL }, /* 0xBD */ - { 0xFF7E, 0, 0, NULL }, /* 0xBE */ - { 0xFF7F, 0, 0, NULL }, /* 0xBF */ - { 0xFF80, 0, 0, NULL }, /* 0xC0 */ - { 0xFF81, 0, 0, NULL }, /* 0xC1 */ - { 0xFF82, 0, 0, NULL }, /* 0xC2 */ - { 0xFF83, 0, 0, NULL }, /* 0xC3 */ - { 0xFF84, 0, 0, NULL }, /* 0xC4 */ - { 0xFF85, 0, 0, NULL }, /* 0xC5 */ - { 0xFF86, 0, 0, NULL }, /* 0xC6 */ - { 0xFF87, 0, 0, NULL }, /* 0xC7 */ - { 0xFF88, 0, 0, NULL }, /* 0xC8 */ - { 0xFF89, 0, 0, NULL }, /* 0xC9 */ - { 0xFF8A, 0, 0, NULL }, /* 0xCA */ - { 0xFF8B, 0, 0, NULL }, /* 0xCB */ - { 0xFF8C, 0, 0, NULL }, /* 0xCC */ - { 0xFF8D, 0, 0, NULL }, /* 0xCD */ - { 0xFF8E, 0, 0, NULL }, /* 0xCE */ - { 0xFF8F, 0, 0, NULL }, /* 0xCF */ - { 0xFF90, 0, 0, NULL }, /* 0xD0 */ - { 0xFF91, 0, 0, NULL }, /* 0xD1 */ - { 0xFF92, 0, 0, NULL }, /* 0xD2 */ - { 0xFF93, 0, 0, NULL }, /* 0xD3 */ - { 0xFF94, 0, 0, NULL }, /* 0xD4 */ - { 0xFF95, 0, 0, NULL }, /* 0xD5 */ - { 0xFF96, 0, 0, NULL }, /* 0xD6 */ - { 0xFF97, 0, 0, NULL }, /* 0xD7 */ - { 0xFF98, 0, 0, NULL }, /* 0xD8 */ - { 0xFF99, 0, 0, NULL }, /* 0xD9 */ - { 0xFF9A, 0, 0, NULL }, /* 0xDA */ - { 0xFF9B, 0, 0, NULL }, /* 0xDB */ - { 0xFF9C, 0, 0, NULL }, /* 0xDC */ - { 0xFF9D, 0, 0, NULL }, /* 0xDD */ - { 0xFF9E, 0, 0, NULL }, /* 0xDE */ - { 0xFF9F, 0, 0, NULL }, /* 0xDF */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E0 }, /* 0xE0 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E1 }, /* 0xE1 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E2 }, /* 0xE2 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E3 }, /* 0xE3 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E4 }, /* 0xE4 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E5 }, /* 0xE5 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E6 }, /* 0xE6 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E7 }, /* 0xE7 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E8 }, /* 0xE8 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E9 }, /* 0xE9 */ - { 0, 0x40, 0xA4, aImplDBCSToUniTab_SJIS_EA }, /* 0xEA */ - { 0, 0x51, 0x7A, aImplDBCSToUniTab_APPLEJAPANESE_EB }, /* 0xEB */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xEC */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xED */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xEE */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xEF */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF0 */ /* EUDC Range */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF1 */ /* EUDC Range */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF2 */ /* EUDC Range */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF3 */ /* EUDC Range */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF4 */ /* EUDC Range */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF5 */ /* EUDC Range */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF6 */ /* EUDC Range */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF7 */ /* EUDC Range */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF8 */ /* EUDC Range */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF9 */ /* EUDC Range */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_MS932_FA }, /* 0xFA */ /* We use the MS table for better MS compatibility */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_MS932_FB }, /* 0xFB */ /* We use the MS table for better MS compatibility */ - { 0, 0x40, 0x4B, aImplDBCSToUniTab_MS932_FC }, /* 0xFC */ /* We use the MS table for better MS compatibility */ - { 0x00A9, 0, 0, NULL }, /* 0xFD */ /* APPLE additons over SJIS */ - { 0x2122, 0, 0, NULL }, /* 0xFE */ /* APPLE additons over SJIS */ - { 0x2026, 0, 0, NULL } /* 0xFF */ /* APPLE additons over SJIS */ + { 0x0000, 0, 0, NULL }, /* 0x00 */ + { 0x0001, 0, 0, NULL }, /* 0x01 */ + { 0x0002, 0, 0, NULL }, /* 0x02 */ + { 0x0003, 0, 0, NULL }, /* 0x03 */ + { 0x0004, 0, 0, NULL }, /* 0x04 */ + { 0x0005, 0, 0, NULL }, /* 0x05 */ + { 0x0006, 0, 0, NULL }, /* 0x06 */ + { 0x0007, 0, 0, NULL }, /* 0x07 */ + { 0x0008, 0, 0, NULL }, /* 0x08 */ + { 0x0009, 0, 0, NULL }, /* 0x09 */ + { 0x000A, 0, 0, NULL }, /* 0x0A */ + { 0x000B, 0, 0, NULL }, /* 0x0B */ + { 0x000C, 0, 0, NULL }, /* 0x0C */ + { 0x000D, 0, 0, NULL }, /* 0x0D */ + { 0x000E, 0, 0, NULL }, /* 0x0E */ + { 0x000F, 0, 0, NULL }, /* 0x0F */ + { 0x0010, 0, 0, NULL }, /* 0x10 */ + { 0x0011, 0, 0, NULL }, /* 0x11 */ + { 0x0012, 0, 0, NULL }, /* 0x12 */ + { 0x0013, 0, 0, NULL }, /* 0x13 */ + { 0x0014, 0, 0, NULL }, /* 0x14 */ + { 0x0015, 0, 0, NULL }, /* 0x15 */ + { 0x0016, 0, 0, NULL }, /* 0x16 */ + { 0x0017, 0, 0, NULL }, /* 0x17 */ + { 0x0018, 0, 0, NULL }, /* 0x18 */ + { 0x0019, 0, 0, NULL }, /* 0x19 */ + { 0x001A, 0, 0, NULL }, /* 0x1A */ + { 0x001B, 0, 0, NULL }, /* 0x1B */ + { 0x001C, 0, 0, NULL }, /* 0x1C */ + { 0x001D, 0, 0, NULL }, /* 0x1D */ + { 0x001E, 0, 0, NULL }, /* 0x1E */ + { 0x001F, 0, 0, NULL }, /* 0x1F */ + { 0x0020, 0, 0, NULL }, /* 0x20 */ + { 0x0021, 0, 0, NULL }, /* 0x21 */ + { 0x0022, 0, 0, NULL }, /* 0x22 */ + { 0x0023, 0, 0, NULL }, /* 0x23 */ + { 0x0024, 0, 0, NULL }, /* 0x24 */ + { 0x0025, 0, 0, NULL }, /* 0x25 */ + { 0x0026, 0, 0, NULL }, /* 0x26 */ + { 0x0027, 0, 0, NULL }, /* 0x27 */ + { 0x0028, 0, 0, NULL }, /* 0x28 */ + { 0x0029, 0, 0, NULL }, /* 0x29 */ + { 0x002A, 0, 0, NULL }, /* 0x2A */ + { 0x002B, 0, 0, NULL }, /* 0x2B */ + { 0x002C, 0, 0, NULL }, /* 0x2C */ + { 0x002D, 0, 0, NULL }, /* 0x2D */ + { 0x002E, 0, 0, NULL }, /* 0x2E */ + { 0x002F, 0, 0, NULL }, /* 0x2F */ + { 0x0030, 0, 0, NULL }, /* 0x30 */ + { 0x0031, 0, 0, NULL }, /* 0x31 */ + { 0x0032, 0, 0, NULL }, /* 0x32 */ + { 0x0033, 0, 0, NULL }, /* 0x33 */ + { 0x0034, 0, 0, NULL }, /* 0x34 */ + { 0x0035, 0, 0, NULL }, /* 0x35 */ + { 0x0036, 0, 0, NULL }, /* 0x36 */ + { 0x0037, 0, 0, NULL }, /* 0x37 */ + { 0x0038, 0, 0, NULL }, /* 0x38 */ + { 0x0039, 0, 0, NULL }, /* 0x39 */ + { 0x003A, 0, 0, NULL }, /* 0x3A */ + { 0x003B, 0, 0, NULL }, /* 0x3B */ + { 0x003C, 0, 0, NULL }, /* 0x3C */ + { 0x003D, 0, 0, NULL }, /* 0x3D */ + { 0x003E, 0, 0, NULL }, /* 0x3E */ + { 0x003F, 0, 0, NULL }, /* 0x3F */ + { 0x0040, 0, 0, NULL }, /* 0x40 */ + { 0x0041, 0, 0, NULL }, /* 0x41 */ + { 0x0042, 0, 0, NULL }, /* 0x42 */ + { 0x0043, 0, 0, NULL }, /* 0x43 */ + { 0x0044, 0, 0, NULL }, /* 0x44 */ + { 0x0045, 0, 0, NULL }, /* 0x45 */ + { 0x0046, 0, 0, NULL }, /* 0x46 */ + { 0x0047, 0, 0, NULL }, /* 0x47 */ + { 0x0048, 0, 0, NULL }, /* 0x48 */ + { 0x0049, 0, 0, NULL }, /* 0x49 */ + { 0x004A, 0, 0, NULL }, /* 0x4A */ + { 0x004B, 0, 0, NULL }, /* 0x4B */ + { 0x004C, 0, 0, NULL }, /* 0x4C */ + { 0x004D, 0, 0, NULL }, /* 0x4D */ + { 0x004E, 0, 0, NULL }, /* 0x4E */ + { 0x004F, 0, 0, NULL }, /* 0x4F */ + { 0x0050, 0, 0, NULL }, /* 0x50 */ + { 0x0051, 0, 0, NULL }, /* 0x51 */ + { 0x0052, 0, 0, NULL }, /* 0x52 */ + { 0x0053, 0, 0, NULL }, /* 0x53 */ + { 0x0054, 0, 0, NULL }, /* 0x54 */ + { 0x0055, 0, 0, NULL }, /* 0x55 */ + { 0x0056, 0, 0, NULL }, /* 0x56 */ + { 0x0057, 0, 0, NULL }, /* 0x57 */ + { 0x0058, 0, 0, NULL }, /* 0x58 */ + { 0x0059, 0, 0, NULL }, /* 0x59 */ + { 0x005A, 0, 0, NULL }, /* 0x5A */ + { 0x005B, 0, 0, NULL }, /* 0x5B */ + { 0x005C, 0, 0, NULL }, /* 0x5C */ /* is A5 (YEN SIGN), but for compatibiliy with ascii, we use 0x5C like MS CP392 */ + { 0x005D, 0, 0, NULL }, /* 0x5D */ + { 0x005E, 0, 0, NULL }, /* 0x5E */ + { 0x005F, 0, 0, NULL }, /* 0x5F */ + { 0x0060, 0, 0, NULL }, /* 0x60 */ + { 0x0061, 0, 0, NULL }, /* 0x61 */ + { 0x0062, 0, 0, NULL }, /* 0x62 */ + { 0x0063, 0, 0, NULL }, /* 0x63 */ + { 0x0064, 0, 0, NULL }, /* 0x64 */ + { 0x0065, 0, 0, NULL }, /* 0x65 */ + { 0x0066, 0, 0, NULL }, /* 0x66 */ + { 0x0067, 0, 0, NULL }, /* 0x67 */ + { 0x0068, 0, 0, NULL }, /* 0x68 */ + { 0x0069, 0, 0, NULL }, /* 0x69 */ + { 0x006A, 0, 0, NULL }, /* 0x6A */ + { 0x006B, 0, 0, NULL }, /* 0x6B */ + { 0x006C, 0, 0, NULL }, /* 0x6C */ + { 0x006D, 0, 0, NULL }, /* 0x6D */ + { 0x006E, 0, 0, NULL }, /* 0x6E */ + { 0x006F, 0, 0, NULL }, /* 0x6F */ + { 0x0070, 0, 0, NULL }, /* 0x70 */ + { 0x0071, 0, 0, NULL }, /* 0x71 */ + { 0x0072, 0, 0, NULL }, /* 0x72 */ + { 0x0073, 0, 0, NULL }, /* 0x73 */ + { 0x0074, 0, 0, NULL }, /* 0x74 */ + { 0x0075, 0, 0, NULL }, /* 0x75 */ + { 0x0076, 0, 0, NULL }, /* 0x76 */ + { 0x0077, 0, 0, NULL }, /* 0x77 */ + { 0x0078, 0, 0, NULL }, /* 0x78 */ + { 0x0079, 0, 0, NULL }, /* 0x79 */ + { 0x007A, 0, 0, NULL }, /* 0x7A */ + { 0x007B, 0, 0, NULL }, /* 0x7B */ + { 0x007C, 0, 0, NULL }, /* 0x7C */ + { 0x007D, 0, 0, NULL }, /* 0x7D */ + { 0x007E, 0, 0, NULL }, /* 0x7E */ /* in SJIS this is 0x0203E (SPACING OVERSCORE), but for compatibiliy with ascii, we use 0x7E (TILDE) like MS CP392 */ + { 0x007F, 0, 0, NULL }, /* 0x7F */ + { 0x005C, 0, 0, NULL }, /* 0x80 */ /* APPLE additons over SJIS */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_MS932_81 }, /* 0x81 */ + { 0, 0x4F, 0xF1, aImplDBCSToUniTab_SJIS_82 }, /* 0x82 */ + { 0, 0x40, 0xD6, aImplDBCSToUniTab_SJIS_83 }, /* 0x83 */ + { 0, 0x40, 0xBF, aImplDBCSToUniTab_SJIS_84 }, /* 0x84 */ + { 0, 0x40, 0xF4, aImplDBCSToUniTab_APPLEJAPANESE_85 }, /* 0x85 */ + { 0, 0x40, 0xD2, aImplDBCSToUniTab_APPLEJAPANESE_86 }, /* 0x86 */ + { 0, 0x40, 0xFA, aImplDBCSToUniTab_APPLEJAPANESE_87 }, /* 0x87 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_APPLEJAPANESE_88 }, /* 0x88 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_89 }, /* 0x89 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8A }, /* 0x8A */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8B }, /* 0x8B */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8C }, /* 0x8C */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8D }, /* 0x8D */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8E }, /* 0x8E */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8F }, /* 0x8F */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_90 }, /* 0x90 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_91 }, /* 0x91 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_92 }, /* 0x92 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_93 }, /* 0x93 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_94 }, /* 0x94 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_95 }, /* 0x95 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_96 }, /* 0x96 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_97 }, /* 0x97 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_98 }, /* 0x98 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_99 }, /* 0x99 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9A }, /* 0x9A */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9B }, /* 0x9B */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9C }, /* 0x9C */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9D }, /* 0x9D */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9E }, /* 0x9E */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9F }, /* 0x9F */ + { 0x00A0, 0, 0, NULL }, /* 0xA0 */ /* APPLE additons over SJIS */ + { 0xFF61, 0, 0, NULL }, /* 0xA1 */ + { 0xFF62, 0, 0, NULL }, /* 0xA2 */ + { 0xFF63, 0, 0, NULL }, /* 0xA3 */ + { 0xFF64, 0, 0, NULL }, /* 0xA4 */ + { 0xFF65, 0, 0, NULL }, /* 0xA5 */ + { 0xFF66, 0, 0, NULL }, /* 0xA6 */ + { 0xFF67, 0, 0, NULL }, /* 0xA7 */ + { 0xFF68, 0, 0, NULL }, /* 0xA8 */ + { 0xFF69, 0, 0, NULL }, /* 0xA9 */ + { 0xFF6A, 0, 0, NULL }, /* 0xAA */ + { 0xFF6B, 0, 0, NULL }, /* 0xAB */ + { 0xFF6C, 0, 0, NULL }, /* 0xAC */ + { 0xFF6D, 0, 0, NULL }, /* 0xAD */ + { 0xFF6E, 0, 0, NULL }, /* 0xAE */ + { 0xFF6F, 0, 0, NULL }, /* 0xAF */ + { 0xFF70, 0, 0, NULL }, /* 0xB0 */ + { 0xFF71, 0, 0, NULL }, /* 0xB1 */ + { 0xFF72, 0, 0, NULL }, /* 0xB2 */ + { 0xFF73, 0, 0, NULL }, /* 0xB3 */ + { 0xFF74, 0, 0, NULL }, /* 0xB4 */ + { 0xFF75, 0, 0, NULL }, /* 0xB5 */ + { 0xFF76, 0, 0, NULL }, /* 0xB6 */ + { 0xFF77, 0, 0, NULL }, /* 0xB7 */ + { 0xFF78, 0, 0, NULL }, /* 0xB8 */ + { 0xFF79, 0, 0, NULL }, /* 0xB9 */ + { 0xFF7A, 0, 0, NULL }, /* 0xBA */ + { 0xFF7B, 0, 0, NULL }, /* 0xBB */ + { 0xFF7C, 0, 0, NULL }, /* 0xBC */ + { 0xFF7D, 0, 0, NULL }, /* 0xBD */ + { 0xFF7E, 0, 0, NULL }, /* 0xBE */ + { 0xFF7F, 0, 0, NULL }, /* 0xBF */ + { 0xFF80, 0, 0, NULL }, /* 0xC0 */ + { 0xFF81, 0, 0, NULL }, /* 0xC1 */ + { 0xFF82, 0, 0, NULL }, /* 0xC2 */ + { 0xFF83, 0, 0, NULL }, /* 0xC3 */ + { 0xFF84, 0, 0, NULL }, /* 0xC4 */ + { 0xFF85, 0, 0, NULL }, /* 0xC5 */ + { 0xFF86, 0, 0, NULL }, /* 0xC6 */ + { 0xFF87, 0, 0, NULL }, /* 0xC7 */ + { 0xFF88, 0, 0, NULL }, /* 0xC8 */ + { 0xFF89, 0, 0, NULL }, /* 0xC9 */ + { 0xFF8A, 0, 0, NULL }, /* 0xCA */ + { 0xFF8B, 0, 0, NULL }, /* 0xCB */ + { 0xFF8C, 0, 0, NULL }, /* 0xCC */ + { 0xFF8D, 0, 0, NULL }, /* 0xCD */ + { 0xFF8E, 0, 0, NULL }, /* 0xCE */ + { 0xFF8F, 0, 0, NULL }, /* 0xCF */ + { 0xFF90, 0, 0, NULL }, /* 0xD0 */ + { 0xFF91, 0, 0, NULL }, /* 0xD1 */ + { 0xFF92, 0, 0, NULL }, /* 0xD2 */ + { 0xFF93, 0, 0, NULL }, /* 0xD3 */ + { 0xFF94, 0, 0, NULL }, /* 0xD4 */ + { 0xFF95, 0, 0, NULL }, /* 0xD5 */ + { 0xFF96, 0, 0, NULL }, /* 0xD6 */ + { 0xFF97, 0, 0, NULL }, /* 0xD7 */ + { 0xFF98, 0, 0, NULL }, /* 0xD8 */ + { 0xFF99, 0, 0, NULL }, /* 0xD9 */ + { 0xFF9A, 0, 0, NULL }, /* 0xDA */ + { 0xFF9B, 0, 0, NULL }, /* 0xDB */ + { 0xFF9C, 0, 0, NULL }, /* 0xDC */ + { 0xFF9D, 0, 0, NULL }, /* 0xDD */ + { 0xFF9E, 0, 0, NULL }, /* 0xDE */ + { 0xFF9F, 0, 0, NULL }, /* 0xDF */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E0 }, /* 0xE0 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E1 }, /* 0xE1 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E2 }, /* 0xE2 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E3 }, /* 0xE3 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E4 }, /* 0xE4 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E5 }, /* 0xE5 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E6 }, /* 0xE6 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E7 }, /* 0xE7 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E8 }, /* 0xE8 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E9 }, /* 0xE9 */ + { 0, 0x40, 0xA4, aImplDBCSToUniTab_SJIS_EA }, /* 0xEA */ + { 0, 0x51, 0x7A, aImplDBCSToUniTab_APPLEJAPANESE_EB }, /* 0xEB */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xEC */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xED */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xEE */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xEF */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF0 */ /* EUDC Range */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF1 */ /* EUDC Range */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF2 */ /* EUDC Range */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF3 */ /* EUDC Range */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF4 */ /* EUDC Range */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF5 */ /* EUDC Range */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF6 */ /* EUDC Range */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF7 */ /* EUDC Range */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF8 */ /* EUDC Range */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF9 */ /* EUDC Range */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_MS932_FA }, /* 0xFA */ /* We use the MS table for better MS compatibility */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_MS932_FB }, /* 0xFB */ /* We use the MS table for better MS compatibility */ + { 0, 0x40, 0x4B, aImplDBCSToUniTab_MS932_FC }, /* 0xFC */ /* We use the MS table for better MS compatibility */ + { 0x00A9, 0, 0, NULL }, /* 0xFD */ /* APPLE additons over SJIS */ + { 0x2122, 0, 0, NULL }, /* 0xFE */ /* APPLE additons over SJIS */ + { 0x2026, 0, 0, NULL } /* 0xFF */ /* APPLE additons over SJIS */ }; /* ----------------------------------------------------------------------- */ static ImplUniToDBCSHighTab const aAPPLEJAPANESEDBCSHighTab[256] = { - { 0x00, 0xF7, aImplUniToDBCSTab_SJIS_00 }, /* 0x00 */ - { 1, 0, NULL }, /* 0x01 */ - { 1, 0, NULL }, /* 0x02 */ - { 0x91, 0xC9, aImplUniToDBCSTab_SJIS_03 }, /* 0x03 */ - { 0x01, 0x51, aImplUniToDBCSTab_SJIS_04 }, /* 0x04 */ - { 1, 0, NULL }, /* 0x05 */ - { 1, 0, NULL }, /* 0x06 */ - { 1, 0, NULL }, /* 0x07 */ - { 1, 0, NULL }, /* 0x08 */ - { 1, 0, NULL }, /* 0x09 */ - { 1, 0, NULL }, /* 0x0A */ - { 1, 0, NULL }, /* 0x0B */ - { 1, 0, NULL }, /* 0x0C */ - { 1, 0, NULL }, /* 0x0D */ - { 1, 0, NULL }, /* 0x0E */ - { 1, 0, NULL }, /* 0x0F */ - { 1, 0, NULL }, /* 0x10 */ - { 1, 0, NULL }, /* 0x11 */ - { 1, 0, NULL }, /* 0x12 */ - { 1, 0, NULL }, /* 0x13 */ - { 1, 0, NULL }, /* 0x14 */ - { 1, 0, NULL }, /* 0x15 */ - { 1, 0, NULL }, /* 0x16 */ - { 1, 0, NULL }, /* 0x17 */ - { 1, 0, NULL }, /* 0x18 */ - { 1, 0, NULL }, /* 0x19 */ - { 1, 0, NULL }, /* 0x1A */ - { 1, 0, NULL }, /* 0x1B */ - { 1, 0, NULL }, /* 0x1C */ - { 1, 0, NULL }, /* 0x1D */ - { 1, 0, NULL }, /* 0x1E */ - { 1, 0, NULL }, /* 0x1F */ - { 0x10, 0x3E, aImplUniToDBCSTab_SJIS_20 }, /* 0x20 */ - { 0x03, 0xE9, aImplUniToDBCSTab_APPLEJAPANESE_21 }, /* 0x21 */ - { 0x00, 0xEF, aImplUniToDBCSTab_APPLEJAPANESE_22 }, /* 0x22 */ - { 0x12, 0x12, aImplUniToDBCSTab_SJIS_23 }, /* 0x23 */ - { 0x60, 0xB5, aImplUniToDBCSTab_APPLEJAPANESE_24 }, /* 0x24 */ - { 0x00, 0xEF, aImplUniToDBCSTab_SJIS_25 }, /* 0x25 */ - { 0x05, 0x6F, aImplUniToDBCSTab_APPLEJAPANESE_26 }, /* 0x26 */ - { 0x76, 0x7E, aImplUniToDBCSTab_APPLEJAPANESE_27 }, /* 0x27 */ - { 1, 0, NULL }, /* 0x28 */ - { 1, 0, NULL }, /* 0x29 */ - { 1, 0, NULL }, /* 0x2A */ - { 1, 0, NULL }, /* 0x2B */ - { 1, 0, NULL }, /* 0x2C */ - { 1, 0, NULL }, /* 0x2D */ - { 1, 0, NULL }, /* 0x2E */ - { 1, 0, NULL }, /* 0x2F */ - { 0x00, 0xFE, aImplUniToDBCSTab_APPLEJAPANESE_30 }, /* 0x30 */ - { 1, 0, NULL }, /* 0x31 */ - { 0x2A, 0xA9, aImplUniToDBCSTab_APPLEJAPANESE_32 }, /* 0x32 */ - { 0x00, 0xD4, aImplUniToDBCSTab_APPLEJAPANESE_33 }, /* 0x33 */ - { 1, 0, NULL }, /* 0x34 */ - { 1, 0, NULL }, /* 0x35 */ - { 1, 0, NULL }, /* 0x36 */ - { 1, 0, NULL }, /* 0x37 */ - { 1, 0, NULL }, /* 0x38 */ - { 1, 0, NULL }, /* 0x39 */ - { 1, 0, NULL }, /* 0x3A */ - { 1, 0, NULL }, /* 0x3B */ - { 1, 0, NULL }, /* 0x3C */ - { 1, 0, NULL }, /* 0x3D */ - { 1, 0, NULL }, /* 0x3E */ - { 1, 0, NULL }, /* 0x3F */ - { 1, 0, NULL }, /* 0x40 */ - { 1, 0, NULL }, /* 0x41 */ - { 1, 0, NULL }, /* 0x42 */ - { 1, 0, NULL }, /* 0x43 */ - { 1, 0, NULL }, /* 0x44 */ - { 1, 0, NULL }, /* 0x45 */ - { 1, 0, NULL }, /* 0x46 */ - { 1, 0, NULL }, /* 0x47 */ - { 1, 0, NULL }, /* 0x48 */ - { 1, 0, NULL }, /* 0x49 */ - { 1, 0, NULL }, /* 0x4A */ - { 1, 0, NULL }, /* 0x4B */ - { 1, 0, NULL }, /* 0x4C */ - { 1, 0, NULL }, /* 0x4D */ - { 0x00, 0xFC, aImplUniToDBCSTab_SJIS_4E }, /* 0x4E */ - { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_4F }, /* 0x4F */ - { 0x05, 0xFB, aImplUniToDBCSTab_SJIS_50 }, /* 0x50 */ - { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_51 }, /* 0x51 */ - { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_52 }, /* 0x52 */ - { 0x00, 0xFA, aImplUniToDBCSTab_SJIS_53 }, /* 0x53 */ - { 0x01, 0xFF, aImplUniToDBCSTab_SJIS_54 }, /* 0x54 */ - { 0x04, 0xFE, aImplUniToDBCSTab_SJIS_55 }, /* 0x55 */ - { 0x06, 0xFF, aImplUniToDBCSTab_SJIS_56 }, /* 0x56 */ - { 0x00, 0xFC, aImplUniToDBCSTab_SJIS_57 }, /* 0x57 */ - { 0x00, 0xFD, aImplUniToDBCSTab_SJIS_58 }, /* 0x58 */ - { 0x02, 0xFF, aImplUniToDBCSTab_SJIS_59 }, /* 0x59 */ - { 0x01, 0xFB, aImplUniToDBCSTab_SJIS_5A }, /* 0x5A */ - { 0x09, 0xFF, aImplUniToDBCSTab_SJIS_5B }, /* 0x5B */ - { 0x01, 0xFD, aImplUniToDBCSTab_SJIS_5C }, /* 0x5C */ - { 0x07, 0xFE, aImplUniToDBCSTab_SJIS_5D }, /* 0x5D */ - { 0x02, 0xFF, aImplUniToDBCSTab_SJIS_5E }, /* 0x5E */ - { 0x01, 0xFF, aImplUniToDBCSTab_SJIS_5F }, /* 0x5F */ - { 0x0E, 0xFB, aImplUniToDBCSTab_SJIS_60 }, /* 0x60 */ - { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_61 }, /* 0x61 */ - { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_62 }, /* 0x62 */ - { 0x01, 0xFA, aImplUniToDBCSTab_SJIS_63 }, /* 0x63 */ - { 0x06, 0xFE, aImplUniToDBCSTab_SJIS_64 }, /* 0x64 */ - { 0x00, 0xFB, aImplUniToDBCSTab_SJIS_65 }, /* 0x65 */ - { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_66 }, /* 0x66 */ - { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_67 }, /* 0x67 */ - { 0x01, 0xFA, aImplUniToDBCSTab_SJIS_68 }, /* 0x68 */ - { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_69 }, /* 0x69 */ - { 0x02, 0xFB, aImplUniToDBCSTab_SJIS_6A }, /* 0x6A */ - { 0x04, 0xF3, aImplUniToDBCSTab_SJIS_6B }, /* 0x6B */ - { 0x08, 0xF3, aImplUniToDBCSTab_SJIS_6C }, /* 0x6C */ - { 0x04, 0xFC, aImplUniToDBCSTab_SJIS_6D }, /* 0x6D */ - { 0x05, 0xFF, aImplUniToDBCSTab_SJIS_6E }, /* 0x6E */ - { 0x01, 0xFE, aImplUniToDBCSTab_SJIS_6F }, /* 0x6F */ - { 0x01, 0xFD, aImplUniToDBCSTab_SJIS_70 }, /* 0x70 */ - { 0x04, 0xFF, aImplUniToDBCSTab_SJIS_71 }, /* 0x71 */ - { 0x06, 0xFD, aImplUniToDBCSTab_SJIS_72 }, /* 0x72 */ - { 0x0A, 0xFE, aImplUniToDBCSTab_SJIS_73 }, /* 0x73 */ - { 0x03, 0xF8, aImplUniToDBCSTab_SJIS_74 }, /* 0x74 */ - { 0x01, 0xFF, aImplUniToDBCSTab_SJIS_75 }, /* 0x75 */ - { 0x01, 0xFE, aImplUniToDBCSTab_SJIS_76 }, /* 0x76 */ - { 0x01, 0xFC, aImplUniToDBCSTab_SJIS_77 }, /* 0x77 */ - { 0x02, 0xFD, aImplUniToDBCSTab_SJIS_78 }, /* 0x78 */ - { 0x01, 0xFB, aImplUniToDBCSTab_SJIS_79 }, /* 0x79 */ - { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_7A }, /* 0x7A */ - { 0x02, 0xF7, aImplUniToDBCSTab_SJIS_7B }, /* 0x7B */ - { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_7C }, /* 0x7C */ - { 0x00, 0xFB, aImplUniToDBCSTab_SJIS_7D }, /* 0x7D */ - { 0x01, 0x9C, aImplUniToDBCSTab_SJIS_7E }, /* 0x7E */ - { 0x36, 0xFC, aImplUniToDBCSTab_SJIS_7F }, /* 0x7F */ - { 0x00, 0xFD, aImplUniToDBCSTab_SJIS_80 }, /* 0x80 */ - { 0x02, 0xFE, aImplUniToDBCSTab_SJIS_81 }, /* 0x81 */ - { 0x01, 0xFB, aImplUniToDBCSTab_SJIS_82 }, /* 0x82 */ - { 0x01, 0xFD, aImplUniToDBCSTab_SJIS_83 }, /* 0x83 */ - { 0x03, 0xFF, aImplUniToDBCSTab_SJIS_84 }, /* 0x84 */ - { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_85 }, /* 0x85 */ - { 0x02, 0xFE, aImplUniToDBCSTab_SJIS_86 }, /* 0x86 */ - { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_87 }, /* 0x87 */ - { 0x05, 0xFE, aImplUniToDBCSTab_SJIS_88 }, /* 0x88 */ - { 0x02, 0xF8, aImplUniToDBCSTab_SJIS_89 }, /* 0x89 */ - { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_8A }, /* 0x8A */ - { 0x00, 0x9A, aImplUniToDBCSTab_SJIS_8B }, /* 0x8B */ - { 0x37, 0xFD, aImplUniToDBCSTab_SJIS_8C }, /* 0x8C */ - { 0x04, 0xFF, aImplUniToDBCSTab_SJIS_8D }, /* 0x8D */ - { 0x08, 0xFE, aImplUniToDBCSTab_SJIS_8E }, /* 0x8E */ - { 0x03, 0xFD, aImplUniToDBCSTab_SJIS_8F }, /* 0x8F */ - { 0x00, 0xFD, aImplUniToDBCSTab_SJIS_90 }, /* 0x90 */ - { 0x02, 0xFF, aImplUniToDBCSTab_SJIS_91 }, /* 0x91 */ - { 0x06, 0xFF, aImplUniToDBCSTab_SJIS_92 }, /* 0x92 */ - { 0x02, 0xF8, aImplUniToDBCSTab_SJIS_93 }, /* 0x93 */ - { 0x03, 0x81, aImplUniToDBCSTab_SJIS_94 }, /* 0x94 */ - { 0x77, 0xE5, aImplUniToDBCSTab_SJIS_95 }, /* 0x95 */ - { 0x1C, 0xFB, aImplUniToDBCSTab_SJIS_96 }, /* 0x96 */ - { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_97 }, /* 0x97 */ - { 0x01, 0xFE, aImplUniToDBCSTab_SJIS_98 }, /* 0x98 */ - { 0x03, 0xFF, aImplUniToDBCSTab_SJIS_99 }, /* 0x99 */ - { 0x01, 0xFB, aImplUniToDBCSTab_SJIS_9A }, /* 0x9A */ - { 0x06, 0xF5, aImplUniToDBCSTab_SJIS_9B }, /* 0x9B */ - { 0x00, 0xF6, aImplUniToDBCSTab_SJIS_9C }, /* 0x9C */ - { 0x03, 0xFD, aImplUniToDBCSTab_SJIS_9D }, /* 0x9D */ - { 0x19, 0xFD, aImplUniToDBCSTab_SJIS_9E }, /* 0x9E */ - { 0x07, 0xA0, aImplUniToDBCSTab_SJIS_9F }, /* 0x9F */ - { 1, 0, NULL }, /* 0xA0 */ - { 1, 0, NULL }, /* 0xA1 */ - { 1, 0, NULL }, /* 0xA2 */ - { 1, 0, NULL }, /* 0xA3 */ - { 1, 0, NULL }, /* 0xA4 */ - { 1, 0, NULL }, /* 0xA5 */ - { 1, 0, NULL }, /* 0xA6 */ - { 1, 0, NULL }, /* 0xA7 */ - { 1, 0, NULL }, /* 0xA8 */ - { 1, 0, NULL }, /* 0xA9 */ - { 1, 0, NULL }, /* 0xAA */ - { 1, 0, NULL }, /* 0xAB */ - { 1, 0, NULL }, /* 0xAC */ - { 1, 0, NULL }, /* 0xAD */ - { 1, 0, NULL }, /* 0xAE */ - { 1, 0, NULL }, /* 0xAF */ - { 1, 0, NULL }, /* 0xB0 */ - { 1, 0, NULL }, /* 0xB1 */ - { 1, 0, NULL }, /* 0xB2 */ - { 1, 0, NULL }, /* 0xB3 */ - { 1, 0, NULL }, /* 0xB4 */ - { 1, 0, NULL }, /* 0xB5 */ - { 1, 0, NULL }, /* 0xB6 */ - { 1, 0, NULL }, /* 0xB7 */ - { 1, 0, NULL }, /* 0xB8 */ - { 1, 0, NULL }, /* 0xB9 */ - { 1, 0, NULL }, /* 0xBA */ - { 1, 0, NULL }, /* 0xBB */ - { 1, 0, NULL }, /* 0xBC */ - { 1, 0, NULL }, /* 0xBD */ - { 1, 0, NULL }, /* 0xBE */ - { 1, 0, NULL }, /* 0xBF */ - { 1, 0, NULL }, /* 0xC0 */ - { 1, 0, NULL }, /* 0xC1 */ - { 1, 0, NULL }, /* 0xC2 */ - { 1, 0, NULL }, /* 0xC3 */ - { 1, 0, NULL }, /* 0xC4 */ - { 1, 0, NULL }, /* 0xC5 */ - { 1, 0, NULL }, /* 0xC6 */ - { 1, 0, NULL }, /* 0xC7 */ - { 1, 0, NULL }, /* 0xC8 */ - { 1, 0, NULL }, /* 0xC9 */ - { 1, 0, NULL }, /* 0xCA */ - { 1, 0, NULL }, /* 0xCB */ - { 1, 0, NULL }, /* 0xCC */ - { 1, 0, NULL }, /* 0xCD */ - { 1, 0, NULL }, /* 0xCE */ - { 1, 0, NULL }, /* 0xCF */ - { 1, 0, NULL }, /* 0xD0 */ - { 1, 0, NULL }, /* 0xD1 */ - { 1, 0, NULL }, /* 0xD2 */ - { 1, 0, NULL }, /* 0xD3 */ - { 1, 0, NULL }, /* 0xD4 */ - { 1, 0, NULL }, /* 0xD5 */ - { 1, 0, NULL }, /* 0xD6 */ - { 1, 0, NULL }, /* 0xD7 */ - { 1, 0, NULL }, /* 0xD8 */ - { 1, 0, NULL }, /* 0xD9 */ - { 1, 0, NULL }, /* 0xDA */ - { 1, 0, NULL }, /* 0xDB */ - { 1, 0, NULL }, /* 0xDC */ - { 1, 0, NULL }, /* 0xDD */ - { 1, 0, NULL }, /* 0xDE */ - { 1, 0, NULL }, /* 0xDF */ - { 1, 0, NULL }, /* 0xE0 */ - { 1, 0, NULL }, /* 0xE1 */ - { 1, 0, NULL }, /* 0xE2 */ - { 1, 0, NULL }, /* 0xE3 */ - { 1, 0, NULL }, /* 0xE4 */ - { 1, 0, NULL }, /* 0xE5 */ - { 1, 0, NULL }, /* 0xE6 */ - { 1, 0, NULL }, /* 0xE7 */ - { 1, 0, NULL }, /* 0xE8 */ - { 1, 0, NULL }, /* 0xE9 */ - { 1, 0, NULL }, /* 0xEA */ - { 1, 0, NULL }, /* 0xEB */ - { 1, 0, NULL }, /* 0xEC */ - { 1, 0, NULL }, /* 0xED */ - { 1, 0, NULL }, /* 0xEE */ - { 1, 0, NULL }, /* 0xEF */ - { 1, 0, NULL }, /* 0xF0 */ - { 1, 0, NULL }, /* 0xF1 */ - { 1, 0, NULL }, /* 0xF2 */ - { 1, 0, NULL }, /* 0xF3 */ - { 1, 0, NULL }, /* 0xF4 */ - { 1, 0, NULL }, /* 0xF5 */ - { 1, 0, NULL }, /* 0xF6 */ - { 1, 0, NULL }, /* 0xF7 */ - { 1, 0, NULL }, /* 0xF8 */ - { 0x29, 0xDC, aImplUniToDBCSTab_MS932_F9 }, /* 0xF9 */ - { 0x0E, 0x2D, aImplUniToDBCSTab_MS932_FA }, /* 0xFA */ - { 1, 0, NULL }, /* 0xFB */ - { 1, 0, NULL }, /* 0xFC */ - { 1, 0, NULL }, /* 0xFD */ - { 0x30, 0x44, aImplUniToDBCSTab_APPLEJAPANESE_FE }, /* 0xFE */ - { 0x01, 0xE5, aImplUniToDBCSTab_SJIS_FF } /* 0xFF */ + { 0x00, 0xF7, aImplUniToDBCSTab_SJIS_00 }, /* 0x00 */ + { 1, 0, NULL }, /* 0x01 */ + { 1, 0, NULL }, /* 0x02 */ + { 0x91, 0xC9, aImplUniToDBCSTab_SJIS_03 }, /* 0x03 */ + { 0x01, 0x51, aImplUniToDBCSTab_SJIS_04 }, /* 0x04 */ + { 1, 0, NULL }, /* 0x05 */ + { 1, 0, NULL }, /* 0x06 */ + { 1, 0, NULL }, /* 0x07 */ + { 1, 0, NULL }, /* 0x08 */ + { 1, 0, NULL }, /* 0x09 */ + { 1, 0, NULL }, /* 0x0A */ + { 1, 0, NULL }, /* 0x0B */ + { 1, 0, NULL }, /* 0x0C */ + { 1, 0, NULL }, /* 0x0D */ + { 1, 0, NULL }, /* 0x0E */ + { 1, 0, NULL }, /* 0x0F */ + { 1, 0, NULL }, /* 0x10 */ + { 1, 0, NULL }, /* 0x11 */ + { 1, 0, NULL }, /* 0x12 */ + { 1, 0, NULL }, /* 0x13 */ + { 1, 0, NULL }, /* 0x14 */ + { 1, 0, NULL }, /* 0x15 */ + { 1, 0, NULL }, /* 0x16 */ + { 1, 0, NULL }, /* 0x17 */ + { 1, 0, NULL }, /* 0x18 */ + { 1, 0, NULL }, /* 0x19 */ + { 1, 0, NULL }, /* 0x1A */ + { 1, 0, NULL }, /* 0x1B */ + { 1, 0, NULL }, /* 0x1C */ + { 1, 0, NULL }, /* 0x1D */ + { 1, 0, NULL }, /* 0x1E */ + { 1, 0, NULL }, /* 0x1F */ + { 0x10, 0x3E, aImplUniToDBCSTab_SJIS_20 }, /* 0x20 */ + { 0x03, 0xE9, aImplUniToDBCSTab_APPLEJAPANESE_21 }, /* 0x21 */ + { 0x00, 0xEF, aImplUniToDBCSTab_APPLEJAPANESE_22 }, /* 0x22 */ + { 0x12, 0x12, aImplUniToDBCSTab_SJIS_23 }, /* 0x23 */ + { 0x60, 0xB5, aImplUniToDBCSTab_APPLEJAPANESE_24 }, /* 0x24 */ + { 0x00, 0xEF, aImplUniToDBCSTab_SJIS_25 }, /* 0x25 */ + { 0x05, 0x6F, aImplUniToDBCSTab_APPLEJAPANESE_26 }, /* 0x26 */ + { 0x76, 0x7E, aImplUniToDBCSTab_APPLEJAPANESE_27 }, /* 0x27 */ + { 1, 0, NULL }, /* 0x28 */ + { 1, 0, NULL }, /* 0x29 */ + { 1, 0, NULL }, /* 0x2A */ + { 1, 0, NULL }, /* 0x2B */ + { 1, 0, NULL }, /* 0x2C */ + { 1, 0, NULL }, /* 0x2D */ + { 1, 0, NULL }, /* 0x2E */ + { 1, 0, NULL }, /* 0x2F */ + { 0x00, 0xFE, aImplUniToDBCSTab_APPLEJAPANESE_30 }, /* 0x30 */ + { 1, 0, NULL }, /* 0x31 */ + { 0x2A, 0xA9, aImplUniToDBCSTab_APPLEJAPANESE_32 }, /* 0x32 */ + { 0x00, 0xD4, aImplUniToDBCSTab_APPLEJAPANESE_33 }, /* 0x33 */ + { 1, 0, NULL }, /* 0x34 */ + { 1, 0, NULL }, /* 0x35 */ + { 1, 0, NULL }, /* 0x36 */ + { 1, 0, NULL }, /* 0x37 */ + { 1, 0, NULL }, /* 0x38 */ + { 1, 0, NULL }, /* 0x39 */ + { 1, 0, NULL }, /* 0x3A */ + { 1, 0, NULL }, /* 0x3B */ + { 1, 0, NULL }, /* 0x3C */ + { 1, 0, NULL }, /* 0x3D */ + { 1, 0, NULL }, /* 0x3E */ + { 1, 0, NULL }, /* 0x3F */ + { 1, 0, NULL }, /* 0x40 */ + { 1, 0, NULL }, /* 0x41 */ + { 1, 0, NULL }, /* 0x42 */ + { 1, 0, NULL }, /* 0x43 */ + { 1, 0, NULL }, /* 0x44 */ + { 1, 0, NULL }, /* 0x45 */ + { 1, 0, NULL }, /* 0x46 */ + { 1, 0, NULL }, /* 0x47 */ + { 1, 0, NULL }, /* 0x48 */ + { 1, 0, NULL }, /* 0x49 */ + { 1, 0, NULL }, /* 0x4A */ + { 1, 0, NULL }, /* 0x4B */ + { 1, 0, NULL }, /* 0x4C */ + { 1, 0, NULL }, /* 0x4D */ + { 0x00, 0xFC, aImplUniToDBCSTab_SJIS_4E }, /* 0x4E */ + { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_4F }, /* 0x4F */ + { 0x05, 0xFB, aImplUniToDBCSTab_SJIS_50 }, /* 0x50 */ + { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_51 }, /* 0x51 */ + { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_52 }, /* 0x52 */ + { 0x00, 0xFA, aImplUniToDBCSTab_SJIS_53 }, /* 0x53 */ + { 0x01, 0xFF, aImplUniToDBCSTab_SJIS_54 }, /* 0x54 */ + { 0x04, 0xFE, aImplUniToDBCSTab_SJIS_55 }, /* 0x55 */ + { 0x06, 0xFF, aImplUniToDBCSTab_SJIS_56 }, /* 0x56 */ + { 0x00, 0xFC, aImplUniToDBCSTab_SJIS_57 }, /* 0x57 */ + { 0x00, 0xFD, aImplUniToDBCSTab_SJIS_58 }, /* 0x58 */ + { 0x02, 0xFF, aImplUniToDBCSTab_SJIS_59 }, /* 0x59 */ + { 0x01, 0xFB, aImplUniToDBCSTab_SJIS_5A }, /* 0x5A */ + { 0x09, 0xFF, aImplUniToDBCSTab_SJIS_5B }, /* 0x5B */ + { 0x01, 0xFD, aImplUniToDBCSTab_SJIS_5C }, /* 0x5C */ + { 0x07, 0xFE, aImplUniToDBCSTab_SJIS_5D }, /* 0x5D */ + { 0x02, 0xFF, aImplUniToDBCSTab_SJIS_5E }, /* 0x5E */ + { 0x01, 0xFF, aImplUniToDBCSTab_SJIS_5F }, /* 0x5F */ + { 0x0E, 0xFB, aImplUniToDBCSTab_SJIS_60 }, /* 0x60 */ + { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_61 }, /* 0x61 */ + { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_62 }, /* 0x62 */ + { 0x01, 0xFA, aImplUniToDBCSTab_SJIS_63 }, /* 0x63 */ + { 0x06, 0xFE, aImplUniToDBCSTab_SJIS_64 }, /* 0x64 */ + { 0x00, 0xFB, aImplUniToDBCSTab_SJIS_65 }, /* 0x65 */ + { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_66 }, /* 0x66 */ + { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_67 }, /* 0x67 */ + { 0x01, 0xFA, aImplUniToDBCSTab_SJIS_68 }, /* 0x68 */ + { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_69 }, /* 0x69 */ + { 0x02, 0xFB, aImplUniToDBCSTab_SJIS_6A }, /* 0x6A */ + { 0x04, 0xF3, aImplUniToDBCSTab_SJIS_6B }, /* 0x6B */ + { 0x08, 0xF3, aImplUniToDBCSTab_SJIS_6C }, /* 0x6C */ + { 0x04, 0xFC, aImplUniToDBCSTab_SJIS_6D }, /* 0x6D */ + { 0x05, 0xFF, aImplUniToDBCSTab_SJIS_6E }, /* 0x6E */ + { 0x01, 0xFE, aImplUniToDBCSTab_SJIS_6F }, /* 0x6F */ + { 0x01, 0xFD, aImplUniToDBCSTab_SJIS_70 }, /* 0x70 */ + { 0x04, 0xFF, aImplUniToDBCSTab_SJIS_71 }, /* 0x71 */ + { 0x06, 0xFD, aImplUniToDBCSTab_SJIS_72 }, /* 0x72 */ + { 0x0A, 0xFE, aImplUniToDBCSTab_SJIS_73 }, /* 0x73 */ + { 0x03, 0xF8, aImplUniToDBCSTab_SJIS_74 }, /* 0x74 */ + { 0x01, 0xFF, aImplUniToDBCSTab_SJIS_75 }, /* 0x75 */ + { 0x01, 0xFE, aImplUniToDBCSTab_SJIS_76 }, /* 0x76 */ + { 0x01, 0xFC, aImplUniToDBCSTab_SJIS_77 }, /* 0x77 */ + { 0x02, 0xFD, aImplUniToDBCSTab_SJIS_78 }, /* 0x78 */ + { 0x01, 0xFB, aImplUniToDBCSTab_SJIS_79 }, /* 0x79 */ + { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_7A }, /* 0x7A */ + { 0x02, 0xF7, aImplUniToDBCSTab_SJIS_7B }, /* 0x7B */ + { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_7C }, /* 0x7C */ + { 0x00, 0xFB, aImplUniToDBCSTab_SJIS_7D }, /* 0x7D */ + { 0x01, 0x9C, aImplUniToDBCSTab_SJIS_7E }, /* 0x7E */ + { 0x36, 0xFC, aImplUniToDBCSTab_SJIS_7F }, /* 0x7F */ + { 0x00, 0xFD, aImplUniToDBCSTab_SJIS_80 }, /* 0x80 */ + { 0x02, 0xFE, aImplUniToDBCSTab_SJIS_81 }, /* 0x81 */ + { 0x01, 0xFB, aImplUniToDBCSTab_SJIS_82 }, /* 0x82 */ + { 0x01, 0xFD, aImplUniToDBCSTab_SJIS_83 }, /* 0x83 */ + { 0x03, 0xFF, aImplUniToDBCSTab_SJIS_84 }, /* 0x84 */ + { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_85 }, /* 0x85 */ + { 0x02, 0xFE, aImplUniToDBCSTab_SJIS_86 }, /* 0x86 */ + { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_87 }, /* 0x87 */ + { 0x05, 0xFE, aImplUniToDBCSTab_SJIS_88 }, /* 0x88 */ + { 0x02, 0xF8, aImplUniToDBCSTab_SJIS_89 }, /* 0x89 */ + { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_8A }, /* 0x8A */ + { 0x00, 0x9A, aImplUniToDBCSTab_SJIS_8B }, /* 0x8B */ + { 0x37, 0xFD, aImplUniToDBCSTab_SJIS_8C }, /* 0x8C */ + { 0x04, 0xFF, aImplUniToDBCSTab_SJIS_8D }, /* 0x8D */ + { 0x08, 0xFE, aImplUniToDBCSTab_SJIS_8E }, /* 0x8E */ + { 0x03, 0xFD, aImplUniToDBCSTab_SJIS_8F }, /* 0x8F */ + { 0x00, 0xFD, aImplUniToDBCSTab_SJIS_90 }, /* 0x90 */ + { 0x02, 0xFF, aImplUniToDBCSTab_SJIS_91 }, /* 0x91 */ + { 0x06, 0xFF, aImplUniToDBCSTab_SJIS_92 }, /* 0x92 */ + { 0x02, 0xF8, aImplUniToDBCSTab_SJIS_93 }, /* 0x93 */ + { 0x03, 0x81, aImplUniToDBCSTab_SJIS_94 }, /* 0x94 */ + { 0x77, 0xE5, aImplUniToDBCSTab_SJIS_95 }, /* 0x95 */ + { 0x1C, 0xFB, aImplUniToDBCSTab_SJIS_96 }, /* 0x96 */ + { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_97 }, /* 0x97 */ + { 0x01, 0xFE, aImplUniToDBCSTab_SJIS_98 }, /* 0x98 */ + { 0x03, 0xFF, aImplUniToDBCSTab_SJIS_99 }, /* 0x99 */ + { 0x01, 0xFB, aImplUniToDBCSTab_SJIS_9A }, /* 0x9A */ + { 0x06, 0xF5, aImplUniToDBCSTab_SJIS_9B }, /* 0x9B */ + { 0x00, 0xF6, aImplUniToDBCSTab_SJIS_9C }, /* 0x9C */ + { 0x03, 0xFD, aImplUniToDBCSTab_SJIS_9D }, /* 0x9D */ + { 0x19, 0xFD, aImplUniToDBCSTab_SJIS_9E }, /* 0x9E */ + { 0x07, 0xA0, aImplUniToDBCSTab_SJIS_9F }, /* 0x9F */ + { 1, 0, NULL }, /* 0xA0 */ + { 1, 0, NULL }, /* 0xA1 */ + { 1, 0, NULL }, /* 0xA2 */ + { 1, 0, NULL }, /* 0xA3 */ + { 1, 0, NULL }, /* 0xA4 */ + { 1, 0, NULL }, /* 0xA5 */ + { 1, 0, NULL }, /* 0xA6 */ + { 1, 0, NULL }, /* 0xA7 */ + { 1, 0, NULL }, /* 0xA8 */ + { 1, 0, NULL }, /* 0xA9 */ + { 1, 0, NULL }, /* 0xAA */ + { 1, 0, NULL }, /* 0xAB */ + { 1, 0, NULL }, /* 0xAC */ + { 1, 0, NULL }, /* 0xAD */ + { 1, 0, NULL }, /* 0xAE */ + { 1, 0, NULL }, /* 0xAF */ + { 1, 0, NULL }, /* 0xB0 */ + { 1, 0, NULL }, /* 0xB1 */ + { 1, 0, NULL }, /* 0xB2 */ + { 1, 0, NULL }, /* 0xB3 */ + { 1, 0, NULL }, /* 0xB4 */ + { 1, 0, NULL }, /* 0xB5 */ + { 1, 0, NULL }, /* 0xB6 */ + { 1, 0, NULL }, /* 0xB7 */ + { 1, 0, NULL }, /* 0xB8 */ + { 1, 0, NULL }, /* 0xB9 */ + { 1, 0, NULL }, /* 0xBA */ + { 1, 0, NULL }, /* 0xBB */ + { 1, 0, NULL }, /* 0xBC */ + { 1, 0, NULL }, /* 0xBD */ + { 1, 0, NULL }, /* 0xBE */ + { 1, 0, NULL }, /* 0xBF */ + { 1, 0, NULL }, /* 0xC0 */ + { 1, 0, NULL }, /* 0xC1 */ + { 1, 0, NULL }, /* 0xC2 */ + { 1, 0, NULL }, /* 0xC3 */ + { 1, 0, NULL }, /* 0xC4 */ + { 1, 0, NULL }, /* 0xC5 */ + { 1, 0, NULL }, /* 0xC6 */ + { 1, 0, NULL }, /* 0xC7 */ + { 1, 0, NULL }, /* 0xC8 */ + { 1, 0, NULL }, /* 0xC9 */ + { 1, 0, NULL }, /* 0xCA */ + { 1, 0, NULL }, /* 0xCB */ + { 1, 0, NULL }, /* 0xCC */ + { 1, 0, NULL }, /* 0xCD */ + { 1, 0, NULL }, /* 0xCE */ + { 1, 0, NULL }, /* 0xCF */ + { 1, 0, NULL }, /* 0xD0 */ + { 1, 0, NULL }, /* 0xD1 */ + { 1, 0, NULL }, /* 0xD2 */ + { 1, 0, NULL }, /* 0xD3 */ + { 1, 0, NULL }, /* 0xD4 */ + { 1, 0, NULL }, /* 0xD5 */ + { 1, 0, NULL }, /* 0xD6 */ + { 1, 0, NULL }, /* 0xD7 */ + { 1, 0, NULL }, /* 0xD8 */ + { 1, 0, NULL }, /* 0xD9 */ + { 1, 0, NULL }, /* 0xDA */ + { 1, 0, NULL }, /* 0xDB */ + { 1, 0, NULL }, /* 0xDC */ + { 1, 0, NULL }, /* 0xDD */ + { 1, 0, NULL }, /* 0xDE */ + { 1, 0, NULL }, /* 0xDF */ + { 1, 0, NULL }, /* 0xE0 */ + { 1, 0, NULL }, /* 0xE1 */ + { 1, 0, NULL }, /* 0xE2 */ + { 1, 0, NULL }, /* 0xE3 */ + { 1, 0, NULL }, /* 0xE4 */ + { 1, 0, NULL }, /* 0xE5 */ + { 1, 0, NULL }, /* 0xE6 */ + { 1, 0, NULL }, /* 0xE7 */ + { 1, 0, NULL }, /* 0xE8 */ + { 1, 0, NULL }, /* 0xE9 */ + { 1, 0, NULL }, /* 0xEA */ + { 1, 0, NULL }, /* 0xEB */ + { 1, 0, NULL }, /* 0xEC */ + { 1, 0, NULL }, /* 0xED */ + { 1, 0, NULL }, /* 0xEE */ + { 1, 0, NULL }, /* 0xEF */ + { 1, 0, NULL }, /* 0xF0 */ + { 1, 0, NULL }, /* 0xF1 */ + { 1, 0, NULL }, /* 0xF2 */ + { 1, 0, NULL }, /* 0xF3 */ + { 1, 0, NULL }, /* 0xF4 */ + { 1, 0, NULL }, /* 0xF5 */ + { 1, 0, NULL }, /* 0xF6 */ + { 1, 0, NULL }, /* 0xF7 */ + { 1, 0, NULL }, /* 0xF8 */ + { 0x29, 0xDC, aImplUniToDBCSTab_MS932_F9 }, /* 0xF9 */ + { 0x0E, 0x2D, aImplUniToDBCSTab_MS932_FA }, /* 0xFA */ + { 1, 0, NULL }, /* 0xFB */ + { 1, 0, NULL }, /* 0xFC */ + { 1, 0, NULL }, /* 0xFD */ + { 0x30, 0x44, aImplUniToDBCSTab_APPLEJAPANESE_FE }, /* 0xFE */ + { 0x01, 0xE5, aImplUniToDBCSTab_SJIS_FF } /* 0xFF */ }; /* ----------------------------------------------------------------------- */ @@ -1771,836 +1732,816 @@ static ImplDBCSConvertData const aImplAPPLEJAPANESEDBCSCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData const aImplAPPLEJAPANESETextConverterData = -{ - &aImplAPPLEJAPANESEDBCSCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplAPPLEJAPANESETextConverter = -{ - &aImplAPPLEJAPANESETextConverterData, - ImplDBCSToUnicode, - ImplUnicodeToDBCS, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplAPPLEJAPANESETextEncodingData = -{ - &aImplAPPLEJAPANESETextConverter, - RTL_TEXTENCODING_APPLE_JAPANESE, - 1, 2, 2, - 128, - 932, - 1, - (const sal_Char*)"euc-jp", - (const sal_Char*)"shift_jis", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_MULTIBYTE | - RTL_TEXTENCODING_INFO_MAC, - SCRIPT_JAPANESE -}; +static ImplTextEncodingData const aImplAPPLEJAPANESETextEncodingData + = { { &aImplAPPLEJAPANESEDBCSCvtData, + ImplDBCSToUnicode, + ImplUnicodeToDBCS, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_APPLE_JAPANESE, + 1, + 2, + 2, + 128, + "euc-jp", + "shift_jis", + RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MULTIBYTE }; + /* MAC, SCRIPT_JAPANESE, pc code page 932, mac encoding 1 */ /* ======================================================================= */ static ImplDBCSToUniLeadTab const aJIS0208UniLeadTab[128] = { - { 0, 1, 0, NULL }, /* 0x00 */ - { 0, 1, 0, NULL }, /* 0x01 */ - { 0, 1, 0, NULL }, /* 0x02 */ - { 0, 1, 0, NULL }, /* 0x03 */ - { 0, 1, 0, NULL }, /* 0x04 */ - { 0, 1, 0, NULL }, /* 0x05 */ - { 0, 1, 0, NULL }, /* 0x06 */ - { 0, 1, 0, NULL }, /* 0x07 */ - { 0, 1, 0, NULL }, /* 0x08 */ - { 0, 1, 0, NULL }, /* 0x09 */ - { 0, 1, 0, NULL }, /* 0x0A */ - { 0, 1, 0, NULL }, /* 0x0B */ - { 0, 1, 0, NULL }, /* 0x0C */ - { 0, 1, 0, NULL }, /* 0x0D */ - { 0, 1, 0, NULL }, /* 0x0E */ - { 0, 1, 0, NULL }, /* 0x0F */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x10 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x11 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x12 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x13 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x14 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x15 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x16 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x17 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x18 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x19 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x1A */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x1B */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x1C */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x1D */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x1E */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x1F */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x20 */ /* We convert this as double byte */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_21 }, /* 0x21 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_22 }, /* 0x22 */ - { 0, 0x30, 0x7A, aImplDBCSToUniTab_JIS0208_23 }, /* 0x23 */ - { 0, 0x21, 0x73, aImplDBCSToUniTab_JIS0208_24 }, /* 0x24 */ - { 0, 0x21, 0x76, aImplDBCSToUniTab_JIS0208_25 }, /* 0x25 */ - { 0, 0x21, 0x58, aImplDBCSToUniTab_JIS0208_26 }, /* 0x26 */ - { 0, 0x21, 0x71, aImplDBCSToUniTab_JIS0208_27 }, /* 0x27 */ - { 0, 0x21, 0x40, aImplDBCSToUniTab_JIS0208_28 }, /* 0x28 */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x29 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x2A */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x2B */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x2C */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x2D */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x2E */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x2F */ /* We convert this as double byte */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_30 }, /* 0x30 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_31 }, /* 0x31 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_32 }, /* 0x32 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_33 }, /* 0x33 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_34 }, /* 0x34 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_35 }, /* 0x35 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_36 }, /* 0x36 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_37 }, /* 0x37 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_38 }, /* 0x38 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_39 }, /* 0x39 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_3A }, /* 0x3A */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_3B }, /* 0x3B */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_3C }, /* 0x3C */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_3D }, /* 0x3D */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_3E }, /* 0x3E */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_3F }, /* 0x3F */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_40 }, /* 0x40 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_41 }, /* 0x41 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_42 }, /* 0x42 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_43 }, /* 0x43 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_44 }, /* 0x44 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_45 }, /* 0x45 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_46 }, /* 0x46 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_47 }, /* 0x47 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_48 }, /* 0x48 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_49 }, /* 0x49 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_4A }, /* 0x4A */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_4B }, /* 0x4B */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_4C }, /* 0x4C */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_4D }, /* 0x4D */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_4E }, /* 0x4E */ - { 0, 0x21, 0x53, aImplDBCSToUniTab_JIS0208_4F }, /* 0x4F */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_50 }, /* 0x50 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_51 }, /* 0x51 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_52 }, /* 0x52 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_53 }, /* 0x53 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_54 }, /* 0x54 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_55 }, /* 0x55 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_56 }, /* 0x56 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_57 }, /* 0x57 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_58 }, /* 0x58 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_59 }, /* 0x59 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_5A }, /* 0x5A */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_5B }, /* 0x5B */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_5C }, /* 0x5C */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_5D }, /* 0x5D */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_5E }, /* 0x5E */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_5F }, /* 0x5F */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_60 }, /* 0x60 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_61 }, /* 0x61 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_62 }, /* 0x62 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_63 }, /* 0x63 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_64 }, /* 0x64 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_65 }, /* 0x65 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_66 }, /* 0x66 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_67 }, /* 0x67 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_68 }, /* 0x68 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_69 }, /* 0x69 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_6A }, /* 0x6A */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_6B }, /* 0x6B */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_6C }, /* 0x6C */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_6D }, /* 0x6D */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_6E }, /* 0x6E */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_6F }, /* 0x6F */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_70 }, /* 0x70 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_71 }, /* 0x71 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_72 }, /* 0x72 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_73 }, /* 0x73 */ - { 0, 0x21, 0x26, aImplDBCSToUniTab_JIS0208_74 }, /* 0x74 */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x75 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x76 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x77 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x78 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x79 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x7A */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x7B */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x7C */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x7D */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x7E */ /* We convert this as double byte */ - { 0, 1, 0, NULL } /* 0x7F */ + { 0, 1, 0, NULL }, /* 0x00 */ + { 0, 1, 0, NULL }, /* 0x01 */ + { 0, 1, 0, NULL }, /* 0x02 */ + { 0, 1, 0, NULL }, /* 0x03 */ + { 0, 1, 0, NULL }, /* 0x04 */ + { 0, 1, 0, NULL }, /* 0x05 */ + { 0, 1, 0, NULL }, /* 0x06 */ + { 0, 1, 0, NULL }, /* 0x07 */ + { 0, 1, 0, NULL }, /* 0x08 */ + { 0, 1, 0, NULL }, /* 0x09 */ + { 0, 1, 0, NULL }, /* 0x0A */ + { 0, 1, 0, NULL }, /* 0x0B */ + { 0, 1, 0, NULL }, /* 0x0C */ + { 0, 1, 0, NULL }, /* 0x0D */ + { 0, 1, 0, NULL }, /* 0x0E */ + { 0, 1, 0, NULL }, /* 0x0F */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x10 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x11 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x12 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x13 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x14 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x15 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x16 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x17 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x18 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x19 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x1A */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x1B */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x1C */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x1D */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x1E */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x1F */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x20 */ /* We convert this as double byte */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_21 }, /* 0x21 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_22 }, /* 0x22 */ + { 0, 0x30, 0x7A, aImplDBCSToUniTab_JIS0208_23 }, /* 0x23 */ + { 0, 0x21, 0x73, aImplDBCSToUniTab_JIS0208_24 }, /* 0x24 */ + { 0, 0x21, 0x76, aImplDBCSToUniTab_JIS0208_25 }, /* 0x25 */ + { 0, 0x21, 0x58, aImplDBCSToUniTab_JIS0208_26 }, /* 0x26 */ + { 0, 0x21, 0x71, aImplDBCSToUniTab_JIS0208_27 }, /* 0x27 */ + { 0, 0x21, 0x40, aImplDBCSToUniTab_JIS0208_28 }, /* 0x28 */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x29 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x2A */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x2B */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x2C */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x2D */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x2E */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x2F */ /* We convert this as double byte */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_30 }, /* 0x30 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_31 }, /* 0x31 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_32 }, /* 0x32 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_33 }, /* 0x33 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_34 }, /* 0x34 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_35 }, /* 0x35 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_36 }, /* 0x36 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_37 }, /* 0x37 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_38 }, /* 0x38 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_39 }, /* 0x39 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_3A }, /* 0x3A */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_3B }, /* 0x3B */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_3C }, /* 0x3C */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_3D }, /* 0x3D */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_3E }, /* 0x3E */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_3F }, /* 0x3F */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_40 }, /* 0x40 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_41 }, /* 0x41 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_42 }, /* 0x42 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_43 }, /* 0x43 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_44 }, /* 0x44 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_45 }, /* 0x45 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_46 }, /* 0x46 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_47 }, /* 0x47 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_48 }, /* 0x48 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_49 }, /* 0x49 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_4A }, /* 0x4A */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_4B }, /* 0x4B */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_4C }, /* 0x4C */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_4D }, /* 0x4D */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_4E }, /* 0x4E */ + { 0, 0x21, 0x53, aImplDBCSToUniTab_JIS0208_4F }, /* 0x4F */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_50 }, /* 0x50 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_51 }, /* 0x51 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_52 }, /* 0x52 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_53 }, /* 0x53 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_54 }, /* 0x54 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_55 }, /* 0x55 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_56 }, /* 0x56 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_57 }, /* 0x57 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_58 }, /* 0x58 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_59 }, /* 0x59 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_5A }, /* 0x5A */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_5B }, /* 0x5B */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_5C }, /* 0x5C */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_5D }, /* 0x5D */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_5E }, /* 0x5E */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_5F }, /* 0x5F */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_60 }, /* 0x60 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_61 }, /* 0x61 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_62 }, /* 0x62 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_63 }, /* 0x63 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_64 }, /* 0x64 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_65 }, /* 0x65 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_66 }, /* 0x66 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_67 }, /* 0x67 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_68 }, /* 0x68 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_69 }, /* 0x69 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_6A }, /* 0x6A */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_6B }, /* 0x6B */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_6C }, /* 0x6C */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_6D }, /* 0x6D */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_6E }, /* 0x6E */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_6F }, /* 0x6F */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_70 }, /* 0x70 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_71 }, /* 0x71 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_72 }, /* 0x72 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_73 }, /* 0x73 */ + { 0, 0x21, 0x26, aImplDBCSToUniTab_JIS0208_74 }, /* 0x74 */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x75 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x76 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x77 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x78 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x79 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x7A */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x7B */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x7C */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x7D */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x7E */ /* We convert this as double byte */ + { 0, 1, 0, NULL } /* 0x7F */ }; /* ----------------------------------------------------------------------- */ static ImplUniToDBCSHighTab const aJIS0208DBCSHighTab[256] = { - { 0xA2, 0xF7, aImplUniToDBCSTab_JIS0208_00 }, /* 0x00 */ - { 1, 0, NULL }, /* 0x01 */ - { 1, 0, NULL }, /* 0x02 */ - { 0x91, 0xC9, aImplUniToDBCSTab_JIS0208_03 }, /* 0x03 */ - { 0x01, 0x51, aImplUniToDBCSTab_JIS0208_04 }, /* 0x04 */ - { 1, 0, NULL }, /* 0x05 */ - { 1, 0, NULL }, /* 0x06 */ - { 1, 0, NULL }, /* 0x07 */ - { 1, 0, NULL }, /* 0x08 */ - { 1, 0, NULL }, /* 0x09 */ - { 1, 0, NULL }, /* 0x0A */ - { 1, 0, NULL }, /* 0x0B */ - { 1, 0, NULL }, /* 0x0C */ - { 1, 0, NULL }, /* 0x0D */ - { 1, 0, NULL }, /* 0x0E */ - { 1, 0, NULL }, /* 0x0F */ - { 1, 0, NULL }, /* 0x10 */ - { 1, 0, NULL }, /* 0x11 */ - { 1, 0, NULL }, /* 0x12 */ - { 1, 0, NULL }, /* 0x13 */ - { 1, 0, NULL }, /* 0x14 */ - { 1, 0, NULL }, /* 0x15 */ - { 1, 0, NULL }, /* 0x16 */ - { 1, 0, NULL }, /* 0x17 */ - { 1, 0, NULL }, /* 0x18 */ - { 1, 0, NULL }, /* 0x19 */ - { 1, 0, NULL }, /* 0x1A */ - { 1, 0, NULL }, /* 0x1B */ - { 1, 0, NULL }, /* 0x1C */ - { 1, 0, NULL }, /* 0x1D */ - { 1, 0, NULL }, /* 0x1E */ - { 1, 0, NULL }, /* 0x1F */ - { 0x10, 0x3B, aImplUniToDBCSTab_JIS0208_20 }, /* 0x20 */ - { 0x03, 0xD4, aImplUniToDBCSTab_JIS0208_21 }, /* 0x21 */ - { 0x00, 0xA5, aImplUniToDBCSTab_JIS0208_22 }, /* 0x22 */ - { 0x12, 0x12, aImplUniToDBCSTab_JIS0208_23 }, /* 0x23 */ - { 1, 0, NULL }, /* 0x24 */ - { 0x00, 0xEF, aImplUniToDBCSTab_JIS0208_25 }, /* 0x25 */ - { 0x05, 0x6F, aImplUniToDBCSTab_JIS0208_26 }, /* 0x26 */ - { 1, 0, NULL }, /* 0x27 */ - { 1, 0, NULL }, /* 0x28 */ - { 1, 0, NULL }, /* 0x29 */ - { 1, 0, NULL }, /* 0x2A */ - { 1, 0, NULL }, /* 0x2B */ - { 1, 0, NULL }, /* 0x2C */ - { 1, 0, NULL }, /* 0x2D */ - { 1, 0, NULL }, /* 0x2E */ - { 1, 0, NULL }, /* 0x2F */ - { 0x00, 0xFE, aImplUniToDBCSTab_JIS0208_30 }, /* 0x30 */ - { 1, 0, NULL }, /* 0x31 */ - { 1, 0, NULL }, /* 0x32 */ - { 1, 0, NULL }, /* 0x33 */ - { 1, 0, NULL }, /* 0x34 */ - { 1, 0, NULL }, /* 0x35 */ - { 1, 0, NULL }, /* 0x36 */ - { 1, 0, NULL }, /* 0x37 */ - { 1, 0, NULL }, /* 0x38 */ - { 1, 0, NULL }, /* 0x39 */ - { 1, 0, NULL }, /* 0x3A */ - { 1, 0, NULL }, /* 0x3B */ - { 1, 0, NULL }, /* 0x3C */ - { 1, 0, NULL }, /* 0x3D */ - { 1, 0, NULL }, /* 0x3E */ - { 1, 0, NULL }, /* 0x3F */ - { 1, 0, NULL }, /* 0x40 */ - { 1, 0, NULL }, /* 0x41 */ - { 1, 0, NULL }, /* 0x42 */ - { 1, 0, NULL }, /* 0x43 */ - { 1, 0, NULL }, /* 0x44 */ - { 1, 0, NULL }, /* 0x45 */ - { 1, 0, NULL }, /* 0x46 */ - { 1, 0, NULL }, /* 0x47 */ - { 1, 0, NULL }, /* 0x48 */ - { 1, 0, NULL }, /* 0x49 */ - { 1, 0, NULL }, /* 0x4A */ - { 1, 0, NULL }, /* 0x4B */ - { 1, 0, NULL }, /* 0x4C */ - { 1, 0, NULL }, /* 0x4D */ - { 0x00, 0xFB, aImplUniToDBCSTab_JIS0208_4E }, /* 0x4E */ - { 0x01, 0xFE, aImplUniToDBCSTab_JIS0208_4F }, /* 0x4F */ - { 0x05, 0xFB, aImplUniToDBCSTab_JIS0208_50 }, /* 0x50 */ - { 0x00, 0xFE, aImplUniToDBCSTab_JIS0208_51 }, /* 0x51 */ - { 0x00, 0xFF, aImplUniToDBCSTab_JIS0208_52 }, /* 0x52 */ - { 0x01, 0xFA, aImplUniToDBCSTab_JIS0208_53 }, /* 0x53 */ - { 0x01, 0xFD, aImplUniToDBCSTab_JIS0208_54 }, /* 0x54 */ - { 0x04, 0xFE, aImplUniToDBCSTab_JIS0208_55 }, /* 0x55 */ - { 0x06, 0xFF, aImplUniToDBCSTab_JIS0208_56 }, /* 0x56 */ - { 0x00, 0xFC, aImplUniToDBCSTab_JIS0208_57 }, /* 0x57 */ - { 0x00, 0xFD, aImplUniToDBCSTab_JIS0208_58 }, /* 0x58 */ - { 0x02, 0xFF, aImplUniToDBCSTab_JIS0208_59 }, /* 0x59 */ - { 0x01, 0xFB, aImplUniToDBCSTab_JIS0208_5A }, /* 0x5A */ - { 0x09, 0xFF, aImplUniToDBCSTab_JIS0208_5B }, /* 0x5B */ - { 0x01, 0xFD, aImplUniToDBCSTab_JIS0208_5C }, /* 0x5C */ - { 0x07, 0xFE, aImplUniToDBCSTab_JIS0208_5D }, /* 0x5D */ - { 0x02, 0xFF, aImplUniToDBCSTab_JIS0208_5E }, /* 0x5E */ - { 0x01, 0xFF, aImplUniToDBCSTab_JIS0208_5F }, /* 0x5F */ - { 0x0E, 0xFB, aImplUniToDBCSTab_JIS0208_60 }, /* 0x60 */ - { 0x00, 0xFF, aImplUniToDBCSTab_JIS0208_61 }, /* 0x61 */ - { 0x00, 0xFF, aImplUniToDBCSTab_JIS0208_62 }, /* 0x62 */ - { 0x01, 0xFA, aImplUniToDBCSTab_JIS0208_63 }, /* 0x63 */ - { 0x06, 0xFE, aImplUniToDBCSTab_JIS0208_64 }, /* 0x64 */ - { 0x00, 0xFB, aImplUniToDBCSTab_JIS0208_65 }, /* 0x65 */ - { 0x02, 0xFF, aImplUniToDBCSTab_JIS0208_66 }, /* 0x66 */ - { 0x00, 0xFF, aImplUniToDBCSTab_JIS0208_67 }, /* 0x67 */ - { 0x02, 0xFA, aImplUniToDBCSTab_JIS0208_68 }, /* 0x68 */ - { 0x00, 0xFF, aImplUniToDBCSTab_JIS0208_69 }, /* 0x69 */ - { 0x02, 0xFB, aImplUniToDBCSTab_JIS0208_6A }, /* 0x6A */ - { 0x04, 0xF3, aImplUniToDBCSTab_JIS0208_6B }, /* 0x6B */ - { 0x08, 0xF3, aImplUniToDBCSTab_JIS0208_6C }, /* 0x6C */ - { 0x0B, 0xFB, aImplUniToDBCSTab_JIS0208_6D }, /* 0x6D */ - { 0x05, 0xFF, aImplUniToDBCSTab_JIS0208_6E }, /* 0x6E */ - { 0x01, 0xFE, aImplUniToDBCSTab_JIS0208_6F }, /* 0x6F */ - { 0x01, 0xFD, aImplUniToDBCSTab_JIS0208_70 }, /* 0x70 */ - { 0x09, 0xFF, aImplUniToDBCSTab_JIS0208_71 }, /* 0x71 */ - { 0x06, 0xFD, aImplUniToDBCSTab_JIS0208_72 }, /* 0x72 */ - { 0x0A, 0xFE, aImplUniToDBCSTab_JIS0208_73 }, /* 0x73 */ - { 0x03, 0xF8, aImplUniToDBCSTab_JIS0208_74 }, /* 0x74 */ - { 0x03, 0xFF, aImplUniToDBCSTab_JIS0208_75 }, /* 0x75 */ - { 0x01, 0xFE, aImplUniToDBCSTab_JIS0208_76 }, /* 0x76 */ - { 0x01, 0xFC, aImplUniToDBCSTab_JIS0208_77 }, /* 0x77 */ - { 0x02, 0xFD, aImplUniToDBCSTab_JIS0208_78 }, /* 0x78 */ - { 0x01, 0xFB, aImplUniToDBCSTab_JIS0208_79 }, /* 0x79 */ - { 0x00, 0xFF, aImplUniToDBCSTab_JIS0208_7A }, /* 0x7A */ - { 0x02, 0xF7, aImplUniToDBCSTab_JIS0208_7B }, /* 0x7B */ - { 0x00, 0xFE, aImplUniToDBCSTab_JIS0208_7C }, /* 0x7C */ - { 0x00, 0xFB, aImplUniToDBCSTab_JIS0208_7D }, /* 0x7D */ - { 0x01, 0x9C, aImplUniToDBCSTab_JIS0208_7E }, /* 0x7E */ - { 0x36, 0xFC, aImplUniToDBCSTab_JIS0208_7F }, /* 0x7F */ - { 0x00, 0xFD, aImplUniToDBCSTab_JIS0208_80 }, /* 0x80 */ - { 0x02, 0xFE, aImplUniToDBCSTab_JIS0208_81 }, /* 0x81 */ - { 0x01, 0xFB, aImplUniToDBCSTab_JIS0208_82 }, /* 0x82 */ - { 0x02, 0xFD, aImplUniToDBCSTab_JIS0208_83 }, /* 0x83 */ - { 0x03, 0xFF, aImplUniToDBCSTab_JIS0208_84 }, /* 0x84 */ - { 0x00, 0xFE, aImplUniToDBCSTab_JIS0208_85 }, /* 0x85 */ - { 0x02, 0xFE, aImplUniToDBCSTab_JIS0208_86 }, /* 0x86 */ - { 0x00, 0xFE, aImplUniToDBCSTab_JIS0208_87 }, /* 0x87 */ - { 0x05, 0xFE, aImplUniToDBCSTab_JIS0208_88 }, /* 0x88 */ - { 0x02, 0xF8, aImplUniToDBCSTab_JIS0208_89 }, /* 0x89 */ - { 0x00, 0xFE, aImplUniToDBCSTab_JIS0208_8A }, /* 0x8A */ - { 0x00, 0x9A, aImplUniToDBCSTab_JIS0208_8B }, /* 0x8B */ - { 0x37, 0xFD, aImplUniToDBCSTab_JIS0208_8C }, /* 0x8C */ - { 0x04, 0xFF, aImplUniToDBCSTab_JIS0208_8D }, /* 0x8D */ - { 0x08, 0xFE, aImplUniToDBCSTab_JIS0208_8E }, /* 0x8E */ - { 0x03, 0xFD, aImplUniToDBCSTab_JIS0208_8F }, /* 0x8F */ - { 0x00, 0xFD, aImplUniToDBCSTab_JIS0208_90 }, /* 0x90 */ - { 0x02, 0xFF, aImplUniToDBCSTab_JIS0208_91 }, /* 0x91 */ - { 0x0D, 0xFC, aImplUniToDBCSTab_JIS0208_92 }, /* 0x92 */ - { 0x06, 0xE8, aImplUniToDBCSTab_JIS0208_93 }, /* 0x93 */ - { 0x03, 0x81, aImplUniToDBCSTab_JIS0208_94 }, /* 0x94 */ - { 0x77, 0xE5, aImplUniToDBCSTab_JIS0208_95 }, /* 0x95 */ - { 0x1C, 0xFB, aImplUniToDBCSTab_JIS0208_96 }, /* 0x96 */ - { 0x00, 0xFF, aImplUniToDBCSTab_JIS0208_97 }, /* 0x97 */ - { 0x01, 0xFE, aImplUniToDBCSTab_JIS0208_98 }, /* 0x98 */ - { 0x03, 0xFF, aImplUniToDBCSTab_JIS0208_99 }, /* 0x99 */ - { 0x01, 0xFB, aImplUniToDBCSTab_JIS0208_9A }, /* 0x9A */ - { 0x06, 0xF5, aImplUniToDBCSTab_JIS0208_9B }, /* 0x9B */ - { 0x04, 0xF6, aImplUniToDBCSTab_JIS0208_9C }, /* 0x9C */ - { 0x03, 0xFD, aImplUniToDBCSTab_JIS0208_9D }, /* 0x9D */ - { 0x19, 0xFD, aImplUniToDBCSTab_JIS0208_9E }, /* 0x9E */ - { 0x07, 0xA0, aImplUniToDBCSTab_JIS0208_9F }, /* 0x9F */ - { 1, 0, NULL }, /* 0xA0 */ - { 1, 0, NULL }, /* 0xA1 */ - { 1, 0, NULL }, /* 0xA2 */ - { 1, 0, NULL }, /* 0xA3 */ - { 1, 0, NULL }, /* 0xA4 */ - { 1, 0, NULL }, /* 0xA5 */ - { 1, 0, NULL }, /* 0xA6 */ - { 1, 0, NULL }, /* 0xA7 */ - { 1, 0, NULL }, /* 0xA8 */ - { 1, 0, NULL }, /* 0xA9 */ - { 1, 0, NULL }, /* 0xAA */ - { 1, 0, NULL }, /* 0xAB */ - { 1, 0, NULL }, /* 0xAC */ - { 1, 0, NULL }, /* 0xAD */ - { 1, 0, NULL }, /* 0xAE */ - { 1, 0, NULL }, /* 0xAF */ - { 1, 0, NULL }, /* 0xB0 */ - { 1, 0, NULL }, /* 0xB1 */ - { 1, 0, NULL }, /* 0xB2 */ - { 1, 0, NULL }, /* 0xB3 */ - { 1, 0, NULL }, /* 0xB4 */ - { 1, 0, NULL }, /* 0xB5 */ - { 1, 0, NULL }, /* 0xB6 */ - { 1, 0, NULL }, /* 0xB7 */ - { 1, 0, NULL }, /* 0xB8 */ - { 1, 0, NULL }, /* 0xB9 */ - { 1, 0, NULL }, /* 0xBA */ - { 1, 0, NULL }, /* 0xBB */ - { 1, 0, NULL }, /* 0xBC */ - { 1, 0, NULL }, /* 0xBD */ - { 1, 0, NULL }, /* 0xBE */ - { 1, 0, NULL }, /* 0xBF */ - { 1, 0, NULL }, /* 0xC0 */ - { 1, 0, NULL }, /* 0xC1 */ - { 1, 0, NULL }, /* 0xC2 */ - { 1, 0, NULL }, /* 0xC3 */ - { 1, 0, NULL }, /* 0xC4 */ - { 1, 0, NULL }, /* 0xC5 */ - { 1, 0, NULL }, /* 0xC6 */ - { 1, 0, NULL }, /* 0xC7 */ - { 1, 0, NULL }, /* 0xC8 */ - { 1, 0, NULL }, /* 0xC9 */ - { 1, 0, NULL }, /* 0xCA */ - { 1, 0, NULL }, /* 0xCB */ - { 1, 0, NULL }, /* 0xCC */ - { 1, 0, NULL }, /* 0xCD */ - { 1, 0, NULL }, /* 0xCE */ - { 1, 0, NULL }, /* 0xCF */ - { 1, 0, NULL }, /* 0xD0 */ - { 1, 0, NULL }, /* 0xD1 */ - { 1, 0, NULL }, /* 0xD2 */ - { 1, 0, NULL }, /* 0xD3 */ - { 1, 0, NULL }, /* 0xD4 */ - { 1, 0, NULL }, /* 0xD5 */ - { 1, 0, NULL }, /* 0xD6 */ - { 1, 0, NULL }, /* 0xD7 */ - { 1, 0, NULL }, /* 0xD8 */ - { 1, 0, NULL }, /* 0xD9 */ - { 1, 0, NULL }, /* 0xDA */ - { 1, 0, NULL }, /* 0xDB */ - { 1, 0, NULL }, /* 0xDC */ - { 1, 0, NULL }, /* 0xDD */ - { 1, 0, NULL }, /* 0xDE */ - { 1, 0, NULL }, /* 0xDF */ - { 1, 0, NULL }, /* 0xE0 */ - { 1, 0, NULL }, /* 0xE1 */ - { 1, 0, NULL }, /* 0xE2 */ - { 1, 0, NULL }, /* 0xE3 */ - { 1, 0, NULL }, /* 0xE4 */ - { 1, 0, NULL }, /* 0xE5 */ - { 1, 0, NULL }, /* 0xE6 */ - { 1, 0, NULL }, /* 0xE7 */ - { 1, 0, NULL }, /* 0xE8 */ - { 1, 0, NULL }, /* 0xE9 */ - { 1, 0, NULL }, /* 0xEA */ - { 1, 0, NULL }, /* 0xEB */ - { 1, 0, NULL }, /* 0xEC */ - { 1, 0, NULL }, /* 0xED */ - { 1, 0, NULL }, /* 0xEE */ - { 1, 0, NULL }, /* 0xEF */ - { 1, 0, NULL }, /* 0xF0 */ - { 1, 0, NULL }, /* 0xF1 */ - { 1, 0, NULL }, /* 0xF2 */ - { 1, 0, NULL }, /* 0xF3 */ - { 1, 0, NULL }, /* 0xF4 */ - { 1, 0, NULL }, /* 0xF5 */ - { 1, 0, NULL }, /* 0xF6 */ - { 1, 0, NULL }, /* 0xF7 */ - { 1, 0, NULL }, /* 0xF8 */ - { 1, 0, NULL }, /* 0xF9 */ - { 1, 0, NULL }, /* 0xFA */ - { 1, 0, NULL }, /* 0xFB */ - { 1, 0, NULL }, /* 0xFC */ - { 1, 0, NULL }, /* 0xFD */ - { 1, 0, NULL }, /* 0xFE */ - { 0x01, 0xE5, aImplUniToDBCSTab_JIS0208_FF } /* 0xFF */ + { 0xA2, 0xF7, aImplUniToDBCSTab_JIS0208_00 }, /* 0x00 */ + { 1, 0, NULL }, /* 0x01 */ + { 1, 0, NULL }, /* 0x02 */ + { 0x91, 0xC9, aImplUniToDBCSTab_JIS0208_03 }, /* 0x03 */ + { 0x01, 0x51, aImplUniToDBCSTab_JIS0208_04 }, /* 0x04 */ + { 1, 0, NULL }, /* 0x05 */ + { 1, 0, NULL }, /* 0x06 */ + { 1, 0, NULL }, /* 0x07 */ + { 1, 0, NULL }, /* 0x08 */ + { 1, 0, NULL }, /* 0x09 */ + { 1, 0, NULL }, /* 0x0A */ + { 1, 0, NULL }, /* 0x0B */ + { 1, 0, NULL }, /* 0x0C */ + { 1, 0, NULL }, /* 0x0D */ + { 1, 0, NULL }, /* 0x0E */ + { 1, 0, NULL }, /* 0x0F */ + { 1, 0, NULL }, /* 0x10 */ + { 1, 0, NULL }, /* 0x11 */ + { 1, 0, NULL }, /* 0x12 */ + { 1, 0, NULL }, /* 0x13 */ + { 1, 0, NULL }, /* 0x14 */ + { 1, 0, NULL }, /* 0x15 */ + { 1, 0, NULL }, /* 0x16 */ + { 1, 0, NULL }, /* 0x17 */ + { 1, 0, NULL }, /* 0x18 */ + { 1, 0, NULL }, /* 0x19 */ + { 1, 0, NULL }, /* 0x1A */ + { 1, 0, NULL }, /* 0x1B */ + { 1, 0, NULL }, /* 0x1C */ + { 1, 0, NULL }, /* 0x1D */ + { 1, 0, NULL }, /* 0x1E */ + { 1, 0, NULL }, /* 0x1F */ + { 0x10, 0x3B, aImplUniToDBCSTab_JIS0208_20 }, /* 0x20 */ + { 0x03, 0xD4, aImplUniToDBCSTab_JIS0208_21 }, /* 0x21 */ + { 0x00, 0xA5, aImplUniToDBCSTab_JIS0208_22 }, /* 0x22 */ + { 0x12, 0x12, aImplUniToDBCSTab_JIS0208_23 }, /* 0x23 */ + { 1, 0, NULL }, /* 0x24 */ + { 0x00, 0xEF, aImplUniToDBCSTab_JIS0208_25 }, /* 0x25 */ + { 0x05, 0x6F, aImplUniToDBCSTab_JIS0208_26 }, /* 0x26 */ + { 1, 0, NULL }, /* 0x27 */ + { 1, 0, NULL }, /* 0x28 */ + { 1, 0, NULL }, /* 0x29 */ + { 1, 0, NULL }, /* 0x2A */ + { 1, 0, NULL }, /* 0x2B */ + { 1, 0, NULL }, /* 0x2C */ + { 1, 0, NULL }, /* 0x2D */ + { 1, 0, NULL }, /* 0x2E */ + { 1, 0, NULL }, /* 0x2F */ + { 0x00, 0xFE, aImplUniToDBCSTab_JIS0208_30 }, /* 0x30 */ + { 1, 0, NULL }, /* 0x31 */ + { 1, 0, NULL }, /* 0x32 */ + { 1, 0, NULL }, /* 0x33 */ + { 1, 0, NULL }, /* 0x34 */ + { 1, 0, NULL }, /* 0x35 */ + { 1, 0, NULL }, /* 0x36 */ + { 1, 0, NULL }, /* 0x37 */ + { 1, 0, NULL }, /* 0x38 */ + { 1, 0, NULL }, /* 0x39 */ + { 1, 0, NULL }, /* 0x3A */ + { 1, 0, NULL }, /* 0x3B */ + { 1, 0, NULL }, /* 0x3C */ + { 1, 0, NULL }, /* 0x3D */ + { 1, 0, NULL }, /* 0x3E */ + { 1, 0, NULL }, /* 0x3F */ + { 1, 0, NULL }, /* 0x40 */ + { 1, 0, NULL }, /* 0x41 */ + { 1, 0, NULL }, /* 0x42 */ + { 1, 0, NULL }, /* 0x43 */ + { 1, 0, NULL }, /* 0x44 */ + { 1, 0, NULL }, /* 0x45 */ + { 1, 0, NULL }, /* 0x46 */ + { 1, 0, NULL }, /* 0x47 */ + { 1, 0, NULL }, /* 0x48 */ + { 1, 0, NULL }, /* 0x49 */ + { 1, 0, NULL }, /* 0x4A */ + { 1, 0, NULL }, /* 0x4B */ + { 1, 0, NULL }, /* 0x4C */ + { 1, 0, NULL }, /* 0x4D */ + { 0x00, 0xFB, aImplUniToDBCSTab_JIS0208_4E }, /* 0x4E */ + { 0x01, 0xFE, aImplUniToDBCSTab_JIS0208_4F }, /* 0x4F */ + { 0x05, 0xFB, aImplUniToDBCSTab_JIS0208_50 }, /* 0x50 */ + { 0x00, 0xFE, aImplUniToDBCSTab_JIS0208_51 }, /* 0x51 */ + { 0x00, 0xFF, aImplUniToDBCSTab_JIS0208_52 }, /* 0x52 */ + { 0x01, 0xFA, aImplUniToDBCSTab_JIS0208_53 }, /* 0x53 */ + { 0x01, 0xFD, aImplUniToDBCSTab_JIS0208_54 }, /* 0x54 */ + { 0x04, 0xFE, aImplUniToDBCSTab_JIS0208_55 }, /* 0x55 */ + { 0x06, 0xFF, aImplUniToDBCSTab_JIS0208_56 }, /* 0x56 */ + { 0x00, 0xFC, aImplUniToDBCSTab_JIS0208_57 }, /* 0x57 */ + { 0x00, 0xFD, aImplUniToDBCSTab_JIS0208_58 }, /* 0x58 */ + { 0x02, 0xFF, aImplUniToDBCSTab_JIS0208_59 }, /* 0x59 */ + { 0x01, 0xFB, aImplUniToDBCSTab_JIS0208_5A }, /* 0x5A */ + { 0x09, 0xFF, aImplUniToDBCSTab_JIS0208_5B }, /* 0x5B */ + { 0x01, 0xFD, aImplUniToDBCSTab_JIS0208_5C }, /* 0x5C */ + { 0x07, 0xFE, aImplUniToDBCSTab_JIS0208_5D }, /* 0x5D */ + { 0x02, 0xFF, aImplUniToDBCSTab_JIS0208_5E }, /* 0x5E */ + { 0x01, 0xFF, aImplUniToDBCSTab_JIS0208_5F }, /* 0x5F */ + { 0x0E, 0xFB, aImplUniToDBCSTab_JIS0208_60 }, /* 0x60 */ + { 0x00, 0xFF, aImplUniToDBCSTab_JIS0208_61 }, /* 0x61 */ + { 0x00, 0xFF, aImplUniToDBCSTab_JIS0208_62 }, /* 0x62 */ + { 0x01, 0xFA, aImplUniToDBCSTab_JIS0208_63 }, /* 0x63 */ + { 0x06, 0xFE, aImplUniToDBCSTab_JIS0208_64 }, /* 0x64 */ + { 0x00, 0xFB, aImplUniToDBCSTab_JIS0208_65 }, /* 0x65 */ + { 0x02, 0xFF, aImplUniToDBCSTab_JIS0208_66 }, /* 0x66 */ + { 0x00, 0xFF, aImplUniToDBCSTab_JIS0208_67 }, /* 0x67 */ + { 0x02, 0xFA, aImplUniToDBCSTab_JIS0208_68 }, /* 0x68 */ + { 0x00, 0xFF, aImplUniToDBCSTab_JIS0208_69 }, /* 0x69 */ + { 0x02, 0xFB, aImplUniToDBCSTab_JIS0208_6A }, /* 0x6A */ + { 0x04, 0xF3, aImplUniToDBCSTab_JIS0208_6B }, /* 0x6B */ + { 0x08, 0xF3, aImplUniToDBCSTab_JIS0208_6C }, /* 0x6C */ + { 0x0B, 0xFB, aImplUniToDBCSTab_JIS0208_6D }, /* 0x6D */ + { 0x05, 0xFF, aImplUniToDBCSTab_JIS0208_6E }, /* 0x6E */ + { 0x01, 0xFE, aImplUniToDBCSTab_JIS0208_6F }, /* 0x6F */ + { 0x01, 0xFD, aImplUniToDBCSTab_JIS0208_70 }, /* 0x70 */ + { 0x09, 0xFF, aImplUniToDBCSTab_JIS0208_71 }, /* 0x71 */ + { 0x06, 0xFD, aImplUniToDBCSTab_JIS0208_72 }, /* 0x72 */ + { 0x0A, 0xFE, aImplUniToDBCSTab_JIS0208_73 }, /* 0x73 */ + { 0x03, 0xF8, aImplUniToDBCSTab_JIS0208_74 }, /* 0x74 */ + { 0x03, 0xFF, aImplUniToDBCSTab_JIS0208_75 }, /* 0x75 */ + { 0x01, 0xFE, aImplUniToDBCSTab_JIS0208_76 }, /* 0x76 */ + { 0x01, 0xFC, aImplUniToDBCSTab_JIS0208_77 }, /* 0x77 */ + { 0x02, 0xFD, aImplUniToDBCSTab_JIS0208_78 }, /* 0x78 */ + { 0x01, 0xFB, aImplUniToDBCSTab_JIS0208_79 }, /* 0x79 */ + { 0x00, 0xFF, aImplUniToDBCSTab_JIS0208_7A }, /* 0x7A */ + { 0x02, 0xF7, aImplUniToDBCSTab_JIS0208_7B }, /* 0x7B */ + { 0x00, 0xFE, aImplUniToDBCSTab_JIS0208_7C }, /* 0x7C */ + { 0x00, 0xFB, aImplUniToDBCSTab_JIS0208_7D }, /* 0x7D */ + { 0x01, 0x9C, aImplUniToDBCSTab_JIS0208_7E }, /* 0x7E */ + { 0x36, 0xFC, aImplUniToDBCSTab_JIS0208_7F }, /* 0x7F */ + { 0x00, 0xFD, aImplUniToDBCSTab_JIS0208_80 }, /* 0x80 */ + { 0x02, 0xFE, aImplUniToDBCSTab_JIS0208_81 }, /* 0x81 */ + { 0x01, 0xFB, aImplUniToDBCSTab_JIS0208_82 }, /* 0x82 */ + { 0x02, 0xFD, aImplUniToDBCSTab_JIS0208_83 }, /* 0x83 */ + { 0x03, 0xFF, aImplUniToDBCSTab_JIS0208_84 }, /* 0x84 */ + { 0x00, 0xFE, aImplUniToDBCSTab_JIS0208_85 }, /* 0x85 */ + { 0x02, 0xFE, aImplUniToDBCSTab_JIS0208_86 }, /* 0x86 */ + { 0x00, 0xFE, aImplUniToDBCSTab_JIS0208_87 }, /* 0x87 */ + { 0x05, 0xFE, aImplUniToDBCSTab_JIS0208_88 }, /* 0x88 */ + { 0x02, 0xF8, aImplUniToDBCSTab_JIS0208_89 }, /* 0x89 */ + { 0x00, 0xFE, aImplUniToDBCSTab_JIS0208_8A }, /* 0x8A */ + { 0x00, 0x9A, aImplUniToDBCSTab_JIS0208_8B }, /* 0x8B */ + { 0x37, 0xFD, aImplUniToDBCSTab_JIS0208_8C }, /* 0x8C */ + { 0x04, 0xFF, aImplUniToDBCSTab_JIS0208_8D }, /* 0x8D */ + { 0x08, 0xFE, aImplUniToDBCSTab_JIS0208_8E }, /* 0x8E */ + { 0x03, 0xFD, aImplUniToDBCSTab_JIS0208_8F }, /* 0x8F */ + { 0x00, 0xFD, aImplUniToDBCSTab_JIS0208_90 }, /* 0x90 */ + { 0x02, 0xFF, aImplUniToDBCSTab_JIS0208_91 }, /* 0x91 */ + { 0x0D, 0xFC, aImplUniToDBCSTab_JIS0208_92 }, /* 0x92 */ + { 0x06, 0xE8, aImplUniToDBCSTab_JIS0208_93 }, /* 0x93 */ + { 0x03, 0x81, aImplUniToDBCSTab_JIS0208_94 }, /* 0x94 */ + { 0x77, 0xE5, aImplUniToDBCSTab_JIS0208_95 }, /* 0x95 */ + { 0x1C, 0xFB, aImplUniToDBCSTab_JIS0208_96 }, /* 0x96 */ + { 0x00, 0xFF, aImplUniToDBCSTab_JIS0208_97 }, /* 0x97 */ + { 0x01, 0xFE, aImplUniToDBCSTab_JIS0208_98 }, /* 0x98 */ + { 0x03, 0xFF, aImplUniToDBCSTab_JIS0208_99 }, /* 0x99 */ + { 0x01, 0xFB, aImplUniToDBCSTab_JIS0208_9A }, /* 0x9A */ + { 0x06, 0xF5, aImplUniToDBCSTab_JIS0208_9B }, /* 0x9B */ + { 0x04, 0xF6, aImplUniToDBCSTab_JIS0208_9C }, /* 0x9C */ + { 0x03, 0xFD, aImplUniToDBCSTab_JIS0208_9D }, /* 0x9D */ + { 0x19, 0xFD, aImplUniToDBCSTab_JIS0208_9E }, /* 0x9E */ + { 0x07, 0xA0, aImplUniToDBCSTab_JIS0208_9F }, /* 0x9F */ + { 1, 0, NULL }, /* 0xA0 */ + { 1, 0, NULL }, /* 0xA1 */ + { 1, 0, NULL }, /* 0xA2 */ + { 1, 0, NULL }, /* 0xA3 */ + { 1, 0, NULL }, /* 0xA4 */ + { 1, 0, NULL }, /* 0xA5 */ + { 1, 0, NULL }, /* 0xA6 */ + { 1, 0, NULL }, /* 0xA7 */ + { 1, 0, NULL }, /* 0xA8 */ + { 1, 0, NULL }, /* 0xA9 */ + { 1, 0, NULL }, /* 0xAA */ + { 1, 0, NULL }, /* 0xAB */ + { 1, 0, NULL }, /* 0xAC */ + { 1, 0, NULL }, /* 0xAD */ + { 1, 0, NULL }, /* 0xAE */ + { 1, 0, NULL }, /* 0xAF */ + { 1, 0, NULL }, /* 0xB0 */ + { 1, 0, NULL }, /* 0xB1 */ + { 1, 0, NULL }, /* 0xB2 */ + { 1, 0, NULL }, /* 0xB3 */ + { 1, 0, NULL }, /* 0xB4 */ + { 1, 0, NULL }, /* 0xB5 */ + { 1, 0, NULL }, /* 0xB6 */ + { 1, 0, NULL }, /* 0xB7 */ + { 1, 0, NULL }, /* 0xB8 */ + { 1, 0, NULL }, /* 0xB9 */ + { 1, 0, NULL }, /* 0xBA */ + { 1, 0, NULL }, /* 0xBB */ + { 1, 0, NULL }, /* 0xBC */ + { 1, 0, NULL }, /* 0xBD */ + { 1, 0, NULL }, /* 0xBE */ + { 1, 0, NULL }, /* 0xBF */ + { 1, 0, NULL }, /* 0xC0 */ + { 1, 0, NULL }, /* 0xC1 */ + { 1, 0, NULL }, /* 0xC2 */ + { 1, 0, NULL }, /* 0xC3 */ + { 1, 0, NULL }, /* 0xC4 */ + { 1, 0, NULL }, /* 0xC5 */ + { 1, 0, NULL }, /* 0xC6 */ + { 1, 0, NULL }, /* 0xC7 */ + { 1, 0, NULL }, /* 0xC8 */ + { 1, 0, NULL }, /* 0xC9 */ + { 1, 0, NULL }, /* 0xCA */ + { 1, 0, NULL }, /* 0xCB */ + { 1, 0, NULL }, /* 0xCC */ + { 1, 0, NULL }, /* 0xCD */ + { 1, 0, NULL }, /* 0xCE */ + { 1, 0, NULL }, /* 0xCF */ + { 1, 0, NULL }, /* 0xD0 */ + { 1, 0, NULL }, /* 0xD1 */ + { 1, 0, NULL }, /* 0xD2 */ + { 1, 0, NULL }, /* 0xD3 */ + { 1, 0, NULL }, /* 0xD4 */ + { 1, 0, NULL }, /* 0xD5 */ + { 1, 0, NULL }, /* 0xD6 */ + { 1, 0, NULL }, /* 0xD7 */ + { 1, 0, NULL }, /* 0xD8 */ + { 1, 0, NULL }, /* 0xD9 */ + { 1, 0, NULL }, /* 0xDA */ + { 1, 0, NULL }, /* 0xDB */ + { 1, 0, NULL }, /* 0xDC */ + { 1, 0, NULL }, /* 0xDD */ + { 1, 0, NULL }, /* 0xDE */ + { 1, 0, NULL }, /* 0xDF */ + { 1, 0, NULL }, /* 0xE0 */ + { 1, 0, NULL }, /* 0xE1 */ + { 1, 0, NULL }, /* 0xE2 */ + { 1, 0, NULL }, /* 0xE3 */ + { 1, 0, NULL }, /* 0xE4 */ + { 1, 0, NULL }, /* 0xE5 */ + { 1, 0, NULL }, /* 0xE6 */ + { 1, 0, NULL }, /* 0xE7 */ + { 1, 0, NULL }, /* 0xE8 */ + { 1, 0, NULL }, /* 0xE9 */ + { 1, 0, NULL }, /* 0xEA */ + { 1, 0, NULL }, /* 0xEB */ + { 1, 0, NULL }, /* 0xEC */ + { 1, 0, NULL }, /* 0xED */ + { 1, 0, NULL }, /* 0xEE */ + { 1, 0, NULL }, /* 0xEF */ + { 1, 0, NULL }, /* 0xF0 */ + { 1, 0, NULL }, /* 0xF1 */ + { 1, 0, NULL }, /* 0xF2 */ + { 1, 0, NULL }, /* 0xF3 */ + { 1, 0, NULL }, /* 0xF4 */ + { 1, 0, NULL }, /* 0xF5 */ + { 1, 0, NULL }, /* 0xF6 */ + { 1, 0, NULL }, /* 0xF7 */ + { 1, 0, NULL }, /* 0xF8 */ + { 1, 0, NULL }, /* 0xF9 */ + { 1, 0, NULL }, /* 0xFA */ + { 1, 0, NULL }, /* 0xFB */ + { 1, 0, NULL }, /* 0xFC */ + { 1, 0, NULL }, /* 0xFD */ + { 1, 0, NULL }, /* 0xFE */ + { 0x01, 0xE5, aImplUniToDBCSTab_JIS0208_FF } /* 0xFF */ }; /* ----------------------------------------------------------------------- */ static ImplDBCSToUniLeadTab const aJIS0212UniLeadTab[128] = { - { 0, 1, 0, NULL }, /* 0x00 */ - { 0, 1, 0, NULL }, /* 0x01 */ - { 0, 1, 0, NULL }, /* 0x02 */ - { 0, 1, 0, NULL }, /* 0x03 */ - { 0, 1, 0, NULL }, /* 0x04 */ - { 0, 1, 0, NULL }, /* 0x05 */ - { 0, 1, 0, NULL }, /* 0x06 */ - { 0, 1, 0, NULL }, /* 0x07 */ - { 0, 1, 0, NULL }, /* 0x08 */ - { 0, 1, 0, NULL }, /* 0x09 */ - { 0, 1, 0, NULL }, /* 0x0A */ - { 0, 1, 0, NULL }, /* 0x0B */ - { 0, 1, 0, NULL }, /* 0x0C */ - { 0, 1, 0, NULL }, /* 0x0D */ - { 0, 1, 0, NULL }, /* 0x0E */ - { 0, 1, 0, NULL }, /* 0x0F */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x10 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x11 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x12 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x13 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x14 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x15 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x16 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x17 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x18 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x19 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x1A */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x1B */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x1C */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x1D */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x1E */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x1F */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x20 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x21 */ /* We convert this as double byte */ - { 0, 0x2F, 0x71, aImplDBCSToUniTab_JIS0212_22 }, /* 0x22 */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x23 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x24 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x25 */ /* We convert this as double byte */ - { 0, 0x61, 0x7C, aImplDBCSToUniTab_JIS0212_26 }, /* 0x26 */ - { 0, 0x42, 0x7E, aImplDBCSToUniTab_JIS0212_27 }, /* 0x27 */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x28 */ /* We convert this as double byte */ - { 0, 0x21, 0x50, aImplDBCSToUniTab_JIS0212_29 }, /* 0x29 */ - { 0, 0x21, 0x77, aImplDBCSToUniTab_JIS0212_2A }, /* 0x2A */ - { 0, 0x21, 0x77, aImplDBCSToUniTab_JIS0212_2B }, /* 0x2B */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x2C */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x2D */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x2E */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x2F */ /* We convert this as double byte */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_30 }, /* 0x30 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_31 }, /* 0x31 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_32 }, /* 0x32 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_33 }, /* 0x33 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_34 }, /* 0x34 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_35 }, /* 0x35 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_36 }, /* 0x36 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_37 }, /* 0x37 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_38 }, /* 0x38 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_39 }, /* 0x39 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_3A }, /* 0x3A */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_3B }, /* 0x3B */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_3C }, /* 0x3C */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_3D }, /* 0x3D */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_3E }, /* 0x3E */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_3F }, /* 0x3F */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_40 }, /* 0x40 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_41 }, /* 0x41 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_42 }, /* 0x42 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_43 }, /* 0x43 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_44 }, /* 0x44 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_45 }, /* 0x45 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_46 }, /* 0x46 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_47 }, /* 0x47 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_48 }, /* 0x48 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_49 }, /* 0x49 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_4A }, /* 0x4A */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_4B }, /* 0x4B */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_4C }, /* 0x4C */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_4D }, /* 0x4D */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_4E }, /* 0x4E */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_4F }, /* 0x4F */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_50 }, /* 0x50 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_51 }, /* 0x51 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_52 }, /* 0x52 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_53 }, /* 0x53 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_54 }, /* 0x54 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_55 }, /* 0x55 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_56 }, /* 0x56 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_57 }, /* 0x57 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_58 }, /* 0x58 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_59 }, /* 0x59 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_5A }, /* 0x5A */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_5B }, /* 0x5B */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_5C }, /* 0x5C */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_5D }, /* 0x5D */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_5E }, /* 0x5E */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_5F }, /* 0x5F */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_60 }, /* 0x60 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_61 }, /* 0x61 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_62 }, /* 0x62 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_63 }, /* 0x63 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_64 }, /* 0x64 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_65 }, /* 0x65 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_66 }, /* 0x66 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_67 }, /* 0x67 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_68 }, /* 0x68 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_69 }, /* 0x69 */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_6A }, /* 0x6A */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_6B }, /* 0x6B */ - { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_6C }, /* 0x6C */ - { 0, 0x21, 0x63, aImplDBCSToUniTab_JIS0212_6D }, /* 0x6D */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x6E */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x6F */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x70 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x71 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x72 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x73 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x74 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x75 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x76 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x77 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x78 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x79 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x7A */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x7B */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x7C */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x7D */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x7E */ /* We convert this as double byte */ - { 0, 1, 0, NULL } /* 0x7F */ + { 0, 1, 0, NULL }, /* 0x00 */ + { 0, 1, 0, NULL }, /* 0x01 */ + { 0, 1, 0, NULL }, /* 0x02 */ + { 0, 1, 0, NULL }, /* 0x03 */ + { 0, 1, 0, NULL }, /* 0x04 */ + { 0, 1, 0, NULL }, /* 0x05 */ + { 0, 1, 0, NULL }, /* 0x06 */ + { 0, 1, 0, NULL }, /* 0x07 */ + { 0, 1, 0, NULL }, /* 0x08 */ + { 0, 1, 0, NULL }, /* 0x09 */ + { 0, 1, 0, NULL }, /* 0x0A */ + { 0, 1, 0, NULL }, /* 0x0B */ + { 0, 1, 0, NULL }, /* 0x0C */ + { 0, 1, 0, NULL }, /* 0x0D */ + { 0, 1, 0, NULL }, /* 0x0E */ + { 0, 1, 0, NULL }, /* 0x0F */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x10 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x11 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x12 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x13 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x14 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x15 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x16 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x17 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x18 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x19 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x1A */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x1B */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x1C */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x1D */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x1E */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x1F */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x20 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x21 */ /* We convert this as double byte */ + { 0, 0x2F, 0x71, aImplDBCSToUniTab_JIS0212_22 }, /* 0x22 */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x23 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x24 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x25 */ /* We convert this as double byte */ + { 0, 0x61, 0x7C, aImplDBCSToUniTab_JIS0212_26 }, /* 0x26 */ + { 0, 0x42, 0x7E, aImplDBCSToUniTab_JIS0212_27 }, /* 0x27 */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x28 */ /* We convert this as double byte */ + { 0, 0x21, 0x50, aImplDBCSToUniTab_JIS0212_29 }, /* 0x29 */ + { 0, 0x21, 0x77, aImplDBCSToUniTab_JIS0212_2A }, /* 0x2A */ + { 0, 0x21, 0x77, aImplDBCSToUniTab_JIS0212_2B }, /* 0x2B */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x2C */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x2D */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x2E */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x2F */ /* We convert this as double byte */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_30 }, /* 0x30 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_31 }, /* 0x31 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_32 }, /* 0x32 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_33 }, /* 0x33 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_34 }, /* 0x34 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_35 }, /* 0x35 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_36 }, /* 0x36 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_37 }, /* 0x37 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_38 }, /* 0x38 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_39 }, /* 0x39 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_3A }, /* 0x3A */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_3B }, /* 0x3B */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_3C }, /* 0x3C */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_3D }, /* 0x3D */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_3E }, /* 0x3E */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_3F }, /* 0x3F */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_40 }, /* 0x40 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_41 }, /* 0x41 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_42 }, /* 0x42 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_43 }, /* 0x43 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_44 }, /* 0x44 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_45 }, /* 0x45 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_46 }, /* 0x46 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_47 }, /* 0x47 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_48 }, /* 0x48 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_49 }, /* 0x49 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_4A }, /* 0x4A */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_4B }, /* 0x4B */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_4C }, /* 0x4C */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_4D }, /* 0x4D */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_4E }, /* 0x4E */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_4F }, /* 0x4F */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_50 }, /* 0x50 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_51 }, /* 0x51 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_52 }, /* 0x52 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_53 }, /* 0x53 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_54 }, /* 0x54 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_55 }, /* 0x55 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_56 }, /* 0x56 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_57 }, /* 0x57 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_58 }, /* 0x58 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_59 }, /* 0x59 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_5A }, /* 0x5A */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_5B }, /* 0x5B */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_5C }, /* 0x5C */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_5D }, /* 0x5D */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_5E }, /* 0x5E */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_5F }, /* 0x5F */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_60 }, /* 0x60 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_61 }, /* 0x61 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_62 }, /* 0x62 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_63 }, /* 0x63 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_64 }, /* 0x64 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_65 }, /* 0x65 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_66 }, /* 0x66 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_67 }, /* 0x67 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_68 }, /* 0x68 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_69 }, /* 0x69 */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_6A }, /* 0x6A */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_6B }, /* 0x6B */ + { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_6C }, /* 0x6C */ + { 0, 0x21, 0x63, aImplDBCSToUniTab_JIS0212_6D }, /* 0x6D */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x6E */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x6F */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x70 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x71 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x72 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x73 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x74 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x75 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x76 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x77 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x78 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x79 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x7A */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x7B */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x7C */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x7D */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x7E */ /* We convert this as double byte */ + { 0, 1, 0, NULL } /* 0x7F */ }; /* ----------------------------------------------------------------------- */ static ImplUniToDBCSHighTab const aJIS0212DBCSHighTab[256] = { - { 0xA1, 0xFF, aImplUniToDBCSTab_JIS0212_00 }, /* 0x00 */ - { 0x00, 0xF5, aImplUniToDBCSTab_JIS0212_01 }, /* 0x01 */ - { 0xC7, 0xDD, aImplUniToDBCSTab_JIS0212_02 }, /* 0x02 */ - { 0x84, 0xCE, aImplUniToDBCSTab_JIS0212_03 }, /* 0x03 */ - { 0x02, 0x5F, aImplUniToDBCSTab_JIS0212_04 }, /* 0x04 */ - { 1, 0, NULL }, /* 0x05 */ - { 1, 0, NULL }, /* 0x06 */ - { 1, 0, NULL }, /* 0x07 */ - { 1, 0, NULL }, /* 0x08 */ - { 1, 0, NULL }, /* 0x09 */ - { 1, 0, NULL }, /* 0x0A */ - { 1, 0, NULL }, /* 0x0B */ - { 1, 0, NULL }, /* 0x0C */ - { 1, 0, NULL }, /* 0x0D */ - { 1, 0, NULL }, /* 0x0E */ - { 1, 0, NULL }, /* 0x0F */ - { 1, 0, NULL }, /* 0x10 */ - { 1, 0, NULL }, /* 0x11 */ - { 1, 0, NULL }, /* 0x12 */ - { 1, 0, NULL }, /* 0x13 */ - { 1, 0, NULL }, /* 0x14 */ - { 1, 0, NULL }, /* 0x15 */ - { 1, 0, NULL }, /* 0x16 */ - { 1, 0, NULL }, /* 0x17 */ - { 1, 0, NULL }, /* 0x18 */ - { 1, 0, NULL }, /* 0x19 */ - { 1, 0, NULL }, /* 0x1A */ - { 1, 0, NULL }, /* 0x1B */ - { 1, 0, NULL }, /* 0x1C */ - { 1, 0, NULL }, /* 0x1D */ - { 1, 0, NULL }, /* 0x1E */ - { 1, 0, NULL }, /* 0x1F */ - { 1, 0, NULL }, /* 0x20 */ - { 0x16, 0x22, aImplUniToDBCSTab_JIS0212_21 }, /* 0x21 */ - { 1, 0, NULL }, /* 0x22 */ - { 1, 0, NULL }, /* 0x23 */ - { 1, 0, NULL }, /* 0x24 */ - { 1, 0, NULL }, /* 0x25 */ - { 1, 0, NULL }, /* 0x26 */ - { 1, 0, NULL }, /* 0x27 */ - { 1, 0, NULL }, /* 0x28 */ - { 1, 0, NULL }, /* 0x29 */ - { 1, 0, NULL }, /* 0x2A */ - { 1, 0, NULL }, /* 0x2B */ - { 1, 0, NULL }, /* 0x2C */ - { 1, 0, NULL }, /* 0x2D */ - { 1, 0, NULL }, /* 0x2E */ - { 1, 0, NULL }, /* 0x2F */ - { 1, 0, NULL }, /* 0x30 */ - { 1, 0, NULL }, /* 0x31 */ - { 1, 0, NULL }, /* 0x32 */ - { 1, 0, NULL }, /* 0x33 */ - { 1, 0, NULL }, /* 0x34 */ - { 1, 0, NULL }, /* 0x35 */ - { 1, 0, NULL }, /* 0x36 */ - { 1, 0, NULL }, /* 0x37 */ - { 1, 0, NULL }, /* 0x38 */ - { 1, 0, NULL }, /* 0x39 */ - { 1, 0, NULL }, /* 0x3A */ - { 1, 0, NULL }, /* 0x3B */ - { 1, 0, NULL }, /* 0x3C */ - { 1, 0, NULL }, /* 0x3D */ - { 1, 0, NULL }, /* 0x3E */ - { 1, 0, NULL }, /* 0x3F */ - { 1, 0, NULL }, /* 0x40 */ - { 1, 0, NULL }, /* 0x41 */ - { 1, 0, NULL }, /* 0x42 */ - { 1, 0, NULL }, /* 0x43 */ - { 1, 0, NULL }, /* 0x44 */ - { 1, 0, NULL }, /* 0x45 */ - { 1, 0, NULL }, /* 0x46 */ - { 1, 0, NULL }, /* 0x47 */ - { 1, 0, NULL }, /* 0x48 */ - { 1, 0, NULL }, /* 0x49 */ - { 1, 0, NULL }, /* 0x4A */ - { 1, 0, NULL }, /* 0x4B */ - { 1, 0, NULL }, /* 0x4C */ - { 1, 0, NULL }, /* 0x4D */ - { 0x02, 0xFF, aImplUniToDBCSTab_JIS0212_4E }, /* 0x4E */ - { 0x00, 0xFF, aImplUniToDBCSTab_JIS0212_4F }, /* 0x4F */ - { 0x00, 0xFE, aImplUniToDBCSTab_JIS0212_50 }, /* 0x50 */ - { 0x03, 0xF7, aImplUniToDBCSTab_JIS0212_51 }, /* 0x51 */ - { 0x01, 0xF7, aImplUniToDBCSTab_JIS0212_52 }, /* 0x52 */ - { 0x00, 0xF5, aImplUniToDBCSTab_JIS0212_53 }, /* 0x53 */ - { 0x02, 0xFF, aImplUniToDBCSTab_JIS0212_54 }, /* 0x54 */ - { 0x00, 0xFF, aImplUniToDBCSTab_JIS0212_55 }, /* 0x55 */ - { 0x05, 0xF7, aImplUniToDBCSTab_JIS0212_56 }, /* 0x56 */ - { 0x01, 0xFF, aImplUniToDBCSTab_JIS0212_57 }, /* 0x57 */ - { 0x03, 0xF3, aImplUniToDBCSTab_JIS0212_58 }, /* 0x58 */ - { 0x05, 0xF7, aImplUniToDBCSTab_JIS0212_59 }, /* 0x59 */ - { 0x00, 0xFD, aImplUniToDBCSTab_JIS0212_5A }, /* 0x5A */ - { 0x00, 0xFD, aImplUniToDBCSTab_JIS0212_5B }, /* 0x5B */ - { 0x0C, 0xF4, aImplUniToDBCSTab_JIS0212_5C }, /* 0x5C */ - { 0x01, 0xF9, aImplUniToDBCSTab_JIS0212_5D }, /* 0x5D */ - { 0x00, 0xEB, aImplUniToDBCSTab_JIS0212_5E }, /* 0x5E */ - { 0x02, 0xFC, aImplUniToDBCSTab_JIS0212_5F }, /* 0x5F */ - { 0x07, 0xFD, aImplUniToDBCSTab_JIS0212_60 }, /* 0x60 */ - { 0x02, 0xEF, aImplUniToDBCSTab_JIS0212_61 }, /* 0x61 */ - { 0x01, 0xFD, aImplUniToDBCSTab_JIS0212_62 }, /* 0x62 */ - { 0x03, 0xF9, aImplUniToDBCSTab_JIS0212_63 }, /* 0x63 */ - { 0x09, 0xFF, aImplUniToDBCSTab_JIS0212_64 }, /* 0x64 */ - { 0x01, 0xFF, aImplUniToDBCSTab_JIS0212_65 }, /* 0x65 */ - { 0x00, 0xFB, aImplUniToDBCSTab_JIS0212_66 }, /* 0x66 */ - { 0x05, 0xF9, aImplUniToDBCSTab_JIS0212_67 }, /* 0x67 */ - { 0x04, 0xFD, aImplUniToDBCSTab_JIS0212_68 }, /* 0x68 */ - { 0x06, 0xFE, aImplUniToDBCSTab_JIS0212_69 }, /* 0x69 */ - { 0x00, 0xFD, aImplUniToDBCSTab_JIS0212_6A }, /* 0x6A */ - { 0x02, 0xFF, aImplUniToDBCSTab_JIS0212_6B }, /* 0x6B */ - { 0x02, 0xF4, aImplUniToDBCSTab_JIS0212_6C }, /* 0x6C */ - { 0x04, 0xFC, aImplUniToDBCSTab_JIS0212_6D }, /* 0x6D */ - { 0x00, 0xFD, aImplUniToDBCSTab_JIS0212_6E }, /* 0x6E */ - { 0x04, 0xFD, aImplUniToDBCSTab_JIS0212_6F }, /* 0x6F */ - { 0x00, 0xFA, aImplUniToDBCSTab_JIS0212_70 }, /* 0x70 */ - { 0x03, 0xFE, aImplUniToDBCSTab_JIS0212_71 }, /* 0x71 */ - { 0x00, 0xFE, aImplUniToDBCSTab_JIS0212_72 }, /* 0x72 */ - { 0x02, 0xFF, aImplUniToDBCSTab_JIS0212_73 }, /* 0x73 */ - { 0x00, 0xFF, aImplUniToDBCSTab_JIS0212_74 }, /* 0x74 */ - { 0x06, 0xF9, aImplUniToDBCSTab_JIS0212_75 }, /* 0x75 */ - { 0x00, 0xFC, aImplUniToDBCSTab_JIS0212_76 }, /* 0x76 */ - { 0x00, 0xFB, aImplUniToDBCSTab_JIS0212_77 }, /* 0x77 */ - { 0x05, 0xFF, aImplUniToDBCSTab_JIS0212_78 }, /* 0x78 */ - { 0x00, 0xFC, aImplUniToDBCSTab_JIS0212_79 }, /* 0x79 */ - { 0x02, 0xFE, aImplUniToDBCSTab_JIS0212_7A }, /* 0x7A */ - { 0x07, 0xFE, aImplUniToDBCSTab_JIS0212_7B }, /* 0x7B */ - { 0x01, 0xF5, aImplUniToDBCSTab_JIS0212_7C }, /* 0x7C */ - { 0x03, 0xFA, aImplUniToDBCSTab_JIS0212_7D }, /* 0x7D */ - { 0x00, 0x9E, aImplUniToDBCSTab_JIS0212_7E }, /* 0x7E */ - { 0x3B, 0xFF, aImplUniToDBCSTab_JIS0212_7F }, /* 0x7F */ - { 0x07, 0xFE, aImplUniToDBCSTab_JIS0212_80 }, /* 0x80 */ - { 0x03, 0xFF, aImplUniToDBCSTab_JIS0212_81 }, /* 0x81 */ - { 0x00, 0xFE, aImplUniToDBCSTab_JIS0212_82 }, /* 0x82 */ - { 0x00, 0xFC, aImplUniToDBCSTab_JIS0212_83 }, /* 0x83 */ - { 0x01, 0xFD, aImplUniToDBCSTab_JIS0212_84 }, /* 0x84 */ - { 0x02, 0xFF, aImplUniToDBCSTab_JIS0212_85 }, /* 0x85 */ - { 0x00, 0xFD, aImplUniToDBCSTab_JIS0212_86 }, /* 0x86 */ - { 0x04, 0xFF, aImplUniToDBCSTab_JIS0212_87 }, /* 0x87 */ - { 0x01, 0xF7, aImplUniToDBCSTab_JIS0212_88 }, /* 0x88 */ - { 0x01, 0xFF, aImplUniToDBCSTab_JIS0212_89 }, /* 0x89 */ - { 0x04, 0xFF, aImplUniToDBCSTab_JIS0212_8A }, /* 0x8A */ - { 0x05, 0x9F, aImplUniToDBCSTab_JIS0212_8B }, /* 0x8B */ - { 0x38, 0xFF, aImplUniToDBCSTab_JIS0212_8C }, /* 0x8C */ - { 0x01, 0xFD, aImplUniToDBCSTab_JIS0212_8D }, /* 0x8D */ - { 0x01, 0xFA, aImplUniToDBCSTab_JIS0212_8E }, /* 0x8E */ - { 0x00, 0xFE, aImplUniToDBCSTab_JIS0212_8F }, /* 0x8F */ - { 0x02, 0xFF, aImplUniToDBCSTab_JIS0212_90 }, /* 0x90 */ - { 0x00, 0xFD, aImplUniToDBCSTab_JIS0212_91 }, /* 0x91 */ - { 0x00, 0xFF, aImplUniToDBCSTab_JIS0212_92 }, /* 0x92 */ - { 0x00, 0xFD, aImplUniToDBCSTab_JIS0212_93 }, /* 0x93 */ - { 0x01, 0x84, aImplUniToDBCSTab_JIS0212_94 }, /* 0x94 */ - { 0x78, 0xE6, aImplUniToDBCSTab_JIS0212_95 }, /* 0x95 */ - { 0x1D, 0xFA, aImplUniToDBCSTab_JIS0212_96 }, /* 0x96 */ - { 0x02, 0xFA, aImplUniToDBCSTab_JIS0212_97 }, /* 0x97 */ - { 0x07, 0xF6, aImplUniToDBCSTab_JIS0212_98 }, /* 0x98 */ - { 0x02, 0xFE, aImplUniToDBCSTab_JIS0212_99 }, /* 0x99 */ - { 0x02, 0xFF, aImplUniToDBCSTab_JIS0212_9A }, /* 0x9A */ - { 0x00, 0xFF, aImplUniToDBCSTab_JIS0212_9B }, /* 0x9B */ - { 0x00, 0xF9, aImplUniToDBCSTab_JIS0212_9C }, /* 0x9C */ - { 0x02, 0xFE, aImplUniToDBCSTab_JIS0212_9D }, /* 0x9D */ - { 0x02, 0xFF, aImplUniToDBCSTab_JIS0212_9E }, /* 0x9E */ - { 0x02, 0xA5, aImplUniToDBCSTab_JIS0212_9F }, /* 0x9F */ - { 1, 0, NULL }, /* 0xA0 */ - { 1, 0, NULL }, /* 0xA1 */ - { 1, 0, NULL }, /* 0xA2 */ - { 1, 0, NULL }, /* 0xA3 */ - { 1, 0, NULL }, /* 0xA4 */ - { 1, 0, NULL }, /* 0xA5 */ - { 1, 0, NULL }, /* 0xA6 */ - { 1, 0, NULL }, /* 0xA7 */ - { 1, 0, NULL }, /* 0xA8 */ - { 1, 0, NULL }, /* 0xA9 */ - { 1, 0, NULL }, /* 0xAA */ - { 1, 0, NULL }, /* 0xAB */ - { 1, 0, NULL }, /* 0xAC */ - { 1, 0, NULL }, /* 0xAD */ - { 1, 0, NULL }, /* 0xAE */ - { 1, 0, NULL }, /* 0xAF */ - { 1, 0, NULL }, /* 0xB0 */ - { 1, 0, NULL }, /* 0xB1 */ - { 1, 0, NULL }, /* 0xB2 */ - { 1, 0, NULL }, /* 0xB3 */ - { 1, 0, NULL }, /* 0xB4 */ - { 1, 0, NULL }, /* 0xB5 */ - { 1, 0, NULL }, /* 0xB6 */ - { 1, 0, NULL }, /* 0xB7 */ - { 1, 0, NULL }, /* 0xB8 */ - { 1, 0, NULL }, /* 0xB9 */ - { 1, 0, NULL }, /* 0xBA */ - { 1, 0, NULL }, /* 0xBB */ - { 1, 0, NULL }, /* 0xBC */ - { 1, 0, NULL }, /* 0xBD */ - { 1, 0, NULL }, /* 0xBE */ - { 1, 0, NULL }, /* 0xBF */ - { 1, 0, NULL }, /* 0xC0 */ - { 1, 0, NULL }, /* 0xC1 */ - { 1, 0, NULL }, /* 0xC2 */ - { 1, 0, NULL }, /* 0xC3 */ - { 1, 0, NULL }, /* 0xC4 */ - { 1, 0, NULL }, /* 0xC5 */ - { 1, 0, NULL }, /* 0xC6 */ - { 1, 0, NULL }, /* 0xC7 */ - { 1, 0, NULL }, /* 0xC8 */ - { 1, 0, NULL }, /* 0xC9 */ - { 1, 0, NULL }, /* 0xCA */ - { 1, 0, NULL }, /* 0xCB */ - { 1, 0, NULL }, /* 0xCC */ - { 1, 0, NULL }, /* 0xCD */ - { 1, 0, NULL }, /* 0xCE */ - { 1, 0, NULL }, /* 0xCF */ - { 1, 0, NULL }, /* 0xD0 */ - { 1, 0, NULL }, /* 0xD1 */ - { 1, 0, NULL }, /* 0xD2 */ - { 1, 0, NULL }, /* 0xD3 */ - { 1, 0, NULL }, /* 0xD4 */ - { 1, 0, NULL }, /* 0xD5 */ - { 1, 0, NULL }, /* 0xD6 */ - { 1, 0, NULL }, /* 0xD7 */ - { 1, 0, NULL }, /* 0xD8 */ - { 1, 0, NULL }, /* 0xD9 */ - { 1, 0, NULL }, /* 0xDA */ - { 1, 0, NULL }, /* 0xDB */ - { 1, 0, NULL }, /* 0xDC */ - { 1, 0, NULL }, /* 0xDD */ - { 1, 0, NULL }, /* 0xDE */ - { 1, 0, NULL }, /* 0xDF */ - { 1, 0, NULL }, /* 0xE0 */ - { 1, 0, NULL }, /* 0xE1 */ - { 1, 0, NULL }, /* 0xE2 */ - { 1, 0, NULL }, /* 0xE3 */ - { 1, 0, NULL }, /* 0xE4 */ - { 1, 0, NULL }, /* 0xE5 */ - { 1, 0, NULL }, /* 0xE6 */ - { 1, 0, NULL }, /* 0xE7 */ - { 1, 0, NULL }, /* 0xE8 */ - { 1, 0, NULL }, /* 0xE9 */ - { 1, 0, NULL }, /* 0xEA */ - { 1, 0, NULL }, /* 0xEB */ - { 1, 0, NULL }, /* 0xEC */ - { 1, 0, NULL }, /* 0xED */ - { 1, 0, NULL }, /* 0xEE */ - { 1, 0, NULL }, /* 0xEF */ - { 1, 0, NULL }, /* 0xF0 */ - { 1, 0, NULL }, /* 0xF1 */ - { 1, 0, NULL }, /* 0xF2 */ - { 1, 0, NULL }, /* 0xF3 */ - { 1, 0, NULL }, /* 0xF4 */ - { 1, 0, NULL }, /* 0xF5 */ - { 1, 0, NULL }, /* 0xF6 */ - { 1, 0, NULL }, /* 0xF7 */ - { 1, 0, NULL }, /* 0xF8 */ - { 1, 0, NULL }, /* 0xF9 */ - { 1, 0, NULL }, /* 0xFA */ - { 1, 0, NULL }, /* 0xFB */ - { 1, 0, NULL }, /* 0xFC */ - { 1, 0, NULL }, /* 0xFD */ - { 1, 0, NULL }, /* 0xFE */ - { 1, 0, NULL } /* 0xFF */ + { 0xA1, 0xFF, aImplUniToDBCSTab_JIS0212_00 }, /* 0x00 */ + { 0x00, 0xF5, aImplUniToDBCSTab_JIS0212_01 }, /* 0x01 */ + { 0xC7, 0xDD, aImplUniToDBCSTab_JIS0212_02 }, /* 0x02 */ + { 0x84, 0xCE, aImplUniToDBCSTab_JIS0212_03 }, /* 0x03 */ + { 0x02, 0x5F, aImplUniToDBCSTab_JIS0212_04 }, /* 0x04 */ + { 1, 0, NULL }, /* 0x05 */ + { 1, 0, NULL }, /* 0x06 */ + { 1, 0, NULL }, /* 0x07 */ + { 1, 0, NULL }, /* 0x08 */ + { 1, 0, NULL }, /* 0x09 */ + { 1, 0, NULL }, /* 0x0A */ + { 1, 0, NULL }, /* 0x0B */ + { 1, 0, NULL }, /* 0x0C */ + { 1, 0, NULL }, /* 0x0D */ + { 1, 0, NULL }, /* 0x0E */ + { 1, 0, NULL }, /* 0x0F */ + { 1, 0, NULL }, /* 0x10 */ + { 1, 0, NULL }, /* 0x11 */ + { 1, 0, NULL }, /* 0x12 */ + { 1, 0, NULL }, /* 0x13 */ + { 1, 0, NULL }, /* 0x14 */ + { 1, 0, NULL }, /* 0x15 */ + { 1, 0, NULL }, /* 0x16 */ + { 1, 0, NULL }, /* 0x17 */ + { 1, 0, NULL }, /* 0x18 */ + { 1, 0, NULL }, /* 0x19 */ + { 1, 0, NULL }, /* 0x1A */ + { 1, 0, NULL }, /* 0x1B */ + { 1, 0, NULL }, /* 0x1C */ + { 1, 0, NULL }, /* 0x1D */ + { 1, 0, NULL }, /* 0x1E */ + { 1, 0, NULL }, /* 0x1F */ + { 1, 0, NULL }, /* 0x20 */ + { 0x16, 0x22, aImplUniToDBCSTab_JIS0212_21 }, /* 0x21 */ + { 1, 0, NULL }, /* 0x22 */ + { 1, 0, NULL }, /* 0x23 */ + { 1, 0, NULL }, /* 0x24 */ + { 1, 0, NULL }, /* 0x25 */ + { 1, 0, NULL }, /* 0x26 */ + { 1, 0, NULL }, /* 0x27 */ + { 1, 0, NULL }, /* 0x28 */ + { 1, 0, NULL }, /* 0x29 */ + { 1, 0, NULL }, /* 0x2A */ + { 1, 0, NULL }, /* 0x2B */ + { 1, 0, NULL }, /* 0x2C */ + { 1, 0, NULL }, /* 0x2D */ + { 1, 0, NULL }, /* 0x2E */ + { 1, 0, NULL }, /* 0x2F */ + { 1, 0, NULL }, /* 0x30 */ + { 1, 0, NULL }, /* 0x31 */ + { 1, 0, NULL }, /* 0x32 */ + { 1, 0, NULL }, /* 0x33 */ + { 1, 0, NULL }, /* 0x34 */ + { 1, 0, NULL }, /* 0x35 */ + { 1, 0, NULL }, /* 0x36 */ + { 1, 0, NULL }, /* 0x37 */ + { 1, 0, NULL }, /* 0x38 */ + { 1, 0, NULL }, /* 0x39 */ + { 1, 0, NULL }, /* 0x3A */ + { 1, 0, NULL }, /* 0x3B */ + { 1, 0, NULL }, /* 0x3C */ + { 1, 0, NULL }, /* 0x3D */ + { 1, 0, NULL }, /* 0x3E */ + { 1, 0, NULL }, /* 0x3F */ + { 1, 0, NULL }, /* 0x40 */ + { 1, 0, NULL }, /* 0x41 */ + { 1, 0, NULL }, /* 0x42 */ + { 1, 0, NULL }, /* 0x43 */ + { 1, 0, NULL }, /* 0x44 */ + { 1, 0, NULL }, /* 0x45 */ + { 1, 0, NULL }, /* 0x46 */ + { 1, 0, NULL }, /* 0x47 */ + { 1, 0, NULL }, /* 0x48 */ + { 1, 0, NULL }, /* 0x49 */ + { 1, 0, NULL }, /* 0x4A */ + { 1, 0, NULL }, /* 0x4B */ + { 1, 0, NULL }, /* 0x4C */ + { 1, 0, NULL }, /* 0x4D */ + { 0x02, 0xFF, aImplUniToDBCSTab_JIS0212_4E }, /* 0x4E */ + { 0x00, 0xFF, aImplUniToDBCSTab_JIS0212_4F }, /* 0x4F */ + { 0x00, 0xFE, aImplUniToDBCSTab_JIS0212_50 }, /* 0x50 */ + { 0x03, 0xF7, aImplUniToDBCSTab_JIS0212_51 }, /* 0x51 */ + { 0x01, 0xF7, aImplUniToDBCSTab_JIS0212_52 }, /* 0x52 */ + { 0x00, 0xF5, aImplUniToDBCSTab_JIS0212_53 }, /* 0x53 */ + { 0x02, 0xFF, aImplUniToDBCSTab_JIS0212_54 }, /* 0x54 */ + { 0x00, 0xFF, aImplUniToDBCSTab_JIS0212_55 }, /* 0x55 */ + { 0x05, 0xF7, aImplUniToDBCSTab_JIS0212_56 }, /* 0x56 */ + { 0x01, 0xFF, aImplUniToDBCSTab_JIS0212_57 }, /* 0x57 */ + { 0x03, 0xF3, aImplUniToDBCSTab_JIS0212_58 }, /* 0x58 */ + { 0x05, 0xF7, aImplUniToDBCSTab_JIS0212_59 }, /* 0x59 */ + { 0x00, 0xFD, aImplUniToDBCSTab_JIS0212_5A }, /* 0x5A */ + { 0x00, 0xFD, aImplUniToDBCSTab_JIS0212_5B }, /* 0x5B */ + { 0x0C, 0xF4, aImplUniToDBCSTab_JIS0212_5C }, /* 0x5C */ + { 0x01, 0xF9, aImplUniToDBCSTab_JIS0212_5D }, /* 0x5D */ + { 0x00, 0xEB, aImplUniToDBCSTab_JIS0212_5E }, /* 0x5E */ + { 0x02, 0xFC, aImplUniToDBCSTab_JIS0212_5F }, /* 0x5F */ + { 0x07, 0xFD, aImplUniToDBCSTab_JIS0212_60 }, /* 0x60 */ + { 0x02, 0xEF, aImplUniToDBCSTab_JIS0212_61 }, /* 0x61 */ + { 0x01, 0xFD, aImplUniToDBCSTab_JIS0212_62 }, /* 0x62 */ + { 0x03, 0xF9, aImplUniToDBCSTab_JIS0212_63 }, /* 0x63 */ + { 0x09, 0xFF, aImplUniToDBCSTab_JIS0212_64 }, /* 0x64 */ + { 0x01, 0xFF, aImplUniToDBCSTab_JIS0212_65 }, /* 0x65 */ + { 0x00, 0xFB, aImplUniToDBCSTab_JIS0212_66 }, /* 0x66 */ + { 0x05, 0xF9, aImplUniToDBCSTab_JIS0212_67 }, /* 0x67 */ + { 0x04, 0xFD, aImplUniToDBCSTab_JIS0212_68 }, /* 0x68 */ + { 0x06, 0xFE, aImplUniToDBCSTab_JIS0212_69 }, /* 0x69 */ + { 0x00, 0xFD, aImplUniToDBCSTab_JIS0212_6A }, /* 0x6A */ + { 0x02, 0xFF, aImplUniToDBCSTab_JIS0212_6B }, /* 0x6B */ + { 0x02, 0xF4, aImplUniToDBCSTab_JIS0212_6C }, /* 0x6C */ + { 0x04, 0xFC, aImplUniToDBCSTab_JIS0212_6D }, /* 0x6D */ + { 0x00, 0xFD, aImplUniToDBCSTab_JIS0212_6E }, /* 0x6E */ + { 0x04, 0xFD, aImplUniToDBCSTab_JIS0212_6F }, /* 0x6F */ + { 0x00, 0xFA, aImplUniToDBCSTab_JIS0212_70 }, /* 0x70 */ + { 0x03, 0xFE, aImplUniToDBCSTab_JIS0212_71 }, /* 0x71 */ + { 0x00, 0xFE, aImplUniToDBCSTab_JIS0212_72 }, /* 0x72 */ + { 0x02, 0xFF, aImplUniToDBCSTab_JIS0212_73 }, /* 0x73 */ + { 0x00, 0xFF, aImplUniToDBCSTab_JIS0212_74 }, /* 0x74 */ + { 0x06, 0xF9, aImplUniToDBCSTab_JIS0212_75 }, /* 0x75 */ + { 0x00, 0xFC, aImplUniToDBCSTab_JIS0212_76 }, /* 0x76 */ + { 0x00, 0xFB, aImplUniToDBCSTab_JIS0212_77 }, /* 0x77 */ + { 0x05, 0xFF, aImplUniToDBCSTab_JIS0212_78 }, /* 0x78 */ + { 0x00, 0xFC, aImplUniToDBCSTab_JIS0212_79 }, /* 0x79 */ + { 0x02, 0xFE, aImplUniToDBCSTab_JIS0212_7A }, /* 0x7A */ + { 0x07, 0xFE, aImplUniToDBCSTab_JIS0212_7B }, /* 0x7B */ + { 0x01, 0xF5, aImplUniToDBCSTab_JIS0212_7C }, /* 0x7C */ + { 0x03, 0xFA, aImplUniToDBCSTab_JIS0212_7D }, /* 0x7D */ + { 0x00, 0x9E, aImplUniToDBCSTab_JIS0212_7E }, /* 0x7E */ + { 0x3B, 0xFF, aImplUniToDBCSTab_JIS0212_7F }, /* 0x7F */ + { 0x07, 0xFE, aImplUniToDBCSTab_JIS0212_80 }, /* 0x80 */ + { 0x03, 0xFF, aImplUniToDBCSTab_JIS0212_81 }, /* 0x81 */ + { 0x00, 0xFE, aImplUniToDBCSTab_JIS0212_82 }, /* 0x82 */ + { 0x00, 0xFC, aImplUniToDBCSTab_JIS0212_83 }, /* 0x83 */ + { 0x01, 0xFD, aImplUniToDBCSTab_JIS0212_84 }, /* 0x84 */ + { 0x02, 0xFF, aImplUniToDBCSTab_JIS0212_85 }, /* 0x85 */ + { 0x00, 0xFD, aImplUniToDBCSTab_JIS0212_86 }, /* 0x86 */ + { 0x04, 0xFF, aImplUniToDBCSTab_JIS0212_87 }, /* 0x87 */ + { 0x01, 0xF7, aImplUniToDBCSTab_JIS0212_88 }, /* 0x88 */ + { 0x01, 0xFF, aImplUniToDBCSTab_JIS0212_89 }, /* 0x89 */ + { 0x04, 0xFF, aImplUniToDBCSTab_JIS0212_8A }, /* 0x8A */ + { 0x05, 0x9F, aImplUniToDBCSTab_JIS0212_8B }, /* 0x8B */ + { 0x38, 0xFF, aImplUniToDBCSTab_JIS0212_8C }, /* 0x8C */ + { 0x01, 0xFD, aImplUniToDBCSTab_JIS0212_8D }, /* 0x8D */ + { 0x01, 0xFA, aImplUniToDBCSTab_JIS0212_8E }, /* 0x8E */ + { 0x00, 0xFE, aImplUniToDBCSTab_JIS0212_8F }, /* 0x8F */ + { 0x02, 0xFF, aImplUniToDBCSTab_JIS0212_90 }, /* 0x90 */ + { 0x00, 0xFD, aImplUniToDBCSTab_JIS0212_91 }, /* 0x91 */ + { 0x00, 0xFF, aImplUniToDBCSTab_JIS0212_92 }, /* 0x92 */ + { 0x00, 0xFD, aImplUniToDBCSTab_JIS0212_93 }, /* 0x93 */ + { 0x01, 0x84, aImplUniToDBCSTab_JIS0212_94 }, /* 0x94 */ + { 0x78, 0xE6, aImplUniToDBCSTab_JIS0212_95 }, /* 0x95 */ + { 0x1D, 0xFA, aImplUniToDBCSTab_JIS0212_96 }, /* 0x96 */ + { 0x02, 0xFA, aImplUniToDBCSTab_JIS0212_97 }, /* 0x97 */ + { 0x07, 0xF6, aImplUniToDBCSTab_JIS0212_98 }, /* 0x98 */ + { 0x02, 0xFE, aImplUniToDBCSTab_JIS0212_99 }, /* 0x99 */ + { 0x02, 0xFF, aImplUniToDBCSTab_JIS0212_9A }, /* 0x9A */ + { 0x00, 0xFF, aImplUniToDBCSTab_JIS0212_9B }, /* 0x9B */ + { 0x00, 0xF9, aImplUniToDBCSTab_JIS0212_9C }, /* 0x9C */ + { 0x02, 0xFE, aImplUniToDBCSTab_JIS0212_9D }, /* 0x9D */ + { 0x02, 0xFF, aImplUniToDBCSTab_JIS0212_9E }, /* 0x9E */ + { 0x02, 0xA5, aImplUniToDBCSTab_JIS0212_9F }, /* 0x9F */ + { 1, 0, NULL }, /* 0xA0 */ + { 1, 0, NULL }, /* 0xA1 */ + { 1, 0, NULL }, /* 0xA2 */ + { 1, 0, NULL }, /* 0xA3 */ + { 1, 0, NULL }, /* 0xA4 */ + { 1, 0, NULL }, /* 0xA5 */ + { 1, 0, NULL }, /* 0xA6 */ + { 1, 0, NULL }, /* 0xA7 */ + { 1, 0, NULL }, /* 0xA8 */ + { 1, 0, NULL }, /* 0xA9 */ + { 1, 0, NULL }, /* 0xAA */ + { 1, 0, NULL }, /* 0xAB */ + { 1, 0, NULL }, /* 0xAC */ + { 1, 0, NULL }, /* 0xAD */ + { 1, 0, NULL }, /* 0xAE */ + { 1, 0, NULL }, /* 0xAF */ + { 1, 0, NULL }, /* 0xB0 */ + { 1, 0, NULL }, /* 0xB1 */ + { 1, 0, NULL }, /* 0xB2 */ + { 1, 0, NULL }, /* 0xB3 */ + { 1, 0, NULL }, /* 0xB4 */ + { 1, 0, NULL }, /* 0xB5 */ + { 1, 0, NULL }, /* 0xB6 */ + { 1, 0, NULL }, /* 0xB7 */ + { 1, 0, NULL }, /* 0xB8 */ + { 1, 0, NULL }, /* 0xB9 */ + { 1, 0, NULL }, /* 0xBA */ + { 1, 0, NULL }, /* 0xBB */ + { 1, 0, NULL }, /* 0xBC */ + { 1, 0, NULL }, /* 0xBD */ + { 1, 0, NULL }, /* 0xBE */ + { 1, 0, NULL }, /* 0xBF */ + { 1, 0, NULL }, /* 0xC0 */ + { 1, 0, NULL }, /* 0xC1 */ + { 1, 0, NULL }, /* 0xC2 */ + { 1, 0, NULL }, /* 0xC3 */ + { 1, 0, NULL }, /* 0xC4 */ + { 1, 0, NULL }, /* 0xC5 */ + { 1, 0, NULL }, /* 0xC6 */ + { 1, 0, NULL }, /* 0xC7 */ + { 1, 0, NULL }, /* 0xC8 */ + { 1, 0, NULL }, /* 0xC9 */ + { 1, 0, NULL }, /* 0xCA */ + { 1, 0, NULL }, /* 0xCB */ + { 1, 0, NULL }, /* 0xCC */ + { 1, 0, NULL }, /* 0xCD */ + { 1, 0, NULL }, /* 0xCE */ + { 1, 0, NULL }, /* 0xCF */ + { 1, 0, NULL }, /* 0xD0 */ + { 1, 0, NULL }, /* 0xD1 */ + { 1, 0, NULL }, /* 0xD2 */ + { 1, 0, NULL }, /* 0xD3 */ + { 1, 0, NULL }, /* 0xD4 */ + { 1, 0, NULL }, /* 0xD5 */ + { 1, 0, NULL }, /* 0xD6 */ + { 1, 0, NULL }, /* 0xD7 */ + { 1, 0, NULL }, /* 0xD8 */ + { 1, 0, NULL }, /* 0xD9 */ + { 1, 0, NULL }, /* 0xDA */ + { 1, 0, NULL }, /* 0xDB */ + { 1, 0, NULL }, /* 0xDC */ + { 1, 0, NULL }, /* 0xDD */ + { 1, 0, NULL }, /* 0xDE */ + { 1, 0, NULL }, /* 0xDF */ + { 1, 0, NULL }, /* 0xE0 */ + { 1, 0, NULL }, /* 0xE1 */ + { 1, 0, NULL }, /* 0xE2 */ + { 1, 0, NULL }, /* 0xE3 */ + { 1, 0, NULL }, /* 0xE4 */ + { 1, 0, NULL }, /* 0xE5 */ + { 1, 0, NULL }, /* 0xE6 */ + { 1, 0, NULL }, /* 0xE7 */ + { 1, 0, NULL }, /* 0xE8 */ + { 1, 0, NULL }, /* 0xE9 */ + { 1, 0, NULL }, /* 0xEA */ + { 1, 0, NULL }, /* 0xEB */ + { 1, 0, NULL }, /* 0xEC */ + { 1, 0, NULL }, /* 0xED */ + { 1, 0, NULL }, /* 0xEE */ + { 1, 0, NULL }, /* 0xEF */ + { 1, 0, NULL }, /* 0xF0 */ + { 1, 0, NULL }, /* 0xF1 */ + { 1, 0, NULL }, /* 0xF2 */ + { 1, 0, NULL }, /* 0xF3 */ + { 1, 0, NULL }, /* 0xF4 */ + { 1, 0, NULL }, /* 0xF5 */ + { 1, 0, NULL }, /* 0xF6 */ + { 1, 0, NULL }, /* 0xF7 */ + { 1, 0, NULL }, /* 0xF8 */ + { 1, 0, NULL }, /* 0xF9 */ + { 1, 0, NULL }, /* 0xFA */ + { 1, 0, NULL }, /* 0xFB */ + { 1, 0, NULL }, /* 0xFC */ + { 1, 0, NULL }, /* 0xFD */ + { 1, 0, NULL }, /* 0xFE */ + { 1, 0, NULL } /* 0xFF */ }; /* ----------------------------------------------------------------------- */ @@ -2615,54 +2556,36 @@ static ImplEUCJPConvertData const aImplEUCJPCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData const aImplEUCJPTextConverterData = -{ - &aImplEUCJPCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplEUCJPTextConverter = -{ - &aImplEUCJPTextConverterData, - ImplEUCJPToUnicode, - ImplUnicodeToEUCJP, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplEUCJPTextEncodingData = -{ - &aImplEUCJPTextConverter, - RTL_TEXTENCODING_EUC_JP, - 1, 3, 2, - 128, - 932, - 1, - (const sal_Char*)"euc-jp", - (const sal_Char*)"euc-jp", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_MULTIBYTE | - RTL_TEXTENCODING_INFO_MIME, - SCRIPT_JAPANESE -}; +static ImplTextEncodingData const aImplEUCJPTextEncodingData + = { { &aImplEUCJPCvtData, + ImplEUCJPToUnicode, + ImplUnicodeToEUCJP, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_EUC_JP, + 1, + 3, + 2, + 128, + "euc-jp", + "euc-jp", + RTL_TEXTENCODING_INFO_ASCII + | RTL_TEXTENCODING_INFO_MULTIBYTE + | RTL_TEXTENCODING_INFO_MIME }; + /* SCRIPT_JAPANESE, pc code page 932, mac encoding 1 */ /* ======================================================================= */ /* !!! JIS - X Encodings not complete !!! */ #define HALFWIDTHKANA_START 0xFF61 -#define HALFWIDTHKANA_END 0xFF9F +#define HALFWIDTHKANA_END 0xFF9F -static sal_uChar aImplJISX0201Tab[HALFWIDTHKANA_END - HALFWIDTHKANA_START + 1] = +static sal_uChar const aImplJISX0201Tab[HALFWIDTHKANA_END - HALFWIDTHKANA_START + 1] = { 0xA1, 0xA2, 0xA3, 0xA4, 0x5A, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, @@ -2672,7 +2595,7 @@ static sal_uChar aImplJISX0201Tab[HALFWIDTHKANA_END - HALFWIDTHKANA_START + 1] = /* ----------------------------------------------------------------------- */ -static ImplByteConvertData aImplJISX0201ByteCvtData = +static ImplByteConvertData const aImplJISX0201ByteCvtData = { NULL, NULL, @@ -2688,43 +2611,25 @@ static ImplByteConvertData aImplJISX0201ByteCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData aImplJISX0201TextConverterData = -{ - &aImplJISX0201ByteCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter aImplJISX0201TextConverter = -{ - &aImplJISX0201TextConverterData, - NULL, - ImplUnicodeToChar, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData aImplJISX0201TextEncodingData = -{ - &aImplJISX0201TextConverter, - RTL_TEXTENCODING_JIS_X_0201, - 1, 1, 1, - 128, - 923, - 1, - (const sal_Char*)"euc-jp", - (const sal_Char*)"euc-jp", - RTL_TEXTENCODING_INFO_MULTIBYTE, - SCRIPT_JAPANESE, -}; +static ImplTextEncodingData const aImplJISX0201TextEncodingData + = { { &aImplJISX0201ByteCvtData, + NULL, + ImplUnicodeToChar, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_JIS_X_0201, + 1, + 1, + 1, + 128, + "euc-jp", + "euc-jp", + RTL_TEXTENCODING_INFO_MULTIBYTE }; + /* SCRIPT_JAPANESE, pc code page 932, mac encoding 1 */ /* ======================================================================= */ @@ -2739,43 +2644,25 @@ static ImplDBCSConvertData const aImplJISX0208DBCSCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData aImplJISX0208TextConverterData = -{ - &aImplJISX0208DBCSCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT, -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter aImplJISX0208TextConverter = -{ - &aImplJISX0208TextConverterData, - NULL, - ImplUnicodeToDBCS, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData aImplJISX0208TextEncodingData = -{ - &aImplJISX0208TextConverter, - RTL_TEXTENCODING_JIS_X_0208, - 2, 2, 2, - 128, - 932, - 1, - (const sal_Char*)"euc-jp", - (const sal_Char*)"euc-jp", - RTL_TEXTENCODING_INFO_MULTIBYTE, - SCRIPT_JAPANESE, -}; +static ImplTextEncodingData const aImplJISX0208TextEncodingData + = { { &aImplJISX0208DBCSCvtData, + NULL, + ImplUnicodeToDBCS, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_JIS_X_0208, + 2, + 2, + 2, + 128, + "euc-jp", + "euc-jp", + RTL_TEXTENCODING_INFO_MULTIBYTE }; + /* SCRIPT_JAPANESE, pc code page 932, mac encoding 1 */ /* ======================================================================= */ @@ -2790,40 +2677,22 @@ static ImplDBCSConvertData const aImplJISX0212DBCSCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData aImplJISX0212TextConverterData = -{ - &aImplJISX0212DBCSCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT, -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter aImplJISX0212TextConverter = -{ - &aImplJISX0212TextConverterData, - NULL, - ImplUnicodeToDBCS, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData aImplJISX0212TextEncodingData = -{ - &aImplJISX0212TextConverter, - RTL_TEXTENCODING_JIS_X_0212, - 2, 2, 2, - 128, - 923, - 1, - (const sal_Char*)"euc-jp", - (const sal_Char*)"euc-jp", - RTL_TEXTENCODING_INFO_MULTIBYTE, - SCRIPT_JAPANESE, -}; +static ImplTextEncodingData const aImplJISX0212TextEncodingData + = { { &aImplJISX0212DBCSCvtData, + NULL, + ImplUnicodeToDBCS, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_JIS_X_0212, + 2, + 2, + 2, + 128, + "euc-jp", + "euc-jp", + RTL_TEXTENCODING_INFO_MULTIBYTE }; + /* SCRIPT_JAPANESE, pc code page 932, mac encoding 1 */ diff --git a/sal/textenc/tcvtkr6.tab b/sal/textenc/tcvtkr6.tab index 5f8ea029c..d1f06692c 100644 --- a/sal/textenc/tcvtkr6.tab +++ b/sal/textenc/tcvtkr6.tab @@ -1,60 +1,60 @@ /************************************************************************* * - * $RCSfile: tcvtkr6.tab,v $ + * $RCSfile: tcvtkr6.tab,v $ * - * $Revision: 1.2 $ + * $Revision: 1.3 $ * - * last change: $Author: th $ $Date: 2000-12-13 22:22:20 $ + * last change: $Author: sb $ $Date: 2001-10-12 10:44:53 $ * - * The Contents of this file are made available subject to the terms of - * either of the following licenses + * The Contents of this file are made available subject to the terms of + * either of the following licenses * - * - GNU Lesser General Public License Version 2.1 - * - Sun Industry Standards Source License Version 1.1 + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 * - * Sun Microsystems Inc., October, 2000 + * Sun Microsystems Inc., October, 2000 * - * GNU Lesser General Public License Version 2.1 - * ============================================= - * Copyright 2000 by Sun Microsystems, Inc. - * 901 San Antonio Road, Palo Alto, CA 94303, USA + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License version 2.1, as published by the Free Software Foundation. + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA * * - * Sun Industry Standards Source License Version 1.1 - * ================================================= - * The contents of this file are subject to the Sun Industry Standards - * Source License Version 1.1 (the "License"); You may not use this file - * except in compliance with the License. You may obtain a copy of the - * License at http://www.openoffice.org/license.html. + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. * - * Software provided under this License is provided on an "AS IS" basis, - * WITHOUT WARRUNTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, - * WITHOUT LIMITATION, WARRUNTIES THAT THE SOFTWARE IS FREE OF DEFECTS, - * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. - * See the License for the specific provisions governing your rights and - * obligations concerning the Software. + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRUNTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRUNTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. * - * The Initial Developer of the Original Code is: Sun Microsystems, Inc.. + * The Initial Developer of the Original Code is: Sun Microsystems, Inc.. * - * Copyright: 2000 by Sun Microsystems, Inc. + * Copyright: 2000 by Sun Microsystems, Inc. * - * All Rights Reserved. + * All Rights Reserved. * - * Contributor(s): _______________________________________ + * Contributor(s): _______________________________________ * * ************************************************************************/ @@ -69,540 +69,540 @@ static ImplDBCSToUniLeadTab const aKSC5601UniLeadTab[256] = { - { 0x0000, 0, 0, NULL }, /* 0x00 */ - { 0x0001, 0, 0, NULL }, /* 0x01 */ - { 0x0002, 0, 0, NULL }, /* 0x02 */ - { 0x0003, 0, 0, NULL }, /* 0x03 */ - { 0x0004, 0, 0, NULL }, /* 0x04 */ - { 0x0005, 0, 0, NULL }, /* 0x05 */ - { 0x0006, 0, 0, NULL }, /* 0x06 */ - { 0x0007, 0, 0, NULL }, /* 0x07 */ - { 0x0008, 0, 0, NULL }, /* 0x08 */ - { 0x0009, 0, 0, NULL }, /* 0x09 */ - { 0x000A, 0, 0, NULL }, /* 0x0A */ - { 0x000B, 0, 0, NULL }, /* 0x0B */ - { 0x000C, 0, 0, NULL }, /* 0x0C */ - { 0x000D, 0, 0, NULL }, /* 0x0D */ - { 0x000E, 0, 0, NULL }, /* 0x0E */ - { 0x000F, 0, 0, NULL }, /* 0x0F */ - { 0x0010, 0, 0, NULL }, /* 0x10 */ - { 0x0011, 0, 0, NULL }, /* 0x11 */ - { 0x0012, 0, 0, NULL }, /* 0x12 */ - { 0x0013, 0, 0, NULL }, /* 0x13 */ - { 0x0014, 0, 0, NULL }, /* 0x14 */ - { 0x0015, 0, 0, NULL }, /* 0x15 */ - { 0x0016, 0, 0, NULL }, /* 0x16 */ - { 0x0017, 0, 0, NULL }, /* 0x17 */ - { 0x0018, 0, 0, NULL }, /* 0x18 */ - { 0x0019, 0, 0, NULL }, /* 0x19 */ - { 0x001A, 0, 0, NULL }, /* 0x1A */ - { 0x001B, 0, 0, NULL }, /* 0x1B */ - { 0x001C, 0, 0, NULL }, /* 0x1C */ - { 0x001D, 0, 0, NULL }, /* 0x1D */ - { 0x001E, 0, 0, NULL }, /* 0x1E */ - { 0x001F, 0, 0, NULL }, /* 0x1F */ - { 0x0020, 0, 0, NULL }, /* 0x20 */ - { 0x0021, 0, 0, NULL }, /* 0x21 */ - { 0x0022, 0, 0, NULL }, /* 0x22 */ - { 0x0023, 0, 0, NULL }, /* 0x23 */ - { 0x0024, 0, 0, NULL }, /* 0x24 */ - { 0x0025, 0, 0, NULL }, /* 0x25 */ - { 0x0026, 0, 0, NULL }, /* 0x26 */ - { 0x0027, 0, 0, NULL }, /* 0x27 */ - { 0x0028, 0, 0, NULL }, /* 0x28 */ - { 0x0029, 0, 0, NULL }, /* 0x29 */ - { 0x002A, 0, 0, NULL }, /* 0x2A */ - { 0x002B, 0, 0, NULL }, /* 0x2B */ - { 0x002C, 0, 0, NULL }, /* 0x2C */ - { 0x002D, 0, 0, NULL }, /* 0x2D */ - { 0x002E, 0, 0, NULL }, /* 0x2E */ - { 0x002F, 0, 0, NULL }, /* 0x2F */ - { 0x0030, 0, 0, NULL }, /* 0x30 */ - { 0x0031, 0, 0, NULL }, /* 0x31 */ - { 0x0032, 0, 0, NULL }, /* 0x32 */ - { 0x0033, 0, 0, NULL }, /* 0x33 */ - { 0x0034, 0, 0, NULL }, /* 0x34 */ - { 0x0035, 0, 0, NULL }, /* 0x35 */ - { 0x0036, 0, 0, NULL }, /* 0x36 */ - { 0x0037, 0, 0, NULL }, /* 0x37 */ - { 0x0038, 0, 0, NULL }, /* 0x38 */ - { 0x0039, 0, 0, NULL }, /* 0x39 */ - { 0x003A, 0, 0, NULL }, /* 0x3A */ - { 0x003B, 0, 0, NULL }, /* 0x3B */ - { 0x003C, 0, 0, NULL }, /* 0x3C */ - { 0x003D, 0, 0, NULL }, /* 0x3D */ - { 0x003E, 0, 0, NULL }, /* 0x3E */ - { 0x003F, 0, 0, NULL }, /* 0x3F */ - { 0x0040, 0, 0, NULL }, /* 0x40 */ - { 0x0041, 0, 0, NULL }, /* 0x41 */ - { 0x0042, 0, 0, NULL }, /* 0x42 */ - { 0x0043, 0, 0, NULL }, /* 0x43 */ - { 0x0044, 0, 0, NULL }, /* 0x44 */ - { 0x0045, 0, 0, NULL }, /* 0x45 */ - { 0x0046, 0, 0, NULL }, /* 0x46 */ - { 0x0047, 0, 0, NULL }, /* 0x47 */ - { 0x0048, 0, 0, NULL }, /* 0x48 */ - { 0x0049, 0, 0, NULL }, /* 0x49 */ - { 0x004A, 0, 0, NULL }, /* 0x4A */ - { 0x004B, 0, 0, NULL }, /* 0x4B */ - { 0x004C, 0, 0, NULL }, /* 0x4C */ - { 0x004D, 0, 0, NULL }, /* 0x4D */ - { 0x004E, 0, 0, NULL }, /* 0x4E */ - { 0x004F, 0, 0, NULL }, /* 0x4F */ - { 0x0050, 0, 0, NULL }, /* 0x50 */ - { 0x0051, 0, 0, NULL }, /* 0x51 */ - { 0x0052, 0, 0, NULL }, /* 0x52 */ - { 0x0053, 0, 0, NULL }, /* 0x53 */ - { 0x0054, 0, 0, NULL }, /* 0x54 */ - { 0x0055, 0, 0, NULL }, /* 0x55 */ - { 0x0056, 0, 0, NULL }, /* 0x56 */ - { 0x0057, 0, 0, NULL }, /* 0x57 */ - { 0x0058, 0, 0, NULL }, /* 0x58 */ - { 0x0059, 0, 0, NULL }, /* 0x59 */ - { 0x005A, 0, 0, NULL }, /* 0x5A */ - { 0x005B, 0, 0, NULL }, /* 0x5B */ - { 0x005C, 0, 0, NULL }, /* 0x5C */ - { 0x005D, 0, 0, NULL }, /* 0x5D */ - { 0x005E, 0, 0, NULL }, /* 0x5E */ - { 0x005F, 0, 0, NULL }, /* 0x5F */ - { 0x0060, 0, 0, NULL }, /* 0x60 */ - { 0x0061, 0, 0, NULL }, /* 0x61 */ - { 0x0062, 0, 0, NULL }, /* 0x62 */ - { 0x0063, 0, 0, NULL }, /* 0x63 */ - { 0x0064, 0, 0, NULL }, /* 0x64 */ - { 0x0065, 0, 0, NULL }, /* 0x65 */ - { 0x0066, 0, 0, NULL }, /* 0x66 */ - { 0x0067, 0, 0, NULL }, /* 0x67 */ - { 0x0068, 0, 0, NULL }, /* 0x68 */ - { 0x0069, 0, 0, NULL }, /* 0x69 */ - { 0x006A, 0, 0, NULL }, /* 0x6A */ - { 0x006B, 0, 0, NULL }, /* 0x6B */ - { 0x006C, 0, 0, NULL }, /* 0x6C */ - { 0x006D, 0, 0, NULL }, /* 0x6D */ - { 0x006E, 0, 0, NULL }, /* 0x6E */ - { 0x006F, 0, 0, NULL }, /* 0x6F */ - { 0x0070, 0, 0, NULL }, /* 0x70 */ - { 0x0071, 0, 0, NULL }, /* 0x71 */ - { 0x0072, 0, 0, NULL }, /* 0x72 */ - { 0x0073, 0, 0, NULL }, /* 0x73 */ - { 0x0074, 0, 0, NULL }, /* 0x74 */ - { 0x0075, 0, 0, NULL }, /* 0x75 */ - { 0x0076, 0, 0, NULL }, /* 0x76 */ - { 0x0077, 0, 0, NULL }, /* 0x77 */ - { 0x0078, 0, 0, NULL }, /* 0x78 */ - { 0x0079, 0, 0, NULL }, /* 0x79 */ - { 0x007A, 0, 0, NULL }, /* 0x7A */ - { 0x007B, 0, 0, NULL }, /* 0x7B */ - { 0x007C, 0, 0, NULL }, /* 0x7C */ - { 0x007D, 0, 0, NULL }, /* 0x7D */ - { 0x007E, 0, 0, NULL }, /* 0x7E */ - { 0x007F, 0, 0, NULL }, /* 0x7F */ - { 0, 1, 0, NULL }, /* 0x80 */ - { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_81 }, /* 0x81 */ - { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_82 }, /* 0x82 */ - { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_83 }, /* 0x83 */ - { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_84 }, /* 0x84 */ - { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_85 }, /* 0x85 */ - { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_86 }, /* 0x86 */ - { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_87 }, /* 0x87 */ - { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_88 }, /* 0x88 */ - { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_89 }, /* 0x89 */ - { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_8A }, /* 0x8A */ - { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_8B }, /* 0x8B */ - { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_8C }, /* 0x8C */ - { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_8D }, /* 0x8D */ - { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_8E }, /* 0x8E */ - { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_8F }, /* 0x8F */ - { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_90 }, /* 0x90 */ - { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_91 }, /* 0x91 */ - { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_92 }, /* 0x92 */ - { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_93 }, /* 0x93 */ - { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_94 }, /* 0x94 */ - { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_95 }, /* 0x95 */ - { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_96 }, /* 0x96 */ - { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_97 }, /* 0x97 */ - { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_98 }, /* 0x98 */ - { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_99 }, /* 0x99 */ - { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_9A }, /* 0x9A */ - { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_9B }, /* 0x9B */ - { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_9C }, /* 0x9C */ - { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_9D }, /* 0x9D */ - { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_9E }, /* 0x9E */ - { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_9F }, /* 0x9F */ - { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_A0 }, /* 0xA0 */ - { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_A1 }, /* 0xA1 */ - { 0, 0x41, 0xE7, aImplDBCSToUniTab_KSC5601_A2 }, /* 0xA2 */ - { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_A3 }, /* 0xA3 */ - { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_A4 }, /* 0xA4 */ - { 0, 0x41, 0xF8, aImplDBCSToUniTab_KSC5601_A5 }, /* 0xA5 */ - { 0, 0x41, 0xE4, aImplDBCSToUniTab_KSC5601_A6 }, /* 0xA6 */ - { 0, 0x41, 0xEF, aImplDBCSToUniTab_KSC5601_A7 }, /* 0xA7 */ - { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_A8 }, /* 0xA8 */ - { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_A9 }, /* 0xA9 */ - { 0, 0x41, 0xF3, aImplDBCSToUniTab_KSC5601_AA }, /* 0xAA */ - { 0, 0x41, 0xF6, aImplDBCSToUniTab_KSC5601_AB }, /* 0xAB */ - { 0, 0x41, 0xF1, aImplDBCSToUniTab_KSC5601_AC }, /* 0xAC */ - { 0, 0x41, 0xA0, aImplDBCSToUniTab_KSC5601_AD }, /* 0xAD */ - { 0, 0x41, 0xA1, aImplDBCSToUniTab_KSC5601_AE }, /* 0xAE */ - { 0, 0x41, 0xA1, aImplDBCSToUniTab_KSC5601_AF }, /* 0xAF */ - { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_B0 }, /* 0xB0 */ - { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_B1 }, /* 0xB1 */ - { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_B2 }, /* 0xB2 */ - { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_B3 }, /* 0xB3 */ - { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_B4 }, /* 0xB4 */ - { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_B5 }, /* 0xB5 */ - { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_B6 }, /* 0xB6 */ - { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_B7 }, /* 0xB7 */ - { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_B8 }, /* 0xB8 */ - { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_B9 }, /* 0xB9 */ - { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_BA }, /* 0xBA */ - { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_BB }, /* 0xBB */ - { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_BC }, /* 0xBC */ - { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_BD }, /* 0xBD */ - { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_BE }, /* 0xBE */ - { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_BF }, /* 0xBF */ - { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_C0 }, /* 0xC0 */ - { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_C1 }, /* 0xC1 */ - { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_C2 }, /* 0xC2 */ - { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_C3 }, /* 0xC3 */ - { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_C4 }, /* 0xC4 */ - { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_C5 }, /* 0xC5 */ - { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_C6 }, /* 0xC6 */ - { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_C7 }, /* 0xC7 */ - { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_C8 }, /* 0xC8 */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xC9 */ /* We convert this as double byte */ - { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_CA }, /* 0xCA */ - { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_CB }, /* 0xCB */ - { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_CC }, /* 0xCC */ - { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_CD }, /* 0xCD */ - { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_CE }, /* 0xCE */ - { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_CF }, /* 0xCF */ - { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_D0 }, /* 0xD0 */ - { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_D1 }, /* 0xD1 */ - { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_D2 }, /* 0xD2 */ - { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_D3 }, /* 0xD3 */ - { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_D4 }, /* 0xD4 */ - { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_D5 }, /* 0xD5 */ - { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_D6 }, /* 0xD6 */ - { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_D7 }, /* 0xD7 */ - { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_D8 }, /* 0xD8 */ - { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_D9 }, /* 0xD9 */ - { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_DA }, /* 0xDA */ - { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_DB }, /* 0xDB */ - { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_DC }, /* 0xDC */ - { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_DD }, /* 0xDD */ - { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_DE }, /* 0xDE */ - { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_DF }, /* 0xDF */ - { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_E0 }, /* 0xE0 */ - { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_E1 }, /* 0xE1 */ - { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_E2 }, /* 0xE2 */ - { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_E3 }, /* 0xE3 */ - { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_E4 }, /* 0xE4 */ - { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_E5 }, /* 0xE5 */ - { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_E6 }, /* 0xE6 */ - { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_E7 }, /* 0xE7 */ - { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_E8 }, /* 0xE8 */ - { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_E9 }, /* 0xE9 */ - { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_EA }, /* 0xEA */ - { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_EB }, /* 0xEB */ - { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_EC }, /* 0xEC */ - { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_ED }, /* 0xED */ - { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_EE }, /* 0xEE */ - { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_EF }, /* 0xEF */ - { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_F0 }, /* 0xF0 */ - { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_F1 }, /* 0xF1 */ - { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_F2 }, /* 0xF2 */ - { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_F3 }, /* 0xF3 */ - { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_F4 }, /* 0xF4 */ - { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_F5 }, /* 0xF5 */ - { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_F6 }, /* 0xF6 */ - { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_F7 }, /* 0xF7 */ - { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_F8 }, /* 0xF8 */ - { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_F9 }, /* 0xF9 */ - { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_FA }, /* 0xFA */ - { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_FB }, /* 0xFB */ - { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_FC }, /* 0xFC */ - { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_FD }, /* 0xFD */ - { 0, 1, 0, NULL }, /* 0xFE */ - { 0, 1, 0, NULL } /* 0xFF */ + { 0x0000, 0, 0, NULL }, /* 0x00 */ + { 0x0001, 0, 0, NULL }, /* 0x01 */ + { 0x0002, 0, 0, NULL }, /* 0x02 */ + { 0x0003, 0, 0, NULL }, /* 0x03 */ + { 0x0004, 0, 0, NULL }, /* 0x04 */ + { 0x0005, 0, 0, NULL }, /* 0x05 */ + { 0x0006, 0, 0, NULL }, /* 0x06 */ + { 0x0007, 0, 0, NULL }, /* 0x07 */ + { 0x0008, 0, 0, NULL }, /* 0x08 */ + { 0x0009, 0, 0, NULL }, /* 0x09 */ + { 0x000A, 0, 0, NULL }, /* 0x0A */ + { 0x000B, 0, 0, NULL }, /* 0x0B */ + { 0x000C, 0, 0, NULL }, /* 0x0C */ + { 0x000D, 0, 0, NULL }, /* 0x0D */ + { 0x000E, 0, 0, NULL }, /* 0x0E */ + { 0x000F, 0, 0, NULL }, /* 0x0F */ + { 0x0010, 0, 0, NULL }, /* 0x10 */ + { 0x0011, 0, 0, NULL }, /* 0x11 */ + { 0x0012, 0, 0, NULL }, /* 0x12 */ + { 0x0013, 0, 0, NULL }, /* 0x13 */ + { 0x0014, 0, 0, NULL }, /* 0x14 */ + { 0x0015, 0, 0, NULL }, /* 0x15 */ + { 0x0016, 0, 0, NULL }, /* 0x16 */ + { 0x0017, 0, 0, NULL }, /* 0x17 */ + { 0x0018, 0, 0, NULL }, /* 0x18 */ + { 0x0019, 0, 0, NULL }, /* 0x19 */ + { 0x001A, 0, 0, NULL }, /* 0x1A */ + { 0x001B, 0, 0, NULL }, /* 0x1B */ + { 0x001C, 0, 0, NULL }, /* 0x1C */ + { 0x001D, 0, 0, NULL }, /* 0x1D */ + { 0x001E, 0, 0, NULL }, /* 0x1E */ + { 0x001F, 0, 0, NULL }, /* 0x1F */ + { 0x0020, 0, 0, NULL }, /* 0x20 */ + { 0x0021, 0, 0, NULL }, /* 0x21 */ + { 0x0022, 0, 0, NULL }, /* 0x22 */ + { 0x0023, 0, 0, NULL }, /* 0x23 */ + { 0x0024, 0, 0, NULL }, /* 0x24 */ + { 0x0025, 0, 0, NULL }, /* 0x25 */ + { 0x0026, 0, 0, NULL }, /* 0x26 */ + { 0x0027, 0, 0, NULL }, /* 0x27 */ + { 0x0028, 0, 0, NULL }, /* 0x28 */ + { 0x0029, 0, 0, NULL }, /* 0x29 */ + { 0x002A, 0, 0, NULL }, /* 0x2A */ + { 0x002B, 0, 0, NULL }, /* 0x2B */ + { 0x002C, 0, 0, NULL }, /* 0x2C */ + { 0x002D, 0, 0, NULL }, /* 0x2D */ + { 0x002E, 0, 0, NULL }, /* 0x2E */ + { 0x002F, 0, 0, NULL }, /* 0x2F */ + { 0x0030, 0, 0, NULL }, /* 0x30 */ + { 0x0031, 0, 0, NULL }, /* 0x31 */ + { 0x0032, 0, 0, NULL }, /* 0x32 */ + { 0x0033, 0, 0, NULL }, /* 0x33 */ + { 0x0034, 0, 0, NULL }, /* 0x34 */ + { 0x0035, 0, 0, NULL }, /* 0x35 */ + { 0x0036, 0, 0, NULL }, /* 0x36 */ + { 0x0037, 0, 0, NULL }, /* 0x37 */ + { 0x0038, 0, 0, NULL }, /* 0x38 */ + { 0x0039, 0, 0, NULL }, /* 0x39 */ + { 0x003A, 0, 0, NULL }, /* 0x3A */ + { 0x003B, 0, 0, NULL }, /* 0x3B */ + { 0x003C, 0, 0, NULL }, /* 0x3C */ + { 0x003D, 0, 0, NULL }, /* 0x3D */ + { 0x003E, 0, 0, NULL }, /* 0x3E */ + { 0x003F, 0, 0, NULL }, /* 0x3F */ + { 0x0040, 0, 0, NULL }, /* 0x40 */ + { 0x0041, 0, 0, NULL }, /* 0x41 */ + { 0x0042, 0, 0, NULL }, /* 0x42 */ + { 0x0043, 0, 0, NULL }, /* 0x43 */ + { 0x0044, 0, 0, NULL }, /* 0x44 */ + { 0x0045, 0, 0, NULL }, /* 0x45 */ + { 0x0046, 0, 0, NULL }, /* 0x46 */ + { 0x0047, 0, 0, NULL }, /* 0x47 */ + { 0x0048, 0, 0, NULL }, /* 0x48 */ + { 0x0049, 0, 0, NULL }, /* 0x49 */ + { 0x004A, 0, 0, NULL }, /* 0x4A */ + { 0x004B, 0, 0, NULL }, /* 0x4B */ + { 0x004C, 0, 0, NULL }, /* 0x4C */ + { 0x004D, 0, 0, NULL }, /* 0x4D */ + { 0x004E, 0, 0, NULL }, /* 0x4E */ + { 0x004F, 0, 0, NULL }, /* 0x4F */ + { 0x0050, 0, 0, NULL }, /* 0x50 */ + { 0x0051, 0, 0, NULL }, /* 0x51 */ + { 0x0052, 0, 0, NULL }, /* 0x52 */ + { 0x0053, 0, 0, NULL }, /* 0x53 */ + { 0x0054, 0, 0, NULL }, /* 0x54 */ + { 0x0055, 0, 0, NULL }, /* 0x55 */ + { 0x0056, 0, 0, NULL }, /* 0x56 */ + { 0x0057, 0, 0, NULL }, /* 0x57 */ + { 0x0058, 0, 0, NULL }, /* 0x58 */ + { 0x0059, 0, 0, NULL }, /* 0x59 */ + { 0x005A, 0, 0, NULL }, /* 0x5A */ + { 0x005B, 0, 0, NULL }, /* 0x5B */ + { 0x005C, 0, 0, NULL }, /* 0x5C */ + { 0x005D, 0, 0, NULL }, /* 0x5D */ + { 0x005E, 0, 0, NULL }, /* 0x5E */ + { 0x005F, 0, 0, NULL }, /* 0x5F */ + { 0x0060, 0, 0, NULL }, /* 0x60 */ + { 0x0061, 0, 0, NULL }, /* 0x61 */ + { 0x0062, 0, 0, NULL }, /* 0x62 */ + { 0x0063, 0, 0, NULL }, /* 0x63 */ + { 0x0064, 0, 0, NULL }, /* 0x64 */ + { 0x0065, 0, 0, NULL }, /* 0x65 */ + { 0x0066, 0, 0, NULL }, /* 0x66 */ + { 0x0067, 0, 0, NULL }, /* 0x67 */ + { 0x0068, 0, 0, NULL }, /* 0x68 */ + { 0x0069, 0, 0, NULL }, /* 0x69 */ + { 0x006A, 0, 0, NULL }, /* 0x6A */ + { 0x006B, 0, 0, NULL }, /* 0x6B */ + { 0x006C, 0, 0, NULL }, /* 0x6C */ + { 0x006D, 0, 0, NULL }, /* 0x6D */ + { 0x006E, 0, 0, NULL }, /* 0x6E */ + { 0x006F, 0, 0, NULL }, /* 0x6F */ + { 0x0070, 0, 0, NULL }, /* 0x70 */ + { 0x0071, 0, 0, NULL }, /* 0x71 */ + { 0x0072, 0, 0, NULL }, /* 0x72 */ + { 0x0073, 0, 0, NULL }, /* 0x73 */ + { 0x0074, 0, 0, NULL }, /* 0x74 */ + { 0x0075, 0, 0, NULL }, /* 0x75 */ + { 0x0076, 0, 0, NULL }, /* 0x76 */ + { 0x0077, 0, 0, NULL }, /* 0x77 */ + { 0x0078, 0, 0, NULL }, /* 0x78 */ + { 0x0079, 0, 0, NULL }, /* 0x79 */ + { 0x007A, 0, 0, NULL }, /* 0x7A */ + { 0x007B, 0, 0, NULL }, /* 0x7B */ + { 0x007C, 0, 0, NULL }, /* 0x7C */ + { 0x007D, 0, 0, NULL }, /* 0x7D */ + { 0x007E, 0, 0, NULL }, /* 0x7E */ + { 0x007F, 0, 0, NULL }, /* 0x7F */ + { 0, 1, 0, NULL }, /* 0x80 */ + { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_81 }, /* 0x81 */ + { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_82 }, /* 0x82 */ + { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_83 }, /* 0x83 */ + { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_84 }, /* 0x84 */ + { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_85 }, /* 0x85 */ + { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_86 }, /* 0x86 */ + { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_87 }, /* 0x87 */ + { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_88 }, /* 0x88 */ + { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_89 }, /* 0x89 */ + { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_8A }, /* 0x8A */ + { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_8B }, /* 0x8B */ + { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_8C }, /* 0x8C */ + { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_8D }, /* 0x8D */ + { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_8E }, /* 0x8E */ + { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_8F }, /* 0x8F */ + { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_90 }, /* 0x90 */ + { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_91 }, /* 0x91 */ + { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_92 }, /* 0x92 */ + { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_93 }, /* 0x93 */ + { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_94 }, /* 0x94 */ + { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_95 }, /* 0x95 */ + { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_96 }, /* 0x96 */ + { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_97 }, /* 0x97 */ + { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_98 }, /* 0x98 */ + { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_99 }, /* 0x99 */ + { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_9A }, /* 0x9A */ + { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_9B }, /* 0x9B */ + { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_9C }, /* 0x9C */ + { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_9D }, /* 0x9D */ + { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_9E }, /* 0x9E */ + { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_9F }, /* 0x9F */ + { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_A0 }, /* 0xA0 */ + { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_A1 }, /* 0xA1 */ + { 0, 0x41, 0xE7, aImplDBCSToUniTab_KSC5601_A2 }, /* 0xA2 */ + { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_A3 }, /* 0xA3 */ + { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_A4 }, /* 0xA4 */ + { 0, 0x41, 0xF8, aImplDBCSToUniTab_KSC5601_A5 }, /* 0xA5 */ + { 0, 0x41, 0xE4, aImplDBCSToUniTab_KSC5601_A6 }, /* 0xA6 */ + { 0, 0x41, 0xEF, aImplDBCSToUniTab_KSC5601_A7 }, /* 0xA7 */ + { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_A8 }, /* 0xA8 */ + { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_A9 }, /* 0xA9 */ + { 0, 0x41, 0xF3, aImplDBCSToUniTab_KSC5601_AA }, /* 0xAA */ + { 0, 0x41, 0xF6, aImplDBCSToUniTab_KSC5601_AB }, /* 0xAB */ + { 0, 0x41, 0xF1, aImplDBCSToUniTab_KSC5601_AC }, /* 0xAC */ + { 0, 0x41, 0xA0, aImplDBCSToUniTab_KSC5601_AD }, /* 0xAD */ + { 0, 0x41, 0xA1, aImplDBCSToUniTab_KSC5601_AE }, /* 0xAE */ + { 0, 0x41, 0xA1, aImplDBCSToUniTab_KSC5601_AF }, /* 0xAF */ + { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_B0 }, /* 0xB0 */ + { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_B1 }, /* 0xB1 */ + { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_B2 }, /* 0xB2 */ + { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_B3 }, /* 0xB3 */ + { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_B4 }, /* 0xB4 */ + { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_B5 }, /* 0xB5 */ + { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_B6 }, /* 0xB6 */ + { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_B7 }, /* 0xB7 */ + { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_B8 }, /* 0xB8 */ + { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_B9 }, /* 0xB9 */ + { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_BA }, /* 0xBA */ + { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_BB }, /* 0xBB */ + { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_BC }, /* 0xBC */ + { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_BD }, /* 0xBD */ + { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_BE }, /* 0xBE */ + { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_BF }, /* 0xBF */ + { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_C0 }, /* 0xC0 */ + { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_C1 }, /* 0xC1 */ + { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_C2 }, /* 0xC2 */ + { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_C3 }, /* 0xC3 */ + { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_C4 }, /* 0xC4 */ + { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_C5 }, /* 0xC5 */ + { 0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_C6 }, /* 0xC6 */ + { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_C7 }, /* 0xC7 */ + { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_C8 }, /* 0xC8 */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xC9 */ /* We convert this as double byte */ + { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_CA }, /* 0xCA */ + { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_CB }, /* 0xCB */ + { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_CC }, /* 0xCC */ + { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_CD }, /* 0xCD */ + { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_CE }, /* 0xCE */ + { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_CF }, /* 0xCF */ + { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_D0 }, /* 0xD0 */ + { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_D1 }, /* 0xD1 */ + { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_D2 }, /* 0xD2 */ + { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_D3 }, /* 0xD3 */ + { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_D4 }, /* 0xD4 */ + { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_D5 }, /* 0xD5 */ + { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_D6 }, /* 0xD6 */ + { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_D7 }, /* 0xD7 */ + { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_D8 }, /* 0xD8 */ + { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_D9 }, /* 0xD9 */ + { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_DA }, /* 0xDA */ + { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_DB }, /* 0xDB */ + { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_DC }, /* 0xDC */ + { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_DD }, /* 0xDD */ + { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_DE }, /* 0xDE */ + { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_DF }, /* 0xDF */ + { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_E0 }, /* 0xE0 */ + { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_E1 }, /* 0xE1 */ + { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_E2 }, /* 0xE2 */ + { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_E3 }, /* 0xE3 */ + { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_E4 }, /* 0xE4 */ + { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_E5 }, /* 0xE5 */ + { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_E6 }, /* 0xE6 */ + { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_E7 }, /* 0xE7 */ + { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_E8 }, /* 0xE8 */ + { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_E9 }, /* 0xE9 */ + { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_EA }, /* 0xEA */ + { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_EB }, /* 0xEB */ + { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_EC }, /* 0xEC */ + { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_ED }, /* 0xED */ + { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_EE }, /* 0xEE */ + { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_EF }, /* 0xEF */ + { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_F0 }, /* 0xF0 */ + { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_F1 }, /* 0xF1 */ + { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_F2 }, /* 0xF2 */ + { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_F3 }, /* 0xF3 */ + { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_F4 }, /* 0xF4 */ + { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_F5 }, /* 0xF5 */ + { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_F6 }, /* 0xF6 */ + { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_F7 }, /* 0xF7 */ + { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_F8 }, /* 0xF8 */ + { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_F9 }, /* 0xF9 */ + { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_FA }, /* 0xFA */ + { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_FB }, /* 0xFB */ + { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_FC }, /* 0xFC */ + { 0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_FD }, /* 0xFD */ + { 0, 1, 0, NULL }, /* 0xFE */ + { 0, 1, 0, NULL } /* 0xFF */ }; /* ----------------------------------------------------------------------- */ static ImplUniToDBCSHighTab const aKSC5601DBCSHighTab[256] = { - { 0x00, 0xFE, aImplUniToDBCSTab_KSC5601_00 }, /* 0x00 */ - { 0x11, 0x67, aImplUniToDBCSTab_KSC5601_01 }, /* 0x01 */ - { 0xC7, 0xDD, aImplUniToDBCSTab_KSC5601_02 }, /* 0x02 */ - { 0x91, 0xC9, aImplUniToDBCSTab_KSC5601_03 }, /* 0x03 */ - { 0x01, 0x51, aImplUniToDBCSTab_KSC5601_04 }, /* 0x04 */ - { 1, 0, NULL }, /* 0x05 */ - { 1, 0, NULL }, /* 0x06 */ - { 1, 0, NULL }, /* 0x07 */ - { 1, 0, NULL }, /* 0x08 */ - { 1, 0, NULL }, /* 0x09 */ - { 1, 0, NULL }, /* 0x0A */ - { 1, 0, NULL }, /* 0x0B */ - { 1, 0, NULL }, /* 0x0C */ - { 1, 0, NULL }, /* 0x0D */ - { 1, 0, NULL }, /* 0x0E */ - { 1, 0, NULL }, /* 0x0F */ - { 1, 0, NULL }, /* 0x10 */ - { 1, 0, NULL }, /* 0x11 */ - { 1, 0, NULL }, /* 0x12 */ - { 1, 0, NULL }, /* 0x13 */ - { 1, 0, NULL }, /* 0x14 */ - { 1, 0, NULL }, /* 0x15 */ - { 1, 0, NULL }, /* 0x16 */ - { 1, 0, NULL }, /* 0x17 */ - { 1, 0, NULL }, /* 0x18 */ - { 1, 0, NULL }, /* 0x19 */ - { 1, 0, NULL }, /* 0x1A */ - { 1, 0, NULL }, /* 0x1B */ - { 1, 0, NULL }, /* 0x1C */ - { 1, 0, NULL }, /* 0x1D */ - { 1, 0, NULL }, /* 0x1E */ - { 1, 0, NULL }, /* 0x1F */ - { 0x15, 0xAC, aImplUniToDBCSTab_KSC5601_20 }, /* 0x20 */ - { 0x03, 0xD4, aImplUniToDBCSTab_KSC5601_21 }, /* 0x21 */ - { 0x00, 0xA5, aImplUniToDBCSTab_KSC5601_22 }, /* 0x22 */ - { 0x12, 0x12, aImplUniToDBCSTab_KSC5601_23 }, /* 0x23 */ - { 0x60, 0xE9, aImplUniToDBCSTab_KSC5601_24 }, /* 0x24 */ - { 0x00, 0xD1, aImplUniToDBCSTab_KSC5601_25 }, /* 0x25 */ - { 0x05, 0x6D, aImplUniToDBCSTab_KSC5601_26 }, /* 0x26 */ - { 1, 0, NULL }, /* 0x27 */ - { 1, 0, NULL }, /* 0x28 */ - { 1, 0, NULL }, /* 0x29 */ - { 1, 0, NULL }, /* 0x2A */ - { 1, 0, NULL }, /* 0x2B */ - { 1, 0, NULL }, /* 0x2C */ - { 1, 0, NULL }, /* 0x2D */ - { 1, 0, NULL }, /* 0x2E */ - { 1, 0, NULL }, /* 0x2F */ - { 0x00, 0xF7, aImplUniToDBCSTab_KSC5601_30 }, /* 0x30 */ - { 0x31, 0xFE, aImplUniToDBCSTab_KSC5601_31 }, /* 0x31 */ - { 0x00, 0x7F, aImplUniToDBCSTab_KSC5601_32 }, /* 0x32 */ - { 0x80, 0xDD, aImplUniToDBCSTab_KSC5601_33 }, /* 0x33 */ - { 1, 0, NULL }, /* 0x34 */ - { 1, 0, NULL }, /* 0x35 */ - { 1, 0, NULL }, /* 0x36 */ - { 1, 0, NULL }, /* 0x37 */ - { 1, 0, NULL }, /* 0x38 */ - { 1, 0, NULL }, /* 0x39 */ - { 1, 0, NULL }, /* 0x3A */ - { 1, 0, NULL }, /* 0x3B */ - { 1, 0, NULL }, /* 0x3C */ - { 1, 0, NULL }, /* 0x3D */ - { 1, 0, NULL }, /* 0x3E */ - { 1, 0, NULL }, /* 0x3F */ - { 1, 0, NULL }, /* 0x40 */ - { 1, 0, NULL }, /* 0x41 */ - { 1, 0, NULL }, /* 0x42 */ - { 1, 0, NULL }, /* 0x43 */ - { 1, 0, NULL }, /* 0x44 */ - { 1, 0, NULL }, /* 0x45 */ - { 1, 0, NULL }, /* 0x46 */ - { 1, 0, NULL }, /* 0x47 */ - { 1, 0, NULL }, /* 0x48 */ - { 1, 0, NULL }, /* 0x49 */ - { 1, 0, NULL }, /* 0x4A */ - { 1, 0, NULL }, /* 0x4B */ - { 1, 0, NULL }, /* 0x4C */ - { 1, 0, NULL }, /* 0x4D */ - { 0x00, 0xFB, aImplUniToDBCSTab_KSC5601_4E }, /* 0x4E */ - { 0x01, 0xFA, aImplUniToDBCSTab_KSC5601_4F }, /* 0x4F */ - { 0x02, 0xFF, aImplUniToDBCSTab_KSC5601_50 }, /* 0x50 */ - { 0x00, 0xFD, aImplUniToDBCSTab_KSC5601_51 }, /* 0x51 */ - { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_52 }, /* 0x52 */ - { 0x05, 0xF8, aImplUniToDBCSTab_KSC5601_53 }, /* 0x53 */ - { 0x03, 0xFA, aImplUniToDBCSTab_KSC5601_54 }, /* 0x54 */ - { 0x04, 0xFE, aImplUniToDBCSTab_KSC5601_55 }, /* 0x55 */ - { 0x06, 0xFA, aImplUniToDBCSTab_KSC5601_56 }, /* 0x56 */ - { 0x03, 0xFC, aImplUniToDBCSTab_KSC5601_57 }, /* 0x57 */ - { 0x00, 0xFD, aImplUniToDBCSTab_KSC5601_58 }, /* 0x58 */ - { 0x07, 0xFF, aImplUniToDBCSTab_KSC5601_59 }, /* 0x59 */ - { 0x01, 0xE9, aImplUniToDBCSTab_KSC5601_5A }, /* 0x5A */ - { 0x05, 0xFA, aImplUniToDBCSTab_KSC5601_5B }, /* 0x5B */ - { 0x01, 0xFD, aImplUniToDBCSTab_KSC5601_5C }, /* 0x5C */ - { 0x07, 0xFE, aImplUniToDBCSTab_KSC5601_5D }, /* 0x5D */ - { 0x02, 0xFB, aImplUniToDBCSTab_KSC5601_5E }, /* 0x5E */ - { 0x01, 0xFF, aImplUniToDBCSTab_KSC5601_5F }, /* 0x5F */ - { 0x07, 0xFB, aImplUniToDBCSTab_KSC5601_60 }, /* 0x60 */ - { 0x01, 0xFF, aImplUniToDBCSTab_KSC5601_61 }, /* 0x61 */ - { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_62 }, /* 0x62 */ - { 0x01, 0xF7, aImplUniToDBCSTab_KSC5601_63 }, /* 0x63 */ - { 0x0D, 0xFE, aImplUniToDBCSTab_KSC5601_64 }, /* 0x64 */ - { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_65 }, /* 0x65 */ - { 0x06, 0xFF, aImplUniToDBCSTab_KSC5601_66 }, /* 0x66 */ - { 0x00, 0xFE, aImplUniToDBCSTab_KSC5601_67 }, /* 0x67 */ - { 0x12, 0xFA, aImplUniToDBCSTab_KSC5601_68 }, /* 0x68 */ - { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_69 }, /* 0x69 */ - { 0x02, 0xFB, aImplUniToDBCSTab_KSC5601_6A }, /* 0x6A */ - { 0x04, 0xEC, aImplUniToDBCSTab_KSC5601_6B }, /* 0x6B */ - { 0x08, 0xF3, aImplUniToDBCSTab_KSC5601_6C }, /* 0x6C */ - { 0x03, 0xFB, aImplUniToDBCSTab_KSC5601_6D }, /* 0x6D */ - { 0x17, 0xFF, aImplUniToDBCSTab_KSC5601_6E }, /* 0x6E */ - { 0x01, 0xFE, aImplUniToDBCSTab_KSC5601_6F }, /* 0x6F */ - { 0x01, 0xFD, aImplUniToDBCSTab_KSC5601_70 }, /* 0x70 */ - { 0x04, 0xFF, aImplUniToDBCSTab_KSC5601_71 }, /* 0x71 */ - { 0x00, 0xFD, aImplUniToDBCSTab_KSC5601_72 }, /* 0x72 */ - { 0x02, 0xFE, aImplUniToDBCSTab_KSC5601_73 }, /* 0x73 */ - { 0x01, 0xF7, aImplUniToDBCSTab_KSC5601_74 }, /* 0x74 */ - { 0x01, 0xFC, aImplUniToDBCSTab_KSC5601_75 }, /* 0x75 */ - { 0x00, 0xFE, aImplUniToDBCSTab_KSC5601_76 }, /* 0x76 */ - { 0x01, 0xFB, aImplUniToDBCSTab_KSC5601_77 }, /* 0x77 */ - { 0x02, 0xFB, aImplUniToDBCSTab_KSC5601_78 }, /* 0x78 */ - { 0x01, 0xFB, aImplUniToDBCSTab_KSC5601_79 }, /* 0x79 */ - { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_7A }, /* 0x7A */ - { 0x0F, 0xE9, aImplUniToDBCSTab_KSC5601_7B }, /* 0x7B */ - { 0x07, 0xFE, aImplUniToDBCSTab_KSC5601_7C }, /* 0x7C */ - { 0x00, 0xFB, aImplUniToDBCSTab_KSC5601_7D }, /* 0x7D */ - { 0x09, 0x9C, aImplUniToDBCSTab_KSC5601_7E }, /* 0x7E */ - { 0x36, 0xFC, aImplUniToDBCSTab_KSC5601_7F }, /* 0x7F */ - { 0x00, 0xFD, aImplUniToDBCSTab_KSC5601_80 }, /* 0x80 */ - { 0x02, 0xFE, aImplUniToDBCSTab_KSC5601_81 }, /* 0x81 */ - { 0x05, 0xFE, aImplUniToDBCSTab_KSC5601_82 }, /* 0x82 */ - { 0x01, 0xFD, aImplUniToDBCSTab_KSC5601_83 }, /* 0x83 */ - { 0x03, 0xFC, aImplUniToDBCSTab_KSC5601_84 }, /* 0x84 */ - { 0x11, 0xFF, aImplUniToDBCSTab_KSC5601_85 }, /* 0x85 */ - { 0x02, 0xFE, aImplUniToDBCSTab_KSC5601_86 }, /* 0x86 */ - { 0x00, 0xFE, aImplUniToDBCSTab_KSC5601_87 }, /* 0x87 */ - { 0x05, 0xFD, aImplUniToDBCSTab_KSC5601_88 }, /* 0x88 */ - { 0x07, 0xF8, aImplUniToDBCSTab_KSC5601_89 }, /* 0x89 */ - { 0x00, 0xFE, aImplUniToDBCSTab_KSC5601_8A }, /* 0x8A */ - { 0x00, 0x9A, aImplUniToDBCSTab_KSC5601_8B }, /* 0x8B */ - { 0x37, 0xFD, aImplUniToDBCSTab_KSC5601_8C }, /* 0x8C */ - { 0x04, 0xFB, aImplUniToDBCSTab_KSC5601_8D }, /* 0x8D */ - { 0x0A, 0xFE, aImplUniToDBCSTab_KSC5601_8E }, /* 0x8E */ - { 0x03, 0xFD, aImplUniToDBCSTab_KSC5601_8F }, /* 0x8F */ - { 0x00, 0xFD, aImplUniToDBCSTab_KSC5601_90 }, /* 0x90 */ - { 0x02, 0xF5, aImplUniToDBCSTab_KSC5601_91 }, /* 0x91 */ - { 0x0D, 0xFC, aImplUniToDBCSTab_KSC5601_92 }, /* 0x92 */ - { 0x04, 0xF6, aImplUniToDBCSTab_KSC5601_93 }, /* 0x93 */ - { 0x04, 0x7F, aImplUniToDBCSTab_KSC5601_94 }, /* 0x94 */ - { 0x77, 0xE2, aImplUniToDBCSTab_KSC5601_95 }, /* 0x95 */ - { 0x1C, 0xFB, aImplUniToDBCSTab_KSC5601_96 }, /* 0x96 */ - { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_97 }, /* 0x97 */ - { 0x00, 0xFE, aImplUniToDBCSTab_KSC5601_98 }, /* 0x98 */ - { 0x03, 0xFF, aImplUniToDBCSTab_KSC5601_99 }, /* 0x99 */ - { 0x01, 0xEE, aImplUniToDBCSTab_KSC5601_9A }, /* 0x9A */ - { 0x1A, 0xE8, aImplUniToDBCSTab_KSC5601_9B }, /* 0x9B */ - { 0x0D, 0xF6, aImplUniToDBCSTab_KSC5601_9C }, /* 0x9C */ - { 0x09, 0xFA, aImplUniToDBCSTab_KSC5601_9D }, /* 0x9D */ - { 0x1A, 0xF4, aImplUniToDBCSTab_KSC5601_9E }, /* 0x9E */ - { 0x07, 0x9C, aImplUniToDBCSTab_KSC5601_9F }, /* 0x9F */ - { 1, 0, NULL }, /* 0xA0 */ - { 1, 0, NULL }, /* 0xA1 */ - { 1, 0, NULL }, /* 0xA2 */ - { 1, 0, NULL }, /* 0xA3 */ - { 1, 0, NULL }, /* 0xA4 */ - { 1, 0, NULL }, /* 0xA5 */ - { 1, 0, NULL }, /* 0xA6 */ - { 1, 0, NULL }, /* 0xA7 */ - { 1, 0, NULL }, /* 0xA8 */ - { 1, 0, NULL }, /* 0xA9 */ - { 1, 0, NULL }, /* 0xAA */ - { 1, 0, NULL }, /* 0xAB */ - { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_AC }, /* 0xAC */ - { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_AD }, /* 0xAD */ - { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_AE }, /* 0xAE */ - { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_AF }, /* 0xAF */ - { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_B0 }, /* 0xB0 */ - { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_B1 }, /* 0xB1 */ - { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_B2 }, /* 0xB2 */ - { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_B3 }, /* 0xB3 */ - { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_B4 }, /* 0xB4 */ - { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_B5 }, /* 0xB5 */ - { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_B6 }, /* 0xB6 */ - { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_B7 }, /* 0xB7 */ - { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_B8 }, /* 0xB8 */ - { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_B9 }, /* 0xB9 */ - { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_BA }, /* 0xBA */ - { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_BB }, /* 0xBB */ - { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_BC }, /* 0xBC */ - { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_BD }, /* 0xBD */ - { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_BE }, /* 0xBE */ - { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_BF }, /* 0xBF */ - { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_C0 }, /* 0xC0 */ - { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_C1 }, /* 0xC1 */ - { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_C2 }, /* 0xC2 */ - { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_C3 }, /* 0xC3 */ - { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_C4 }, /* 0xC4 */ - { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_C5 }, /* 0xC5 */ - { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_C6 }, /* 0xC6 */ - { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_C7 }, /* 0xC7 */ - { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_C8 }, /* 0xC8 */ - { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_C9 }, /* 0xC9 */ - { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_CA }, /* 0xCA */ - { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_CB }, /* 0xCB */ - { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_CC }, /* 0xCC */ - { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_CD }, /* 0xCD */ - { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_CE }, /* 0xCE */ - { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_CF }, /* 0xCF */ - { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_D0 }, /* 0xD0 */ - { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_D1 }, /* 0xD1 */ - { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_D2 }, /* 0xD2 */ - { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_D3 }, /* 0xD3 */ - { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_D4 }, /* 0xD4 */ - { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_D5 }, /* 0xD5 */ - { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_D6 }, /* 0xD6 */ - { 0x00, 0xA3, aImplUniToDBCSTab_KSC5601_D7 }, /* 0xD7 */ - { 1, 0, NULL }, /* 0xD8 */ - { 1, 0, NULL }, /* 0xD9 */ - { 1, 0, NULL }, /* 0xDA */ - { 1, 0, NULL }, /* 0xDB */ - { 1, 0, NULL }, /* 0xDC */ - { 1, 0, NULL }, /* 0xDD */ - { 1, 0, NULL }, /* 0xDE */ - { 1, 0, NULL }, /* 0xDF */ - { 1, 0, NULL }, /* 0xE0 */ - { 1, 0, NULL }, /* 0xE1 */ - { 1, 0, NULL }, /* 0xE2 */ - { 1, 0, NULL }, /* 0xE3 */ - { 1, 0, NULL }, /* 0xE4 */ - { 1, 0, NULL }, /* 0xE5 */ - { 1, 0, NULL }, /* 0xE6 */ - { 1, 0, NULL }, /* 0xE7 */ - { 1, 0, NULL }, /* 0xE8 */ - { 1, 0, NULL }, /* 0xE9 */ - { 1, 0, NULL }, /* 0xEA */ - { 1, 0, NULL }, /* 0xEB */ - { 1, 0, NULL }, /* 0xEC */ - { 1, 0, NULL }, /* 0xED */ - { 1, 0, NULL }, /* 0xEE */ - { 1, 0, NULL }, /* 0xEF */ - { 1, 0, NULL }, /* 0xF0 */ - { 1, 0, NULL }, /* 0xF1 */ - { 1, 0, NULL }, /* 0xF2 */ - { 1, 0, NULL }, /* 0xF3 */ - { 1, 0, NULL }, /* 0xF4 */ - { 1, 0, NULL }, /* 0xF5 */ - { 1, 0, NULL }, /* 0xF6 */ - { 1, 0, NULL }, /* 0xF7 */ - { 1, 0, NULL }, /* 0xF8 */ - { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_F9 }, /* 0xF9 */ - { 0x00, 0x0B, aImplUniToDBCSTab_KSC5601_FA }, /* 0xFA */ - { 1, 0, NULL }, /* 0xFB */ - { 1, 0, NULL }, /* 0xFC */ - { 1, 0, NULL }, /* 0xFD */ - { 1, 0, NULL }, /* 0xFE */ - { 0x01, 0xE6, aImplUniToDBCSTab_KSC5601_FF } /* 0xFF */ + { 0x00, 0xFE, aImplUniToDBCSTab_KSC5601_00 }, /* 0x00 */ + { 0x11, 0x67, aImplUniToDBCSTab_KSC5601_01 }, /* 0x01 */ + { 0xC7, 0xDD, aImplUniToDBCSTab_KSC5601_02 }, /* 0x02 */ + { 0x91, 0xC9, aImplUniToDBCSTab_KSC5601_03 }, /* 0x03 */ + { 0x01, 0x51, aImplUniToDBCSTab_KSC5601_04 }, /* 0x04 */ + { 1, 0, NULL }, /* 0x05 */ + { 1, 0, NULL }, /* 0x06 */ + { 1, 0, NULL }, /* 0x07 */ + { 1, 0, NULL }, /* 0x08 */ + { 1, 0, NULL }, /* 0x09 */ + { 1, 0, NULL }, /* 0x0A */ + { 1, 0, NULL }, /* 0x0B */ + { 1, 0, NULL }, /* 0x0C */ + { 1, 0, NULL }, /* 0x0D */ + { 1, 0, NULL }, /* 0x0E */ + { 1, 0, NULL }, /* 0x0F */ + { 1, 0, NULL }, /* 0x10 */ + { 1, 0, NULL }, /* 0x11 */ + { 1, 0, NULL }, /* 0x12 */ + { 1, 0, NULL }, /* 0x13 */ + { 1, 0, NULL }, /* 0x14 */ + { 1, 0, NULL }, /* 0x15 */ + { 1, 0, NULL }, /* 0x16 */ + { 1, 0, NULL }, /* 0x17 */ + { 1, 0, NULL }, /* 0x18 */ + { 1, 0, NULL }, /* 0x19 */ + { 1, 0, NULL }, /* 0x1A */ + { 1, 0, NULL }, /* 0x1B */ + { 1, 0, NULL }, /* 0x1C */ + { 1, 0, NULL }, /* 0x1D */ + { 1, 0, NULL }, /* 0x1E */ + { 1, 0, NULL }, /* 0x1F */ + { 0x15, 0xAC, aImplUniToDBCSTab_KSC5601_20 }, /* 0x20 */ + { 0x03, 0xD4, aImplUniToDBCSTab_KSC5601_21 }, /* 0x21 */ + { 0x00, 0xA5, aImplUniToDBCSTab_KSC5601_22 }, /* 0x22 */ + { 0x12, 0x12, aImplUniToDBCSTab_KSC5601_23 }, /* 0x23 */ + { 0x60, 0xE9, aImplUniToDBCSTab_KSC5601_24 }, /* 0x24 */ + { 0x00, 0xD1, aImplUniToDBCSTab_KSC5601_25 }, /* 0x25 */ + { 0x05, 0x6D, aImplUniToDBCSTab_KSC5601_26 }, /* 0x26 */ + { 1, 0, NULL }, /* 0x27 */ + { 1, 0, NULL }, /* 0x28 */ + { 1, 0, NULL }, /* 0x29 */ + { 1, 0, NULL }, /* 0x2A */ + { 1, 0, NULL }, /* 0x2B */ + { 1, 0, NULL }, /* 0x2C */ + { 1, 0, NULL }, /* 0x2D */ + { 1, 0, NULL }, /* 0x2E */ + { 1, 0, NULL }, /* 0x2F */ + { 0x00, 0xF7, aImplUniToDBCSTab_KSC5601_30 }, /* 0x30 */ + { 0x31, 0xFE, aImplUniToDBCSTab_KSC5601_31 }, /* 0x31 */ + { 0x00, 0x7F, aImplUniToDBCSTab_KSC5601_32 }, /* 0x32 */ + { 0x80, 0xDD, aImplUniToDBCSTab_KSC5601_33 }, /* 0x33 */ + { 1, 0, NULL }, /* 0x34 */ + { 1, 0, NULL }, /* 0x35 */ + { 1, 0, NULL }, /* 0x36 */ + { 1, 0, NULL }, /* 0x37 */ + { 1, 0, NULL }, /* 0x38 */ + { 1, 0, NULL }, /* 0x39 */ + { 1, 0, NULL }, /* 0x3A */ + { 1, 0, NULL }, /* 0x3B */ + { 1, 0, NULL }, /* 0x3C */ + { 1, 0, NULL }, /* 0x3D */ + { 1, 0, NULL }, /* 0x3E */ + { 1, 0, NULL }, /* 0x3F */ + { 1, 0, NULL }, /* 0x40 */ + { 1, 0, NULL }, /* 0x41 */ + { 1, 0, NULL }, /* 0x42 */ + { 1, 0, NULL }, /* 0x43 */ + { 1, 0, NULL }, /* 0x44 */ + { 1, 0, NULL }, /* 0x45 */ + { 1, 0, NULL }, /* 0x46 */ + { 1, 0, NULL }, /* 0x47 */ + { 1, 0, NULL }, /* 0x48 */ + { 1, 0, NULL }, /* 0x49 */ + { 1, 0, NULL }, /* 0x4A */ + { 1, 0, NULL }, /* 0x4B */ + { 1, 0, NULL }, /* 0x4C */ + { 1, 0, NULL }, /* 0x4D */ + { 0x00, 0xFB, aImplUniToDBCSTab_KSC5601_4E }, /* 0x4E */ + { 0x01, 0xFA, aImplUniToDBCSTab_KSC5601_4F }, /* 0x4F */ + { 0x02, 0xFF, aImplUniToDBCSTab_KSC5601_50 }, /* 0x50 */ + { 0x00, 0xFD, aImplUniToDBCSTab_KSC5601_51 }, /* 0x51 */ + { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_52 }, /* 0x52 */ + { 0x05, 0xF8, aImplUniToDBCSTab_KSC5601_53 }, /* 0x53 */ + { 0x03, 0xFA, aImplUniToDBCSTab_KSC5601_54 }, /* 0x54 */ + { 0x04, 0xFE, aImplUniToDBCSTab_KSC5601_55 }, /* 0x55 */ + { 0x06, 0xFA, aImplUniToDBCSTab_KSC5601_56 }, /* 0x56 */ + { 0x03, 0xFC, aImplUniToDBCSTab_KSC5601_57 }, /* 0x57 */ + { 0x00, 0xFD, aImplUniToDBCSTab_KSC5601_58 }, /* 0x58 */ + { 0x07, 0xFF, aImplUniToDBCSTab_KSC5601_59 }, /* 0x59 */ + { 0x01, 0xE9, aImplUniToDBCSTab_KSC5601_5A }, /* 0x5A */ + { 0x05, 0xFA, aImplUniToDBCSTab_KSC5601_5B }, /* 0x5B */ + { 0x01, 0xFD, aImplUniToDBCSTab_KSC5601_5C }, /* 0x5C */ + { 0x07, 0xFE, aImplUniToDBCSTab_KSC5601_5D }, /* 0x5D */ + { 0x02, 0xFB, aImplUniToDBCSTab_KSC5601_5E }, /* 0x5E */ + { 0x01, 0xFF, aImplUniToDBCSTab_KSC5601_5F }, /* 0x5F */ + { 0x07, 0xFB, aImplUniToDBCSTab_KSC5601_60 }, /* 0x60 */ + { 0x01, 0xFF, aImplUniToDBCSTab_KSC5601_61 }, /* 0x61 */ + { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_62 }, /* 0x62 */ + { 0x01, 0xF7, aImplUniToDBCSTab_KSC5601_63 }, /* 0x63 */ + { 0x0D, 0xFE, aImplUniToDBCSTab_KSC5601_64 }, /* 0x64 */ + { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_65 }, /* 0x65 */ + { 0x06, 0xFF, aImplUniToDBCSTab_KSC5601_66 }, /* 0x66 */ + { 0x00, 0xFE, aImplUniToDBCSTab_KSC5601_67 }, /* 0x67 */ + { 0x12, 0xFA, aImplUniToDBCSTab_KSC5601_68 }, /* 0x68 */ + { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_69 }, /* 0x69 */ + { 0x02, 0xFB, aImplUniToDBCSTab_KSC5601_6A }, /* 0x6A */ + { 0x04, 0xEC, aImplUniToDBCSTab_KSC5601_6B }, /* 0x6B */ + { 0x08, 0xF3, aImplUniToDBCSTab_KSC5601_6C }, /* 0x6C */ + { 0x03, 0xFB, aImplUniToDBCSTab_KSC5601_6D }, /* 0x6D */ + { 0x17, 0xFF, aImplUniToDBCSTab_KSC5601_6E }, /* 0x6E */ + { 0x01, 0xFE, aImplUniToDBCSTab_KSC5601_6F }, /* 0x6F */ + { 0x01, 0xFD, aImplUniToDBCSTab_KSC5601_70 }, /* 0x70 */ + { 0x04, 0xFF, aImplUniToDBCSTab_KSC5601_71 }, /* 0x71 */ + { 0x00, 0xFD, aImplUniToDBCSTab_KSC5601_72 }, /* 0x72 */ + { 0x02, 0xFE, aImplUniToDBCSTab_KSC5601_73 }, /* 0x73 */ + { 0x01, 0xF7, aImplUniToDBCSTab_KSC5601_74 }, /* 0x74 */ + { 0x01, 0xFC, aImplUniToDBCSTab_KSC5601_75 }, /* 0x75 */ + { 0x00, 0xFE, aImplUniToDBCSTab_KSC5601_76 }, /* 0x76 */ + { 0x01, 0xFB, aImplUniToDBCSTab_KSC5601_77 }, /* 0x77 */ + { 0x02, 0xFB, aImplUniToDBCSTab_KSC5601_78 }, /* 0x78 */ + { 0x01, 0xFB, aImplUniToDBCSTab_KSC5601_79 }, /* 0x79 */ + { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_7A }, /* 0x7A */ + { 0x0F, 0xE9, aImplUniToDBCSTab_KSC5601_7B }, /* 0x7B */ + { 0x07, 0xFE, aImplUniToDBCSTab_KSC5601_7C }, /* 0x7C */ + { 0x00, 0xFB, aImplUniToDBCSTab_KSC5601_7D }, /* 0x7D */ + { 0x09, 0x9C, aImplUniToDBCSTab_KSC5601_7E }, /* 0x7E */ + { 0x36, 0xFC, aImplUniToDBCSTab_KSC5601_7F }, /* 0x7F */ + { 0x00, 0xFD, aImplUniToDBCSTab_KSC5601_80 }, /* 0x80 */ + { 0x02, 0xFE, aImplUniToDBCSTab_KSC5601_81 }, /* 0x81 */ + { 0x05, 0xFE, aImplUniToDBCSTab_KSC5601_82 }, /* 0x82 */ + { 0x01, 0xFD, aImplUniToDBCSTab_KSC5601_83 }, /* 0x83 */ + { 0x03, 0xFC, aImplUniToDBCSTab_KSC5601_84 }, /* 0x84 */ + { 0x11, 0xFF, aImplUniToDBCSTab_KSC5601_85 }, /* 0x85 */ + { 0x02, 0xFE, aImplUniToDBCSTab_KSC5601_86 }, /* 0x86 */ + { 0x00, 0xFE, aImplUniToDBCSTab_KSC5601_87 }, /* 0x87 */ + { 0x05, 0xFD, aImplUniToDBCSTab_KSC5601_88 }, /* 0x88 */ + { 0x07, 0xF8, aImplUniToDBCSTab_KSC5601_89 }, /* 0x89 */ + { 0x00, 0xFE, aImplUniToDBCSTab_KSC5601_8A }, /* 0x8A */ + { 0x00, 0x9A, aImplUniToDBCSTab_KSC5601_8B }, /* 0x8B */ + { 0x37, 0xFD, aImplUniToDBCSTab_KSC5601_8C }, /* 0x8C */ + { 0x04, 0xFB, aImplUniToDBCSTab_KSC5601_8D }, /* 0x8D */ + { 0x0A, 0xFE, aImplUniToDBCSTab_KSC5601_8E }, /* 0x8E */ + { 0x03, 0xFD, aImplUniToDBCSTab_KSC5601_8F }, /* 0x8F */ + { 0x00, 0xFD, aImplUniToDBCSTab_KSC5601_90 }, /* 0x90 */ + { 0x02, 0xF5, aImplUniToDBCSTab_KSC5601_91 }, /* 0x91 */ + { 0x0D, 0xFC, aImplUniToDBCSTab_KSC5601_92 }, /* 0x92 */ + { 0x04, 0xF6, aImplUniToDBCSTab_KSC5601_93 }, /* 0x93 */ + { 0x04, 0x7F, aImplUniToDBCSTab_KSC5601_94 }, /* 0x94 */ + { 0x77, 0xE2, aImplUniToDBCSTab_KSC5601_95 }, /* 0x95 */ + { 0x1C, 0xFB, aImplUniToDBCSTab_KSC5601_96 }, /* 0x96 */ + { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_97 }, /* 0x97 */ + { 0x00, 0xFE, aImplUniToDBCSTab_KSC5601_98 }, /* 0x98 */ + { 0x03, 0xFF, aImplUniToDBCSTab_KSC5601_99 }, /* 0x99 */ + { 0x01, 0xEE, aImplUniToDBCSTab_KSC5601_9A }, /* 0x9A */ + { 0x1A, 0xE8, aImplUniToDBCSTab_KSC5601_9B }, /* 0x9B */ + { 0x0D, 0xF6, aImplUniToDBCSTab_KSC5601_9C }, /* 0x9C */ + { 0x09, 0xFA, aImplUniToDBCSTab_KSC5601_9D }, /* 0x9D */ + { 0x1A, 0xF4, aImplUniToDBCSTab_KSC5601_9E }, /* 0x9E */ + { 0x07, 0x9C, aImplUniToDBCSTab_KSC5601_9F }, /* 0x9F */ + { 1, 0, NULL }, /* 0xA0 */ + { 1, 0, NULL }, /* 0xA1 */ + { 1, 0, NULL }, /* 0xA2 */ + { 1, 0, NULL }, /* 0xA3 */ + { 1, 0, NULL }, /* 0xA4 */ + { 1, 0, NULL }, /* 0xA5 */ + { 1, 0, NULL }, /* 0xA6 */ + { 1, 0, NULL }, /* 0xA7 */ + { 1, 0, NULL }, /* 0xA8 */ + { 1, 0, NULL }, /* 0xA9 */ + { 1, 0, NULL }, /* 0xAA */ + { 1, 0, NULL }, /* 0xAB */ + { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_AC }, /* 0xAC */ + { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_AD }, /* 0xAD */ + { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_AE }, /* 0xAE */ + { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_AF }, /* 0xAF */ + { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_B0 }, /* 0xB0 */ + { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_B1 }, /* 0xB1 */ + { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_B2 }, /* 0xB2 */ + { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_B3 }, /* 0xB3 */ + { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_B4 }, /* 0xB4 */ + { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_B5 }, /* 0xB5 */ + { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_B6 }, /* 0xB6 */ + { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_B7 }, /* 0xB7 */ + { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_B8 }, /* 0xB8 */ + { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_B9 }, /* 0xB9 */ + { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_BA }, /* 0xBA */ + { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_BB }, /* 0xBB */ + { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_BC }, /* 0xBC */ + { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_BD }, /* 0xBD */ + { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_BE }, /* 0xBE */ + { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_BF }, /* 0xBF */ + { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_C0 }, /* 0xC0 */ + { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_C1 }, /* 0xC1 */ + { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_C2 }, /* 0xC2 */ + { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_C3 }, /* 0xC3 */ + { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_C4 }, /* 0xC4 */ + { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_C5 }, /* 0xC5 */ + { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_C6 }, /* 0xC6 */ + { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_C7 }, /* 0xC7 */ + { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_C8 }, /* 0xC8 */ + { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_C9 }, /* 0xC9 */ + { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_CA }, /* 0xCA */ + { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_CB }, /* 0xCB */ + { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_CC }, /* 0xCC */ + { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_CD }, /* 0xCD */ + { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_CE }, /* 0xCE */ + { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_CF }, /* 0xCF */ + { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_D0 }, /* 0xD0 */ + { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_D1 }, /* 0xD1 */ + { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_D2 }, /* 0xD2 */ + { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_D3 }, /* 0xD3 */ + { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_D4 }, /* 0xD4 */ + { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_D5 }, /* 0xD5 */ + { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_D6 }, /* 0xD6 */ + { 0x00, 0xA3, aImplUniToDBCSTab_KSC5601_D7 }, /* 0xD7 */ + { 1, 0, NULL }, /* 0xD8 */ + { 1, 0, NULL }, /* 0xD9 */ + { 1, 0, NULL }, /* 0xDA */ + { 1, 0, NULL }, /* 0xDB */ + { 1, 0, NULL }, /* 0xDC */ + { 1, 0, NULL }, /* 0xDD */ + { 1, 0, NULL }, /* 0xDE */ + { 1, 0, NULL }, /* 0xDF */ + { 1, 0, NULL }, /* 0xE0 */ + { 1, 0, NULL }, /* 0xE1 */ + { 1, 0, NULL }, /* 0xE2 */ + { 1, 0, NULL }, /* 0xE3 */ + { 1, 0, NULL }, /* 0xE4 */ + { 1, 0, NULL }, /* 0xE5 */ + { 1, 0, NULL }, /* 0xE6 */ + { 1, 0, NULL }, /* 0xE7 */ + { 1, 0, NULL }, /* 0xE8 */ + { 1, 0, NULL }, /* 0xE9 */ + { 1, 0, NULL }, /* 0xEA */ + { 1, 0, NULL }, /* 0xEB */ + { 1, 0, NULL }, /* 0xEC */ + { 1, 0, NULL }, /* 0xED */ + { 1, 0, NULL }, /* 0xEE */ + { 1, 0, NULL }, /* 0xEF */ + { 1, 0, NULL }, /* 0xF0 */ + { 1, 0, NULL }, /* 0xF1 */ + { 1, 0, NULL }, /* 0xF2 */ + { 1, 0, NULL }, /* 0xF3 */ + { 1, 0, NULL }, /* 0xF4 */ + { 1, 0, NULL }, /* 0xF5 */ + { 1, 0, NULL }, /* 0xF6 */ + { 1, 0, NULL }, /* 0xF7 */ + { 1, 0, NULL }, /* 0xF8 */ + { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_F9 }, /* 0xF9 */ + { 0x00, 0x0B, aImplUniToDBCSTab_KSC5601_FA }, /* 0xFA */ + { 1, 0, NULL }, /* 0xFB */ + { 1, 0, NULL }, /* 0xFC */ + { 1, 0, NULL }, /* 0xFD */ + { 1, 0, NULL }, /* 0xFE */ + { 0x01, 0xE6, aImplUniToDBCSTab_KSC5601_FF } /* 0xFF */ }; /* ----------------------------------------------------------------------- */ -/* C9A1-C9FE -> E000-E05D */ -/* FEA1-FEFE -> E05E-E0BB */ +/* C9A1-C9FE -> E000-E05D */ +/* FEA1-FEFE -> E05E-E0BB */ -#define DBCS_EUDC_MS949_COUNT 2 +#define DBCS_EUDC_MS949_COUNT 2 static ImplDBCSEUDCData const aImplMS949DBCSEUDCTab[DBCS_EUDC_MS949_COUNT] = { /* EUDC-Range */ - /* Lead: C9-C9 */ - /* Trail: A1-FE */ + /* Lead: C9-C9 */ + /* Trail: A1-FE */ { 0xC9, 0xC9, 0xA1, 0xFE, 0, 0, 0, 0, 1, 0x5D, 0xE000, 0xE05D }, - /* Lead: FE-FE */ - /* Trail: A1-FE */ + /* Lead: FE-FE */ + /* Trail: A1-FE */ { 0xFE, 0xFE, 0xA1, 0xFE, 0, 0, 0, 0, 1, 0x5D, 0xE05E, 0xE0BB } }; @@ -617,625 +617,614 @@ static ImplDBCSConvertData const aImplKSC5601DBCSCvtData = DBCS_EUDC_MS949_COUNT }; -/* ----------------------------------------------------------------------- */ - -static ImplTextConverterData const aImplKSC5601TextConverterData = -{ - &aImplKSC5601DBCSCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplKSC5601TextConverter = -{ - &aImplKSC5601TextConverterData, - ImplDBCSToUnicode, - ImplUnicodeToDBCS, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - /* ======================================================================= */ -static ImplTextEncodingData const aImplEUCKRTextEncodingData = -{ - &aImplKSC5601TextConverter, - RTL_TEXTENCODING_EUC_KR, - 1, 2, 2, - 129, - 934, - 3, - (const sal_Char*)"euc-kr", - (const sal_Char*)"euc-kr", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_MULTIBYTE | - RTL_TEXTENCODING_INFO_MIME, - SCRIPT_KOREAN -}; +static ImplTextEncodingData const aImplEUCKRTextEncodingData + = { { &aImplKSC5601DBCSCvtData, + ImplDBCSToUnicode, + ImplUnicodeToDBCS, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_EUC_KR, + 1, + 2, + 2, + 129, + "euc-kr", + "euc-kr", + RTL_TEXTENCODING_INFO_ASCII + | RTL_TEXTENCODING_INFO_MULTIBYTE + | RTL_TEXTENCODING_INFO_MIME }; + /* SCRIPT_KOREAN, pc code page 934, mac encoding 3 */ /* ======================================================================= */ -static ImplTextEncodingData const aImplMS949TextEncodingData = -{ - &aImplKSC5601TextConverter, - RTL_TEXTENCODING_MS_949, - 1, 2, 2, - 129, - 934, - 3, - (const sal_Char*)"euc-kr", - (const sal_Char*)"euc-kr", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_MULTIBYTE | - RTL_TEXTENCODING_INFO_WIN | - RTL_TEXTENCODING_INFO_DOS_OS2, - SCRIPT_KOREAN -}; +static ImplTextEncodingData const aImplMS949TextEncodingData + = { { &aImplKSC5601DBCSCvtData, + ImplDBCSToUnicode, + ImplUnicodeToDBCS, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_MS_949, + 1, + 2, + 2, + 129, + "euc-kr", + "euc-kr", + RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MULTIBYTE }; + /* WIN/DOS/OS2, SCRIPT_KOREAN, pc code page 934, mac encoding 3 */ /* ======================================================================= */ /* Apple has some extension, which we don't support */ -static ImplTextEncodingData const aImplAPPLEKOREANTextEncodingData = -{ - &aImplKSC5601TextConverter, - RTL_TEXTENCODING_APPLE_KOREAN, - 1, 2, 2, - 129, - 934, - 3, - (const sal_Char*)"euc-kr", - (const sal_Char*)"euc-kr", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_MULTIBYTE | - RTL_TEXTENCODING_INFO_MAC | - SCRIPT_KOREAN -}; +static ImplTextEncodingData const aImplAPPLEKOREANTextEncodingData + = { { &aImplKSC5601DBCSCvtData, + ImplDBCSToUnicode, + ImplUnicodeToDBCS, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_APPLE_KOREAN, + 1, + 2, + 2, + 129, + "euc-kr", + "euc-kr", + RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MULTIBYTE }; + /* MAC, SCRIPT_KOREAN, pc code page 934, mac encoding 3 */ /* ======================================================================= */ static ImplDBCSToUniLeadTab const aJOHABUniLeadTab[256] = { - { 0x0000, 0, 0, NULL }, /* 0x00 */ - { 0x0001, 0, 0, NULL }, /* 0x01 */ - { 0x0002, 0, 0, NULL }, /* 0x02 */ - { 0x0003, 0, 0, NULL }, /* 0x03 */ - { 0x0004, 0, 0, NULL }, /* 0x04 */ - { 0x0005, 0, 0, NULL }, /* 0x05 */ - { 0x0006, 0, 0, NULL }, /* 0x06 */ - { 0x0007, 0, 0, NULL }, /* 0x07 */ - { 0x0008, 0, 0, NULL }, /* 0x08 */ - { 0x0009, 0, 0, NULL }, /* 0x09 */ - { 0x000A, 0, 0, NULL }, /* 0x0A */ - { 0x000B, 0, 0, NULL }, /* 0x0B */ - { 0x000C, 0, 0, NULL }, /* 0x0C */ - { 0x000D, 0, 0, NULL }, /* 0x0D */ - { 0x000E, 0, 0, NULL }, /* 0x0E */ - { 0x000F, 0, 0, NULL }, /* 0x0F */ - { 0x0010, 0, 0, NULL }, /* 0x10 */ - { 0x0011, 0, 0, NULL }, /* 0x11 */ - { 0x0012, 0, 0, NULL }, /* 0x12 */ - { 0x0013, 0, 0, NULL }, /* 0x13 */ - { 0x0014, 0, 0, NULL }, /* 0x14 */ - { 0x0015, 0, 0, NULL }, /* 0x15 */ - { 0x0016, 0, 0, NULL }, /* 0x16 */ - { 0x0017, 0, 0, NULL }, /* 0x17 */ - { 0x0018, 0, 0, NULL }, /* 0x18 */ - { 0x0019, 0, 0, NULL }, /* 0x19 */ - { 0x001A, 0, 0, NULL }, /* 0x1A */ - { 0x001B, 0, 0, NULL }, /* 0x1B */ - { 0x001C, 0, 0, NULL }, /* 0x1C */ - { 0x001D, 0, 0, NULL }, /* 0x1D */ - { 0x001E, 0, 0, NULL }, /* 0x1E */ - { 0x001F, 0, 0, NULL }, /* 0x1F */ - { 0x0020, 0, 0, NULL }, /* 0x20 */ - { 0x0021, 0, 0, NULL }, /* 0x21 */ - { 0x0022, 0, 0, NULL }, /* 0x22 */ - { 0x0023, 0, 0, NULL }, /* 0x23 */ - { 0x0024, 0, 0, NULL }, /* 0x24 */ - { 0x0025, 0, 0, NULL }, /* 0x25 */ - { 0x0026, 0, 0, NULL }, /* 0x26 */ - { 0x0027, 0, 0, NULL }, /* 0x27 */ - { 0x0028, 0, 0, NULL }, /* 0x28 */ - { 0x0029, 0, 0, NULL }, /* 0x29 */ - { 0x002A, 0, 0, NULL }, /* 0x2A */ - { 0x002B, 0, 0, NULL }, /* 0x2B */ - { 0x002C, 0, 0, NULL }, /* 0x2C */ - { 0x002D, 0, 0, NULL }, /* 0x2D */ - { 0x002E, 0, 0, NULL }, /* 0x2E */ - { 0x002F, 0, 0, NULL }, /* 0x2F */ - { 0x0030, 0, 0, NULL }, /* 0x30 */ - { 0x0031, 0, 0, NULL }, /* 0x31 */ - { 0x0032, 0, 0, NULL }, /* 0x32 */ - { 0x0033, 0, 0, NULL }, /* 0x33 */ - { 0x0034, 0, 0, NULL }, /* 0x34 */ - { 0x0035, 0, 0, NULL }, /* 0x35 */ - { 0x0036, 0, 0, NULL }, /* 0x36 */ - { 0x0037, 0, 0, NULL }, /* 0x37 */ - { 0x0038, 0, 0, NULL }, /* 0x38 */ - { 0x0039, 0, 0, NULL }, /* 0x39 */ - { 0x003A, 0, 0, NULL }, /* 0x3A */ - { 0x003B, 0, 0, NULL }, /* 0x3B */ - { 0x003C, 0, 0, NULL }, /* 0x3C */ - { 0x003D, 0, 0, NULL }, /* 0x3D */ - { 0x003E, 0, 0, NULL }, /* 0x3E */ - { 0x003F, 0, 0, NULL }, /* 0x3F */ - { 0x0040, 0, 0, NULL }, /* 0x40 */ - { 0x0041, 0, 0, NULL }, /* 0x41 */ - { 0x0042, 0, 0, NULL }, /* 0x42 */ - { 0x0043, 0, 0, NULL }, /* 0x43 */ - { 0x0044, 0, 0, NULL }, /* 0x44 */ - { 0x0045, 0, 0, NULL }, /* 0x45 */ - { 0x0046, 0, 0, NULL }, /* 0x46 */ - { 0x0047, 0, 0, NULL }, /* 0x47 */ - { 0x0048, 0, 0, NULL }, /* 0x48 */ - { 0x0049, 0, 0, NULL }, /* 0x49 */ - { 0x004A, 0, 0, NULL }, /* 0x4A */ - { 0x004B, 0, 0, NULL }, /* 0x4B */ - { 0x004C, 0, 0, NULL }, /* 0x4C */ - { 0x004D, 0, 0, NULL }, /* 0x4D */ - { 0x004E, 0, 0, NULL }, /* 0x4E */ - { 0x004F, 0, 0, NULL }, /* 0x4F */ - { 0x0050, 0, 0, NULL }, /* 0x50 */ - { 0x0051, 0, 0, NULL }, /* 0x51 */ - { 0x0052, 0, 0, NULL }, /* 0x52 */ - { 0x0053, 0, 0, NULL }, /* 0x53 */ - { 0x0054, 0, 0, NULL }, /* 0x54 */ - { 0x0055, 0, 0, NULL }, /* 0x55 */ - { 0x0056, 0, 0, NULL }, /* 0x56 */ - { 0x0057, 0, 0, NULL }, /* 0x57 */ - { 0x0058, 0, 0, NULL }, /* 0x58 */ - { 0x0059, 0, 0, NULL }, /* 0x59 */ - { 0x005A, 0, 0, NULL }, /* 0x5A */ - { 0x005B, 0, 0, NULL }, /* 0x5B */ - { 0x005C, 0, 0, NULL }, /* 0x5C */ - { 0x005D, 0, 0, NULL }, /* 0x5D */ - { 0x005E, 0, 0, NULL }, /* 0x5E */ - { 0x005F, 0, 0, NULL }, /* 0x5F */ - { 0x0060, 0, 0, NULL }, /* 0x60 */ - { 0x0061, 0, 0, NULL }, /* 0x61 */ - { 0x0062, 0, 0, NULL }, /* 0x62 */ - { 0x0063, 0, 0, NULL }, /* 0x63 */ - { 0x0064, 0, 0, NULL }, /* 0x64 */ - { 0x0065, 0, 0, NULL }, /* 0x65 */ - { 0x0066, 0, 0, NULL }, /* 0x66 */ - { 0x0067, 0, 0, NULL }, /* 0x67 */ - { 0x0068, 0, 0, NULL }, /* 0x68 */ - { 0x0069, 0, 0, NULL }, /* 0x69 */ - { 0x006A, 0, 0, NULL }, /* 0x6A */ - { 0x006B, 0, 0, NULL }, /* 0x6B */ - { 0x006C, 0, 0, NULL }, /* 0x6C */ - { 0x006D, 0, 0, NULL }, /* 0x6D */ - { 0x006E, 0, 0, NULL }, /* 0x6E */ - { 0x006F, 0, 0, NULL }, /* 0x6F */ - { 0x0070, 0, 0, NULL }, /* 0x70 */ - { 0x0071, 0, 0, NULL }, /* 0x71 */ - { 0x0072, 0, 0, NULL }, /* 0x72 */ - { 0x0073, 0, 0, NULL }, /* 0x73 */ - { 0x0074, 0, 0, NULL }, /* 0x74 */ - { 0x0075, 0, 0, NULL }, /* 0x75 */ - { 0x0076, 0, 0, NULL }, /* 0x76 */ - { 0x0077, 0, 0, NULL }, /* 0x77 */ - { 0x0078, 0, 0, NULL }, /* 0x78 */ - { 0x0079, 0, 0, NULL }, /* 0x79 */ - { 0x007A, 0, 0, NULL }, /* 0x7A */ - { 0x007B, 0, 0, NULL }, /* 0x7B */ - { 0x007C, 0, 0, NULL }, /* 0x7C */ - { 0x007D, 0, 0, NULL }, /* 0x7D */ - { 0x007E, 0, 0, NULL }, /* 0x7E */ - { 0x007F, 0, 0, NULL }, /* 0x7F */ - { 0x0080, 0, 0, NULL }, /* 0x80 */ - { 0x0081, 0, 0, NULL }, /* 0x81 */ - { 0x0082, 0, 0, NULL }, /* 0x82 */ - { 0x0083, 0, 0, NULL }, /* 0x83 */ - { 0, 0x44, 0xE1, aImplDBCSToUniTab_JOHAB_84 }, /* 0x84 */ - { 0, 0x41, 0xE1, aImplDBCSToUniTab_JOHAB_85 }, /* 0x85 */ - { 0, 0x41, 0xE1, aImplDBCSToUniTab_JOHAB_86 }, /* 0x86 */ - { 0, 0x41, 0xA1, aImplDBCSToUniTab_JOHAB_87 }, /* 0x87 */ - { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_88 }, /* 0x88 */ - { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_89 }, /* 0x89 */ - { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_8A }, /* 0x8A */ - { 0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_8B }, /* 0x8B */ - { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_8C }, /* 0x8C */ - { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_8D }, /* 0x8D */ - { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_8E }, /* 0x8E */ - { 0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_8F }, /* 0x8F */ - { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_90 }, /* 0x90 */ - { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_91 }, /* 0x91 */ - { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_92 }, /* 0x92 */ - { 0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_93 }, /* 0x93 */ - { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_94 }, /* 0x94 */ - { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_95 }, /* 0x95 */ - { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_96 }, /* 0x96 */ - { 0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_97 }, /* 0x97 */ - { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_98 }, /* 0x98 */ - { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_99 }, /* 0x99 */ - { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_9A }, /* 0x9A */ - { 0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_9B }, /* 0x9B */ - { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_9C }, /* 0x9C */ - { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_9D }, /* 0x9D */ - { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_9E }, /* 0x9E */ - { 0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_9F }, /* 0x9F */ - { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_A0 }, /* 0xA0 */ - { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_A1 }, /* 0xA1 */ - { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_A2 }, /* 0xA2 */ - { 0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_A3 }, /* 0xA3 */ - { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_A4 }, /* 0xA4 */ - { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_A5 }, /* 0xA5 */ - { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_A6 }, /* 0xA6 */ - { 0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_A7 }, /* 0xA7 */ - { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_A8 }, /* 0xA8 */ - { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_A9 }, /* 0xA9 */ - { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_AA }, /* 0xAA */ - { 0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_AB }, /* 0xAB */ - { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_AC }, /* 0xAC */ - { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_AD }, /* 0xAD */ - { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_AE }, /* 0xAE */ - { 0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_AF }, /* 0xAF */ - { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_B0 }, /* 0xB0 */ - { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_B1 }, /* 0xB1 */ - { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_B2 }, /* 0xB2 */ - { 0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_B3 }, /* 0xB3 */ - { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_B4 }, /* 0xB4 */ - { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_B5 }, /* 0xB5 */ - { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_B6 }, /* 0xB6 */ - { 0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_B7 }, /* 0xB7 */ - { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_B8 }, /* 0xB8 */ - { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_B9 }, /* 0xB9 */ - { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_BA }, /* 0xBA */ - { 0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_BB }, /* 0xBB */ - { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_BC }, /* 0xBC */ - { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_BD }, /* 0xBD */ - { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_BE }, /* 0xBE */ - { 0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_BF }, /* 0xBF */ - { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_C0 }, /* 0xC0 */ - { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_C1 }, /* 0xC1 */ - { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_C2 }, /* 0xC2 */ - { 0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_C3 }, /* 0xC3 */ - { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_C4 }, /* 0xC4 */ - { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_C5 }, /* 0xC5 */ - { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_C6 }, /* 0xC6 */ - { 0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_C7 }, /* 0xC7 */ - { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_C8 }, /* 0xC8 */ - { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_C9 }, /* 0xC9 */ - { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_CA }, /* 0xCA */ - { 0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_CB }, /* 0xCB */ - { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_CC }, /* 0xCC */ - { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_CD }, /* 0xCD */ - { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_CE }, /* 0xCE */ - { 0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_CF }, /* 0xCF */ - { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_D0 }, /* 0xD0 */ - { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_D1 }, /* 0xD1 */ - { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_D2 }, /* 0xD2 */ - { 0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_D3 }, /* 0xD3 */ - { 0, 1, 0, NULL }, /* 0xD4 */ - { 0, 1, 0, NULL }, /* 0xD5 */ - { 0, 1, 0, NULL }, /* 0xD6 */ - { 0, 1, 0, NULL }, /* 0xD7 */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xD8 */ /* We convert this as double byte */ - { 0, 0x31, 0xE5, aImplDBCSToUniTab_JOHAB_D9 }, /* 0xD9 */ - { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_DA }, /* 0xDA */ - { 0, 0x31, 0xE4, aImplDBCSToUniTab_JOHAB_DB }, /* 0xDB */ - { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_DC }, /* 0xDC */ - { 0, 0x31, 0xF3, aImplDBCSToUniTab_JOHAB_DD }, /* 0xDD */ - { 0, 0x31, 0xF1, aImplDBCSToUniTab_JOHAB_DE }, /* 0xDE */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xDF */ /* We convert this as double byte */ - { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_E0 }, /* 0xE0 */ - { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_E1 }, /* 0xE1 */ - { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_E2 }, /* 0xE2 */ - { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_E3 }, /* 0xE3 */ - { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_E4 }, /* 0xE4 */ - { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_E5 }, /* 0xE5 */ - { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_E6 }, /* 0xE6 */ - { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_E7 }, /* 0xE7 */ - { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_E8 }, /* 0xE8 */ - { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_E9 }, /* 0xE9 */ - { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_EA }, /* 0xEA */ - { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_EB }, /* 0xEB */ - { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_EC }, /* 0xEC */ - { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_ED }, /* 0xED */ - { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_EE }, /* 0xEE */ - { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_EF }, /* 0xEF */ - { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_F0 }, /* 0xF0 */ - { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_F1 }, /* 0xF1 */ - { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_F2 }, /* 0xF2 */ - { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_F3 }, /* 0xF3 */ - { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_F4 }, /* 0xF4 */ - { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_F5 }, /* 0xF5 */ - { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_F6 }, /* 0xF6 */ - { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_F7 }, /* 0xF7 */ - { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_F8 }, /* 0xF8 */ - { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_F9 }, /* 0xF9 */ - { 0, 1, 0, NULL }, /* 0xFA */ - { 0, 1, 0, NULL }, /* 0xFB */ - { 0, 1, 0, NULL }, /* 0xFC */ - { 0, 1, 0, NULL }, /* 0xFD */ - { 0, 1, 0, NULL }, /* 0xFE */ - { 0, 1, 0, NULL } /* 0xFF */ + { 0x0000, 0, 0, NULL }, /* 0x00 */ + { 0x0001, 0, 0, NULL }, /* 0x01 */ + { 0x0002, 0, 0, NULL }, /* 0x02 */ + { 0x0003, 0, 0, NULL }, /* 0x03 */ + { 0x0004, 0, 0, NULL }, /* 0x04 */ + { 0x0005, 0, 0, NULL }, /* 0x05 */ + { 0x0006, 0, 0, NULL }, /* 0x06 */ + { 0x0007, 0, 0, NULL }, /* 0x07 */ + { 0x0008, 0, 0, NULL }, /* 0x08 */ + { 0x0009, 0, 0, NULL }, /* 0x09 */ + { 0x000A, 0, 0, NULL }, /* 0x0A */ + { 0x000B, 0, 0, NULL }, /* 0x0B */ + { 0x000C, 0, 0, NULL }, /* 0x0C */ + { 0x000D, 0, 0, NULL }, /* 0x0D */ + { 0x000E, 0, 0, NULL }, /* 0x0E */ + { 0x000F, 0, 0, NULL }, /* 0x0F */ + { 0x0010, 0, 0, NULL }, /* 0x10 */ + { 0x0011, 0, 0, NULL }, /* 0x11 */ + { 0x0012, 0, 0, NULL }, /* 0x12 */ + { 0x0013, 0, 0, NULL }, /* 0x13 */ + { 0x0014, 0, 0, NULL }, /* 0x14 */ + { 0x0015, 0, 0, NULL }, /* 0x15 */ + { 0x0016, 0, 0, NULL }, /* 0x16 */ + { 0x0017, 0, 0, NULL }, /* 0x17 */ + { 0x0018, 0, 0, NULL }, /* 0x18 */ + { 0x0019, 0, 0, NULL }, /* 0x19 */ + { 0x001A, 0, 0, NULL }, /* 0x1A */ + { 0x001B, 0, 0, NULL }, /* 0x1B */ + { 0x001C, 0, 0, NULL }, /* 0x1C */ + { 0x001D, 0, 0, NULL }, /* 0x1D */ + { 0x001E, 0, 0, NULL }, /* 0x1E */ + { 0x001F, 0, 0, NULL }, /* 0x1F */ + { 0x0020, 0, 0, NULL }, /* 0x20 */ + { 0x0021, 0, 0, NULL }, /* 0x21 */ + { 0x0022, 0, 0, NULL }, /* 0x22 */ + { 0x0023, 0, 0, NULL }, /* 0x23 */ + { 0x0024, 0, 0, NULL }, /* 0x24 */ + { 0x0025, 0, 0, NULL }, /* 0x25 */ + { 0x0026, 0, 0, NULL }, /* 0x26 */ + { 0x0027, 0, 0, NULL }, /* 0x27 */ + { 0x0028, 0, 0, NULL }, /* 0x28 */ + { 0x0029, 0, 0, NULL }, /* 0x29 */ + { 0x002A, 0, 0, NULL }, /* 0x2A */ + { 0x002B, 0, 0, NULL }, /* 0x2B */ + { 0x002C, 0, 0, NULL }, /* 0x2C */ + { 0x002D, 0, 0, NULL }, /* 0x2D */ + { 0x002E, 0, 0, NULL }, /* 0x2E */ + { 0x002F, 0, 0, NULL }, /* 0x2F */ + { 0x0030, 0, 0, NULL }, /* 0x30 */ + { 0x0031, 0, 0, NULL }, /* 0x31 */ + { 0x0032, 0, 0, NULL }, /* 0x32 */ + { 0x0033, 0, 0, NULL }, /* 0x33 */ + { 0x0034, 0, 0, NULL }, /* 0x34 */ + { 0x0035, 0, 0, NULL }, /* 0x35 */ + { 0x0036, 0, 0, NULL }, /* 0x36 */ + { 0x0037, 0, 0, NULL }, /* 0x37 */ + { 0x0038, 0, 0, NULL }, /* 0x38 */ + { 0x0039, 0, 0, NULL }, /* 0x39 */ + { 0x003A, 0, 0, NULL }, /* 0x3A */ + { 0x003B, 0, 0, NULL }, /* 0x3B */ + { 0x003C, 0, 0, NULL }, /* 0x3C */ + { 0x003D, 0, 0, NULL }, /* 0x3D */ + { 0x003E, 0, 0, NULL }, /* 0x3E */ + { 0x003F, 0, 0, NULL }, /* 0x3F */ + { 0x0040, 0, 0, NULL }, /* 0x40 */ + { 0x0041, 0, 0, NULL }, /* 0x41 */ + { 0x0042, 0, 0, NULL }, /* 0x42 */ + { 0x0043, 0, 0, NULL }, /* 0x43 */ + { 0x0044, 0, 0, NULL }, /* 0x44 */ + { 0x0045, 0, 0, NULL }, /* 0x45 */ + { 0x0046, 0, 0, NULL }, /* 0x46 */ + { 0x0047, 0, 0, NULL }, /* 0x47 */ + { 0x0048, 0, 0, NULL }, /* 0x48 */ + { 0x0049, 0, 0, NULL }, /* 0x49 */ + { 0x004A, 0, 0, NULL }, /* 0x4A */ + { 0x004B, 0, 0, NULL }, /* 0x4B */ + { 0x004C, 0, 0, NULL }, /* 0x4C */ + { 0x004D, 0, 0, NULL }, /* 0x4D */ + { 0x004E, 0, 0, NULL }, /* 0x4E */ + { 0x004F, 0, 0, NULL }, /* 0x4F */ + { 0x0050, 0, 0, NULL }, /* 0x50 */ + { 0x0051, 0, 0, NULL }, /* 0x51 */ + { 0x0052, 0, 0, NULL }, /* 0x52 */ + { 0x0053, 0, 0, NULL }, /* 0x53 */ + { 0x0054, 0, 0, NULL }, /* 0x54 */ + { 0x0055, 0, 0, NULL }, /* 0x55 */ + { 0x0056, 0, 0, NULL }, /* 0x56 */ + { 0x0057, 0, 0, NULL }, /* 0x57 */ + { 0x0058, 0, 0, NULL }, /* 0x58 */ + { 0x0059, 0, 0, NULL }, /* 0x59 */ + { 0x005A, 0, 0, NULL }, /* 0x5A */ + { 0x005B, 0, 0, NULL }, /* 0x5B */ + { 0x005C, 0, 0, NULL }, /* 0x5C */ + { 0x005D, 0, 0, NULL }, /* 0x5D */ + { 0x005E, 0, 0, NULL }, /* 0x5E */ + { 0x005F, 0, 0, NULL }, /* 0x5F */ + { 0x0060, 0, 0, NULL }, /* 0x60 */ + { 0x0061, 0, 0, NULL }, /* 0x61 */ + { 0x0062, 0, 0, NULL }, /* 0x62 */ + { 0x0063, 0, 0, NULL }, /* 0x63 */ + { 0x0064, 0, 0, NULL }, /* 0x64 */ + { 0x0065, 0, 0, NULL }, /* 0x65 */ + { 0x0066, 0, 0, NULL }, /* 0x66 */ + { 0x0067, 0, 0, NULL }, /* 0x67 */ + { 0x0068, 0, 0, NULL }, /* 0x68 */ + { 0x0069, 0, 0, NULL }, /* 0x69 */ + { 0x006A, 0, 0, NULL }, /* 0x6A */ + { 0x006B, 0, 0, NULL }, /* 0x6B */ + { 0x006C, 0, 0, NULL }, /* 0x6C */ + { 0x006D, 0, 0, NULL }, /* 0x6D */ + { 0x006E, 0, 0, NULL }, /* 0x6E */ + { 0x006F, 0, 0, NULL }, /* 0x6F */ + { 0x0070, 0, 0, NULL }, /* 0x70 */ + { 0x0071, 0, 0, NULL }, /* 0x71 */ + { 0x0072, 0, 0, NULL }, /* 0x72 */ + { 0x0073, 0, 0, NULL }, /* 0x73 */ + { 0x0074, 0, 0, NULL }, /* 0x74 */ + { 0x0075, 0, 0, NULL }, /* 0x75 */ + { 0x0076, 0, 0, NULL }, /* 0x76 */ + { 0x0077, 0, 0, NULL }, /* 0x77 */ + { 0x0078, 0, 0, NULL }, /* 0x78 */ + { 0x0079, 0, 0, NULL }, /* 0x79 */ + { 0x007A, 0, 0, NULL }, /* 0x7A */ + { 0x007B, 0, 0, NULL }, /* 0x7B */ + { 0x007C, 0, 0, NULL }, /* 0x7C */ + { 0x007D, 0, 0, NULL }, /* 0x7D */ + { 0x007E, 0, 0, NULL }, /* 0x7E */ + { 0x007F, 0, 0, NULL }, /* 0x7F */ + { 0x0080, 0, 0, NULL }, /* 0x80 */ + { 0x0081, 0, 0, NULL }, /* 0x81 */ + { 0x0082, 0, 0, NULL }, /* 0x82 */ + { 0x0083, 0, 0, NULL }, /* 0x83 */ + { 0, 0x44, 0xE1, aImplDBCSToUniTab_JOHAB_84 }, /* 0x84 */ + { 0, 0x41, 0xE1, aImplDBCSToUniTab_JOHAB_85 }, /* 0x85 */ + { 0, 0x41, 0xE1, aImplDBCSToUniTab_JOHAB_86 }, /* 0x86 */ + { 0, 0x41, 0xA1, aImplDBCSToUniTab_JOHAB_87 }, /* 0x87 */ + { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_88 }, /* 0x88 */ + { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_89 }, /* 0x89 */ + { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_8A }, /* 0x8A */ + { 0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_8B }, /* 0x8B */ + { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_8C }, /* 0x8C */ + { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_8D }, /* 0x8D */ + { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_8E }, /* 0x8E */ + { 0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_8F }, /* 0x8F */ + { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_90 }, /* 0x90 */ + { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_91 }, /* 0x91 */ + { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_92 }, /* 0x92 */ + { 0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_93 }, /* 0x93 */ + { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_94 }, /* 0x94 */ + { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_95 }, /* 0x95 */ + { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_96 }, /* 0x96 */ + { 0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_97 }, /* 0x97 */ + { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_98 }, /* 0x98 */ + { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_99 }, /* 0x99 */ + { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_9A }, /* 0x9A */ + { 0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_9B }, /* 0x9B */ + { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_9C }, /* 0x9C */ + { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_9D }, /* 0x9D */ + { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_9E }, /* 0x9E */ + { 0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_9F }, /* 0x9F */ + { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_A0 }, /* 0xA0 */ + { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_A1 }, /* 0xA1 */ + { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_A2 }, /* 0xA2 */ + { 0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_A3 }, /* 0xA3 */ + { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_A4 }, /* 0xA4 */ + { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_A5 }, /* 0xA5 */ + { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_A6 }, /* 0xA6 */ + { 0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_A7 }, /* 0xA7 */ + { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_A8 }, /* 0xA8 */ + { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_A9 }, /* 0xA9 */ + { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_AA }, /* 0xAA */ + { 0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_AB }, /* 0xAB */ + { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_AC }, /* 0xAC */ + { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_AD }, /* 0xAD */ + { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_AE }, /* 0xAE */ + { 0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_AF }, /* 0xAF */ + { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_B0 }, /* 0xB0 */ + { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_B1 }, /* 0xB1 */ + { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_B2 }, /* 0xB2 */ + { 0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_B3 }, /* 0xB3 */ + { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_B4 }, /* 0xB4 */ + { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_B5 }, /* 0xB5 */ + { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_B6 }, /* 0xB6 */ + { 0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_B7 }, /* 0xB7 */ + { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_B8 }, /* 0xB8 */ + { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_B9 }, /* 0xB9 */ + { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_BA }, /* 0xBA */ + { 0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_BB }, /* 0xBB */ + { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_BC }, /* 0xBC */ + { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_BD }, /* 0xBD */ + { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_BE }, /* 0xBE */ + { 0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_BF }, /* 0xBF */ + { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_C0 }, /* 0xC0 */ + { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_C1 }, /* 0xC1 */ + { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_C2 }, /* 0xC2 */ + { 0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_C3 }, /* 0xC3 */ + { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_C4 }, /* 0xC4 */ + { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_C5 }, /* 0xC5 */ + { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_C6 }, /* 0xC6 */ + { 0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_C7 }, /* 0xC7 */ + { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_C8 }, /* 0xC8 */ + { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_C9 }, /* 0xC9 */ + { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_CA }, /* 0xCA */ + { 0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_CB }, /* 0xCB */ + { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_CC }, /* 0xCC */ + { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_CD }, /* 0xCD */ + { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_CE }, /* 0xCE */ + { 0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_CF }, /* 0xCF */ + { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_D0 }, /* 0xD0 */ + { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_D1 }, /* 0xD1 */ + { 0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_D2 }, /* 0xD2 */ + { 0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_D3 }, /* 0xD3 */ + { 0, 1, 0, NULL }, /* 0xD4 */ + { 0, 1, 0, NULL }, /* 0xD5 */ + { 0, 1, 0, NULL }, /* 0xD6 */ + { 0, 1, 0, NULL }, /* 0xD7 */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xD8 */ /* We convert this as double byte */ + { 0, 0x31, 0xE5, aImplDBCSToUniTab_JOHAB_D9 }, /* 0xD9 */ + { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_DA }, /* 0xDA */ + { 0, 0x31, 0xE4, aImplDBCSToUniTab_JOHAB_DB }, /* 0xDB */ + { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_DC }, /* 0xDC */ + { 0, 0x31, 0xF3, aImplDBCSToUniTab_JOHAB_DD }, /* 0xDD */ + { 0, 0x31, 0xF1, aImplDBCSToUniTab_JOHAB_DE }, /* 0xDE */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xDF */ /* We convert this as double byte */ + { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_E0 }, /* 0xE0 */ + { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_E1 }, /* 0xE1 */ + { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_E2 }, /* 0xE2 */ + { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_E3 }, /* 0xE3 */ + { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_E4 }, /* 0xE4 */ + { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_E5 }, /* 0xE5 */ + { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_E6 }, /* 0xE6 */ + { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_E7 }, /* 0xE7 */ + { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_E8 }, /* 0xE8 */ + { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_E9 }, /* 0xE9 */ + { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_EA }, /* 0xEA */ + { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_EB }, /* 0xEB */ + { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_EC }, /* 0xEC */ + { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_ED }, /* 0xED */ + { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_EE }, /* 0xEE */ + { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_EF }, /* 0xEF */ + { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_F0 }, /* 0xF0 */ + { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_F1 }, /* 0xF1 */ + { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_F2 }, /* 0xF2 */ + { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_F3 }, /* 0xF3 */ + { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_F4 }, /* 0xF4 */ + { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_F5 }, /* 0xF5 */ + { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_F6 }, /* 0xF6 */ + { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_F7 }, /* 0xF7 */ + { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_F8 }, /* 0xF8 */ + { 0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_F9 }, /* 0xF9 */ + { 0, 1, 0, NULL }, /* 0xFA */ + { 0, 1, 0, NULL }, /* 0xFB */ + { 0, 1, 0, NULL }, /* 0xFC */ + { 0, 1, 0, NULL }, /* 0xFD */ + { 0, 1, 0, NULL }, /* 0xFE */ + { 0, 1, 0, NULL } /* 0xFF */ }; /* ----------------------------------------------------------------------- */ static ImplUniToDBCSHighTab const aJOHABDBCSHighTab[256] = { - { 0x00, 0xFE, aImplUniToDBCSTab_JOHAB_00 }, /* 0x00 */ - { 0x11, 0x67, aImplUniToDBCSTab_JOHAB_01 }, /* 0x01 */ - { 0xC7, 0xDD, aImplUniToDBCSTab_JOHAB_02 }, /* 0x02 */ - { 0x91, 0xC9, aImplUniToDBCSTab_JOHAB_03 }, /* 0x03 */ - { 0x01, 0x51, aImplUniToDBCSTab_JOHAB_04 }, /* 0x04 */ - { 1, 0, NULL }, /* 0x05 */ - { 1, 0, NULL }, /* 0x06 */ - { 1, 0, NULL }, /* 0x07 */ - { 1, 0, NULL }, /* 0x08 */ - { 1, 0, NULL }, /* 0x09 */ - { 1, 0, NULL }, /* 0x0A */ - { 1, 0, NULL }, /* 0x0B */ - { 1, 0, NULL }, /* 0x0C */ - { 1, 0, NULL }, /* 0x0D */ - { 1, 0, NULL }, /* 0x0E */ - { 1, 0, NULL }, /* 0x0F */ - { 1, 0, NULL }, /* 0x10 */ - { 1, 0, NULL }, /* 0x11 */ - { 1, 0, NULL }, /* 0x12 */ - { 1, 0, NULL }, /* 0x13 */ - { 1, 0, NULL }, /* 0x14 */ - { 1, 0, NULL }, /* 0x15 */ - { 1, 0, NULL }, /* 0x16 */ - { 1, 0, NULL }, /* 0x17 */ - { 1, 0, NULL }, /* 0x18 */ - { 1, 0, NULL }, /* 0x19 */ - { 1, 0, NULL }, /* 0x1A */ - { 1, 0, NULL }, /* 0x1B */ - { 1, 0, NULL }, /* 0x1C */ - { 1, 0, NULL }, /* 0x1D */ - { 1, 0, NULL }, /* 0x1E */ - { 1, 0, NULL }, /* 0x1F */ - { 0x15, 0xA9, aImplUniToDBCSTab_JOHAB_20 }, /* 0x20 */ - { 0x03, 0xD4, aImplUniToDBCSTab_JOHAB_21 }, /* 0x21 */ - { 0x00, 0xA5, aImplUniToDBCSTab_JOHAB_22 }, /* 0x22 */ - { 0x12, 0x12, aImplUniToDBCSTab_JOHAB_23 }, /* 0x23 */ - { 0x60, 0xE9, aImplUniToDBCSTab_JOHAB_24 }, /* 0x24 */ - { 0x00, 0xD1, aImplUniToDBCSTab_JOHAB_25 }, /* 0x25 */ - { 0x05, 0x6D, aImplUniToDBCSTab_JOHAB_26 }, /* 0x26 */ - { 1, 0, NULL }, /* 0x27 */ - { 1, 0, NULL }, /* 0x28 */ - { 1, 0, NULL }, /* 0x29 */ - { 1, 0, NULL }, /* 0x2A */ - { 1, 0, NULL }, /* 0x2B */ - { 1, 0, NULL }, /* 0x2C */ - { 1, 0, NULL }, /* 0x2D */ - { 1, 0, NULL }, /* 0x2E */ - { 1, 0, NULL }, /* 0x2F */ - { 0x00, 0xF7, aImplUniToDBCSTab_JOHAB_30 }, /* 0x30 */ - { 0x31, 0x8E, aImplUniToDBCSTab_JOHAB_31 }, /* 0x31 */ - { 0x00, 0x7F, aImplUniToDBCSTab_JOHAB_32 }, /* 0x32 */ - { 0x80, 0xDD, aImplUniToDBCSTab_JOHAB_33 }, /* 0x33 */ - { 1, 0, NULL }, /* 0x34 */ - { 1, 0, NULL }, /* 0x35 */ - { 1, 0, NULL }, /* 0x36 */ - { 1, 0, NULL }, /* 0x37 */ - { 1, 0, NULL }, /* 0x38 */ - { 1, 0, NULL }, /* 0x39 */ - { 1, 0, NULL }, /* 0x3A */ - { 1, 0, NULL }, /* 0x3B */ - { 1, 0, NULL }, /* 0x3C */ - { 1, 0, NULL }, /* 0x3D */ - { 1, 0, NULL }, /* 0x3E */ - { 1, 0, NULL }, /* 0x3F */ - { 1, 0, NULL }, /* 0x40 */ - { 1, 0, NULL }, /* 0x41 */ - { 1, 0, NULL }, /* 0x42 */ - { 1, 0, NULL }, /* 0x43 */ - { 1, 0, NULL }, /* 0x44 */ - { 1, 0, NULL }, /* 0x45 */ - { 1, 0, NULL }, /* 0x46 */ - { 1, 0, NULL }, /* 0x47 */ - { 1, 0, NULL }, /* 0x48 */ - { 1, 0, NULL }, /* 0x49 */ - { 1, 0, NULL }, /* 0x4A */ - { 1, 0, NULL }, /* 0x4B */ - { 1, 0, NULL }, /* 0x4C */ - { 1, 0, NULL }, /* 0x4D */ - { 0x00, 0xFB, aImplUniToDBCSTab_JOHAB_4E }, /* 0x4E */ - { 0x01, 0xFA, aImplUniToDBCSTab_JOHAB_4F }, /* 0x4F */ - { 0x02, 0xFF, aImplUniToDBCSTab_JOHAB_50 }, /* 0x50 */ - { 0x00, 0xFD, aImplUniToDBCSTab_JOHAB_51 }, /* 0x51 */ - { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_52 }, /* 0x52 */ - { 0x05, 0xF8, aImplUniToDBCSTab_JOHAB_53 }, /* 0x53 */ - { 0x03, 0xFA, aImplUniToDBCSTab_JOHAB_54 }, /* 0x54 */ - { 0x04, 0xFE, aImplUniToDBCSTab_JOHAB_55 }, /* 0x55 */ - { 0x06, 0xFA, aImplUniToDBCSTab_JOHAB_56 }, /* 0x56 */ - { 0x03, 0xFC, aImplUniToDBCSTab_JOHAB_57 }, /* 0x57 */ - { 0x00, 0xFD, aImplUniToDBCSTab_JOHAB_58 }, /* 0x58 */ - { 0x07, 0xFF, aImplUniToDBCSTab_JOHAB_59 }, /* 0x59 */ - { 0x01, 0xE9, aImplUniToDBCSTab_JOHAB_5A }, /* 0x5A */ - { 0x05, 0xFA, aImplUniToDBCSTab_JOHAB_5B }, /* 0x5B */ - { 0x01, 0xFD, aImplUniToDBCSTab_JOHAB_5C }, /* 0x5C */ - { 0x07, 0xFE, aImplUniToDBCSTab_JOHAB_5D }, /* 0x5D */ - { 0x02, 0xFB, aImplUniToDBCSTab_JOHAB_5E }, /* 0x5E */ - { 0x01, 0xFF, aImplUniToDBCSTab_JOHAB_5F }, /* 0x5F */ - { 0x07, 0xFB, aImplUniToDBCSTab_JOHAB_60 }, /* 0x60 */ - { 0x01, 0xFF, aImplUniToDBCSTab_JOHAB_61 }, /* 0x61 */ - { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_62 }, /* 0x62 */ - { 0x01, 0xF7, aImplUniToDBCSTab_JOHAB_63 }, /* 0x63 */ - { 0x0D, 0xFE, aImplUniToDBCSTab_JOHAB_64 }, /* 0x64 */ - { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_65 }, /* 0x65 */ - { 0x06, 0xFF, aImplUniToDBCSTab_JOHAB_66 }, /* 0x66 */ - { 0x00, 0xFE, aImplUniToDBCSTab_JOHAB_67 }, /* 0x67 */ - { 0x12, 0xFA, aImplUniToDBCSTab_JOHAB_68 }, /* 0x68 */ - { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_69 }, /* 0x69 */ - { 0x02, 0xFB, aImplUniToDBCSTab_JOHAB_6A }, /* 0x6A */ - { 0x04, 0xEC, aImplUniToDBCSTab_JOHAB_6B }, /* 0x6B */ - { 0x08, 0xF3, aImplUniToDBCSTab_JOHAB_6C }, /* 0x6C */ - { 0x03, 0xFB, aImplUniToDBCSTab_JOHAB_6D }, /* 0x6D */ - { 0x17, 0xFF, aImplUniToDBCSTab_JOHAB_6E }, /* 0x6E */ - { 0x01, 0xFE, aImplUniToDBCSTab_JOHAB_6F }, /* 0x6F */ - { 0x01, 0xFD, aImplUniToDBCSTab_JOHAB_70 }, /* 0x70 */ - { 0x04, 0xFF, aImplUniToDBCSTab_JOHAB_71 }, /* 0x71 */ - { 0x00, 0xFD, aImplUniToDBCSTab_JOHAB_72 }, /* 0x72 */ - { 0x02, 0xFE, aImplUniToDBCSTab_JOHAB_73 }, /* 0x73 */ - { 0x01, 0xF7, aImplUniToDBCSTab_JOHAB_74 }, /* 0x74 */ - { 0x01, 0xFC, aImplUniToDBCSTab_JOHAB_75 }, /* 0x75 */ - { 0x00, 0xFE, aImplUniToDBCSTab_JOHAB_76 }, /* 0x76 */ - { 0x01, 0xFB, aImplUniToDBCSTab_JOHAB_77 }, /* 0x77 */ - { 0x02, 0xFB, aImplUniToDBCSTab_JOHAB_78 }, /* 0x78 */ - { 0x01, 0xFB, aImplUniToDBCSTab_JOHAB_79 }, /* 0x79 */ - { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_7A }, /* 0x7A */ - { 0x0F, 0xE9, aImplUniToDBCSTab_JOHAB_7B }, /* 0x7B */ - { 0x07, 0xFE, aImplUniToDBCSTab_JOHAB_7C }, /* 0x7C */ - { 0x00, 0xFB, aImplUniToDBCSTab_JOHAB_7D }, /* 0x7D */ - { 0x09, 0x9C, aImplUniToDBCSTab_JOHAB_7E }, /* 0x7E */ - { 0x36, 0xFC, aImplUniToDBCSTab_JOHAB_7F }, /* 0x7F */ - { 0x00, 0xFD, aImplUniToDBCSTab_JOHAB_80 }, /* 0x80 */ - { 0x02, 0xFE, aImplUniToDBCSTab_JOHAB_81 }, /* 0x81 */ - { 0x05, 0xFE, aImplUniToDBCSTab_JOHAB_82 }, /* 0x82 */ - { 0x01, 0xFD, aImplUniToDBCSTab_JOHAB_83 }, /* 0x83 */ - { 0x03, 0xFC, aImplUniToDBCSTab_JOHAB_84 }, /* 0x84 */ - { 0x11, 0xFF, aImplUniToDBCSTab_JOHAB_85 }, /* 0x85 */ - { 0x02, 0xFE, aImplUniToDBCSTab_JOHAB_86 }, /* 0x86 */ - { 0x00, 0xFE, aImplUniToDBCSTab_JOHAB_87 }, /* 0x87 */ - { 0x05, 0xFD, aImplUniToDBCSTab_JOHAB_88 }, /* 0x88 */ - { 0x07, 0xF8, aImplUniToDBCSTab_JOHAB_89 }, /* 0x89 */ - { 0x00, 0xFE, aImplUniToDBCSTab_JOHAB_8A }, /* 0x8A */ - { 0x00, 0x9A, aImplUniToDBCSTab_JOHAB_8B }, /* 0x8B */ - { 0x37, 0xFD, aImplUniToDBCSTab_JOHAB_8C }, /* 0x8C */ - { 0x04, 0xFB, aImplUniToDBCSTab_JOHAB_8D }, /* 0x8D */ - { 0x0A, 0xFE, aImplUniToDBCSTab_JOHAB_8E }, /* 0x8E */ - { 0x03, 0xFD, aImplUniToDBCSTab_JOHAB_8F }, /* 0x8F */ - { 0x00, 0xFD, aImplUniToDBCSTab_JOHAB_90 }, /* 0x90 */ - { 0x02, 0xF5, aImplUniToDBCSTab_JOHAB_91 }, /* 0x91 */ - { 0x0D, 0xFC, aImplUniToDBCSTab_JOHAB_92 }, /* 0x92 */ - { 0x04, 0xF6, aImplUniToDBCSTab_JOHAB_93 }, /* 0x93 */ - { 0x04, 0x7F, aImplUniToDBCSTab_JOHAB_94 }, /* 0x94 */ - { 0x77, 0xE2, aImplUniToDBCSTab_JOHAB_95 }, /* 0x95 */ - { 0x1C, 0xFB, aImplUniToDBCSTab_JOHAB_96 }, /* 0x96 */ - { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_97 }, /* 0x97 */ - { 0x00, 0xFE, aImplUniToDBCSTab_JOHAB_98 }, /* 0x98 */ - { 0x03, 0xFF, aImplUniToDBCSTab_JOHAB_99 }, /* 0x99 */ - { 0x01, 0xEE, aImplUniToDBCSTab_JOHAB_9A }, /* 0x9A */ - { 0x1A, 0xE8, aImplUniToDBCSTab_JOHAB_9B }, /* 0x9B */ - { 0x0D, 0xF6, aImplUniToDBCSTab_JOHAB_9C }, /* 0x9C */ - { 0x09, 0xFA, aImplUniToDBCSTab_JOHAB_9D }, /* 0x9D */ - { 0x1A, 0xF4, aImplUniToDBCSTab_JOHAB_9E }, /* 0x9E */ - { 0x07, 0x9C, aImplUniToDBCSTab_JOHAB_9F }, /* 0x9F */ - { 1, 0, NULL }, /* 0xA0 */ - { 1, 0, NULL }, /* 0xA1 */ - { 1, 0, NULL }, /* 0xA2 */ - { 1, 0, NULL }, /* 0xA3 */ - { 1, 0, NULL }, /* 0xA4 */ - { 1, 0, NULL }, /* 0xA5 */ - { 1, 0, NULL }, /* 0xA6 */ - { 1, 0, NULL }, /* 0xA7 */ - { 1, 0, NULL }, /* 0xA8 */ - { 1, 0, NULL }, /* 0xA9 */ - { 1, 0, NULL }, /* 0xAA */ - { 1, 0, NULL }, /* 0xAB */ - { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_AC }, /* 0xAC */ - { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_AD }, /* 0xAD */ - { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_AE }, /* 0xAE */ - { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_AF }, /* 0xAF */ - { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_B0 }, /* 0xB0 */ - { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_B1 }, /* 0xB1 */ - { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_B2 }, /* 0xB2 */ - { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_B3 }, /* 0xB3 */ - { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_B4 }, /* 0xB4 */ - { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_B5 }, /* 0xB5 */ - { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_B6 }, /* 0xB6 */ - { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_B7 }, /* 0xB7 */ - { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_B8 }, /* 0xB8 */ - { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_B9 }, /* 0xB9 */ - { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_BA }, /* 0xBA */ - { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_BB }, /* 0xBB */ - { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_BC }, /* 0xBC */ - { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_BD }, /* 0xBD */ - { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_BE }, /* 0xBE */ - { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_BF }, /* 0xBF */ - { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_C0 }, /* 0xC0 */ - { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_C1 }, /* 0xC1 */ - { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_C2 }, /* 0xC2 */ - { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_C3 }, /* 0xC3 */ - { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_C4 }, /* 0xC4 */ - { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_C5 }, /* 0xC5 */ - { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_C6 }, /* 0xC6 */ - { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_C7 }, /* 0xC7 */ - { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_C8 }, /* 0xC8 */ - { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_C9 }, /* 0xC9 */ - { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_CA }, /* 0xCA */ - { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_CB }, /* 0xCB */ - { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_CC }, /* 0xCC */ - { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_CD }, /* 0xCD */ - { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_CE }, /* 0xCE */ - { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_CF }, /* 0xCF */ - { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_D0 }, /* 0xD0 */ - { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_D1 }, /* 0xD1 */ - { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_D2 }, /* 0xD2 */ - { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_D3 }, /* 0xD3 */ - { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_D4 }, /* 0xD4 */ - { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_D5 }, /* 0xD5 */ - { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_D6 }, /* 0xD6 */ - { 0x00, 0xA3, aImplUniToDBCSTab_JOHAB_D7 }, /* 0xD7 */ - { 1, 0, NULL }, /* 0xD8 */ - { 1, 0, NULL }, /* 0xD9 */ - { 1, 0, NULL }, /* 0xDA */ - { 1, 0, NULL }, /* 0xDB */ - { 1, 0, NULL }, /* 0xDC */ - { 1, 0, NULL }, /* 0xDD */ - { 1, 0, NULL }, /* 0xDE */ - { 1, 0, NULL }, /* 0xDF */ - { 1, 0, NULL }, /* 0xE0 */ - { 1, 0, NULL }, /* 0xE1 */ - { 1, 0, NULL }, /* 0xE2 */ - { 1, 0, NULL }, /* 0xE3 */ - { 1, 0, NULL }, /* 0xE4 */ - { 1, 0, NULL }, /* 0xE5 */ - { 1, 0, NULL }, /* 0xE6 */ - { 1, 0, NULL }, /* 0xE7 */ - { 1, 0, NULL }, /* 0xE8 */ - { 1, 0, NULL }, /* 0xE9 */ - { 1, 0, NULL }, /* 0xEA */ - { 1, 0, NULL }, /* 0xEB */ - { 1, 0, NULL }, /* 0xEC */ - { 1, 0, NULL }, /* 0xED */ - { 1, 0, NULL }, /* 0xEE */ - { 1, 0, NULL }, /* 0xEF */ - { 1, 0, NULL }, /* 0xF0 */ - { 1, 0, NULL }, /* 0xF1 */ - { 1, 0, NULL }, /* 0xF2 */ - { 1, 0, NULL }, /* 0xF3 */ - { 1, 0, NULL }, /* 0xF4 */ - { 1, 0, NULL }, /* 0xF5 */ - { 1, 0, NULL }, /* 0xF6 */ - { 1, 0, NULL }, /* 0xF7 */ - { 1, 0, NULL }, /* 0xF8 */ - { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_F9 }, /* 0xF9 */ - { 0x00, 0x0B, aImplUniToDBCSTab_JOHAB_FA }, /* 0xFA */ - { 1, 0, NULL }, /* 0xFB */ - { 1, 0, NULL }, /* 0xFC */ - { 1, 0, NULL }, /* 0xFD */ - { 1, 0, NULL }, /* 0xFE */ - { 0x01, 0xE6, aImplUniToDBCSTab_JOHAB_FF } /* 0xFF */ + { 0x00, 0xFE, aImplUniToDBCSTab_JOHAB_00 }, /* 0x00 */ + { 0x11, 0x67, aImplUniToDBCSTab_JOHAB_01 }, /* 0x01 */ + { 0xC7, 0xDD, aImplUniToDBCSTab_JOHAB_02 }, /* 0x02 */ + { 0x91, 0xC9, aImplUniToDBCSTab_JOHAB_03 }, /* 0x03 */ + { 0x01, 0x51, aImplUniToDBCSTab_JOHAB_04 }, /* 0x04 */ + { 1, 0, NULL }, /* 0x05 */ + { 1, 0, NULL }, /* 0x06 */ + { 1, 0, NULL }, /* 0x07 */ + { 1, 0, NULL }, /* 0x08 */ + { 1, 0, NULL }, /* 0x09 */ + { 1, 0, NULL }, /* 0x0A */ + { 1, 0, NULL }, /* 0x0B */ + { 1, 0, NULL }, /* 0x0C */ + { 1, 0, NULL }, /* 0x0D */ + { 1, 0, NULL }, /* 0x0E */ + { 1, 0, NULL }, /* 0x0F */ + { 1, 0, NULL }, /* 0x10 */ + { 1, 0, NULL }, /* 0x11 */ + { 1, 0, NULL }, /* 0x12 */ + { 1, 0, NULL }, /* 0x13 */ + { 1, 0, NULL }, /* 0x14 */ + { 1, 0, NULL }, /* 0x15 */ + { 1, 0, NULL }, /* 0x16 */ + { 1, 0, NULL }, /* 0x17 */ + { 1, 0, NULL }, /* 0x18 */ + { 1, 0, NULL }, /* 0x19 */ + { 1, 0, NULL }, /* 0x1A */ + { 1, 0, NULL }, /* 0x1B */ + { 1, 0, NULL }, /* 0x1C */ + { 1, 0, NULL }, /* 0x1D */ + { 1, 0, NULL }, /* 0x1E */ + { 1, 0, NULL }, /* 0x1F */ + { 0x15, 0xA9, aImplUniToDBCSTab_JOHAB_20 }, /* 0x20 */ + { 0x03, 0xD4, aImplUniToDBCSTab_JOHAB_21 }, /* 0x21 */ + { 0x00, 0xA5, aImplUniToDBCSTab_JOHAB_22 }, /* 0x22 */ + { 0x12, 0x12, aImplUniToDBCSTab_JOHAB_23 }, /* 0x23 */ + { 0x60, 0xE9, aImplUniToDBCSTab_JOHAB_24 }, /* 0x24 */ + { 0x00, 0xD1, aImplUniToDBCSTab_JOHAB_25 }, /* 0x25 */ + { 0x05, 0x6D, aImplUniToDBCSTab_JOHAB_26 }, /* 0x26 */ + { 1, 0, NULL }, /* 0x27 */ + { 1, 0, NULL }, /* 0x28 */ + { 1, 0, NULL }, /* 0x29 */ + { 1, 0, NULL }, /* 0x2A */ + { 1, 0, NULL }, /* 0x2B */ + { 1, 0, NULL }, /* 0x2C */ + { 1, 0, NULL }, /* 0x2D */ + { 1, 0, NULL }, /* 0x2E */ + { 1, 0, NULL }, /* 0x2F */ + { 0x00, 0xF7, aImplUniToDBCSTab_JOHAB_30 }, /* 0x30 */ + { 0x31, 0x8E, aImplUniToDBCSTab_JOHAB_31 }, /* 0x31 */ + { 0x00, 0x7F, aImplUniToDBCSTab_JOHAB_32 }, /* 0x32 */ + { 0x80, 0xDD, aImplUniToDBCSTab_JOHAB_33 }, /* 0x33 */ + { 1, 0, NULL }, /* 0x34 */ + { 1, 0, NULL }, /* 0x35 */ + { 1, 0, NULL }, /* 0x36 */ + { 1, 0, NULL }, /* 0x37 */ + { 1, 0, NULL }, /* 0x38 */ + { 1, 0, NULL }, /* 0x39 */ + { 1, 0, NULL }, /* 0x3A */ + { 1, 0, NULL }, /* 0x3B */ + { 1, 0, NULL }, /* 0x3C */ + { 1, 0, NULL }, /* 0x3D */ + { 1, 0, NULL }, /* 0x3E */ + { 1, 0, NULL }, /* 0x3F */ + { 1, 0, NULL }, /* 0x40 */ + { 1, 0, NULL }, /* 0x41 */ + { 1, 0, NULL }, /* 0x42 */ + { 1, 0, NULL }, /* 0x43 */ + { 1, 0, NULL }, /* 0x44 */ + { 1, 0, NULL }, /* 0x45 */ + { 1, 0, NULL }, /* 0x46 */ + { 1, 0, NULL }, /* 0x47 */ + { 1, 0, NULL }, /* 0x48 */ + { 1, 0, NULL }, /* 0x49 */ + { 1, 0, NULL }, /* 0x4A */ + { 1, 0, NULL }, /* 0x4B */ + { 1, 0, NULL }, /* 0x4C */ + { 1, 0, NULL }, /* 0x4D */ + { 0x00, 0xFB, aImplUniToDBCSTab_JOHAB_4E }, /* 0x4E */ + { 0x01, 0xFA, aImplUniToDBCSTab_JOHAB_4F }, /* 0x4F */ + { 0x02, 0xFF, aImplUniToDBCSTab_JOHAB_50 }, /* 0x50 */ + { 0x00, 0xFD, aImplUniToDBCSTab_JOHAB_51 }, /* 0x51 */ + { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_52 }, /* 0x52 */ + { 0x05, 0xF8, aImplUniToDBCSTab_JOHAB_53 }, /* 0x53 */ + { 0x03, 0xFA, aImplUniToDBCSTab_JOHAB_54 }, /* 0x54 */ + { 0x04, 0xFE, aImplUniToDBCSTab_JOHAB_55 }, /* 0x55 */ + { 0x06, 0xFA, aImplUniToDBCSTab_JOHAB_56 }, /* 0x56 */ + { 0x03, 0xFC, aImplUniToDBCSTab_JOHAB_57 }, /* 0x57 */ + { 0x00, 0xFD, aImplUniToDBCSTab_JOHAB_58 }, /* 0x58 */ + { 0x07, 0xFF, aImplUniToDBCSTab_JOHAB_59 }, /* 0x59 */ + { 0x01, 0xE9, aImplUniToDBCSTab_JOHAB_5A }, /* 0x5A */ + { 0x05, 0xFA, aImplUniToDBCSTab_JOHAB_5B }, /* 0x5B */ + { 0x01, 0xFD, aImplUniToDBCSTab_JOHAB_5C }, /* 0x5C */ + { 0x07, 0xFE, aImplUniToDBCSTab_JOHAB_5D }, /* 0x5D */ + { 0x02, 0xFB, aImplUniToDBCSTab_JOHAB_5E }, /* 0x5E */ + { 0x01, 0xFF, aImplUniToDBCSTab_JOHAB_5F }, /* 0x5F */ + { 0x07, 0xFB, aImplUniToDBCSTab_JOHAB_60 }, /* 0x60 */ + { 0x01, 0xFF, aImplUniToDBCSTab_JOHAB_61 }, /* 0x61 */ + { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_62 }, /* 0x62 */ + { 0x01, 0xF7, aImplUniToDBCSTab_JOHAB_63 }, /* 0x63 */ + { 0x0D, 0xFE, aImplUniToDBCSTab_JOHAB_64 }, /* 0x64 */ + { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_65 }, /* 0x65 */ + { 0x06, 0xFF, aImplUniToDBCSTab_JOHAB_66 }, /* 0x66 */ + { 0x00, 0xFE, aImplUniToDBCSTab_JOHAB_67 }, /* 0x67 */ + { 0x12, 0xFA, aImplUniToDBCSTab_JOHAB_68 }, /* 0x68 */ + { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_69 }, /* 0x69 */ + { 0x02, 0xFB, aImplUniToDBCSTab_JOHAB_6A }, /* 0x6A */ + { 0x04, 0xEC, aImplUniToDBCSTab_JOHAB_6B }, /* 0x6B */ + { 0x08, 0xF3, aImplUniToDBCSTab_JOHAB_6C }, /* 0x6C */ + { 0x03, 0xFB, aImplUniToDBCSTab_JOHAB_6D }, /* 0x6D */ + { 0x17, 0xFF, aImplUniToDBCSTab_JOHAB_6E }, /* 0x6E */ + { 0x01, 0xFE, aImplUniToDBCSTab_JOHAB_6F }, /* 0x6F */ + { 0x01, 0xFD, aImplUniToDBCSTab_JOHAB_70 }, /* 0x70 */ + { 0x04, 0xFF, aImplUniToDBCSTab_JOHAB_71 }, /* 0x71 */ + { 0x00, 0xFD, aImplUniToDBCSTab_JOHAB_72 }, /* 0x72 */ + { 0x02, 0xFE, aImplUniToDBCSTab_JOHAB_73 }, /* 0x73 */ + { 0x01, 0xF7, aImplUniToDBCSTab_JOHAB_74 }, /* 0x74 */ + { 0x01, 0xFC, aImplUniToDBCSTab_JOHAB_75 }, /* 0x75 */ + { 0x00, 0xFE, aImplUniToDBCSTab_JOHAB_76 }, /* 0x76 */ + { 0x01, 0xFB, aImplUniToDBCSTab_JOHAB_77 }, /* 0x77 */ + { 0x02, 0xFB, aImplUniToDBCSTab_JOHAB_78 }, /* 0x78 */ + { 0x01, 0xFB, aImplUniToDBCSTab_JOHAB_79 }, /* 0x79 */ + { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_7A }, /* 0x7A */ + { 0x0F, 0xE9, aImplUniToDBCSTab_JOHAB_7B }, /* 0x7B */ + { 0x07, 0xFE, aImplUniToDBCSTab_JOHAB_7C }, /* 0x7C */ + { 0x00, 0xFB, aImplUniToDBCSTab_JOHAB_7D }, /* 0x7D */ + { 0x09, 0x9C, aImplUniToDBCSTab_JOHAB_7E }, /* 0x7E */ + { 0x36, 0xFC, aImplUniToDBCSTab_JOHAB_7F }, /* 0x7F */ + { 0x00, 0xFD, aImplUniToDBCSTab_JOHAB_80 }, /* 0x80 */ + { 0x02, 0xFE, aImplUniToDBCSTab_JOHAB_81 }, /* 0x81 */ + { 0x05, 0xFE, aImplUniToDBCSTab_JOHAB_82 }, /* 0x82 */ + { 0x01, 0xFD, aImplUniToDBCSTab_JOHAB_83 }, /* 0x83 */ + { 0x03, 0xFC, aImplUniToDBCSTab_JOHAB_84 }, /* 0x84 */ + { 0x11, 0xFF, aImplUniToDBCSTab_JOHAB_85 }, /* 0x85 */ + { 0x02, 0xFE, aImplUniToDBCSTab_JOHAB_86 }, /* 0x86 */ + { 0x00, 0xFE, aImplUniToDBCSTab_JOHAB_87 }, /* 0x87 */ + { 0x05, 0xFD, aImplUniToDBCSTab_JOHAB_88 }, /* 0x88 */ + { 0x07, 0xF8, aImplUniToDBCSTab_JOHAB_89 }, /* 0x89 */ + { 0x00, 0xFE, aImplUniToDBCSTab_JOHAB_8A }, /* 0x8A */ + { 0x00, 0x9A, aImplUniToDBCSTab_JOHAB_8B }, /* 0x8B */ + { 0x37, 0xFD, aImplUniToDBCSTab_JOHAB_8C }, /* 0x8C */ + { 0x04, 0xFB, aImplUniToDBCSTab_JOHAB_8D }, /* 0x8D */ + { 0x0A, 0xFE, aImplUniToDBCSTab_JOHAB_8E }, /* 0x8E */ + { 0x03, 0xFD, aImplUniToDBCSTab_JOHAB_8F }, /* 0x8F */ + { 0x00, 0xFD, aImplUniToDBCSTab_JOHAB_90 }, /* 0x90 */ + { 0x02, 0xF5, aImplUniToDBCSTab_JOHAB_91 }, /* 0x91 */ + { 0x0D, 0xFC, aImplUniToDBCSTab_JOHAB_92 }, /* 0x92 */ + { 0x04, 0xF6, aImplUniToDBCSTab_JOHAB_93 }, /* 0x93 */ + { 0x04, 0x7F, aImplUniToDBCSTab_JOHAB_94 }, /* 0x94 */ + { 0x77, 0xE2, aImplUniToDBCSTab_JOHAB_95 }, /* 0x95 */ + { 0x1C, 0xFB, aImplUniToDBCSTab_JOHAB_96 }, /* 0x96 */ + { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_97 }, /* 0x97 */ + { 0x00, 0xFE, aImplUniToDBCSTab_JOHAB_98 }, /* 0x98 */ + { 0x03, 0xFF, aImplUniToDBCSTab_JOHAB_99 }, /* 0x99 */ + { 0x01, 0xEE, aImplUniToDBCSTab_JOHAB_9A }, /* 0x9A */ + { 0x1A, 0xE8, aImplUniToDBCSTab_JOHAB_9B }, /* 0x9B */ + { 0x0D, 0xF6, aImplUniToDBCSTab_JOHAB_9C }, /* 0x9C */ + { 0x09, 0xFA, aImplUniToDBCSTab_JOHAB_9D }, /* 0x9D */ + { 0x1A, 0xF4, aImplUniToDBCSTab_JOHAB_9E }, /* 0x9E */ + { 0x07, 0x9C, aImplUniToDBCSTab_JOHAB_9F }, /* 0x9F */ + { 1, 0, NULL }, /* 0xA0 */ + { 1, 0, NULL }, /* 0xA1 */ + { 1, 0, NULL }, /* 0xA2 */ + { 1, 0, NULL }, /* 0xA3 */ + { 1, 0, NULL }, /* 0xA4 */ + { 1, 0, NULL }, /* 0xA5 */ + { 1, 0, NULL }, /* 0xA6 */ + { 1, 0, NULL }, /* 0xA7 */ + { 1, 0, NULL }, /* 0xA8 */ + { 1, 0, NULL }, /* 0xA9 */ + { 1, 0, NULL }, /* 0xAA */ + { 1, 0, NULL }, /* 0xAB */ + { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_AC }, /* 0xAC */ + { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_AD }, /* 0xAD */ + { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_AE }, /* 0xAE */ + { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_AF }, /* 0xAF */ + { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_B0 }, /* 0xB0 */ + { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_B1 }, /* 0xB1 */ + { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_B2 }, /* 0xB2 */ + { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_B3 }, /* 0xB3 */ + { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_B4 }, /* 0xB4 */ + { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_B5 }, /* 0xB5 */ + { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_B6 }, /* 0xB6 */ + { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_B7 }, /* 0xB7 */ + { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_B8 }, /* 0xB8 */ + { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_B9 }, /* 0xB9 */ + { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_BA }, /* 0xBA */ + { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_BB }, /* 0xBB */ + { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_BC }, /* 0xBC */ + { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_BD }, /* 0xBD */ + { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_BE }, /* 0xBE */ + { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_BF }, /* 0xBF */ + { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_C0 }, /* 0xC0 */ + { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_C1 }, /* 0xC1 */ + { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_C2 }, /* 0xC2 */ + { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_C3 }, /* 0xC3 */ + { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_C4 }, /* 0xC4 */ + { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_C5 }, /* 0xC5 */ + { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_C6 }, /* 0xC6 */ + { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_C7 }, /* 0xC7 */ + { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_C8 }, /* 0xC8 */ + { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_C9 }, /* 0xC9 */ + { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_CA }, /* 0xCA */ + { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_CB }, /* 0xCB */ + { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_CC }, /* 0xCC */ + { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_CD }, /* 0xCD */ + { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_CE }, /* 0xCE */ + { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_CF }, /* 0xCF */ + { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_D0 }, /* 0xD0 */ + { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_D1 }, /* 0xD1 */ + { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_D2 }, /* 0xD2 */ + { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_D3 }, /* 0xD3 */ + { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_D4 }, /* 0xD4 */ + { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_D5 }, /* 0xD5 */ + { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_D6 }, /* 0xD6 */ + { 0x00, 0xA3, aImplUniToDBCSTab_JOHAB_D7 }, /* 0xD7 */ + { 1, 0, NULL }, /* 0xD8 */ + { 1, 0, NULL }, /* 0xD9 */ + { 1, 0, NULL }, /* 0xDA */ + { 1, 0, NULL }, /* 0xDB */ + { 1, 0, NULL }, /* 0xDC */ + { 1, 0, NULL }, /* 0xDD */ + { 1, 0, NULL }, /* 0xDE */ + { 1, 0, NULL }, /* 0xDF */ + { 1, 0, NULL }, /* 0xE0 */ + { 1, 0, NULL }, /* 0xE1 */ + { 1, 0, NULL }, /* 0xE2 */ + { 1, 0, NULL }, /* 0xE3 */ + { 1, 0, NULL }, /* 0xE4 */ + { 1, 0, NULL }, /* 0xE5 */ + { 1, 0, NULL }, /* 0xE6 */ + { 1, 0, NULL }, /* 0xE7 */ + { 1, 0, NULL }, /* 0xE8 */ + { 1, 0, NULL }, /* 0xE9 */ + { 1, 0, NULL }, /* 0xEA */ + { 1, 0, NULL }, /* 0xEB */ + { 1, 0, NULL }, /* 0xEC */ + { 1, 0, NULL }, /* 0xED */ + { 1, 0, NULL }, /* 0xEE */ + { 1, 0, NULL }, /* 0xEF */ + { 1, 0, NULL }, /* 0xF0 */ + { 1, 0, NULL }, /* 0xF1 */ + { 1, 0, NULL }, /* 0xF2 */ + { 1, 0, NULL }, /* 0xF3 */ + { 1, 0, NULL }, /* 0xF4 */ + { 1, 0, NULL }, /* 0xF5 */ + { 1, 0, NULL }, /* 0xF6 */ + { 1, 0, NULL }, /* 0xF7 */ + { 1, 0, NULL }, /* 0xF8 */ + { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_F9 }, /* 0xF9 */ + { 0x00, 0x0B, aImplUniToDBCSTab_JOHAB_FA }, /* 0xFA */ + { 1, 0, NULL }, /* 0xFB */ + { 1, 0, NULL }, /* 0xFC */ + { 1, 0, NULL }, /* 0xFD */ + { 1, 0, NULL }, /* 0xFE */ + { 0x01, 0xE6, aImplUniToDBCSTab_JOHAB_FF } /* 0xFF */ }; /* ----------------------------------------------------------------------- */ -/* D831-D87E -> E000-E05D */ -/* D891-D8FE -> E05E-E0BB */ +/* D831-D87E -> E000-E05D */ +/* D891-D8FE -> E05E-E0BB */ -#define DBCS_EUDC_MS1361_COUNT 2 +#define DBCS_EUDC_MS1361_COUNT 2 static ImplDBCSEUDCData const aImplMS1361DBCSEUDCTab[DBCS_EUDC_MS1361_COUNT] = { /* EUDC-Range */ - /* Lead: D8-D8 */ - /* Trail: 31-7E */ + /* Lead: D8-D8 */ + /* Trail: 31-7E */ { 0xD8, 0xD8, 0x31, 0x7E, 0, 0, 0, 0, 1, 0x5D, 0xE000, 0xE05D }, - /* Lead: D8-D8 */ - /* Trail: 91-FE */ + /* Lead: D8-D8 */ + /* Trail: 91-FE */ { 0xD8, 0xD8, 0x91, 0xFE, 0, 0, 0, 0, 1, 0x5D, 0xE05E, 0xE0BB } }; @@ -1250,44 +1239,26 @@ static ImplDBCSConvertData const aImplJOHABDBCSCvtData = DBCS_EUDC_MS1361_COUNT }; -/* ----------------------------------------------------------------------- */ - -static ImplTextConverterData const aImplJOHABTextConverterData = -{ - &aImplJOHABDBCSCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplJOHABTextConverter = -{ - &aImplJOHABTextConverterData, - ImplDBCSToUnicode, - ImplUnicodeToDBCS, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - /* ======================================================================= */ -static ImplTextEncodingData const aImplMS1361TextEncodingData = -{ - &aImplJOHABTextConverter, - RTL_TEXTENCODING_MS_1361, - 1, 2, 2, - 130, - 1361, - 3, - (const sal_Char*)"euc-kr", - (const sal_Char*)"euc-kr", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_MULTIBYTE | - RTL_TEXTENCODING_INFO_MIME, - SCRIPT_KOREAN -}; +static ImplTextEncodingData const aImplMS1361TextEncodingData + = { { &aImplJOHABDBCSCvtData, + ImplDBCSToUnicode, + ImplUnicodeToDBCS, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_MS_1361, + 1, + 2, + 2, + 130, + "euc-kr", + "euc-kr", + RTL_TEXTENCODING_INFO_ASCII + | RTL_TEXTENCODING_INFO_MULTIBYTE + | RTL_TEXTENCODING_INFO_MIME }; + /* SCRIPT_KOREAN, pc code page 1361, mac encoding 3 */ diff --git a/sal/textenc/tcvtlat1.tab b/sal/textenc/tcvtlat1.tab index 3907b060c..51f169507 100644 --- a/sal/textenc/tcvtlat1.tab +++ b/sal/textenc/tcvtlat1.tab @@ -2,9 +2,9 @@ * * $RCSfile: tcvtlat1.tab,v $ * - * $Revision: 1.2 $ + * $Revision: 1.3 $ * - * last change: $Author: th $ $Date: 2001-07-16 11:33:08 $ + * last change: $Author: sb $ $Date: 2001-10-12 10:44:53 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -66,67 +66,6 @@ /* ======================================================================= */ -/* Hilfstabellen, die fuer mehrere Zeichensaetze gelten */ - -/* ----------------------------------------------------------------------- */ - -#define NOTABCHAR_START 0xFFFF -#define NOTABCHAR_END 0x0000 -#define NOTABUNI_START 0xFF -#define NOTABUNI_END 0x00 - -/* ----------------------------------------------------------------------- */ - -#define SAME8090UNI_START 0x80 -#define SAME8090UNI_END 0x9F -static sal_uInt16 const aImpl8090SameToUniTab[SAME8090UNI_END - SAME8090UNI_START + 1] = -{ -/* 0 1 2 3 4 5 6 7 */ -/* 8 9 A B C D E F */ - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, /* 0x80 */ - 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F, /* 0x80 */ - 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, /* 0x90 */ - 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F, /* 0x90 */ -}; - -/* ----------------------------------------------------------------------- */ - -#define SAME8090CHAR_START 0x0080 -#define SAME8090CHAR_END 0x009F -static sal_uChar const aImpl8090SameToCharTab[SAME8090CHAR_END - SAME8090CHAR_START + 1] = -{ -/* 0 1 2 3 4 5 6 7 */ -/* 8 9 A B C D E F */ - 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x0080 */ - 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, /* 0x0080 */ - 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, /* 0x0090 */ - 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F /* 0x0090 */ -}; - -/* ----------------------------------------------------------------------- */ - -#define SAMEA0FFCHAR_START 0x00A0 -#define SAMEA0FFCHAR_END 0x00FF -static sal_uChar const aImplA0FFSameToCharTab[SAMEA0FFCHAR_END - SAMEA0FFCHAR_START + 1] = -{ -/* 0 1 2 3 4 5 6 7 */ -/* 8 9 A B C D E F */ - 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, /* 0x00A0 */ - 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, /* 0x00A0 */ - 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, /* 0x00B0 */ - 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, /* 0x00B0 */ - 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, /* 0x00C0 */ - 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, /* 0x00C0 */ - 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, /* 0x00D0 */ - 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, /* 0x00D0 */ - 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, /* 0x00E0 */ - 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, /* 0x00E0 */ - 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, /* 0x00F0 */ - 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF /* 0x00F0 */ -}; - -/* ======================================================================= */ - /* IBM-437 */ /* Dos Latin US - Standard CharSet for Western Script */ /* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme */ @@ -281,45 +220,25 @@ static ImplByteConvertData const aImplIBM437ByteCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData const aImplIBM437TextConverterData = -{ - &aImplIBM437ByteCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplIBM437TextConverter = -{ - &aImplIBM437TextConverterData, - ImplCharToUnicode, - ImplUnicodeToChar, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplIBM437TextEncodingData = -{ - &aImplIBM437TextConverter, - RTL_TEXTENCODING_IBM_437, - 1, 1, 1, - 0, - 437, - 0, - (const sal_Char*)"iso8859-1", - (const sal_Char*)"ibm437", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_MIME | - RTL_TEXTENCODING_INFO_DOS_OS2, - SCRIPT_LATIN -}; +static ImplTextEncodingData const aImplIBM437TextEncodingData + = { { &aImplIBM437ByteCvtData, + ImplCharToUnicode, + ImplUnicodeToChar, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_IBM_437, + 1, + 1, + 1, + 0, + "iso8859-1", + "ibm437", + RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME }; + /* DOS/OS2, SCRIPT_LATIN, pc code page 437 */ /* ======================================================================= */ @@ -436,45 +355,25 @@ static ImplByteConvertData const aImplIBM850ByteCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData const aImplIBM850TextConverterData = -{ - &aImplIBM850ByteCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplIBM850TextConverter = -{ - &aImplIBM850TextConverterData, - ImplCharToUnicode, - ImplUnicodeToChar, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplIBM850TextEncodingData = -{ - &aImplIBM850TextConverter, - RTL_TEXTENCODING_IBM_850, - 1, 1, 1, - 0, - 850, - 0, - (const sal_Char*)"iso8859-1", - (const sal_Char*)"ibm850", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_MIME | - RTL_TEXTENCODING_INFO_DOS_OS2, - SCRIPT_LATIN -}; +static ImplTextEncodingData const aImplIBM850TextEncodingData + = { { &aImplIBM850ByteCvtData, + ImplCharToUnicode, + ImplUnicodeToChar, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_IBM_850, + 1, + 1, + 1, + 0, + "iso8859-1", + "ibm850", + RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME }; + /* DOS/OS2, SCRIPT_LATIN, pc code page 850 */ /* ======================================================================= */ @@ -630,44 +529,25 @@ static ImplByteConvertData const aImplIBM860ByteCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData const aImplIBM860TextConverterData = -{ - &aImplIBM860ByteCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplIBM860TextConverter = -{ - &aImplIBM860TextConverterData, - ImplCharToUnicode, - ImplUnicodeToChar, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplIBM860TextEncodingData = -{ - &aImplIBM860TextConverter, - RTL_TEXTENCODING_IBM_860, - 1, 1, 1, - 0, - 860, - 0, - (const sal_Char*)"iso8859-1", - (const sal_Char*)"iso-8859-1", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_DOS_OS2, - SCRIPT_LATIN -}; +static ImplTextEncodingData const aImplIBM860TextEncodingData + = { { &aImplIBM860ByteCvtData, + ImplCharToUnicode, + ImplUnicodeToChar, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_IBM_860, + 1, + 1, + 1, + 0, + "iso8859-1", + "iso-8859-1", + RTL_TEXTENCODING_INFO_ASCII }; + /* DOS/OS2, SCRIPT_LATIN, pc code page 860 */ /* ======================================================================= */ @@ -825,44 +705,25 @@ static ImplByteConvertData const aImplIBM861ByteCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData const aImplIBM861TextConverterData = -{ - &aImplIBM861ByteCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplIBM861TextConverter = -{ - &aImplIBM861TextConverterData, - ImplCharToUnicode, - ImplUnicodeToChar, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplIBM861TextEncodingData = -{ - &aImplIBM861TextConverter, - RTL_TEXTENCODING_IBM_861, - 1, 1, 1, - 0, - 861, - 37, - (const sal_Char*)"iso8859-1", - (const sal_Char*)"iso-8859-1", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_DOS_OS2, - SCRIPT_LATIN -}; +static ImplTextEncodingData const aImplIBM861TextEncodingData + = { { &aImplIBM861ByteCvtData, + ImplCharToUnicode, + ImplUnicodeToChar, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_IBM_861, + 1, + 1, + 1, + 0, + "iso8859-1", + "iso-8859-1", + RTL_TEXTENCODING_INFO_ASCII }; + /* DOS/OS2, SCRIPT_LATIN, pc code page 861, mac encoding 37 */ /* ======================================================================= */ @@ -1020,44 +881,25 @@ static ImplByteConvertData const aImplIBM863ByteCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData const aImplIBM863TextConverterData = -{ - &aImplIBM863ByteCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplIBM863TextConverter = -{ - &aImplIBM863TextConverterData, - ImplCharToUnicode, - ImplUnicodeToChar, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplIBM863TextEncodingData = -{ - &aImplIBM863TextConverter, - RTL_TEXTENCODING_IBM_863, - 1, 1, 1, - 0, - 863, - 0, - (const sal_Char*)"iso8859-1", - (const sal_Char*)"iso-8859-1", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_DOS_OS2, - SCRIPT_LATIN -}; +static ImplTextEncodingData const aImplIBM863TextEncodingData + = { { &aImplIBM863ByteCvtData, + ImplCharToUnicode, + ImplUnicodeToChar, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_IBM_863, + 1, + 1, + 1, + 0, + "iso8859-1", + "iso-8859-1", + RTL_TEXTENCODING_INFO_ASCII }; + /* DOS/OS2, SCRIPT_LATIN, pc code page 863 */ /* ======================================================================= */ @@ -1215,44 +1057,25 @@ static ImplByteConvertData const aImplIBM865ByteCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData const aImplIBM865TextConverterData = -{ - &aImplIBM865ByteCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplIBM865TextConverter = -{ - &aImplIBM865TextConverterData, - ImplCharToUnicode, - ImplUnicodeToChar, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplIBM865TextEncodingData = -{ - &aImplIBM865TextConverter, - RTL_TEXTENCODING_IBM_865, - 1, 1, 1, - 0, - 865, - 0, - (const sal_Char*)"iso8859-1", - (const sal_Char*)"iso-8859-1", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_DOS_OS2, - SCRIPT_LATIN -}; +static ImplTextEncodingData const aImplIBM865TextEncodingData + = { { &aImplIBM865ByteCvtData, + ImplCharToUnicode, + ImplUnicodeToChar, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_IBM_865, + 1, + 1, + 1, + 0, + "iso8859-1", + "iso-8859-1", + RTL_TEXTENCODING_INFO_ASCII }; + /* DOS/OS2, SCRIPT_LATIN, pc code page 865 */ /* ======================================================================= */ @@ -1340,45 +1163,25 @@ static ImplByteConvertData const aImplMS1252ByteCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData const aImplMS1252TextConverterData = -{ - &aImplMS1252ByteCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplMS1252TextConverter = -{ - &aImplMS1252TextConverterData, - ImplCharToUnicode, - ImplUnicodeToChar, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplMS1252TextEncodingData = -{ - &aImplMS1252TextConverter, - RTL_TEXTENCODING_MS_1252, - 1, 1, 1, - 0, - 850, - 0, - (const sal_Char*)"iso8859-1", - (const sal_Char*)"windows-1252", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_MIME | - RTL_TEXTENCODING_INFO_WIN, - SCRIPT_LATIN -}; +static ImplTextEncodingData const aImplMS1252TextEncodingData + = { { &aImplMS1252ByteCvtData, + ImplCharToUnicode, + ImplUnicodeToChar, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_MS_1252, + 1, + 1, + 1, + 0, + "iso8859-1", + "windows-1252", + RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME }; + /* WIN, SCRIPT_LATIN, pc code page 850 */ /* ======================================================================= */ @@ -1426,44 +1229,25 @@ static ImplByteConvertData const aImplISO88591ByteCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData const aImplISO88591TextConverterData = -{ - &aImplISO88591ByteCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplISO88591TextConverter = -{ - &aImplISO88591TextConverterData, - ImplCharToUnicode, - ImplUnicodeToChar, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplISO88591TextEncodingData = -{ - &aImplISO88591TextConverter, - RTL_TEXTENCODING_ISO_8859_1, - 1, 1, 1, - 0, - 850, - 0, - (const sal_Char*)"iso8859-1", - (const sal_Char*)"iso-8859-1", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_MIME, - SCRIPT_LATIN -}; +static ImplTextEncodingData const aImplISO88591TextEncodingData + = { { &aImplISO88591ByteCvtData, + ImplCharToUnicode, + ImplUnicodeToChar, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_ISO_8859_1, + 1, + 1, + 1, + 0, + "iso8859-1", + "iso-8859-1", + RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME }; + /* SCRIPT_LATIN, pc code page 850 */ /* ======================================================================= */ @@ -1574,44 +1358,25 @@ static ImplByteConvertData const aImplISO885914ByteCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData const aImplISO885914TextConverterData = -{ - &aImplISO885914ByteCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplISO885914TextConverter = -{ - &aImplISO885914TextConverterData, - ImplCharToUnicode, - ImplUnicodeToChar, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplISO885914TextEncodingData = -{ - &aImplISO885914TextConverter, - RTL_TEXTENCODING_ISO_8859_14, - 1, 1, 1, - 0, - 850, - 0, - (const sal_Char*)"iso8859-14", - (const sal_Char*)"iso-8859-14", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_MIME, - SCRIPT_LATIN -}; +static ImplTextEncodingData const aImplISO885914TextEncodingData + = { { &aImplISO885914ByteCvtData, + ImplCharToUnicode, + ImplUnicodeToChar, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_ISO_8859_14, + 1, + 1, + 1, + 0, + "iso8859-14", + "iso-8859-14", + RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME }; + /* SCRIPT_LATIN, pc code page 850 */ /* ======================================================================= */ @@ -1696,44 +1461,25 @@ static ImplByteConvertData const aImplISO885915ByteCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData const aImplISO885915TextConverterData = -{ - &aImplISO885915ByteCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplISO885915TextConverter = -{ - &aImplISO885915TextConverterData, - ImplCharToUnicode, - ImplUnicodeToChar, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplISO885915TextEncodingData = -{ - &aImplISO885915TextConverter, - RTL_TEXTENCODING_ISO_8859_15, - 1, 1, 1, - 0, - 850, - 0, - (const sal_Char*)"iso8859-15", - (const sal_Char*)"iso-8859-15", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_MIME, - SCRIPT_LATIN -}; +static ImplTextEncodingData const aImplISO885915TextEncodingData + = { { &aImplISO885915ByteCvtData, + ImplCharToUnicode, + ImplUnicodeToChar, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_ISO_8859_15, + 1, + 1, + 1, + 0, + "iso8859-15", + "iso-8859-15", + RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME }; + /* SCRIPT_LATIN, pc code page 850 */ /* ======================================================================= */ @@ -1856,44 +1602,25 @@ static ImplByteConvertData const aImplAPPLEICELANDByteCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData const aImplAPPLEICELANDTextConverterData = -{ - &aImplAPPLEICELANDByteCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplAPPLEICELANDTextConverter = -{ - &aImplAPPLEICELANDTextConverterData, - ImplCharToUnicode, - ImplUnicodeToChar, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplAPPLEICELANDTextEncodingData = -{ - &aImplAPPLEICELANDTextConverter, - RTL_TEXTENCODING_APPLE_ICELAND, - 1, 1, 1, - 0, - 861, - 37, - (const sal_Char*)"iso8859-1", - (const sal_Char*)"iso-8859-1", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_MAC, - SCRIPT_LATIN -}; +static ImplTextEncodingData const aImplAPPLEICELANDTextEncodingData + = { { &aImplAPPLEICELANDByteCvtData, + ImplCharToUnicode, + ImplUnicodeToChar, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_APPLE_ICELAND, + 1, + 1, + 1, + 0, + "iso8859-1", + "iso-8859-1", + RTL_TEXTENCODING_INFO_ASCII }; + /* MAC, SCRIPT_LATIN, pc code page 861, mac encoding 37 */ /* ======================================================================= */ @@ -2023,45 +1750,25 @@ static ImplByteConvertData const aImplAPPLEROMANByteCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData const aImplAPPLEROMANTextConverterData = -{ - &aImplAPPLEROMANByteCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplAPPLEROMANTextConverter = -{ - &aImplAPPLEROMANTextConverterData, - ImplCharToUnicode, - ImplUnicodeToChar, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplAPPLEROMANTextEncodingData = -{ - &aImplAPPLEROMANTextConverter, - RTL_TEXTENCODING_APPLE_ROMAN, - 1, 1, 1, - 77, - 850, - 0, - (const sal_Char*)"iso8859-1", - (const sal_Char*)"macintosh", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_MIME | - RTL_TEXTENCODING_INFO_MAC, - SCRIPT_LATIN -}; +static ImplTextEncodingData const aImplAPPLEROMANTextEncodingData + = { { &aImplAPPLEROMANByteCvtData, + ImplCharToUnicode, + ImplUnicodeToChar, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_APPLE_ROMAN, + 1, + 1, + 1, + 77, + "iso8859-1", + "macintosh", + RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME }; + /* MAC, SCRIPT_LATIN, pc code page 850 */ /* ======================================================================= */ @@ -2092,43 +1799,24 @@ static ImplByteConvertData const aImplUSASCIIByteCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData const aImplUSASCIITextConverterData = -{ - &aImplUSASCIIByteCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplUSASCIITextConverter = -{ - &aImplUSASCIITextConverterData, - ImplCharToUnicode, - ImplUnicodeToChar, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplUSASCIITextEncodingData = -{ - &aImplUSASCIITextConverter, - RTL_TEXTENCODING_ASCII_US, - 1, 1, 1, - 0, - 437, - 0, - (const sal_Char*)"iso8859-1", - (const sal_Char*)"us-ascii", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_7BIT | - RTL_TEXTENCODING_INFO_MIME, - SCRIPT_LATIN -}; - +static ImplTextEncodingData const aImplUSASCIITextEncodingData + = { { &aImplUSASCIIByteCvtData, + ImplCharToUnicode, + ImplUnicodeToChar, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_ASCII_US, + 1, + 1, + 1, + 0, + "iso8859-1", + "us-ascii", + RTL_TEXTENCODING_INFO_ASCII + | RTL_TEXTENCODING_INFO_7BIT + | RTL_TEXTENCODING_INFO_MIME }; + /* SCRIPT_LATIN, pc code page 437 */ diff --git a/sal/textenc/tcvtmb.c b/sal/textenc/tcvtmb.c index 48be49ce2..e7fbea729 100644 --- a/sal/textenc/tcvtmb.c +++ b/sal/textenc/tcvtmb.c @@ -1,71 +1,70 @@ /************************************************************************* * - * $RCSfile: tcvtmb.c,v $ + * $RCSfile: tcvtmb.c,v $ * - * $Revision: 1.4 $ + * $Revision: 1.5 $ * - * last change: $Author: jp $ $Date: 2001-09-19 14:02:35 $ + * last change: $Author: sb $ $Date: 2001-10-12 10:44:53 $ * - * The Contents of this file are made available subject to the terms of - * either of the following licenses + * The Contents of this file are made available subject to the terms of + * either of the following licenses * - * - GNU Lesser General Public License Version 2.1 - * - Sun Industry Standards Source License Version 1.1 + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 * - * Sun Microsystems Inc., October, 2000 + * Sun Microsystems Inc., October, 2000 * - * GNU Lesser General Public License Version 2.1 - * ============================================= - * Copyright 2000 by Sun Microsystems, Inc. - * 901 San Antonio Road, Palo Alto, CA 94303, USA + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License version 2.1, as published by the Free Software Foundation. + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA * * - * Sun Industry Standards Source License Version 1.1 - * ================================================= - * The contents of this file are subject to the Sun Industry Standards - * Source License Version 1.1 (the "License"); You may not use this file - * except in compliance with the License. You may obtain a copy of the - * License at http://www.openoffice.org/license.html. + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. * - * Software provided under this License is provided on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, - * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, - * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. - * See the License for the specific provisions governing your rights and - * obligations concerning the Software. + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. * - * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. * - * Copyright: 2000 by Sun Microsystems, Inc. + * Copyright: 2000 by Sun Microsystems, Inc. * - * All Rights Reserved. + * All Rights Reserved. * - * Contributor(s): _______________________________________ + * Contributor(s): _______________________________________ * * ************************************************************************/ -#define _RTL_TCVTMB_C - -#ifndef _RTL_TENCHELP_H -#include <tenchelp.h> +#ifndef INCLUDED_RTL_TEXTENC_TENCHELP_H +#include "tenchelp.h" #endif + #ifndef _RTL_TEXTCVT_H -#include <rtl/textcvt.h> +#include "rtl/textcvt.h" #endif /* ======================================================================= */ @@ -83,18 +82,18 @@ sal_Size ImplDBCSToUnicode( const ImplTextConverterData* pData, void* pContext, sal_uInt32 nFlags, sal_uInt32* pInfo, sal_Size* pSrcCvtBytes ) { - sal_uChar cLead; - sal_uChar cTrail; - sal_Unicode cConv; + sal_uChar cLead; + sal_uChar cTrail; + sal_Unicode cConv; const ImplDBCSToUniLeadTab* pLeadEntry; - const ImplDBCSConvertData* pConvertData = (const ImplDBCSConvertData*)(pData->mpConvertTables); + const ImplDBCSConvertData* pConvertData = (const ImplDBCSConvertData*)pData; const ImplDBCSToUniLeadTab* pLeadTab = pConvertData->mpToUniLeadTab; - sal_Unicode* pEndDestBuf; - const sal_Char* pEndSrcBuf; + sal_Unicode* pEndDestBuf; + const sal_Char* pEndSrcBuf; *pInfo = 0; pEndDestBuf = pDestBuf+nDestChars; - pEndSrcBuf = pSrcBuf+nSrcBytes; + pEndSrcBuf = pSrcBuf+nSrcBytes; while ( pSrcBuf < pEndSrcBuf ) { cLead = (sal_uChar)*pSrcBuf; @@ -120,7 +119,7 @@ sal_Size ImplDBCSToUnicode( const ImplTextConverterData* pData, void* pContext, continue; } else - cConv = ImplGetUndefinedUnicodeChar( cLead, nFlags, pData ); + cConv = ImplGetUndefinedUnicodeChar(cLead, nFlags); } } else @@ -142,7 +141,7 @@ sal_Size ImplDBCSToUnicode( const ImplTextConverterData* pData, void* pContext, if ( !cConv ) { /* EUDC Ranges */ - sal_uInt16 i; + sal_uInt16 i; const ImplDBCSEUDCData* pEUDCTab = pConvertData->mpEUDCTab; for ( i = 0; i < pConvertData->mnEUDCCount; i++ ) { @@ -259,20 +258,19 @@ sal_Size ImplUnicodeToDBCS( const ImplTextConverterData* pData, void* pContext, sal_uInt32 nFlags, sal_uInt32* pInfo, sal_Size* pSrcCvtChars ) { - int nAction; - sal_uInt16 cConv; - sal_Unicode c; - sal_uChar nHighChar; - sal_uChar nLowChar; + sal_uInt16 cConv; + sal_Unicode c; + sal_uChar nHighChar; + sal_uChar nLowChar; const ImplUniToDBCSHighTab* pHighEntry; - const ImplDBCSConvertData* pConvertData = (const ImplDBCSConvertData*)(pData->mpConvertTables); + const ImplDBCSConvertData* pConvertData = (const ImplDBCSConvertData*)pData; const ImplUniToDBCSHighTab* pHighTab = pConvertData->mpToDBCSHighTab; - sal_Char* pEndDestBuf; - const sal_Unicode* pEndSrcBuf; + sal_Char* pEndDestBuf; + const sal_Unicode* pEndSrcBuf; *pInfo = 0; pEndDestBuf = pDestBuf+nDestBytes; - pEndSrcBuf = pSrcBuf+nSrcChars; + pEndSrcBuf = pSrcBuf+nSrcChars; while ( pSrcBuf < pEndSrcBuf ) { c = *pSrcBuf; @@ -291,7 +289,7 @@ sal_Size ImplUnicodeToDBCS( const ImplTextConverterData* pData, void* pContext, if ( !cConv && !c ) { /* EUDC Ranges */ - sal_uInt16 i; + sal_uInt16 i; const ImplDBCSEUDCData* pEUDCTab = pConvertData->mpEUDCTab; for ( i = 0; i < pConvertData->mnEUDCCount; i++ ) { @@ -321,7 +319,8 @@ sal_Size ImplUnicodeToDBCS( const ImplTextConverterData* pData, void* pContext, pEUDCTab++; } - if ( (c >= 0xF100) && (c <= 0xF1FF) ) + if (c >= RTL_TEXTCVT_BYTE_PRIVATE_START + && c <= RTL_TEXTCVT_BYTE_PRIVATE_END) { if ( nFlags & RTL_UNICODETOTEXT_FLAGS_PRIVATE_MAPTO0 ) cConv = (sal_Char)(sal_uChar)(c & 0xFF); @@ -342,14 +341,16 @@ sal_Size ImplUnicodeToDBCS( const ImplTextConverterData* pData, void* pContext, /* Handle undefined and surrogates characters */ /* (all surrogates characters are undefined) */ - nAction = ImplHandleUndefinedUnicodeToTextChar( pData, - &pSrcBuf, pEndSrcBuf, - &pDestBuf, pEndDestBuf, - nFlags, pInfo ); - if ( nAction == IMPL_TEXTCVT_BREAK ) - break; - else + if (ImplHandleUndefinedUnicodeToTextChar(pData, + &pSrcBuf, + pEndSrcBuf, + &pDestBuf, + pEndDestBuf, + nFlags, + pInfo)) continue; + else + break; } /* SingleByte */ @@ -387,8 +388,8 @@ sal_Size ImplUnicodeToDBCS( const ImplTextConverterData* pData, void* pContext, /* ======================================================================= */ -#define JIS_EUC_LEAD_OFF 0x80 -#define JIS_EUC_TRAIL_OFF 0x80 +#define JIS_EUC_LEAD_OFF 0x80 +#define JIS_EUC_TRAIL_OFF 0x80 /* ----------------------------------------------------------------------- */ @@ -399,19 +400,19 @@ sal_Size ImplEUCJPToUnicode( const ImplTextConverterData* pData, sal_uInt32 nFlags, sal_uInt32* pInfo, sal_Size* pSrcCvtBytes ) { - sal_uChar c; - sal_uChar cLead; - sal_uChar cTrail; - sal_Unicode cConv; + sal_uChar c; + sal_uChar cLead; + sal_uChar cTrail; + sal_Unicode cConv; const ImplDBCSToUniLeadTab* pLeadEntry; const ImplDBCSToUniLeadTab* pLeadTab; - const ImplEUCJPConvertData* pConvertData = (const ImplEUCJPConvertData*)(pData->mpConvertTables); - sal_Unicode* pEndDestBuf; - const sal_Char* pEndSrcBuf; + const ImplEUCJPConvertData* pConvertData = (const ImplEUCJPConvertData*)pData; + sal_Unicode* pEndDestBuf; + const sal_Char* pEndSrcBuf; *pInfo = 0; pEndDestBuf = pDestBuf+nDestChars; - pEndSrcBuf = pSrcBuf+nSrcBytes; + pEndSrcBuf = pSrcBuf+nSrcBytes; while ( pSrcBuf < pEndSrcBuf ) { c = (sal_uChar)*pSrcBuf; @@ -484,8 +485,8 @@ sal_Size ImplEUCJPToUnicode( const ImplTextConverterData* pData, cConv = 0; else { - cLead -= JIS_EUC_LEAD_OFF; - cTrail -= JIS_EUC_TRAIL_OFF; + cLead -= JIS_EUC_LEAD_OFF; + cTrail -= JIS_EUC_TRAIL_OFF; pLeadEntry = pLeadTab+cLead; if ( (cTrail >= pLeadEntry->mnTrailStart) && (cTrail <= pLeadEntry->mnTrailEnd) ) cConv = pLeadEntry->mpToUniTrailTab[cTrail-pLeadEntry->mnTrailStart]; @@ -562,20 +563,19 @@ sal_Size ImplUnicodeToEUCJP( const ImplTextConverterData* pData, sal_uInt32 nFlags, sal_uInt32* pInfo, sal_Size* pSrcCvtChars ) { - int nAction; - sal_uInt32 cConv; - sal_Unicode c; - sal_uChar nHighChar; - sal_uChar nLowChar; + sal_uInt32 cConv; + sal_Unicode c; + sal_uChar nHighChar; + sal_uChar nLowChar; const ImplUniToDBCSHighTab* pHighEntry; const ImplUniToDBCSHighTab* pHighTab; - const ImplEUCJPConvertData* pConvertData = (const ImplEUCJPConvertData*)(pData->mpConvertTables); - sal_Char* pEndDestBuf; - const sal_Unicode* pEndSrcBuf; + const ImplEUCJPConvertData* pConvertData = (const ImplEUCJPConvertData*)pData; + sal_Char* pEndDestBuf; + const sal_Unicode* pEndSrcBuf; *pInfo = 0; pEndDestBuf = pDestBuf+nDestBytes; - pEndSrcBuf = pSrcBuf+nSrcChars; + pEndSrcBuf = pSrcBuf+nSrcChars; while ( pSrcBuf < pEndSrcBuf ) { c = *pSrcBuf; @@ -627,14 +627,16 @@ sal_Size ImplUnicodeToEUCJP( const ImplTextConverterData* pData, /* Handle undefined and surrogates characters */ /* (all surrogates characters are undefined) */ - nAction = ImplHandleUndefinedUnicodeToTextChar( pData, - &pSrcBuf, pEndSrcBuf, - &pDestBuf, pEndDestBuf, - nFlags, pInfo ); - if ( nAction == IMPL_TEXTCVT_BREAK ) - break; - else + if (ImplHandleUndefinedUnicodeToTextChar(pData, + &pSrcBuf, + pEndSrcBuf, + &pDestBuf, + pEndDestBuf, + nFlags, + pInfo)) continue; + else + break; } } } diff --git a/sal/textenc/tcvtscn6.tab b/sal/textenc/tcvtscn6.tab index 7e3bc169e..296812580 100644 --- a/sal/textenc/tcvtscn6.tab +++ b/sal/textenc/tcvtscn6.tab @@ -2,9 +2,9 @@ * * $RCSfile: tcvtscn6.tab,v $ * - * $Revision: 1.3 $ + * $Revision: 1.4 $ * - * last change: $Author: th $ $Date: 2001-07-16 11:42:06 $ + * last change: $Author: sb $ $Date: 2001-10-12 10:44:53 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -629,62 +629,49 @@ static ImplDBCSConvertData const aImplGB2312DBCSCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData const aImplGB2312TextConverterData = -{ - &aImplGB2312DBCSCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplGB2312TextConverter = -{ - &aImplGB2312TextConverterData, - ImplDBCSToUnicode, - ImplUnicodeToDBCS, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplGB2312TextEncodingData = -{ - &aImplGB2312TextConverter, - RTL_TEXTENCODING_GB_2312, - 1, 2, 2, - 134, - 936, - 25, - (const sal_Char*)"euc-cn", - (const sal_Char*)"gb2312", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_MULTIBYTE | - RTL_TEXTENCODING_INFO_MIME, - SCRIPT_CHINESE_SIMPLIFIED -}; +static ImplTextEncodingData const aImplGB2312TextEncodingData + = { { &aImplGB2312DBCSCvtData, + ImplDBCSToUnicode, + ImplUnicodeToDBCS, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_GB_2312, + 1, + 2, + 2, + 134, + "euc-cn", + "gb2312", + RTL_TEXTENCODING_INFO_ASCII + | RTL_TEXTENCODING_INFO_MULTIBYTE + | RTL_TEXTENCODING_INFO_MIME }; + /* SCRIPT_CHINESE_SIMPLIFIED, pc code page 936, mac encoding 25 */ /* ======================================================================= */ -static ImplTextEncodingData aImplEUCCNTextEncodingData = -{ - &aImplGB2312TextConverter, - RTL_TEXTENCODING_EUC_CN, - 1, 2, 2, - 134, - 936, - 25, - (const sal_Char*)"euc-cn", - (const sal_Char*)"gb2312", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_MULTIBYTE, - SCRIPT_CHINESE_SIMPLIFIED -}; +static ImplTextEncodingData const aImplEUCCNTextEncodingData + = { { &aImplGB2312DBCSCvtData, + ImplDBCSToUnicode, + ImplUnicodeToDBCS, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_EUC_CN, + 1, + 2, + 2, + 134, + "euc-cn", + "gb2312", + RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MULTIBYTE }; + /* SCRIPT_CHINESE_SIMPLIFIED, pc code page 936, mac encoding 25 */ /* ======================================================================= */ @@ -1223,45 +1210,27 @@ static ImplDBCSConvertData const aImplGBT12345DBCSCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData const aImplGBT12345TextConverterData = -{ - &aImplGBT12345DBCSCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplGBT12345TextConverter = -{ - &aImplGBT12345TextConverterData, - ImplDBCSToUnicode, - ImplUnicodeToDBCS, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplGBT12345TextEncodingData = -{ - &aImplGBT12345TextConverter, - RTL_TEXTENCODING_GBT_12345, - 1, 2, 2, - 134, - 936, - 25, - (const sal_Char*)"euc-cn", - (const sal_Char*)"cn-gb-12345", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_MULTIBYTE | - RTL_TEXTENCODING_INFO_MIME, - SCRIPT_CHINESE_SIMPLIFIED -}; +static ImplTextEncodingData const aImplGBT12345TextEncodingData + = { { &aImplGBT12345DBCSCvtData, + ImplDBCSToUnicode, + ImplUnicodeToDBCS, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_GBT_12345, + 1, + 2, + 2, + 134, + "euc-cn", + "cn-gb-12345", + RTL_TEXTENCODING_INFO_ASCII + | RTL_TEXTENCODING_INFO_MULTIBYTE + | RTL_TEXTENCODING_INFO_MIME }; + /* SCRIPT_CHINESE_SIMPLIFIED, pc code page 936, mac encoding 25 */ /* ======================================================================= */ @@ -1800,44 +1769,25 @@ static ImplDBCSConvertData const aImplGBKDBCSCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData const aImplGBKTextConverterData = -{ - &aImplGBKDBCSCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplGBKTextConverter = -{ - &aImplGBKTextConverterData, - ImplDBCSToUnicode, - ImplUnicodeToDBCS, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplGBKTextEncodingData = -{ - &aImplGBKTextConverter, - RTL_TEXTENCODING_GBK, - 1, 2, 2, - 134, - 936, - 25, - (const sal_Char*)"euc-cn", - (const sal_Char*)"gb2312", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_MULTIBYTE, - SCRIPT_CHINESE_SIMPLIFIED -}; +static ImplTextEncodingData const aImplGBKTextEncodingData + = { { &aImplGBKDBCSCvtData, + ImplDBCSToUnicode, + ImplUnicodeToDBCS, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_GBK, + 1, + 2, + 2, + 134, + "euc-cn", + "gb2312", + RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MULTIBYTE }; + /* SCRIPT_CHINESE_SIMPLIFIED, pc code page 936, mac encoding 25 */ /* ======================================================================= */ @@ -2376,46 +2326,26 @@ static ImplDBCSConvertData const aImplMS936DBCSCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData const aImplMS936TextConverterData = -{ - &aImplMS936DBCSCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplMS936TextConverter = -{ - &aImplMS936TextConverterData, - ImplDBCSToUnicode, - ImplUnicodeToDBCS, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplMS936TextEncodingData = -{ - &aImplMS936TextConverter, - RTL_TEXTENCODING_MS_936, - 1, 2, 2, - 134, - 936, - 25, - (const sal_Char*)"euc-cn", - (const sal_Char*)"gb2312", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_MULTIBYTE | - RTL_TEXTENCODING_INFO_WIN | - RTL_TEXTENCODING_INFO_DOS_OS2, - SCRIPT_CHINESE_SIMPLIFIED -}; +static ImplTextEncodingData const aImplMS936TextEncodingData + = { { &aImplMS936DBCSCvtData, + ImplDBCSToUnicode, + ImplUnicodeToDBCS, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_MS_936, + 1, + 2, + 2, + 134, + "euc-cn", + "gb2312", + RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MULTIBYTE }; + /* WIN/DOS/OS2, SCRIPT_CHINESE_SIMPLIFIED, pc code page 936, mac encoding + 25 */ /* ======================================================================= */ @@ -2954,42 +2884,22 @@ static ImplDBCSConvertData const aImplAPPLECHINSIMPDBCSCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData const aImplAPPLECHINSIMPTextConverterData = -{ - &aImplAPPLECHINSIMPDBCSCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplAPPLECHINSIMPTextConverter = -{ - &aImplAPPLECHINSIMPTextConverterData, - ImplDBCSToUnicode, - ImplUnicodeToDBCS, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplAPPLECHINSIMPTextEncodingData = -{ - &aImplAPPLECHINSIMPTextConverter, - RTL_TEXTENCODING_APPLE_CHINSIMP, - 1, 2, 2, - 134, - 936, - 25, - (const sal_Char*)"euc-cn", - (const sal_Char*)"gb2312", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_MULTIBYTE | - RTL_TEXTENCODING_INFO_MAC, - SCRIPT_CHINESE_SIMPLIFIED -}; +static ImplTextEncodingData const aImplAPPLECHINSIMPTextEncodingData + = { { &aImplAPPLECHINSIMPDBCSCvtData, + ImplDBCSToUnicode, + ImplUnicodeToDBCS, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_APPLE_CHINSIMP, + 1, + 2, + 2, + 134, + "euc-cn", + "gb2312", + RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MULTIBYTE }; + /* MAC, SCRIPT_CHINESE_SIMPLIFIED, pc code page 936, mac encoding 25 */ diff --git a/sal/textenc/tcvtsym1.tab b/sal/textenc/tcvtsym1.tab index bd3d20af4..4752ae6c2 100644 --- a/sal/textenc/tcvtsym1.tab +++ b/sal/textenc/tcvtsym1.tab @@ -2,9 +2,9 @@ * * $RCSfile: tcvtsym1.tab,v $ * - * $Revision: 1.1.1.1 $ + * $Revision: 1.2 $ * - * last change: $Author: hr $ $Date: 2000-09-18 15:17:29 $ + * last change: $Author: sb $ $Date: 2001-10-12 10:44:53 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -59,50 +59,24 @@ * ************************************************************************/ -/* ======================================================================= */ +/* Symbol Font Encodings */ -/* This file contain the tables for 1 byte symbol charsets */ - -/* ======================================================================= */ - -/* Symbol */ - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverterData const aImplSYMBOLTextConverterData = -{ - NULL, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplSYMBOLTextConverter = -{ - &aImplSYMBOLTextConverterData, - ImplSymbolToUnicode, - ImplUnicodeToSymbol, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplSYMBOLTextEncodingData = -{ - &aImplSYMBOLTextConverter, - RTL_TEXTENCODING_SYMBOL, - 1, 1, 1, - 2, - 65400, - 32, - (const sal_Char*)"adobe-fontspecific", - (const sal_Char*)"invariant", - RTL_TEXTENCODING_INFO_SYMBOL, - SCRIPT_SYMBOL -}; +static ImplTextEncodingData const aImplSYMBOLTextEncodingData + = { { NULL, + ImplSymbolToUnicode, + ImplUnicodeToSymbol, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_SYMBOL, + 1, + 1, + 1, + 2, + "adobe-fontspecific", + "invariant", + RTL_TEXTENCODING_INFO_SYMBOL }; + /* SCRIPT_SYMBOL, pc code page 65400, mac encoding 32 */ diff --git a/sal/textenc/tcvttcn6.tab b/sal/textenc/tcvttcn6.tab index 1187a8870..92d5b0156 100644 --- a/sal/textenc/tcvttcn6.tab +++ b/sal/textenc/tcvttcn6.tab @@ -1,60 +1,60 @@ /************************************************************************* * - * $RCSfile: tcvttcn6.tab,v $ + * $RCSfile: tcvttcn6.tab,v $ * - * $Revision: 1.2 $ + * $Revision: 1.3 $ * - * last change: $Author: th $ $Date: 2000-12-13 22:23:46 $ + * last change: $Author: sb $ $Date: 2001-10-12 10:44:53 $ * - * The Contents of this file are made available subject to the terms of - * either of the following licenses + * The Contents of this file are made available subject to the terms of + * either of the following licenses * - * - GNU Lesser General Public License Version 2.1 - * - Sun Industry Standards Source License Version 1.1 + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 * - * Sun Microsystems Inc., October, 2000 + * Sun Microsystems Inc., October, 2000 * - * GNU Lesser General Public License Version 2.1 - * ============================================= - * Copyright 2000 by Sun Microsystems, Inc. - * 901 San Antonio Road, Palo Alto, CA 94303, USA + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License version 2.1, as published by the Free Software Foundation. + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA * * - * Sun Industry Standards Source License Version 1.1 - * ================================================= - * The contents of this file are subject to the Sun Industry Standards - * Source License Version 1.1 (the "License"); You may not use this file - * except in compliance with the License. You may obtain a copy of the - * License at http://www.openoffice.org/license.html. + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. * - * Software provided under this License is provided on an "AS IS" basis, - * WITHOUT WARRUNTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, - * WITHOUT LIMITATION, WARRUNTIES THAT THE SOFTWARE IS FREE OF DEFECTS, - * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. - * See the License for the specific provisions governing your rights and - * obligations concerning the Software. + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRUNTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRUNTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. * - * The Initial Developer of the Original Code is: Sun Microsystems, Inc.. + * The Initial Developer of the Original Code is: Sun Microsystems, Inc.. * - * Copyright: 2000 by Sun Microsystems, Inc. + * Copyright: 2000 by Sun Microsystems, Inc. * - * All Rights Reserved. + * All Rights Reserved. * - * Contributor(s): _______________________________________ + * Contributor(s): _______________________________________ * * ************************************************************************/ @@ -69,524 +69,524 @@ static ImplDBCSToUniLeadTab const aBIG5UniLeadTab[256] = { - { 0x0000, 0, 0, NULL }, /* 0x00 */ - { 0x0001, 0, 0, NULL }, /* 0x01 */ - { 0x0002, 0, 0, NULL }, /* 0x02 */ - { 0x0003, 0, 0, NULL }, /* 0x03 */ - { 0x0004, 0, 0, NULL }, /* 0x04 */ - { 0x0005, 0, 0, NULL }, /* 0x05 */ - { 0x0006, 0, 0, NULL }, /* 0x06 */ - { 0x0007, 0, 0, NULL }, /* 0x07 */ - { 0x0008, 0, 0, NULL }, /* 0x08 */ - { 0x0009, 0, 0, NULL }, /* 0x09 */ - { 0x000A, 0, 0, NULL }, /* 0x0A */ - { 0x000B, 0, 0, NULL }, /* 0x0B */ - { 0x000C, 0, 0, NULL }, /* 0x0C */ - { 0x000D, 0, 0, NULL }, /* 0x0D */ - { 0x000E, 0, 0, NULL }, /* 0x0E */ - { 0x000F, 0, 0, NULL }, /* 0x0F */ - { 0x0010, 0, 0, NULL }, /* 0x10 */ - { 0x0011, 0, 0, NULL }, /* 0x11 */ - { 0x0012, 0, 0, NULL }, /* 0x12 */ - { 0x0013, 0, 0, NULL }, /* 0x13 */ - { 0x0014, 0, 0, NULL }, /* 0x14 */ - { 0x0015, 0, 0, NULL }, /* 0x15 */ - { 0x0016, 0, 0, NULL }, /* 0x16 */ - { 0x0017, 0, 0, NULL }, /* 0x17 */ - { 0x0018, 0, 0, NULL }, /* 0x18 */ - { 0x0019, 0, 0, NULL }, /* 0x19 */ - { 0x001A, 0, 0, NULL }, /* 0x1A */ - { 0x001B, 0, 0, NULL }, /* 0x1B */ - { 0x001C, 0, 0, NULL }, /* 0x1C */ - { 0x001D, 0, 0, NULL }, /* 0x1D */ - { 0x001E, 0, 0, NULL }, /* 0x1E */ - { 0x001F, 0, 0, NULL }, /* 0x1F */ - { 0x0020, 0, 0, NULL }, /* 0x20 */ - { 0x0021, 0, 0, NULL }, /* 0x21 */ - { 0x0022, 0, 0, NULL }, /* 0x22 */ - { 0x0023, 0, 0, NULL }, /* 0x23 */ - { 0x0024, 0, 0, NULL }, /* 0x24 */ - { 0x0025, 0, 0, NULL }, /* 0x25 */ - { 0x0026, 0, 0, NULL }, /* 0x26 */ - { 0x0027, 0, 0, NULL }, /* 0x27 */ - { 0x0028, 0, 0, NULL }, /* 0x28 */ - { 0x0029, 0, 0, NULL }, /* 0x29 */ - { 0x002A, 0, 0, NULL }, /* 0x2A */ - { 0x002B, 0, 0, NULL }, /* 0x2B */ - { 0x002C, 0, 0, NULL }, /* 0x2C */ - { 0x002D, 0, 0, NULL }, /* 0x2D */ - { 0x002E, 0, 0, NULL }, /* 0x2E */ - { 0x002F, 0, 0, NULL }, /* 0x2F */ - { 0x0030, 0, 0, NULL }, /* 0x30 */ - { 0x0031, 0, 0, NULL }, /* 0x31 */ - { 0x0032, 0, 0, NULL }, /* 0x32 */ - { 0x0033, 0, 0, NULL }, /* 0x33 */ - { 0x0034, 0, 0, NULL }, /* 0x34 */ - { 0x0035, 0, 0, NULL }, /* 0x35 */ - { 0x0036, 0, 0, NULL }, /* 0x36 */ - { 0x0037, 0, 0, NULL }, /* 0x37 */ - { 0x0038, 0, 0, NULL }, /* 0x38 */ - { 0x0039, 0, 0, NULL }, /* 0x39 */ - { 0x003A, 0, 0, NULL }, /* 0x3A */ - { 0x003B, 0, 0, NULL }, /* 0x3B */ - { 0x003C, 0, 0, NULL }, /* 0x3C */ - { 0x003D, 0, 0, NULL }, /* 0x3D */ - { 0x003E, 0, 0, NULL }, /* 0x3E */ - { 0x003F, 0, 0, NULL }, /* 0x3F */ - { 0x0040, 0, 0, NULL }, /* 0x40 */ - { 0x0041, 0, 0, NULL }, /* 0x41 */ - { 0x0042, 0, 0, NULL }, /* 0x42 */ - { 0x0043, 0, 0, NULL }, /* 0x43 */ - { 0x0044, 0, 0, NULL }, /* 0x44 */ - { 0x0045, 0, 0, NULL }, /* 0x45 */ - { 0x0046, 0, 0, NULL }, /* 0x46 */ - { 0x0047, 0, 0, NULL }, /* 0x47 */ - { 0x0048, 0, 0, NULL }, /* 0x48 */ - { 0x0049, 0, 0, NULL }, /* 0x49 */ - { 0x004A, 0, 0, NULL }, /* 0x4A */ - { 0x004B, 0, 0, NULL }, /* 0x4B */ - { 0x004C, 0, 0, NULL }, /* 0x4C */ - { 0x004D, 0, 0, NULL }, /* 0x4D */ - { 0x004E, 0, 0, NULL }, /* 0x4E */ - { 0x004F, 0, 0, NULL }, /* 0x4F */ - { 0x0050, 0, 0, NULL }, /* 0x50 */ - { 0x0051, 0, 0, NULL }, /* 0x51 */ - { 0x0052, 0, 0, NULL }, /* 0x52 */ - { 0x0053, 0, 0, NULL }, /* 0x53 */ - { 0x0054, 0, 0, NULL }, /* 0x54 */ - { 0x0055, 0, 0, NULL }, /* 0x55 */ - { 0x0056, 0, 0, NULL }, /* 0x56 */ - { 0x0057, 0, 0, NULL }, /* 0x57 */ - { 0x0058, 0, 0, NULL }, /* 0x58 */ - { 0x0059, 0, 0, NULL }, /* 0x59 */ - { 0x005A, 0, 0, NULL }, /* 0x5A */ - { 0x005B, 0, 0, NULL }, /* 0x5B */ - { 0x005C, 0, 0, NULL }, /* 0x5C */ - { 0x005D, 0, 0, NULL }, /* 0x5D */ - { 0x005E, 0, 0, NULL }, /* 0x5E */ - { 0x005F, 0, 0, NULL }, /* 0x5F */ - { 0x0060, 0, 0, NULL }, /* 0x60 */ - { 0x0061, 0, 0, NULL }, /* 0x61 */ - { 0x0062, 0, 0, NULL }, /* 0x62 */ - { 0x0063, 0, 0, NULL }, /* 0x63 */ - { 0x0064, 0, 0, NULL }, /* 0x64 */ - { 0x0065, 0, 0, NULL }, /* 0x65 */ - { 0x0066, 0, 0, NULL }, /* 0x66 */ - { 0x0067, 0, 0, NULL }, /* 0x67 */ - { 0x0068, 0, 0, NULL }, /* 0x68 */ - { 0x0069, 0, 0, NULL }, /* 0x69 */ - { 0x006A, 0, 0, NULL }, /* 0x6A */ - { 0x006B, 0, 0, NULL }, /* 0x6B */ - { 0x006C, 0, 0, NULL }, /* 0x6C */ - { 0x006D, 0, 0, NULL }, /* 0x6D */ - { 0x006E, 0, 0, NULL }, /* 0x6E */ - { 0x006F, 0, 0, NULL }, /* 0x6F */ - { 0x0070, 0, 0, NULL }, /* 0x70 */ - { 0x0071, 0, 0, NULL }, /* 0x71 */ - { 0x0072, 0, 0, NULL }, /* 0x72 */ - { 0x0073, 0, 0, NULL }, /* 0x73 */ - { 0x0074, 0, 0, NULL }, /* 0x74 */ - { 0x0075, 0, 0, NULL }, /* 0x75 */ - { 0x0076, 0, 0, NULL }, /* 0x76 */ - { 0x0077, 0, 0, NULL }, /* 0x77 */ - { 0x0078, 0, 0, NULL }, /* 0x78 */ - { 0x0079, 0, 0, NULL }, /* 0x79 */ - { 0x007A, 0, 0, NULL }, /* 0x7A */ - { 0x007B, 0, 0, NULL }, /* 0x7B */ - { 0x007C, 0, 0, NULL }, /* 0x7C */ - { 0x007D, 0, 0, NULL }, /* 0x7D */ - { 0x007E, 0, 0, NULL }, /* 0x7E */ - { 0x007F, 0, 0, NULL }, /* 0x7F */ - { 0, 1, 0, NULL }, /* 0x80 */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x81 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x82 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x83 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x84 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x85 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x86 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x87 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x88 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x89 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8A */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8B */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8C */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8D */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8E */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8F */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x90 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x91 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x92 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x93 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x94 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x95 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x96 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x97 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x98 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x99 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9A */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9B */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9C */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9D */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9E */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9F */ /* We convert this as double byte */ - { 0, 1, 0, NULL }, /* 0xA0 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A1 }, /* 0xA1 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A2 }, /* 0xA2 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A3 }, /* 0xA3 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A4 }, /* 0xA4 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A5 }, /* 0xA5 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A6 }, /* 0xA6 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A7 }, /* 0xA7 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A8 }, /* 0xA8 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A9 }, /* 0xA9 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_AA }, /* 0xAA */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_AB }, /* 0xAB */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_AC }, /* 0xAC */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_AD }, /* 0xAD */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_AE }, /* 0xAE */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_AF }, /* 0xAF */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B0 }, /* 0xB0 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B1 }, /* 0xB1 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B2 }, /* 0xB2 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B3 }, /* 0xB3 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B4 }, /* 0xB4 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B5 }, /* 0xB5 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B6 }, /* 0xB6 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B7 }, /* 0xB7 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B8 }, /* 0xB8 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B9 }, /* 0xB9 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_BA }, /* 0xBA */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_BB }, /* 0xBB */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_BC }, /* 0xBC */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_BD }, /* 0xBD */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_BE }, /* 0xBE */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_BF }, /* 0xBF */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C0 }, /* 0xC0 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C1 }, /* 0xC1 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C2 }, /* 0xC2 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C3 }, /* 0xC3 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C4 }, /* 0xC4 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C5 }, /* 0xC5 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5ONLY_C6 }, /* 0xC6 */ - { 0, 0x40, 0xFC, aImplDBCSToUniTab_BIG5ONLY_C7 }, /* 0xC7 */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xC8 */ /* We convert this as double byte */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C9 }, /* 0xC9 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_CA }, /* 0xCA */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_CB }, /* 0xCB */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_CC }, /* 0xCC */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_CD }, /* 0xCD */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_CE }, /* 0xCE */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_CF }, /* 0xCF */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D0 }, /* 0xD0 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D1 }, /* 0xD1 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D2 }, /* 0xD2 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D3 }, /* 0xD3 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D4 }, /* 0xD4 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D5 }, /* 0xD5 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D6 }, /* 0xD6 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D7 }, /* 0xD7 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D8 }, /* 0xD8 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D9 }, /* 0xD9 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_DA }, /* 0xDA */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_DB }, /* 0xDB */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_DC }, /* 0xDC */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_DD }, /* 0xDD */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_DE }, /* 0xDE */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_DF }, /* 0xDF */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E0 }, /* 0xE0 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E1 }, /* 0xE1 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E2 }, /* 0xE2 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E3 }, /* 0xE3 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E4 }, /* 0xE4 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E5 }, /* 0xE5 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E6 }, /* 0xE6 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E7 }, /* 0xE7 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E8 }, /* 0xE8 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E9 }, /* 0xE9 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_EA }, /* 0xEA */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_EB }, /* 0xEB */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_EC }, /* 0xEC */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_ED }, /* 0xED */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_EE }, /* 0xEE */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_EF }, /* 0xEF */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F0 }, /* 0xF0 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F1 }, /* 0xF1 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F2 }, /* 0xF2 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F3 }, /* 0xF3 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F4 }, /* 0xF4 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F5 }, /* 0xF5 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F6 }, /* 0xF6 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F7 }, /* 0xF7 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F8 }, /* 0xF8 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F9 }, /* 0xF9 */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xFA */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xFB */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xFC */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xFD */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xFE */ /* We convert this as double byte */ - { 0, 1, 0, NULL } /* 0xFF */ + { 0x0000, 0, 0, NULL }, /* 0x00 */ + { 0x0001, 0, 0, NULL }, /* 0x01 */ + { 0x0002, 0, 0, NULL }, /* 0x02 */ + { 0x0003, 0, 0, NULL }, /* 0x03 */ + { 0x0004, 0, 0, NULL }, /* 0x04 */ + { 0x0005, 0, 0, NULL }, /* 0x05 */ + { 0x0006, 0, 0, NULL }, /* 0x06 */ + { 0x0007, 0, 0, NULL }, /* 0x07 */ + { 0x0008, 0, 0, NULL }, /* 0x08 */ + { 0x0009, 0, 0, NULL }, /* 0x09 */ + { 0x000A, 0, 0, NULL }, /* 0x0A */ + { 0x000B, 0, 0, NULL }, /* 0x0B */ + { 0x000C, 0, 0, NULL }, /* 0x0C */ + { 0x000D, 0, 0, NULL }, /* 0x0D */ + { 0x000E, 0, 0, NULL }, /* 0x0E */ + { 0x000F, 0, 0, NULL }, /* 0x0F */ + { 0x0010, 0, 0, NULL }, /* 0x10 */ + { 0x0011, 0, 0, NULL }, /* 0x11 */ + { 0x0012, 0, 0, NULL }, /* 0x12 */ + { 0x0013, 0, 0, NULL }, /* 0x13 */ + { 0x0014, 0, 0, NULL }, /* 0x14 */ + { 0x0015, 0, 0, NULL }, /* 0x15 */ + { 0x0016, 0, 0, NULL }, /* 0x16 */ + { 0x0017, 0, 0, NULL }, /* 0x17 */ + { 0x0018, 0, 0, NULL }, /* 0x18 */ + { 0x0019, 0, 0, NULL }, /* 0x19 */ + { 0x001A, 0, 0, NULL }, /* 0x1A */ + { 0x001B, 0, 0, NULL }, /* 0x1B */ + { 0x001C, 0, 0, NULL }, /* 0x1C */ + { 0x001D, 0, 0, NULL }, /* 0x1D */ + { 0x001E, 0, 0, NULL }, /* 0x1E */ + { 0x001F, 0, 0, NULL }, /* 0x1F */ + { 0x0020, 0, 0, NULL }, /* 0x20 */ + { 0x0021, 0, 0, NULL }, /* 0x21 */ + { 0x0022, 0, 0, NULL }, /* 0x22 */ + { 0x0023, 0, 0, NULL }, /* 0x23 */ + { 0x0024, 0, 0, NULL }, /* 0x24 */ + { 0x0025, 0, 0, NULL }, /* 0x25 */ + { 0x0026, 0, 0, NULL }, /* 0x26 */ + { 0x0027, 0, 0, NULL }, /* 0x27 */ + { 0x0028, 0, 0, NULL }, /* 0x28 */ + { 0x0029, 0, 0, NULL }, /* 0x29 */ + { 0x002A, 0, 0, NULL }, /* 0x2A */ + { 0x002B, 0, 0, NULL }, /* 0x2B */ + { 0x002C, 0, 0, NULL }, /* 0x2C */ + { 0x002D, 0, 0, NULL }, /* 0x2D */ + { 0x002E, 0, 0, NULL }, /* 0x2E */ + { 0x002F, 0, 0, NULL }, /* 0x2F */ + { 0x0030, 0, 0, NULL }, /* 0x30 */ + { 0x0031, 0, 0, NULL }, /* 0x31 */ + { 0x0032, 0, 0, NULL }, /* 0x32 */ + { 0x0033, 0, 0, NULL }, /* 0x33 */ + { 0x0034, 0, 0, NULL }, /* 0x34 */ + { 0x0035, 0, 0, NULL }, /* 0x35 */ + { 0x0036, 0, 0, NULL }, /* 0x36 */ + { 0x0037, 0, 0, NULL }, /* 0x37 */ + { 0x0038, 0, 0, NULL }, /* 0x38 */ + { 0x0039, 0, 0, NULL }, /* 0x39 */ + { 0x003A, 0, 0, NULL }, /* 0x3A */ + { 0x003B, 0, 0, NULL }, /* 0x3B */ + { 0x003C, 0, 0, NULL }, /* 0x3C */ + { 0x003D, 0, 0, NULL }, /* 0x3D */ + { 0x003E, 0, 0, NULL }, /* 0x3E */ + { 0x003F, 0, 0, NULL }, /* 0x3F */ + { 0x0040, 0, 0, NULL }, /* 0x40 */ + { 0x0041, 0, 0, NULL }, /* 0x41 */ + { 0x0042, 0, 0, NULL }, /* 0x42 */ + { 0x0043, 0, 0, NULL }, /* 0x43 */ + { 0x0044, 0, 0, NULL }, /* 0x44 */ + { 0x0045, 0, 0, NULL }, /* 0x45 */ + { 0x0046, 0, 0, NULL }, /* 0x46 */ + { 0x0047, 0, 0, NULL }, /* 0x47 */ + { 0x0048, 0, 0, NULL }, /* 0x48 */ + { 0x0049, 0, 0, NULL }, /* 0x49 */ + { 0x004A, 0, 0, NULL }, /* 0x4A */ + { 0x004B, 0, 0, NULL }, /* 0x4B */ + { 0x004C, 0, 0, NULL }, /* 0x4C */ + { 0x004D, 0, 0, NULL }, /* 0x4D */ + { 0x004E, 0, 0, NULL }, /* 0x4E */ + { 0x004F, 0, 0, NULL }, /* 0x4F */ + { 0x0050, 0, 0, NULL }, /* 0x50 */ + { 0x0051, 0, 0, NULL }, /* 0x51 */ + { 0x0052, 0, 0, NULL }, /* 0x52 */ + { 0x0053, 0, 0, NULL }, /* 0x53 */ + { 0x0054, 0, 0, NULL }, /* 0x54 */ + { 0x0055, 0, 0, NULL }, /* 0x55 */ + { 0x0056, 0, 0, NULL }, /* 0x56 */ + { 0x0057, 0, 0, NULL }, /* 0x57 */ + { 0x0058, 0, 0, NULL }, /* 0x58 */ + { 0x0059, 0, 0, NULL }, /* 0x59 */ + { 0x005A, 0, 0, NULL }, /* 0x5A */ + { 0x005B, 0, 0, NULL }, /* 0x5B */ + { 0x005C, 0, 0, NULL }, /* 0x5C */ + { 0x005D, 0, 0, NULL }, /* 0x5D */ + { 0x005E, 0, 0, NULL }, /* 0x5E */ + { 0x005F, 0, 0, NULL }, /* 0x5F */ + { 0x0060, 0, 0, NULL }, /* 0x60 */ + { 0x0061, 0, 0, NULL }, /* 0x61 */ + { 0x0062, 0, 0, NULL }, /* 0x62 */ + { 0x0063, 0, 0, NULL }, /* 0x63 */ + { 0x0064, 0, 0, NULL }, /* 0x64 */ + { 0x0065, 0, 0, NULL }, /* 0x65 */ + { 0x0066, 0, 0, NULL }, /* 0x66 */ + { 0x0067, 0, 0, NULL }, /* 0x67 */ + { 0x0068, 0, 0, NULL }, /* 0x68 */ + { 0x0069, 0, 0, NULL }, /* 0x69 */ + { 0x006A, 0, 0, NULL }, /* 0x6A */ + { 0x006B, 0, 0, NULL }, /* 0x6B */ + { 0x006C, 0, 0, NULL }, /* 0x6C */ + { 0x006D, 0, 0, NULL }, /* 0x6D */ + { 0x006E, 0, 0, NULL }, /* 0x6E */ + { 0x006F, 0, 0, NULL }, /* 0x6F */ + { 0x0070, 0, 0, NULL }, /* 0x70 */ + { 0x0071, 0, 0, NULL }, /* 0x71 */ + { 0x0072, 0, 0, NULL }, /* 0x72 */ + { 0x0073, 0, 0, NULL }, /* 0x73 */ + { 0x0074, 0, 0, NULL }, /* 0x74 */ + { 0x0075, 0, 0, NULL }, /* 0x75 */ + { 0x0076, 0, 0, NULL }, /* 0x76 */ + { 0x0077, 0, 0, NULL }, /* 0x77 */ + { 0x0078, 0, 0, NULL }, /* 0x78 */ + { 0x0079, 0, 0, NULL }, /* 0x79 */ + { 0x007A, 0, 0, NULL }, /* 0x7A */ + { 0x007B, 0, 0, NULL }, /* 0x7B */ + { 0x007C, 0, 0, NULL }, /* 0x7C */ + { 0x007D, 0, 0, NULL }, /* 0x7D */ + { 0x007E, 0, 0, NULL }, /* 0x7E */ + { 0x007F, 0, 0, NULL }, /* 0x7F */ + { 0, 1, 0, NULL }, /* 0x80 */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x81 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x82 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x83 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x84 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x85 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x86 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x87 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x88 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x89 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8A */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8B */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8C */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8D */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8E */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8F */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x90 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x91 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x92 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x93 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x94 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x95 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x96 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x97 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x98 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x99 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9A */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9B */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9C */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9D */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9E */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9F */ /* We convert this as double byte */ + { 0, 1, 0, NULL }, /* 0xA0 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A1 }, /* 0xA1 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A2 }, /* 0xA2 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A3 }, /* 0xA3 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A4 }, /* 0xA4 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A5 }, /* 0xA5 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A6 }, /* 0xA6 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A7 }, /* 0xA7 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A8 }, /* 0xA8 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A9 }, /* 0xA9 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_AA }, /* 0xAA */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_AB }, /* 0xAB */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_AC }, /* 0xAC */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_AD }, /* 0xAD */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_AE }, /* 0xAE */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_AF }, /* 0xAF */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B0 }, /* 0xB0 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B1 }, /* 0xB1 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B2 }, /* 0xB2 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B3 }, /* 0xB3 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B4 }, /* 0xB4 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B5 }, /* 0xB5 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B6 }, /* 0xB6 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B7 }, /* 0xB7 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B8 }, /* 0xB8 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B9 }, /* 0xB9 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_BA }, /* 0xBA */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_BB }, /* 0xBB */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_BC }, /* 0xBC */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_BD }, /* 0xBD */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_BE }, /* 0xBE */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_BF }, /* 0xBF */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C0 }, /* 0xC0 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C1 }, /* 0xC1 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C2 }, /* 0xC2 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C3 }, /* 0xC3 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C4 }, /* 0xC4 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C5 }, /* 0xC5 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5ONLY_C6 }, /* 0xC6 */ + { 0, 0x40, 0xFC, aImplDBCSToUniTab_BIG5ONLY_C7 }, /* 0xC7 */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xC8 */ /* We convert this as double byte */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C9 }, /* 0xC9 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_CA }, /* 0xCA */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_CB }, /* 0xCB */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_CC }, /* 0xCC */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_CD }, /* 0xCD */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_CE }, /* 0xCE */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_CF }, /* 0xCF */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D0 }, /* 0xD0 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D1 }, /* 0xD1 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D2 }, /* 0xD2 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D3 }, /* 0xD3 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D4 }, /* 0xD4 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D5 }, /* 0xD5 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D6 }, /* 0xD6 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D7 }, /* 0xD7 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D8 }, /* 0xD8 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D9 }, /* 0xD9 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_DA }, /* 0xDA */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_DB }, /* 0xDB */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_DC }, /* 0xDC */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_DD }, /* 0xDD */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_DE }, /* 0xDE */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_DF }, /* 0xDF */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E0 }, /* 0xE0 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E1 }, /* 0xE1 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E2 }, /* 0xE2 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E3 }, /* 0xE3 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E4 }, /* 0xE4 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E5 }, /* 0xE5 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E6 }, /* 0xE6 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E7 }, /* 0xE7 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E8 }, /* 0xE8 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E9 }, /* 0xE9 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_EA }, /* 0xEA */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_EB }, /* 0xEB */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_EC }, /* 0xEC */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_ED }, /* 0xED */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_EE }, /* 0xEE */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_EF }, /* 0xEF */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F0 }, /* 0xF0 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F1 }, /* 0xF1 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F2 }, /* 0xF2 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F3 }, /* 0xF3 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F4 }, /* 0xF4 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F5 }, /* 0xF5 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F6 }, /* 0xF6 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F7 }, /* 0xF7 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F8 }, /* 0xF8 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F9 }, /* 0xF9 */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xFA */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xFB */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xFC */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xFD */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xFE */ /* We convert this as double byte */ + { 0, 1, 0, NULL } /* 0xFF */ }; /* ----------------------------------------------------------------------- */ static ImplUniToDBCSHighTab const aBIG5DBCSHighTab[256] = { - { 0x00, 0xF7, aImplUniToDBCSTab_BIG5_00 }, /* 0x00 */ - { 1, 0, NULL }, /* 0x01 */ - { 0xC7, 0xD9, aImplUniToDBCSTab_BIG5_02 }, /* 0x02 */ - { 0x91, 0xC9, aImplUniToDBCSTab_BIG5_03 }, /* 0x03 */ - { 0x01, 0x51, aImplUniToDBCSTab_BIG5_04 }, /* 0x04 */ - { 1, 0, NULL }, /* 0x05 */ - { 1, 0, NULL }, /* 0x06 */ - { 1, 0, NULL }, /* 0x07 */ - { 1, 0, NULL }, /* 0x08 */ - { 1, 0, NULL }, /* 0x09 */ - { 1, 0, NULL }, /* 0x0A */ - { 1, 0, NULL }, /* 0x0B */ - { 1, 0, NULL }, /* 0x0C */ - { 1, 0, NULL }, /* 0x0D */ - { 1, 0, NULL }, /* 0x0E */ - { 1, 0, NULL }, /* 0x0F */ - { 1, 0, NULL }, /* 0x10 */ - { 1, 0, NULL }, /* 0x11 */ - { 1, 0, NULL }, /* 0x12 */ - { 1, 0, NULL }, /* 0x13 */ - { 1, 0, NULL }, /* 0x14 */ - { 1, 0, NULL }, /* 0x15 */ - { 1, 0, NULL }, /* 0x16 */ - { 1, 0, NULL }, /* 0x17 */ - { 1, 0, NULL }, /* 0x18 */ - { 1, 0, NULL }, /* 0x19 */ - { 1, 0, NULL }, /* 0x1A */ - { 1, 0, NULL }, /* 0x1B */ - { 1, 0, NULL }, /* 0x1C */ - { 1, 0, NULL }, /* 0x1D */ - { 1, 0, NULL }, /* 0x1E */ - { 1, 0, NULL }, /* 0x1F */ - { 0x20, 0xAC, aImplUniToDBCSTab_BIG5_20 }, /* 0x20 */ - { 0x03, 0x99, aImplUniToDBCSTab_BIG5_21 }, /* 0x21 */ - { 0x15, 0xEF, aImplUniToDBCSTab_BIG5_22 }, /* 0x22 */ - { 1, 0, NULL }, /* 0x23 */ - { 0x60, 0x7D, aImplUniToDBCSTab_BIG5_24 }, /* 0x24 */ - { 0x00, 0xE5, aImplUniToDBCSTab_BIG5_25 }, /* 0x25 */ - { 0x05, 0x42, aImplUniToDBCSTab_BIG5_26 }, /* 0x25 */ - { 1, 0, NULL }, /* 0x27 */ - { 1, 0, NULL }, /* 0x28 */ - { 1, 0, NULL }, /* 0x29 */ - { 1, 0, NULL }, /* 0x2A */ - { 1, 0, NULL }, /* 0x2B */ - { 1, 0, NULL }, /* 0x2C */ - { 1, 0, NULL }, /* 0x2D */ - { 1, 0, NULL }, /* 0x2E */ - { 1, 0, NULL }, /* 0x2F */ - { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_30 }, /* 0x30 */ - { 0x05, 0x29, aImplUniToDBCSTab_BIG5_31 }, /* 0x31 */ - { 0xA3, 0xA3, aImplUniToDBCSTab_BIG5_32 }, /* 0x32 */ - { 1, 0, NULL }, /* 0x33 */ - { 1, 0, NULL }, /* 0x34 */ - { 1, 0, NULL }, /* 0x35 */ - { 1, 0, NULL }, /* 0x36 */ - { 1, 0, NULL }, /* 0x37 */ - { 1, 0, NULL }, /* 0x38 */ - { 1, 0, NULL }, /* 0x39 */ - { 1, 0, NULL }, /* 0x3A */ - { 1, 0, NULL }, /* 0x3B */ - { 1, 0, NULL }, /* 0x3C */ - { 1, 0, NULL }, /* 0x3D */ - { 1, 0, NULL }, /* 0x3E */ - { 1, 0, NULL }, /* 0x3F */ - { 1, 0, NULL }, /* 0x40 */ - { 1, 0, NULL }, /* 0x41 */ - { 1, 0, NULL }, /* 0x42 */ - { 1, 0, NULL }, /* 0x43 */ - { 1, 0, NULL }, /* 0x44 */ - { 1, 0, NULL }, /* 0x45 */ - { 1, 0, NULL }, /* 0x46 */ - { 1, 0, NULL }, /* 0x47 */ - { 1, 0, NULL }, /* 0x48 */ - { 1, 0, NULL }, /* 0x49 */ - { 1, 0, NULL }, /* 0x4A */ - { 1, 0, NULL }, /* 0x4B */ - { 1, 0, NULL }, /* 0x4C */ - { 1, 0, NULL }, /* 0x4D */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_4E }, /* 0x4E */ - { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_4F }, /* 0x4F */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_50 }, /* 0x50 */ - { 0x00, 0xFD, aImplUniToDBCSTab_BIG5_51 }, /* 0x51 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_52 }, /* 0x52 */ - { 0x05, 0xFC, aImplUniToDBCSTab_BIG5_53 }, /* 0x53 */ - { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_54 }, /* 0x54 */ - { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_55 }, /* 0x55 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_56 }, /* 0x56 */ - { 0x01, 0xFD, aImplUniToDBCSTab_BIG5_57 }, /* 0x57 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_58 }, /* 0x58 */ - { 0x03, 0xFF, aImplUniToDBCSTab_BIG5_59 }, /* 0x59 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_5A }, /* 0x5A */ - { 0x01, 0xFA, aImplUniToDBCSTab_BIG5_5B }, /* 0x5B */ - { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_5C }, /* 0x5C */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_5D }, /* 0x5D */ - { 0x02, 0xFF, aImplUniToDBCSTab_BIG5_5E }, /* 0x5E */ - { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_5F }, /* 0x5F */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_60 }, /* 0x60 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_61 }, /* 0x61 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_62 }, /* 0x62 */ - { 0x00, 0xF9, aImplUniToDBCSTab_BIG5_63 }, /* 0x63 */ - { 0x06, 0xFF, aImplUniToDBCSTab_BIG5_64 }, /* 0x64 */ - { 0x00, 0xFD, aImplUniToDBCSTab_BIG5_65 }, /* 0x65 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_66 }, /* 0x66 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_67 }, /* 0x67 */ - { 0x12, 0xFD, aImplUniToDBCSTab_BIG5_68 }, /* 0x68 */ - { 0x04, 0xFF, aImplUniToDBCSTab_BIG5_69 }, /* 0x69 */ - { 0x00, 0xFC, aImplUniToDBCSTab_BIG5_6A }, /* 0x6A */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_6B }, /* 0x6B */ - { 0x00, 0xF9, aImplUniToDBCSTab_BIG5_6C }, /* 0x6C */ - { 0x00, 0xFD, aImplUniToDBCSTab_BIG5_6D }, /* 0x6D */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_6E }, /* 0x6E */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_6F }, /* 0x6F */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_70 }, /* 0x70 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_71 }, /* 0x71 */ - { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_72 }, /* 0x72 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_73 }, /* 0x73 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_74 }, /* 0x74 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_75 }, /* 0x75 */ - { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_76 }, /* 0x76 */ - { 0x01, 0xFD, aImplUniToDBCSTab_BIG5_77 }, /* 0x77 */ - { 0x02, 0xFF, aImplUniToDBCSTab_BIG5_78 }, /* 0x78 */ - { 0x01, 0xFB, aImplUniToDBCSTab_BIG5_79 }, /* 0x79 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_7A }, /* 0x7A */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_7B }, /* 0x7B */ - { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_7C }, /* 0x7C */ - { 0x00, 0xFB, aImplUniToDBCSTab_BIG5_7D }, /* 0x7D */ - { 0x03, 0x9C, aImplUniToDBCSTab_BIG5_7E }, /* 0x7E */ - { 0x36, 0xFF, aImplUniToDBCSTab_BIG5_7F }, /* 0x7F */ - { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_80 }, /* 0x80 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_81 }, /* 0x81 */ - { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_82 }, /* 0x82 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_83 }, /* 0x83 */ - { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_84 }, /* 0x84 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_85 }, /* 0x85 */ - { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_86 }, /* 0x86 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_87 }, /* 0x87 */ - { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_88 }, /* 0x88 */ - { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_89 }, /* 0x89 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_8A }, /* 0x8A */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_8B }, /* 0x8B */ - { 0x37, 0xFE, aImplUniToDBCSTab_BIG5_8C }, /* 0x8C */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_8D }, /* 0x8D */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_8E }, /* 0x8E */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_8F }, /* 0x8F */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_90 }, /* 0x90 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_91 }, /* 0x91 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_92 }, /* 0x92 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_93 }, /* 0x93 */ - { 0x00, 0x83, aImplUniToDBCSTab_BIG5_94 }, /* 0x94 */ - { 0x77, 0xE5, aImplUniToDBCSTab_BIG5_95 }, /* 0x95 */ - { 0x1C, 0xFF, aImplUniToDBCSTab_BIG5_96 }, /* 0x96 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_97 }, /* 0x97 */ - { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_98 }, /* 0x98 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_99 }, /* 0x99 */ - { 0x01, 0xFE, aImplUniToDBCSTab_BIG5_9A }, /* 0x9A */ - { 0x01, 0xFD, aImplUniToDBCSTab_BIG5_9B }, /* 0x9B */ - { 0x05, 0xFF, aImplUniToDBCSTab_BIG5_9C }, /* 0x9C */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_9D }, /* 0x9D */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_9E }, /* 0x9E */ - { 0x00, 0xA4, aImplUniToDBCSTab_BIG5_9F }, /* 0x9F */ - { 1, 0, NULL }, /* 0xA0 */ - { 1, 0, NULL }, /* 0xA1 */ - { 1, 0, NULL }, /* 0xA2 */ - { 1, 0, NULL }, /* 0xA3 */ - { 1, 0, NULL }, /* 0xA4 */ - { 1, 0, NULL }, /* 0xA5 */ - { 1, 0, NULL }, /* 0xA6 */ - { 1, 0, NULL }, /* 0xA7 */ - { 1, 0, NULL }, /* 0xA8 */ - { 1, 0, NULL }, /* 0xA9 */ - { 1, 0, NULL }, /* 0xAA */ - { 1, 0, NULL }, /* 0xAB */ - { 1, 0, NULL }, /* 0xAC */ - { 1, 0, NULL }, /* 0xAD */ - { 1, 0, NULL }, /* 0xAE */ - { 1, 0, NULL }, /* 0xAF */ - { 1, 0, NULL }, /* 0xB0 */ - { 1, 0, NULL }, /* 0xB1 */ - { 1, 0, NULL }, /* 0xB2 */ - { 1, 0, NULL }, /* 0xB3 */ - { 1, 0, NULL }, /* 0xB4 */ - { 1, 0, NULL }, /* 0xB5 */ - { 1, 0, NULL }, /* 0xB6 */ - { 1, 0, NULL }, /* 0xB7 */ - { 1, 0, NULL }, /* 0xB8 */ - { 1, 0, NULL }, /* 0xB9 */ - { 1, 0, NULL }, /* 0xBA */ - { 1, 0, NULL }, /* 0xBB */ - { 1, 0, NULL }, /* 0xBC */ - { 1, 0, NULL }, /* 0xBD */ - { 1, 0, NULL }, /* 0xBE */ - { 1, 0, NULL }, /* 0xBF */ - { 1, 0, NULL }, /* 0xC0 */ - { 1, 0, NULL }, /* 0xC1 */ - { 1, 0, NULL }, /* 0xC2 */ - { 1, 0, NULL }, /* 0xC3 */ - { 1, 0, NULL }, /* 0xC4 */ - { 1, 0, NULL }, /* 0xC5 */ - { 1, 0, NULL }, /* 0xC6 */ - { 1, 0, NULL }, /* 0xC7 */ - { 1, 0, NULL }, /* 0xC8 */ - { 1, 0, NULL }, /* 0xC9 */ - { 1, 0, NULL }, /* 0xCA */ - { 1, 0, NULL }, /* 0xCB */ - { 1, 0, NULL }, /* 0xCC */ - { 1, 0, NULL }, /* 0xCD */ - { 1, 0, NULL }, /* 0xCE */ - { 1, 0, NULL }, /* 0xCF */ - { 1, 0, NULL }, /* 0xD0 */ - { 1, 0, NULL }, /* 0xD1 */ - { 1, 0, NULL }, /* 0xD2 */ - { 1, 0, NULL }, /* 0xD3 */ - { 1, 0, NULL }, /* 0xD4 */ - { 1, 0, NULL }, /* 0xD5 */ - { 1, 0, NULL }, /* 0xD6 */ - { 1, 0, NULL }, /* 0xD7 */ - { 1, 0, NULL }, /* 0xD8 */ - { 1, 0, NULL }, /* 0xD9 */ - { 1, 0, NULL }, /* 0xDA */ - { 1, 0, NULL }, /* 0xDB */ - { 1, 0, NULL }, /* 0xDC */ - { 1, 0, NULL }, /* 0xDD */ - { 1, 0, NULL }, /* 0xDE */ - { 1, 0, NULL }, /* 0xDF */ - { 1, 0, NULL }, /* 0xE0 */ - { 1, 0, NULL }, /* 0xE1 */ - { 1, 0, NULL }, /* 0xE2 */ - { 1, 0, NULL }, /* 0xE3 */ - { 1, 0, NULL }, /* 0xE4 */ - { 1, 0, NULL }, /* 0xE5 */ - { 1, 0, NULL }, /* 0xE6 */ - { 1, 0, NULL }, /* 0xE7 */ - { 1, 0, NULL }, /* 0xE8 */ - { 1, 0, NULL }, /* 0xE9 */ - { 1, 0, NULL }, /* 0xEA */ - { 1, 0, NULL }, /* 0xEB */ - { 1, 0, NULL }, /* 0xEC */ - { 1, 0, NULL }, /* 0xED */ - { 1, 0, NULL }, /* 0xEE */ - { 1, 0, NULL }, /* 0xEF */ - { 1, 0, NULL }, /* 0xF0 */ - { 1, 0, NULL }, /* 0xF1 */ - { 1, 0, NULL }, /* 0xF2 */ - { 1, 0, NULL }, /* 0xF3 */ - { 1, 0, NULL }, /* 0xF4 */ - { 1, 0, NULL }, /* 0xF5 */ - { 1, 0, NULL }, /* 0xF6 */ - { 1, 0, NULL }, /* 0xF7 */ - { 1, 0, NULL }, /* 0xF8 */ - { 1, 0, NULL }, /* 0xF9 */ - { 0x0C, 0x0D, aImplUniToDBCSTab_BIG5_FA }, /* 0xFA */ - { 1, 0, NULL }, /* 0xFB */ - { 1, 0, NULL }, /* 0xFC */ - { 1, 0, NULL }, /* 0xFD */ - { 0x30, 0x6B, aImplUniToDBCSTab_BIG5_FE }, /* 0xFE */ - { 0x01, 0xFD, aImplUniToDBCSTab_BIG5_FF } /* 0xFF */ + { 0x00, 0xF7, aImplUniToDBCSTab_BIG5_00 }, /* 0x00 */ + { 1, 0, NULL }, /* 0x01 */ + { 0xC7, 0xD9, aImplUniToDBCSTab_BIG5_02 }, /* 0x02 */ + { 0x91, 0xC9, aImplUniToDBCSTab_BIG5_03 }, /* 0x03 */ + { 0x01, 0x51, aImplUniToDBCSTab_BIG5_04 }, /* 0x04 */ + { 1, 0, NULL }, /* 0x05 */ + { 1, 0, NULL }, /* 0x06 */ + { 1, 0, NULL }, /* 0x07 */ + { 1, 0, NULL }, /* 0x08 */ + { 1, 0, NULL }, /* 0x09 */ + { 1, 0, NULL }, /* 0x0A */ + { 1, 0, NULL }, /* 0x0B */ + { 1, 0, NULL }, /* 0x0C */ + { 1, 0, NULL }, /* 0x0D */ + { 1, 0, NULL }, /* 0x0E */ + { 1, 0, NULL }, /* 0x0F */ + { 1, 0, NULL }, /* 0x10 */ + { 1, 0, NULL }, /* 0x11 */ + { 1, 0, NULL }, /* 0x12 */ + { 1, 0, NULL }, /* 0x13 */ + { 1, 0, NULL }, /* 0x14 */ + { 1, 0, NULL }, /* 0x15 */ + { 1, 0, NULL }, /* 0x16 */ + { 1, 0, NULL }, /* 0x17 */ + { 1, 0, NULL }, /* 0x18 */ + { 1, 0, NULL }, /* 0x19 */ + { 1, 0, NULL }, /* 0x1A */ + { 1, 0, NULL }, /* 0x1B */ + { 1, 0, NULL }, /* 0x1C */ + { 1, 0, NULL }, /* 0x1D */ + { 1, 0, NULL }, /* 0x1E */ + { 1, 0, NULL }, /* 0x1F */ + { 0x20, 0xAC, aImplUniToDBCSTab_BIG5_20 }, /* 0x20 */ + { 0x03, 0x99, aImplUniToDBCSTab_BIG5_21 }, /* 0x21 */ + { 0x15, 0xEF, aImplUniToDBCSTab_BIG5_22 }, /* 0x22 */ + { 1, 0, NULL }, /* 0x23 */ + { 0x60, 0x7D, aImplUniToDBCSTab_BIG5_24 }, /* 0x24 */ + { 0x00, 0xE5, aImplUniToDBCSTab_BIG5_25 }, /* 0x25 */ + { 0x05, 0x42, aImplUniToDBCSTab_BIG5_26 }, /* 0x25 */ + { 1, 0, NULL }, /* 0x27 */ + { 1, 0, NULL }, /* 0x28 */ + { 1, 0, NULL }, /* 0x29 */ + { 1, 0, NULL }, /* 0x2A */ + { 1, 0, NULL }, /* 0x2B */ + { 1, 0, NULL }, /* 0x2C */ + { 1, 0, NULL }, /* 0x2D */ + { 1, 0, NULL }, /* 0x2E */ + { 1, 0, NULL }, /* 0x2F */ + { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_30 }, /* 0x30 */ + { 0x05, 0x29, aImplUniToDBCSTab_BIG5_31 }, /* 0x31 */ + { 0xA3, 0xA3, aImplUniToDBCSTab_BIG5_32 }, /* 0x32 */ + { 1, 0, NULL }, /* 0x33 */ + { 1, 0, NULL }, /* 0x34 */ + { 1, 0, NULL }, /* 0x35 */ + { 1, 0, NULL }, /* 0x36 */ + { 1, 0, NULL }, /* 0x37 */ + { 1, 0, NULL }, /* 0x38 */ + { 1, 0, NULL }, /* 0x39 */ + { 1, 0, NULL }, /* 0x3A */ + { 1, 0, NULL }, /* 0x3B */ + { 1, 0, NULL }, /* 0x3C */ + { 1, 0, NULL }, /* 0x3D */ + { 1, 0, NULL }, /* 0x3E */ + { 1, 0, NULL }, /* 0x3F */ + { 1, 0, NULL }, /* 0x40 */ + { 1, 0, NULL }, /* 0x41 */ + { 1, 0, NULL }, /* 0x42 */ + { 1, 0, NULL }, /* 0x43 */ + { 1, 0, NULL }, /* 0x44 */ + { 1, 0, NULL }, /* 0x45 */ + { 1, 0, NULL }, /* 0x46 */ + { 1, 0, NULL }, /* 0x47 */ + { 1, 0, NULL }, /* 0x48 */ + { 1, 0, NULL }, /* 0x49 */ + { 1, 0, NULL }, /* 0x4A */ + { 1, 0, NULL }, /* 0x4B */ + { 1, 0, NULL }, /* 0x4C */ + { 1, 0, NULL }, /* 0x4D */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_4E }, /* 0x4E */ + { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_4F }, /* 0x4F */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_50 }, /* 0x50 */ + { 0x00, 0xFD, aImplUniToDBCSTab_BIG5_51 }, /* 0x51 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_52 }, /* 0x52 */ + { 0x05, 0xFC, aImplUniToDBCSTab_BIG5_53 }, /* 0x53 */ + { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_54 }, /* 0x54 */ + { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_55 }, /* 0x55 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_56 }, /* 0x56 */ + { 0x01, 0xFD, aImplUniToDBCSTab_BIG5_57 }, /* 0x57 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_58 }, /* 0x58 */ + { 0x03, 0xFF, aImplUniToDBCSTab_BIG5_59 }, /* 0x59 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_5A }, /* 0x5A */ + { 0x01, 0xFA, aImplUniToDBCSTab_BIG5_5B }, /* 0x5B */ + { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_5C }, /* 0x5C */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_5D }, /* 0x5D */ + { 0x02, 0xFF, aImplUniToDBCSTab_BIG5_5E }, /* 0x5E */ + { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_5F }, /* 0x5F */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_60 }, /* 0x60 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_61 }, /* 0x61 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_62 }, /* 0x62 */ + { 0x00, 0xF9, aImplUniToDBCSTab_BIG5_63 }, /* 0x63 */ + { 0x06, 0xFF, aImplUniToDBCSTab_BIG5_64 }, /* 0x64 */ + { 0x00, 0xFD, aImplUniToDBCSTab_BIG5_65 }, /* 0x65 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_66 }, /* 0x66 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_67 }, /* 0x67 */ + { 0x12, 0xFD, aImplUniToDBCSTab_BIG5_68 }, /* 0x68 */ + { 0x04, 0xFF, aImplUniToDBCSTab_BIG5_69 }, /* 0x69 */ + { 0x00, 0xFC, aImplUniToDBCSTab_BIG5_6A }, /* 0x6A */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_6B }, /* 0x6B */ + { 0x00, 0xF9, aImplUniToDBCSTab_BIG5_6C }, /* 0x6C */ + { 0x00, 0xFD, aImplUniToDBCSTab_BIG5_6D }, /* 0x6D */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_6E }, /* 0x6E */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_6F }, /* 0x6F */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_70 }, /* 0x70 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_71 }, /* 0x71 */ + { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_72 }, /* 0x72 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_73 }, /* 0x73 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_74 }, /* 0x74 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_75 }, /* 0x75 */ + { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_76 }, /* 0x76 */ + { 0x01, 0xFD, aImplUniToDBCSTab_BIG5_77 }, /* 0x77 */ + { 0x02, 0xFF, aImplUniToDBCSTab_BIG5_78 }, /* 0x78 */ + { 0x01, 0xFB, aImplUniToDBCSTab_BIG5_79 }, /* 0x79 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_7A }, /* 0x7A */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_7B }, /* 0x7B */ + { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_7C }, /* 0x7C */ + { 0x00, 0xFB, aImplUniToDBCSTab_BIG5_7D }, /* 0x7D */ + { 0x03, 0x9C, aImplUniToDBCSTab_BIG5_7E }, /* 0x7E */ + { 0x36, 0xFF, aImplUniToDBCSTab_BIG5_7F }, /* 0x7F */ + { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_80 }, /* 0x80 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_81 }, /* 0x81 */ + { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_82 }, /* 0x82 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_83 }, /* 0x83 */ + { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_84 }, /* 0x84 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_85 }, /* 0x85 */ + { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_86 }, /* 0x86 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_87 }, /* 0x87 */ + { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_88 }, /* 0x88 */ + { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_89 }, /* 0x89 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_8A }, /* 0x8A */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_8B }, /* 0x8B */ + { 0x37, 0xFE, aImplUniToDBCSTab_BIG5_8C }, /* 0x8C */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_8D }, /* 0x8D */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_8E }, /* 0x8E */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_8F }, /* 0x8F */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_90 }, /* 0x90 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_91 }, /* 0x91 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_92 }, /* 0x92 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_93 }, /* 0x93 */ + { 0x00, 0x83, aImplUniToDBCSTab_BIG5_94 }, /* 0x94 */ + { 0x77, 0xE5, aImplUniToDBCSTab_BIG5_95 }, /* 0x95 */ + { 0x1C, 0xFF, aImplUniToDBCSTab_BIG5_96 }, /* 0x96 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_97 }, /* 0x97 */ + { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_98 }, /* 0x98 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_99 }, /* 0x99 */ + { 0x01, 0xFE, aImplUniToDBCSTab_BIG5_9A }, /* 0x9A */ + { 0x01, 0xFD, aImplUniToDBCSTab_BIG5_9B }, /* 0x9B */ + { 0x05, 0xFF, aImplUniToDBCSTab_BIG5_9C }, /* 0x9C */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_9D }, /* 0x9D */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_9E }, /* 0x9E */ + { 0x00, 0xA4, aImplUniToDBCSTab_BIG5_9F }, /* 0x9F */ + { 1, 0, NULL }, /* 0xA0 */ + { 1, 0, NULL }, /* 0xA1 */ + { 1, 0, NULL }, /* 0xA2 */ + { 1, 0, NULL }, /* 0xA3 */ + { 1, 0, NULL }, /* 0xA4 */ + { 1, 0, NULL }, /* 0xA5 */ + { 1, 0, NULL }, /* 0xA6 */ + { 1, 0, NULL }, /* 0xA7 */ + { 1, 0, NULL }, /* 0xA8 */ + { 1, 0, NULL }, /* 0xA9 */ + { 1, 0, NULL }, /* 0xAA */ + { 1, 0, NULL }, /* 0xAB */ + { 1, 0, NULL }, /* 0xAC */ + { 1, 0, NULL }, /* 0xAD */ + { 1, 0, NULL }, /* 0xAE */ + { 1, 0, NULL }, /* 0xAF */ + { 1, 0, NULL }, /* 0xB0 */ + { 1, 0, NULL }, /* 0xB1 */ + { 1, 0, NULL }, /* 0xB2 */ + { 1, 0, NULL }, /* 0xB3 */ + { 1, 0, NULL }, /* 0xB4 */ + { 1, 0, NULL }, /* 0xB5 */ + { 1, 0, NULL }, /* 0xB6 */ + { 1, 0, NULL }, /* 0xB7 */ + { 1, 0, NULL }, /* 0xB8 */ + { 1, 0, NULL }, /* 0xB9 */ + { 1, 0, NULL }, /* 0xBA */ + { 1, 0, NULL }, /* 0xBB */ + { 1, 0, NULL }, /* 0xBC */ + { 1, 0, NULL }, /* 0xBD */ + { 1, 0, NULL }, /* 0xBE */ + { 1, 0, NULL }, /* 0xBF */ + { 1, 0, NULL }, /* 0xC0 */ + { 1, 0, NULL }, /* 0xC1 */ + { 1, 0, NULL }, /* 0xC2 */ + { 1, 0, NULL }, /* 0xC3 */ + { 1, 0, NULL }, /* 0xC4 */ + { 1, 0, NULL }, /* 0xC5 */ + { 1, 0, NULL }, /* 0xC6 */ + { 1, 0, NULL }, /* 0xC7 */ + { 1, 0, NULL }, /* 0xC8 */ + { 1, 0, NULL }, /* 0xC9 */ + { 1, 0, NULL }, /* 0xCA */ + { 1, 0, NULL }, /* 0xCB */ + { 1, 0, NULL }, /* 0xCC */ + { 1, 0, NULL }, /* 0xCD */ + { 1, 0, NULL }, /* 0xCE */ + { 1, 0, NULL }, /* 0xCF */ + { 1, 0, NULL }, /* 0xD0 */ + { 1, 0, NULL }, /* 0xD1 */ + { 1, 0, NULL }, /* 0xD2 */ + { 1, 0, NULL }, /* 0xD3 */ + { 1, 0, NULL }, /* 0xD4 */ + { 1, 0, NULL }, /* 0xD5 */ + { 1, 0, NULL }, /* 0xD6 */ + { 1, 0, NULL }, /* 0xD7 */ + { 1, 0, NULL }, /* 0xD8 */ + { 1, 0, NULL }, /* 0xD9 */ + { 1, 0, NULL }, /* 0xDA */ + { 1, 0, NULL }, /* 0xDB */ + { 1, 0, NULL }, /* 0xDC */ + { 1, 0, NULL }, /* 0xDD */ + { 1, 0, NULL }, /* 0xDE */ + { 1, 0, NULL }, /* 0xDF */ + { 1, 0, NULL }, /* 0xE0 */ + { 1, 0, NULL }, /* 0xE1 */ + { 1, 0, NULL }, /* 0xE2 */ + { 1, 0, NULL }, /* 0xE3 */ + { 1, 0, NULL }, /* 0xE4 */ + { 1, 0, NULL }, /* 0xE5 */ + { 1, 0, NULL }, /* 0xE6 */ + { 1, 0, NULL }, /* 0xE7 */ + { 1, 0, NULL }, /* 0xE8 */ + { 1, 0, NULL }, /* 0xE9 */ + { 1, 0, NULL }, /* 0xEA */ + { 1, 0, NULL }, /* 0xEB */ + { 1, 0, NULL }, /* 0xEC */ + { 1, 0, NULL }, /* 0xED */ + { 1, 0, NULL }, /* 0xEE */ + { 1, 0, NULL }, /* 0xEF */ + { 1, 0, NULL }, /* 0xF0 */ + { 1, 0, NULL }, /* 0xF1 */ + { 1, 0, NULL }, /* 0xF2 */ + { 1, 0, NULL }, /* 0xF3 */ + { 1, 0, NULL }, /* 0xF4 */ + { 1, 0, NULL }, /* 0xF5 */ + { 1, 0, NULL }, /* 0xF6 */ + { 1, 0, NULL }, /* 0xF7 */ + { 1, 0, NULL }, /* 0xF8 */ + { 1, 0, NULL }, /* 0xF9 */ + { 0x0C, 0x0D, aImplUniToDBCSTab_BIG5_FA }, /* 0xFA */ + { 1, 0, NULL }, /* 0xFB */ + { 1, 0, NULL }, /* 0xFC */ + { 1, 0, NULL }, /* 0xFD */ + { 0x30, 0x6B, aImplUniToDBCSTab_BIG5_FE }, /* 0xFE */ + { 0x01, 0xFD, aImplUniToDBCSTab_BIG5_FF } /* 0xFF */ }; /* ----------------------------------------------------------------------- */ @@ -594,23 +594,23 @@ static ImplUniToDBCSHighTab const aBIG5DBCSHighTab[256] = /* FA40-FEFE --> E000-E310 */ /* 8E40-A0FE --> E311-EEB7 */ /* 8140-8DFE --> EEB8-F6B0 */ -/* C6A1-C8FE --> F6B1-F8FF 3*5E = 11A --> F6B1+11A-1 = F7CA ??? */ +/* C6A1-C8FE --> F6B1-F8FF 3*5E = 11A --> F6B1+11A-1 = F7CA ??? */ -#define DBCS_EUDC_MS950_COUNT 4 +#define DBCS_EUDC_MS950_COUNT 4 static ImplDBCSEUDCData const aImplMS950DBCSEUDCTab[DBCS_EUDC_MS950_COUNT] = { /* EUDC-Range */ - /* Lead: FA-FE */ - /* Trail: 40-7E, A1-FE */ + /* Lead: FA-FE */ + /* Trail: 40-7E, A1-FE */ { 0xFA, 0xFE, 0x40, 0x7E, 0xA1, 0xFE, 0, 0, 2, 0x9D, 0xE000, 0xE310 }, - /* Lead: 8E-A0 */ - /* Trail: 40-7E, A1-FE */ + /* Lead: 8E-A0 */ + /* Trail: 40-7E, A1-FE */ { 0x8E, 0xA0, 0x40, 0x7E, 0xA1, 0xFE, 0, 0, 2, 0x9D, 0xE311, 0xEEB7 }, - /* Lead: 81-8D */ - /* Trail: 40-7E, A1-FE */ + /* Lead: 81-8D */ + /* Trail: 40-7E, A1-FE */ { 0x81, 0x8D, 0x40, 0x7E, 0xA1, 0xFE, 0, 0, 2, 0x9D, 0xEEB8, 0xF6B0 }, - /* Lead: C6-C8 */ - /* Trail: A1-FE */ + /* Lead: C6-C8 */ + /* Trail: A1-FE */ { 0xC6, 0xC8, 0xA1, 0xFE, 0, 0, 0, 0, 1, 0x5E, 0xF6B1, 0xF7CA } }; @@ -627,568 +627,550 @@ static ImplDBCSConvertData const aImplBIG5DBCSCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData const aImplBIG5TextConverterData = -{ - &aImplBIG5DBCSCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplBIG5TextConverter = -{ - &aImplBIG5TextConverterData, - ImplDBCSToUnicode, - ImplUnicodeToDBCS, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplBIG5TextEncodingData = -{ - &aImplBIG5TextConverter, - RTL_TEXTENCODING_BIG5, - 1, 2, 2, - 136, - 950, - 2, - (const sal_Char*)"euc-tw", - (const sal_Char*)"big5", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_MULTIBYTE | - RTL_TEXTENCODING_INFO_MIME, - SCRIPT_CHINESE_TRADITIONAL -}; +static ImplTextEncodingData const aImplBIG5TextEncodingData + = { { &aImplBIG5DBCSCvtData, + ImplDBCSToUnicode, + ImplUnicodeToDBCS, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_BIG5, + 1, + 2, + 2, + 136, + "euc-tw", + "big5", + RTL_TEXTENCODING_INFO_ASCII + | RTL_TEXTENCODING_INFO_MULTIBYTE + | RTL_TEXTENCODING_INFO_MIME }; + /* SCRIPT_CHINESE_TRADITIONAL, pc code page 950, mac encoding 2 */ /* ======================================================================= */ static ImplDBCSToUniLeadTab const aMS950UniLeadTab[256] = { - { 0x0000, 0, 0, NULL }, /* 0x00 */ - { 0x0001, 0, 0, NULL }, /* 0x01 */ - { 0x0002, 0, 0, NULL }, /* 0x02 */ - { 0x0003, 0, 0, NULL }, /* 0x03 */ - { 0x0004, 0, 0, NULL }, /* 0x04 */ - { 0x0005, 0, 0, NULL }, /* 0x05 */ - { 0x0006, 0, 0, NULL }, /* 0x06 */ - { 0x0007, 0, 0, NULL }, /* 0x07 */ - { 0x0008, 0, 0, NULL }, /* 0x08 */ - { 0x0009, 0, 0, NULL }, /* 0x09 */ - { 0x000A, 0, 0, NULL }, /* 0x0A */ - { 0x000B, 0, 0, NULL }, /* 0x0B */ - { 0x000C, 0, 0, NULL }, /* 0x0C */ - { 0x000D, 0, 0, NULL }, /* 0x0D */ - { 0x000E, 0, 0, NULL }, /* 0x0E */ - { 0x000F, 0, 0, NULL }, /* 0x0F */ - { 0x0010, 0, 0, NULL }, /* 0x10 */ - { 0x0011, 0, 0, NULL }, /* 0x11 */ - { 0x0012, 0, 0, NULL }, /* 0x12 */ - { 0x0013, 0, 0, NULL }, /* 0x13 */ - { 0x0014, 0, 0, NULL }, /* 0x14 */ - { 0x0015, 0, 0, NULL }, /* 0x15 */ - { 0x0016, 0, 0, NULL }, /* 0x16 */ - { 0x0017, 0, 0, NULL }, /* 0x17 */ - { 0x0018, 0, 0, NULL }, /* 0x18 */ - { 0x0019, 0, 0, NULL }, /* 0x19 */ - { 0x001A, 0, 0, NULL }, /* 0x1A */ - { 0x001B, 0, 0, NULL }, /* 0x1B */ - { 0x001C, 0, 0, NULL }, /* 0x1C */ - { 0x001D, 0, 0, NULL }, /* 0x1D */ - { 0x001E, 0, 0, NULL }, /* 0x1E */ - { 0x001F, 0, 0, NULL }, /* 0x1F */ - { 0x0020, 0, 0, NULL }, /* 0x20 */ - { 0x0021, 0, 0, NULL }, /* 0x21 */ - { 0x0022, 0, 0, NULL }, /* 0x22 */ - { 0x0023, 0, 0, NULL }, /* 0x23 */ - { 0x0024, 0, 0, NULL }, /* 0x24 */ - { 0x0025, 0, 0, NULL }, /* 0x25 */ - { 0x0026, 0, 0, NULL }, /* 0x26 */ - { 0x0027, 0, 0, NULL }, /* 0x27 */ - { 0x0028, 0, 0, NULL }, /* 0x28 */ - { 0x0029, 0, 0, NULL }, /* 0x29 */ - { 0x002A, 0, 0, NULL }, /* 0x2A */ - { 0x002B, 0, 0, NULL }, /* 0x2B */ - { 0x002C, 0, 0, NULL }, /* 0x2C */ - { 0x002D, 0, 0, NULL }, /* 0x2D */ - { 0x002E, 0, 0, NULL }, /* 0x2E */ - { 0x002F, 0, 0, NULL }, /* 0x2F */ - { 0x0030, 0, 0, NULL }, /* 0x30 */ - { 0x0031, 0, 0, NULL }, /* 0x31 */ - { 0x0032, 0, 0, NULL }, /* 0x32 */ - { 0x0033, 0, 0, NULL }, /* 0x33 */ - { 0x0034, 0, 0, NULL }, /* 0x34 */ - { 0x0035, 0, 0, NULL }, /* 0x35 */ - { 0x0036, 0, 0, NULL }, /* 0x36 */ - { 0x0037, 0, 0, NULL }, /* 0x37 */ - { 0x0038, 0, 0, NULL }, /* 0x38 */ - { 0x0039, 0, 0, NULL }, /* 0x39 */ - { 0x003A, 0, 0, NULL }, /* 0x3A */ - { 0x003B, 0, 0, NULL }, /* 0x3B */ - { 0x003C, 0, 0, NULL }, /* 0x3C */ - { 0x003D, 0, 0, NULL }, /* 0x3D */ - { 0x003E, 0, 0, NULL }, /* 0x3E */ - { 0x003F, 0, 0, NULL }, /* 0x3F */ - { 0x0040, 0, 0, NULL }, /* 0x40 */ - { 0x0041, 0, 0, NULL }, /* 0x41 */ - { 0x0042, 0, 0, NULL }, /* 0x42 */ - { 0x0043, 0, 0, NULL }, /* 0x43 */ - { 0x0044, 0, 0, NULL }, /* 0x44 */ - { 0x0045, 0, 0, NULL }, /* 0x45 */ - { 0x0046, 0, 0, NULL }, /* 0x46 */ - { 0x0047, 0, 0, NULL }, /* 0x47 */ - { 0x0048, 0, 0, NULL }, /* 0x48 */ - { 0x0049, 0, 0, NULL }, /* 0x49 */ - { 0x004A, 0, 0, NULL }, /* 0x4A */ - { 0x004B, 0, 0, NULL }, /* 0x4B */ - { 0x004C, 0, 0, NULL }, /* 0x4C */ - { 0x004D, 0, 0, NULL }, /* 0x4D */ - { 0x004E, 0, 0, NULL }, /* 0x4E */ - { 0x004F, 0, 0, NULL }, /* 0x4F */ - { 0x0050, 0, 0, NULL }, /* 0x50 */ - { 0x0051, 0, 0, NULL }, /* 0x51 */ - { 0x0052, 0, 0, NULL }, /* 0x52 */ - { 0x0053, 0, 0, NULL }, /* 0x53 */ - { 0x0054, 0, 0, NULL }, /* 0x54 */ - { 0x0055, 0, 0, NULL }, /* 0x55 */ - { 0x0056, 0, 0, NULL }, /* 0x56 */ - { 0x0057, 0, 0, NULL }, /* 0x57 */ - { 0x0058, 0, 0, NULL }, /* 0x58 */ - { 0x0059, 0, 0, NULL }, /* 0x59 */ - { 0x005A, 0, 0, NULL }, /* 0x5A */ - { 0x005B, 0, 0, NULL }, /* 0x5B */ - { 0x005C, 0, 0, NULL }, /* 0x5C */ - { 0x005D, 0, 0, NULL }, /* 0x5D */ - { 0x005E, 0, 0, NULL }, /* 0x5E */ - { 0x005F, 0, 0, NULL }, /* 0x5F */ - { 0x0060, 0, 0, NULL }, /* 0x60 */ - { 0x0061, 0, 0, NULL }, /* 0x61 */ - { 0x0062, 0, 0, NULL }, /* 0x62 */ - { 0x0063, 0, 0, NULL }, /* 0x63 */ - { 0x0064, 0, 0, NULL }, /* 0x64 */ - { 0x0065, 0, 0, NULL }, /* 0x65 */ - { 0x0066, 0, 0, NULL }, /* 0x66 */ - { 0x0067, 0, 0, NULL }, /* 0x67 */ - { 0x0068, 0, 0, NULL }, /* 0x68 */ - { 0x0069, 0, 0, NULL }, /* 0x69 */ - { 0x006A, 0, 0, NULL }, /* 0x6A */ - { 0x006B, 0, 0, NULL }, /* 0x6B */ - { 0x006C, 0, 0, NULL }, /* 0x6C */ - { 0x006D, 0, 0, NULL }, /* 0x6D */ - { 0x006E, 0, 0, NULL }, /* 0x6E */ - { 0x006F, 0, 0, NULL }, /* 0x6F */ - { 0x0070, 0, 0, NULL }, /* 0x70 */ - { 0x0071, 0, 0, NULL }, /* 0x71 */ - { 0x0072, 0, 0, NULL }, /* 0x72 */ - { 0x0073, 0, 0, NULL }, /* 0x73 */ - { 0x0074, 0, 0, NULL }, /* 0x74 */ - { 0x0075, 0, 0, NULL }, /* 0x75 */ - { 0x0076, 0, 0, NULL }, /* 0x76 */ - { 0x0077, 0, 0, NULL }, /* 0x77 */ - { 0x0078, 0, 0, NULL }, /* 0x78 */ - { 0x0079, 0, 0, NULL }, /* 0x79 */ - { 0x007A, 0, 0, NULL }, /* 0x7A */ - { 0x007B, 0, 0, NULL }, /* 0x7B */ - { 0x007C, 0, 0, NULL }, /* 0x7C */ - { 0x007D, 0, 0, NULL }, /* 0x7D */ - { 0x007E, 0, 0, NULL }, /* 0x7E */ - { 0x007F, 0, 0, NULL }, /* 0x7F */ - { 0, 1, 0, NULL }, /* 0x80 */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x81 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x82 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x83 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x84 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x85 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x86 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x87 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x88 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x89 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8A */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8B */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8C */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8D */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8E */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8F */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x90 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x91 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x92 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x93 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x94 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x95 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x96 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x97 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x98 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x99 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9A */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9B */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9C */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9D */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9E */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9F */ /* We convert this as double byte */ - { 0, 1, 0, NULL }, /* 0xA0 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A1 }, /* 0xA1 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A2 }, /* 0xA2 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A3 }, /* 0xA3 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A4 }, /* 0xA4 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A5 }, /* 0xA5 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A6 }, /* 0xA6 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A7 }, /* 0xA7 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A8 }, /* 0xA8 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A9 }, /* 0xA9 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_AA }, /* 0xAA */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_AB }, /* 0xAB */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_AC }, /* 0xAC */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_AD }, /* 0xAD */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_AE }, /* 0xAE */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_AF }, /* 0xAF */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B0 }, /* 0xB0 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B1 }, /* 0xB1 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B2 }, /* 0xB2 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B3 }, /* 0xB3 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B4 }, /* 0xB4 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B5 }, /* 0xB5 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B6 }, /* 0xB6 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B7 }, /* 0xB7 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B8 }, /* 0xB8 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B9 }, /* 0xB9 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_BA }, /* 0xBA */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_BB }, /* 0xBB */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_BC }, /* 0xBC */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_BD }, /* 0xBD */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_BE }, /* 0xBE */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_BF }, /* 0xBF */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C0 }, /* 0xC0 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C1 }, /* 0xC1 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C2 }, /* 0xC2 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C3 }, /* 0xC3 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C4 }, /* 0xC4 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C5 }, /* 0xC5 */ - { 0, 0x40, 0x7E, aImplDBCSToUniTab_BIG5_C6 }, /* 0xC6 */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xC7 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xC8 */ /* We convert this as double byte */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C9 }, /* 0xC9 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_CA }, /* 0xCA */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_CB }, /* 0xCB */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_CC }, /* 0xCC */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_CD }, /* 0xCD */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_CE }, /* 0xCE */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_CF }, /* 0xCF */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D0 }, /* 0xD0 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D1 }, /* 0xD1 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D2 }, /* 0xD2 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D3 }, /* 0xD3 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D4 }, /* 0xD4 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D5 }, /* 0xD5 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D6 }, /* 0xD6 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D7 }, /* 0xD7 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D8 }, /* 0xD8 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D9 }, /* 0xD9 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_DA }, /* 0xDA */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_DB }, /* 0xDB */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_DC }, /* 0xDC */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_DD }, /* 0xDD */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_DE }, /* 0xDE */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_DF }, /* 0xDF */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E0 }, /* 0xE0 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E1 }, /* 0xE1 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E2 }, /* 0xE2 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E3 }, /* 0xE3 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E4 }, /* 0xE4 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E5 }, /* 0xE5 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E6 }, /* 0xE6 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E7 }, /* 0xE7 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E8 }, /* 0xE8 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E9 }, /* 0xE9 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_EA }, /* 0xEA */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_EB }, /* 0xEB */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_EC }, /* 0xEC */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_ED }, /* 0xED */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_EE }, /* 0xEE */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_EF }, /* 0xEF */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F0 }, /* 0xF0 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F1 }, /* 0xF1 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F2 }, /* 0xF2 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F3 }, /* 0xF3 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F4 }, /* 0xF4 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F5 }, /* 0xF5 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F6 }, /* 0xF6 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F7 }, /* 0xF7 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F8 }, /* 0xF8 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F9 }, /* 0xF9 */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xFA */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xFB */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xFC */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xFD */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xFE */ /* We convert this as double byte */ - { 0, 1, 0, NULL } /* 0xFF */ + { 0x0000, 0, 0, NULL }, /* 0x00 */ + { 0x0001, 0, 0, NULL }, /* 0x01 */ + { 0x0002, 0, 0, NULL }, /* 0x02 */ + { 0x0003, 0, 0, NULL }, /* 0x03 */ + { 0x0004, 0, 0, NULL }, /* 0x04 */ + { 0x0005, 0, 0, NULL }, /* 0x05 */ + { 0x0006, 0, 0, NULL }, /* 0x06 */ + { 0x0007, 0, 0, NULL }, /* 0x07 */ + { 0x0008, 0, 0, NULL }, /* 0x08 */ + { 0x0009, 0, 0, NULL }, /* 0x09 */ + { 0x000A, 0, 0, NULL }, /* 0x0A */ + { 0x000B, 0, 0, NULL }, /* 0x0B */ + { 0x000C, 0, 0, NULL }, /* 0x0C */ + { 0x000D, 0, 0, NULL }, /* 0x0D */ + { 0x000E, 0, 0, NULL }, /* 0x0E */ + { 0x000F, 0, 0, NULL }, /* 0x0F */ + { 0x0010, 0, 0, NULL }, /* 0x10 */ + { 0x0011, 0, 0, NULL }, /* 0x11 */ + { 0x0012, 0, 0, NULL }, /* 0x12 */ + { 0x0013, 0, 0, NULL }, /* 0x13 */ + { 0x0014, 0, 0, NULL }, /* 0x14 */ + { 0x0015, 0, 0, NULL }, /* 0x15 */ + { 0x0016, 0, 0, NULL }, /* 0x16 */ + { 0x0017, 0, 0, NULL }, /* 0x17 */ + { 0x0018, 0, 0, NULL }, /* 0x18 */ + { 0x0019, 0, 0, NULL }, /* 0x19 */ + { 0x001A, 0, 0, NULL }, /* 0x1A */ + { 0x001B, 0, 0, NULL }, /* 0x1B */ + { 0x001C, 0, 0, NULL }, /* 0x1C */ + { 0x001D, 0, 0, NULL }, /* 0x1D */ + { 0x001E, 0, 0, NULL }, /* 0x1E */ + { 0x001F, 0, 0, NULL }, /* 0x1F */ + { 0x0020, 0, 0, NULL }, /* 0x20 */ + { 0x0021, 0, 0, NULL }, /* 0x21 */ + { 0x0022, 0, 0, NULL }, /* 0x22 */ + { 0x0023, 0, 0, NULL }, /* 0x23 */ + { 0x0024, 0, 0, NULL }, /* 0x24 */ + { 0x0025, 0, 0, NULL }, /* 0x25 */ + { 0x0026, 0, 0, NULL }, /* 0x26 */ + { 0x0027, 0, 0, NULL }, /* 0x27 */ + { 0x0028, 0, 0, NULL }, /* 0x28 */ + { 0x0029, 0, 0, NULL }, /* 0x29 */ + { 0x002A, 0, 0, NULL }, /* 0x2A */ + { 0x002B, 0, 0, NULL }, /* 0x2B */ + { 0x002C, 0, 0, NULL }, /* 0x2C */ + { 0x002D, 0, 0, NULL }, /* 0x2D */ + { 0x002E, 0, 0, NULL }, /* 0x2E */ + { 0x002F, 0, 0, NULL }, /* 0x2F */ + { 0x0030, 0, 0, NULL }, /* 0x30 */ + { 0x0031, 0, 0, NULL }, /* 0x31 */ + { 0x0032, 0, 0, NULL }, /* 0x32 */ + { 0x0033, 0, 0, NULL }, /* 0x33 */ + { 0x0034, 0, 0, NULL }, /* 0x34 */ + { 0x0035, 0, 0, NULL }, /* 0x35 */ + { 0x0036, 0, 0, NULL }, /* 0x36 */ + { 0x0037, 0, 0, NULL }, /* 0x37 */ + { 0x0038, 0, 0, NULL }, /* 0x38 */ + { 0x0039, 0, 0, NULL }, /* 0x39 */ + { 0x003A, 0, 0, NULL }, /* 0x3A */ + { 0x003B, 0, 0, NULL }, /* 0x3B */ + { 0x003C, 0, 0, NULL }, /* 0x3C */ + { 0x003D, 0, 0, NULL }, /* 0x3D */ + { 0x003E, 0, 0, NULL }, /* 0x3E */ + { 0x003F, 0, 0, NULL }, /* 0x3F */ + { 0x0040, 0, 0, NULL }, /* 0x40 */ + { 0x0041, 0, 0, NULL }, /* 0x41 */ + { 0x0042, 0, 0, NULL }, /* 0x42 */ + { 0x0043, 0, 0, NULL }, /* 0x43 */ + { 0x0044, 0, 0, NULL }, /* 0x44 */ + { 0x0045, 0, 0, NULL }, /* 0x45 */ + { 0x0046, 0, 0, NULL }, /* 0x46 */ + { 0x0047, 0, 0, NULL }, /* 0x47 */ + { 0x0048, 0, 0, NULL }, /* 0x48 */ + { 0x0049, 0, 0, NULL }, /* 0x49 */ + { 0x004A, 0, 0, NULL }, /* 0x4A */ + { 0x004B, 0, 0, NULL }, /* 0x4B */ + { 0x004C, 0, 0, NULL }, /* 0x4C */ + { 0x004D, 0, 0, NULL }, /* 0x4D */ + { 0x004E, 0, 0, NULL }, /* 0x4E */ + { 0x004F, 0, 0, NULL }, /* 0x4F */ + { 0x0050, 0, 0, NULL }, /* 0x50 */ + { 0x0051, 0, 0, NULL }, /* 0x51 */ + { 0x0052, 0, 0, NULL }, /* 0x52 */ + { 0x0053, 0, 0, NULL }, /* 0x53 */ + { 0x0054, 0, 0, NULL }, /* 0x54 */ + { 0x0055, 0, 0, NULL }, /* 0x55 */ + { 0x0056, 0, 0, NULL }, /* 0x56 */ + { 0x0057, 0, 0, NULL }, /* 0x57 */ + { 0x0058, 0, 0, NULL }, /* 0x58 */ + { 0x0059, 0, 0, NULL }, /* 0x59 */ + { 0x005A, 0, 0, NULL }, /* 0x5A */ + { 0x005B, 0, 0, NULL }, /* 0x5B */ + { 0x005C, 0, 0, NULL }, /* 0x5C */ + { 0x005D, 0, 0, NULL }, /* 0x5D */ + { 0x005E, 0, 0, NULL }, /* 0x5E */ + { 0x005F, 0, 0, NULL }, /* 0x5F */ + { 0x0060, 0, 0, NULL }, /* 0x60 */ + { 0x0061, 0, 0, NULL }, /* 0x61 */ + { 0x0062, 0, 0, NULL }, /* 0x62 */ + { 0x0063, 0, 0, NULL }, /* 0x63 */ + { 0x0064, 0, 0, NULL }, /* 0x64 */ + { 0x0065, 0, 0, NULL }, /* 0x65 */ + { 0x0066, 0, 0, NULL }, /* 0x66 */ + { 0x0067, 0, 0, NULL }, /* 0x67 */ + { 0x0068, 0, 0, NULL }, /* 0x68 */ + { 0x0069, 0, 0, NULL }, /* 0x69 */ + { 0x006A, 0, 0, NULL }, /* 0x6A */ + { 0x006B, 0, 0, NULL }, /* 0x6B */ + { 0x006C, 0, 0, NULL }, /* 0x6C */ + { 0x006D, 0, 0, NULL }, /* 0x6D */ + { 0x006E, 0, 0, NULL }, /* 0x6E */ + { 0x006F, 0, 0, NULL }, /* 0x6F */ + { 0x0070, 0, 0, NULL }, /* 0x70 */ + { 0x0071, 0, 0, NULL }, /* 0x71 */ + { 0x0072, 0, 0, NULL }, /* 0x72 */ + { 0x0073, 0, 0, NULL }, /* 0x73 */ + { 0x0074, 0, 0, NULL }, /* 0x74 */ + { 0x0075, 0, 0, NULL }, /* 0x75 */ + { 0x0076, 0, 0, NULL }, /* 0x76 */ + { 0x0077, 0, 0, NULL }, /* 0x77 */ + { 0x0078, 0, 0, NULL }, /* 0x78 */ + { 0x0079, 0, 0, NULL }, /* 0x79 */ + { 0x007A, 0, 0, NULL }, /* 0x7A */ + { 0x007B, 0, 0, NULL }, /* 0x7B */ + { 0x007C, 0, 0, NULL }, /* 0x7C */ + { 0x007D, 0, 0, NULL }, /* 0x7D */ + { 0x007E, 0, 0, NULL }, /* 0x7E */ + { 0x007F, 0, 0, NULL }, /* 0x7F */ + { 0, 1, 0, NULL }, /* 0x80 */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x81 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x82 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x83 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x84 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x85 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x86 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x87 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x88 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x89 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8A */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8B */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8C */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8D */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8E */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8F */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x90 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x91 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x92 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x93 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x94 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x95 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x96 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x97 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x98 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x99 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9A */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9B */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9C */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9D */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9E */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9F */ /* We convert this as double byte */ + { 0, 1, 0, NULL }, /* 0xA0 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A1 }, /* 0xA1 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A2 }, /* 0xA2 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A3 }, /* 0xA3 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A4 }, /* 0xA4 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A5 }, /* 0xA5 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A6 }, /* 0xA6 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A7 }, /* 0xA7 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A8 }, /* 0xA8 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A9 }, /* 0xA9 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_AA }, /* 0xAA */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_AB }, /* 0xAB */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_AC }, /* 0xAC */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_AD }, /* 0xAD */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_AE }, /* 0xAE */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_AF }, /* 0xAF */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B0 }, /* 0xB0 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B1 }, /* 0xB1 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B2 }, /* 0xB2 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B3 }, /* 0xB3 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B4 }, /* 0xB4 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B5 }, /* 0xB5 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B6 }, /* 0xB6 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B7 }, /* 0xB7 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B8 }, /* 0xB8 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B9 }, /* 0xB9 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_BA }, /* 0xBA */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_BB }, /* 0xBB */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_BC }, /* 0xBC */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_BD }, /* 0xBD */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_BE }, /* 0xBE */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_BF }, /* 0xBF */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C0 }, /* 0xC0 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C1 }, /* 0xC1 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C2 }, /* 0xC2 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C3 }, /* 0xC3 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C4 }, /* 0xC4 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C5 }, /* 0xC5 */ + { 0, 0x40, 0x7E, aImplDBCSToUniTab_BIG5_C6 }, /* 0xC6 */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xC7 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xC8 */ /* We convert this as double byte */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C9 }, /* 0xC9 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_CA }, /* 0xCA */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_CB }, /* 0xCB */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_CC }, /* 0xCC */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_CD }, /* 0xCD */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_CE }, /* 0xCE */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_CF }, /* 0xCF */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D0 }, /* 0xD0 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D1 }, /* 0xD1 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D2 }, /* 0xD2 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D3 }, /* 0xD3 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D4 }, /* 0xD4 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D5 }, /* 0xD5 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D6 }, /* 0xD6 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D7 }, /* 0xD7 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D8 }, /* 0xD8 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D9 }, /* 0xD9 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_DA }, /* 0xDA */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_DB }, /* 0xDB */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_DC }, /* 0xDC */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_DD }, /* 0xDD */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_DE }, /* 0xDE */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_DF }, /* 0xDF */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E0 }, /* 0xE0 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E1 }, /* 0xE1 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E2 }, /* 0xE2 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E3 }, /* 0xE3 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E4 }, /* 0xE4 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E5 }, /* 0xE5 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E6 }, /* 0xE6 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E7 }, /* 0xE7 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E8 }, /* 0xE8 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E9 }, /* 0xE9 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_EA }, /* 0xEA */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_EB }, /* 0xEB */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_EC }, /* 0xEC */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_ED }, /* 0xED */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_EE }, /* 0xEE */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_EF }, /* 0xEF */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F0 }, /* 0xF0 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F1 }, /* 0xF1 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F2 }, /* 0xF2 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F3 }, /* 0xF3 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F4 }, /* 0xF4 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F5 }, /* 0xF5 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F6 }, /* 0xF6 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F7 }, /* 0xF7 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F8 }, /* 0xF8 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F9 }, /* 0xF9 */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xFA */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xFB */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xFC */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xFD */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xFE */ /* We convert this as double byte */ + { 0, 1, 0, NULL } /* 0xFF */ }; /* ----------------------------------------------------------------------- */ static ImplUniToDBCSHighTab const aMS950DBCSHighTab[256] = { - { 0x00, 0xF7, aImplUniToDBCSTab_BIG5_00 }, /* 0x00 */ - { 1, 0, NULL }, /* 0x01 */ - { 0xC7, 0xD9, aImplUniToDBCSTab_BIG5_02 }, /* 0x02 */ - { 0x91, 0xC9, aImplUniToDBCSTab_BIG5_03 }, /* 0x03 */ - { 0x01, 0x51, aImplUniToDBCSTab_BIG5_04 }, /* 0x04 */ - { 1, 0, NULL }, /* 0x05 */ - { 1, 0, NULL }, /* 0x06 */ - { 1, 0, NULL }, /* 0x07 */ - { 1, 0, NULL }, /* 0x08 */ - { 1, 0, NULL }, /* 0x09 */ - { 1, 0, NULL }, /* 0x0A */ - { 1, 0, NULL }, /* 0x0B */ - { 1, 0, NULL }, /* 0x0C */ - { 1, 0, NULL }, /* 0x0D */ - { 1, 0, NULL }, /* 0x0E */ - { 1, 0, NULL }, /* 0x0F */ - { 1, 0, NULL }, /* 0x10 */ - { 1, 0, NULL }, /* 0x11 */ - { 1, 0, NULL }, /* 0x12 */ - { 1, 0, NULL }, /* 0x13 */ - { 1, 0, NULL }, /* 0x14 */ - { 1, 0, NULL }, /* 0x15 */ - { 1, 0, NULL }, /* 0x16 */ - { 1, 0, NULL }, /* 0x17 */ - { 1, 0, NULL }, /* 0x18 */ - { 1, 0, NULL }, /* 0x19 */ - { 1, 0, NULL }, /* 0x1A */ - { 1, 0, NULL }, /* 0x1B */ - { 1, 0, NULL }, /* 0x1C */ - { 1, 0, NULL }, /* 0x1D */ - { 1, 0, NULL }, /* 0x1E */ - { 1, 0, NULL }, /* 0x1F */ - { 0x20, 0xAC, aImplUniToDBCSTab_BIG5_20 }, /* 0x20 */ - { 0x03, 0x99, aImplUniToDBCSTab_BIG5_21 }, /* 0x21 */ - { 0x15, 0xEF, aImplUniToDBCSTab_BIG5_22 }, /* 0x22 */ - { 1, 0, NULL }, /* 0x23 */ - { 0x60, 0x7D, aImplUniToDBCSTab_BIG5_24 }, /* 0x24 */ - { 0x00, 0xE5, aImplUniToDBCSTab_BIG5_25 }, /* 0x25 */ - { 0x05, 0x42, aImplUniToDBCSTab_BIG5_26 }, /* 0x25 */ - { 1, 0, NULL }, /* 0x27 */ - { 1, 0, NULL }, /* 0x28 */ - { 1, 0, NULL }, /* 0x29 */ - { 1, 0, NULL }, /* 0x2A */ - { 1, 0, NULL }, /* 0x2B */ - { 1, 0, NULL }, /* 0x2C */ - { 1, 0, NULL }, /* 0x2D */ - { 1, 0, NULL }, /* 0x2E */ - { 1, 0, NULL }, /* 0x2F */ - { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_30 }, /* 0x30 */ - { 0x05, 0x29, aImplUniToDBCSTab_BIG5_31 }, /* 0x31 */ - { 0xA3, 0xA3, aImplUniToDBCSTab_BIG5_32 }, /* 0x32 */ - { 1, 0, NULL }, /* 0x33 */ - { 1, 0, NULL }, /* 0x34 */ - { 1, 0, NULL }, /* 0x35 */ - { 1, 0, NULL }, /* 0x36 */ - { 1, 0, NULL }, /* 0x37 */ - { 1, 0, NULL }, /* 0x38 */ - { 1, 0, NULL }, /* 0x39 */ - { 1, 0, NULL }, /* 0x3A */ - { 1, 0, NULL }, /* 0x3B */ - { 1, 0, NULL }, /* 0x3C */ - { 1, 0, NULL }, /* 0x3D */ - { 1, 0, NULL }, /* 0x3E */ - { 1, 0, NULL }, /* 0x3F */ - { 1, 0, NULL }, /* 0x40 */ - { 1, 0, NULL }, /* 0x41 */ - { 1, 0, NULL }, /* 0x42 */ - { 1, 0, NULL }, /* 0x43 */ - { 1, 0, NULL }, /* 0x44 */ - { 1, 0, NULL }, /* 0x45 */ - { 1, 0, NULL }, /* 0x46 */ - { 1, 0, NULL }, /* 0x47 */ - { 1, 0, NULL }, /* 0x48 */ - { 1, 0, NULL }, /* 0x49 */ - { 1, 0, NULL }, /* 0x4A */ - { 1, 0, NULL }, /* 0x4B */ - { 1, 0, NULL }, /* 0x4C */ - { 1, 0, NULL }, /* 0x4D */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_4E }, /* 0x4E */ - { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_4F }, /* 0x4F */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_50 }, /* 0x50 */ - { 0x00, 0xFD, aImplUniToDBCSTab_BIG5_51 }, /* 0x51 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_52 }, /* 0x52 */ - { 0x05, 0xFC, aImplUniToDBCSTab_BIG5_53 }, /* 0x53 */ - { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_54 }, /* 0x54 */ - { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_55 }, /* 0x55 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_56 }, /* 0x56 */ - { 0x01, 0xFD, aImplUniToDBCSTab_BIG5_57 }, /* 0x57 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_58 }, /* 0x58 */ - { 0x03, 0xFF, aImplUniToDBCSTab_BIG5_59 }, /* 0x59 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_5A }, /* 0x5A */ - { 0x01, 0xFA, aImplUniToDBCSTab_BIG5_5B }, /* 0x5B */ - { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_5C }, /* 0x5C */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_5D }, /* 0x5D */ - { 0x02, 0xFF, aImplUniToDBCSTab_BIG5_5E }, /* 0x5E */ - { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_5F }, /* 0x5F */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_60 }, /* 0x60 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_61 }, /* 0x61 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_62 }, /* 0x62 */ - { 0x00, 0xF9, aImplUniToDBCSTab_BIG5_63 }, /* 0x63 */ - { 0x06, 0xFF, aImplUniToDBCSTab_BIG5_64 }, /* 0x64 */ - { 0x00, 0xFD, aImplUniToDBCSTab_BIG5_65 }, /* 0x65 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_66 }, /* 0x66 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_67 }, /* 0x67 */ - { 0x12, 0xFD, aImplUniToDBCSTab_BIG5_68 }, /* 0x68 */ - { 0x04, 0xFF, aImplUniToDBCSTab_BIG5_69 }, /* 0x69 */ - { 0x00, 0xFC, aImplUniToDBCSTab_BIG5_6A }, /* 0x6A */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_6B }, /* 0x6B */ - { 0x00, 0xF9, aImplUniToDBCSTab_BIG5_6C }, /* 0x6C */ - { 0x00, 0xFD, aImplUniToDBCSTab_BIG5_6D }, /* 0x6D */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_6E }, /* 0x6E */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_6F }, /* 0x6F */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_70 }, /* 0x70 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_71 }, /* 0x71 */ - { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_72 }, /* 0x72 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_73 }, /* 0x73 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_74 }, /* 0x74 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_75 }, /* 0x75 */ - { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_76 }, /* 0x76 */ - { 0x01, 0xFD, aImplUniToDBCSTab_BIG5_77 }, /* 0x77 */ - { 0x02, 0xFF, aImplUniToDBCSTab_BIG5_78 }, /* 0x78 */ - { 0x01, 0xFB, aImplUniToDBCSTab_BIG5_79 }, /* 0x79 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_7A }, /* 0x7A */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_7B }, /* 0x7B */ - { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_7C }, /* 0x7C */ - { 0x00, 0xFB, aImplUniToDBCSTab_BIG5_7D }, /* 0x7D */ - { 0x03, 0x9C, aImplUniToDBCSTab_BIG5_7E }, /* 0x7E */ - { 0x36, 0xFF, aImplUniToDBCSTab_BIG5_7F }, /* 0x7F */ - { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_80 }, /* 0x80 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_81 }, /* 0x81 */ - { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_82 }, /* 0x82 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_83 }, /* 0x83 */ - { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_84 }, /* 0x84 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_85 }, /* 0x85 */ - { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_86 }, /* 0x86 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_87 }, /* 0x87 */ - { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_88 }, /* 0x88 */ - { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_89 }, /* 0x89 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_8A }, /* 0x8A */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_8B }, /* 0x8B */ - { 0x37, 0xFE, aImplUniToDBCSTab_BIG5_8C }, /* 0x8C */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_8D }, /* 0x8D */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_8E }, /* 0x8E */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_8F }, /* 0x8F */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_90 }, /* 0x90 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_91 }, /* 0x91 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_92 }, /* 0x92 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_93 }, /* 0x93 */ - { 0x00, 0x83, aImplUniToDBCSTab_BIG5_94 }, /* 0x94 */ - { 0x77, 0xE5, aImplUniToDBCSTab_BIG5_95 }, /* 0x95 */ - { 0x1C, 0xFF, aImplUniToDBCSTab_BIG5_96 }, /* 0x96 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_97 }, /* 0x97 */ - { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_98 }, /* 0x98 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_99 }, /* 0x99 */ - { 0x01, 0xFE, aImplUniToDBCSTab_BIG5_9A }, /* 0x9A */ - { 0x01, 0xFD, aImplUniToDBCSTab_BIG5_9B }, /* 0x9B */ - { 0x05, 0xFF, aImplUniToDBCSTab_BIG5_9C }, /* 0x9C */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_9D }, /* 0x9D */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_9E }, /* 0x9E */ - { 0x00, 0xA4, aImplUniToDBCSTab_BIG5_9F }, /* 0x9F */ - { 1, 0, NULL }, /* 0xA0 */ - { 1, 0, NULL }, /* 0xA1 */ - { 1, 0, NULL }, /* 0xA2 */ - { 1, 0, NULL }, /* 0xA3 */ - { 1, 0, NULL }, /* 0xA4 */ - { 1, 0, NULL }, /* 0xA5 */ - { 1, 0, NULL }, /* 0xA6 */ - { 1, 0, NULL }, /* 0xA7 */ - { 1, 0, NULL }, /* 0xA8 */ - { 1, 0, NULL }, /* 0xA9 */ - { 1, 0, NULL }, /* 0xAA */ - { 1, 0, NULL }, /* 0xAB */ - { 1, 0, NULL }, /* 0xAC */ - { 1, 0, NULL }, /* 0xAD */ - { 1, 0, NULL }, /* 0xAE */ - { 1, 0, NULL }, /* 0xAF */ - { 1, 0, NULL }, /* 0xB0 */ - { 1, 0, NULL }, /* 0xB1 */ - { 1, 0, NULL }, /* 0xB2 */ - { 1, 0, NULL }, /* 0xB3 */ - { 1, 0, NULL }, /* 0xB4 */ - { 1, 0, NULL }, /* 0xB5 */ - { 1, 0, NULL }, /* 0xB6 */ - { 1, 0, NULL }, /* 0xB7 */ - { 1, 0, NULL }, /* 0xB8 */ - { 1, 0, NULL }, /* 0xB9 */ - { 1, 0, NULL }, /* 0xBA */ - { 1, 0, NULL }, /* 0xBB */ - { 1, 0, NULL }, /* 0xBC */ - { 1, 0, NULL }, /* 0xBD */ - { 1, 0, NULL }, /* 0xBE */ - { 1, 0, NULL }, /* 0xBF */ - { 1, 0, NULL }, /* 0xC0 */ - { 1, 0, NULL }, /* 0xC1 */ - { 1, 0, NULL }, /* 0xC2 */ - { 1, 0, NULL }, /* 0xC3 */ - { 1, 0, NULL }, /* 0xC4 */ - { 1, 0, NULL }, /* 0xC5 */ - { 1, 0, NULL }, /* 0xC6 */ - { 1, 0, NULL }, /* 0xC7 */ - { 1, 0, NULL }, /* 0xC8 */ - { 1, 0, NULL }, /* 0xC9 */ - { 1, 0, NULL }, /* 0xCA */ - { 1, 0, NULL }, /* 0xCB */ - { 1, 0, NULL }, /* 0xCC */ - { 1, 0, NULL }, /* 0xCD */ - { 1, 0, NULL }, /* 0xCE */ - { 1, 0, NULL }, /* 0xCF */ - { 1, 0, NULL }, /* 0xD0 */ - { 1, 0, NULL }, /* 0xD1 */ - { 1, 0, NULL }, /* 0xD2 */ - { 1, 0, NULL }, /* 0xD3 */ - { 1, 0, NULL }, /* 0xD4 */ - { 1, 0, NULL }, /* 0xD5 */ - { 1, 0, NULL }, /* 0xD6 */ - { 1, 0, NULL }, /* 0xD7 */ - { 1, 0, NULL }, /* 0xD8 */ - { 1, 0, NULL }, /* 0xD9 */ - { 1, 0, NULL }, /* 0xDA */ - { 1, 0, NULL }, /* 0xDB */ - { 1, 0, NULL }, /* 0xDC */ - { 1, 0, NULL }, /* 0xDD */ - { 1, 0, NULL }, /* 0xDE */ - { 1, 0, NULL }, /* 0xDF */ - { 1, 0, NULL }, /* 0xE0 */ - { 1, 0, NULL }, /* 0xE1 */ - { 1, 0, NULL }, /* 0xE2 */ - { 1, 0, NULL }, /* 0xE3 */ - { 1, 0, NULL }, /* 0xE4 */ - { 1, 0, NULL }, /* 0xE5 */ - { 1, 0, NULL }, /* 0xE6 */ - { 1, 0, NULL }, /* 0xE7 */ - { 1, 0, NULL }, /* 0xE8 */ - { 1, 0, NULL }, /* 0xE9 */ - { 1, 0, NULL }, /* 0xEA */ - { 1, 0, NULL }, /* 0xEB */ - { 1, 0, NULL }, /* 0xEC */ - { 1, 0, NULL }, /* 0xED */ - { 1, 0, NULL }, /* 0xEE */ - { 1, 0, NULL }, /* 0xEF */ - { 1, 0, NULL }, /* 0xF0 */ - { 1, 0, NULL }, /* 0xF1 */ - { 1, 0, NULL }, /* 0xF2 */ - { 1, 0, NULL }, /* 0xF3 */ - { 1, 0, NULL }, /* 0xF4 */ - { 1, 0, NULL }, /* 0xF5 */ - { 1, 0, NULL }, /* 0xF6 */ - { 1, 0, NULL }, /* 0xF7 */ - { 1, 0, NULL }, /* 0xF8 */ - { 1, 0, NULL }, /* 0xF9 */ - { 0x0C, 0x0D, aImplUniToDBCSTab_BIG5_FA }, /* 0xFA */ - { 1, 0, NULL }, /* 0xFB */ - { 1, 0, NULL }, /* 0xFC */ - { 1, 0, NULL }, /* 0xFD */ - { 0x30, 0x6B, aImplUniToDBCSTab_BIG5_FE }, /* 0xFE */ - { 0x01, 0xFD, aImplUniToDBCSTab_BIG5_FF } /* 0xFF */ + { 0x00, 0xF7, aImplUniToDBCSTab_BIG5_00 }, /* 0x00 */ + { 1, 0, NULL }, /* 0x01 */ + { 0xC7, 0xD9, aImplUniToDBCSTab_BIG5_02 }, /* 0x02 */ + { 0x91, 0xC9, aImplUniToDBCSTab_BIG5_03 }, /* 0x03 */ + { 0x01, 0x51, aImplUniToDBCSTab_BIG5_04 }, /* 0x04 */ + { 1, 0, NULL }, /* 0x05 */ + { 1, 0, NULL }, /* 0x06 */ + { 1, 0, NULL }, /* 0x07 */ + { 1, 0, NULL }, /* 0x08 */ + { 1, 0, NULL }, /* 0x09 */ + { 1, 0, NULL }, /* 0x0A */ + { 1, 0, NULL }, /* 0x0B */ + { 1, 0, NULL }, /* 0x0C */ + { 1, 0, NULL }, /* 0x0D */ + { 1, 0, NULL }, /* 0x0E */ + { 1, 0, NULL }, /* 0x0F */ + { 1, 0, NULL }, /* 0x10 */ + { 1, 0, NULL }, /* 0x11 */ + { 1, 0, NULL }, /* 0x12 */ + { 1, 0, NULL }, /* 0x13 */ + { 1, 0, NULL }, /* 0x14 */ + { 1, 0, NULL }, /* 0x15 */ + { 1, 0, NULL }, /* 0x16 */ + { 1, 0, NULL }, /* 0x17 */ + { 1, 0, NULL }, /* 0x18 */ + { 1, 0, NULL }, /* 0x19 */ + { 1, 0, NULL }, /* 0x1A */ + { 1, 0, NULL }, /* 0x1B */ + { 1, 0, NULL }, /* 0x1C */ + { 1, 0, NULL }, /* 0x1D */ + { 1, 0, NULL }, /* 0x1E */ + { 1, 0, NULL }, /* 0x1F */ + { 0x20, 0xAC, aImplUniToDBCSTab_BIG5_20 }, /* 0x20 */ + { 0x03, 0x99, aImplUniToDBCSTab_BIG5_21 }, /* 0x21 */ + { 0x15, 0xEF, aImplUniToDBCSTab_BIG5_22 }, /* 0x22 */ + { 1, 0, NULL }, /* 0x23 */ + { 0x60, 0x7D, aImplUniToDBCSTab_BIG5_24 }, /* 0x24 */ + { 0x00, 0xE5, aImplUniToDBCSTab_BIG5_25 }, /* 0x25 */ + { 0x05, 0x42, aImplUniToDBCSTab_BIG5_26 }, /* 0x25 */ + { 1, 0, NULL }, /* 0x27 */ + { 1, 0, NULL }, /* 0x28 */ + { 1, 0, NULL }, /* 0x29 */ + { 1, 0, NULL }, /* 0x2A */ + { 1, 0, NULL }, /* 0x2B */ + { 1, 0, NULL }, /* 0x2C */ + { 1, 0, NULL }, /* 0x2D */ + { 1, 0, NULL }, /* 0x2E */ + { 1, 0, NULL }, /* 0x2F */ + { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_30 }, /* 0x30 */ + { 0x05, 0x29, aImplUniToDBCSTab_BIG5_31 }, /* 0x31 */ + { 0xA3, 0xA3, aImplUniToDBCSTab_BIG5_32 }, /* 0x32 */ + { 1, 0, NULL }, /* 0x33 */ + { 1, 0, NULL }, /* 0x34 */ + { 1, 0, NULL }, /* 0x35 */ + { 1, 0, NULL }, /* 0x36 */ + { 1, 0, NULL }, /* 0x37 */ + { 1, 0, NULL }, /* 0x38 */ + { 1, 0, NULL }, /* 0x39 */ + { 1, 0, NULL }, /* 0x3A */ + { 1, 0, NULL }, /* 0x3B */ + { 1, 0, NULL }, /* 0x3C */ + { 1, 0, NULL }, /* 0x3D */ + { 1, 0, NULL }, /* 0x3E */ + { 1, 0, NULL }, /* 0x3F */ + { 1, 0, NULL }, /* 0x40 */ + { 1, 0, NULL }, /* 0x41 */ + { 1, 0, NULL }, /* 0x42 */ + { 1, 0, NULL }, /* 0x43 */ + { 1, 0, NULL }, /* 0x44 */ + { 1, 0, NULL }, /* 0x45 */ + { 1, 0, NULL }, /* 0x46 */ + { 1, 0, NULL }, /* 0x47 */ + { 1, 0, NULL }, /* 0x48 */ + { 1, 0, NULL }, /* 0x49 */ + { 1, 0, NULL }, /* 0x4A */ + { 1, 0, NULL }, /* 0x4B */ + { 1, 0, NULL }, /* 0x4C */ + { 1, 0, NULL }, /* 0x4D */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_4E }, /* 0x4E */ + { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_4F }, /* 0x4F */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_50 }, /* 0x50 */ + { 0x00, 0xFD, aImplUniToDBCSTab_BIG5_51 }, /* 0x51 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_52 }, /* 0x52 */ + { 0x05, 0xFC, aImplUniToDBCSTab_BIG5_53 }, /* 0x53 */ + { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_54 }, /* 0x54 */ + { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_55 }, /* 0x55 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_56 }, /* 0x56 */ + { 0x01, 0xFD, aImplUniToDBCSTab_BIG5_57 }, /* 0x57 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_58 }, /* 0x58 */ + { 0x03, 0xFF, aImplUniToDBCSTab_BIG5_59 }, /* 0x59 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_5A }, /* 0x5A */ + { 0x01, 0xFA, aImplUniToDBCSTab_BIG5_5B }, /* 0x5B */ + { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_5C }, /* 0x5C */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_5D }, /* 0x5D */ + { 0x02, 0xFF, aImplUniToDBCSTab_BIG5_5E }, /* 0x5E */ + { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_5F }, /* 0x5F */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_60 }, /* 0x60 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_61 }, /* 0x61 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_62 }, /* 0x62 */ + { 0x00, 0xF9, aImplUniToDBCSTab_BIG5_63 }, /* 0x63 */ + { 0x06, 0xFF, aImplUniToDBCSTab_BIG5_64 }, /* 0x64 */ + { 0x00, 0xFD, aImplUniToDBCSTab_BIG5_65 }, /* 0x65 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_66 }, /* 0x66 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_67 }, /* 0x67 */ + { 0x12, 0xFD, aImplUniToDBCSTab_BIG5_68 }, /* 0x68 */ + { 0x04, 0xFF, aImplUniToDBCSTab_BIG5_69 }, /* 0x69 */ + { 0x00, 0xFC, aImplUniToDBCSTab_BIG5_6A }, /* 0x6A */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_6B }, /* 0x6B */ + { 0x00, 0xF9, aImplUniToDBCSTab_BIG5_6C }, /* 0x6C */ + { 0x00, 0xFD, aImplUniToDBCSTab_BIG5_6D }, /* 0x6D */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_6E }, /* 0x6E */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_6F }, /* 0x6F */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_70 }, /* 0x70 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_71 }, /* 0x71 */ + { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_72 }, /* 0x72 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_73 }, /* 0x73 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_74 }, /* 0x74 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_75 }, /* 0x75 */ + { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_76 }, /* 0x76 */ + { 0x01, 0xFD, aImplUniToDBCSTab_BIG5_77 }, /* 0x77 */ + { 0x02, 0xFF, aImplUniToDBCSTab_BIG5_78 }, /* 0x78 */ + { 0x01, 0xFB, aImplUniToDBCSTab_BIG5_79 }, /* 0x79 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_7A }, /* 0x7A */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_7B }, /* 0x7B */ + { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_7C }, /* 0x7C */ + { 0x00, 0xFB, aImplUniToDBCSTab_BIG5_7D }, /* 0x7D */ + { 0x03, 0x9C, aImplUniToDBCSTab_BIG5_7E }, /* 0x7E */ + { 0x36, 0xFF, aImplUniToDBCSTab_BIG5_7F }, /* 0x7F */ + { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_80 }, /* 0x80 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_81 }, /* 0x81 */ + { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_82 }, /* 0x82 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_83 }, /* 0x83 */ + { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_84 }, /* 0x84 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_85 }, /* 0x85 */ + { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_86 }, /* 0x86 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_87 }, /* 0x87 */ + { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_88 }, /* 0x88 */ + { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_89 }, /* 0x89 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_8A }, /* 0x8A */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_8B }, /* 0x8B */ + { 0x37, 0xFE, aImplUniToDBCSTab_BIG5_8C }, /* 0x8C */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_8D }, /* 0x8D */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_8E }, /* 0x8E */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_8F }, /* 0x8F */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_90 }, /* 0x90 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_91 }, /* 0x91 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_92 }, /* 0x92 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_93 }, /* 0x93 */ + { 0x00, 0x83, aImplUniToDBCSTab_BIG5_94 }, /* 0x94 */ + { 0x77, 0xE5, aImplUniToDBCSTab_BIG5_95 }, /* 0x95 */ + { 0x1C, 0xFF, aImplUniToDBCSTab_BIG5_96 }, /* 0x96 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_97 }, /* 0x97 */ + { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_98 }, /* 0x98 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_99 }, /* 0x99 */ + { 0x01, 0xFE, aImplUniToDBCSTab_BIG5_9A }, /* 0x9A */ + { 0x01, 0xFD, aImplUniToDBCSTab_BIG5_9B }, /* 0x9B */ + { 0x05, 0xFF, aImplUniToDBCSTab_BIG5_9C }, /* 0x9C */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_9D }, /* 0x9D */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_9E }, /* 0x9E */ + { 0x00, 0xA4, aImplUniToDBCSTab_BIG5_9F }, /* 0x9F */ + { 1, 0, NULL }, /* 0xA0 */ + { 1, 0, NULL }, /* 0xA1 */ + { 1, 0, NULL }, /* 0xA2 */ + { 1, 0, NULL }, /* 0xA3 */ + { 1, 0, NULL }, /* 0xA4 */ + { 1, 0, NULL }, /* 0xA5 */ + { 1, 0, NULL }, /* 0xA6 */ + { 1, 0, NULL }, /* 0xA7 */ + { 1, 0, NULL }, /* 0xA8 */ + { 1, 0, NULL }, /* 0xA9 */ + { 1, 0, NULL }, /* 0xAA */ + { 1, 0, NULL }, /* 0xAB */ + { 1, 0, NULL }, /* 0xAC */ + { 1, 0, NULL }, /* 0xAD */ + { 1, 0, NULL }, /* 0xAE */ + { 1, 0, NULL }, /* 0xAF */ + { 1, 0, NULL }, /* 0xB0 */ + { 1, 0, NULL }, /* 0xB1 */ + { 1, 0, NULL }, /* 0xB2 */ + { 1, 0, NULL }, /* 0xB3 */ + { 1, 0, NULL }, /* 0xB4 */ + { 1, 0, NULL }, /* 0xB5 */ + { 1, 0, NULL }, /* 0xB6 */ + { 1, 0, NULL }, /* 0xB7 */ + { 1, 0, NULL }, /* 0xB8 */ + { 1, 0, NULL }, /* 0xB9 */ + { 1, 0, NULL }, /* 0xBA */ + { 1, 0, NULL }, /* 0xBB */ + { 1, 0, NULL }, /* 0xBC */ + { 1, 0, NULL }, /* 0xBD */ + { 1, 0, NULL }, /* 0xBE */ + { 1, 0, NULL }, /* 0xBF */ + { 1, 0, NULL }, /* 0xC0 */ + { 1, 0, NULL }, /* 0xC1 */ + { 1, 0, NULL }, /* 0xC2 */ + { 1, 0, NULL }, /* 0xC3 */ + { 1, 0, NULL }, /* 0xC4 */ + { 1, 0, NULL }, /* 0xC5 */ + { 1, 0, NULL }, /* 0xC6 */ + { 1, 0, NULL }, /* 0xC7 */ + { 1, 0, NULL }, /* 0xC8 */ + { 1, 0, NULL }, /* 0xC9 */ + { 1, 0, NULL }, /* 0xCA */ + { 1, 0, NULL }, /* 0xCB */ + { 1, 0, NULL }, /* 0xCC */ + { 1, 0, NULL }, /* 0xCD */ + { 1, 0, NULL }, /* 0xCE */ + { 1, 0, NULL }, /* 0xCF */ + { 1, 0, NULL }, /* 0xD0 */ + { 1, 0, NULL }, /* 0xD1 */ + { 1, 0, NULL }, /* 0xD2 */ + { 1, 0, NULL }, /* 0xD3 */ + { 1, 0, NULL }, /* 0xD4 */ + { 1, 0, NULL }, /* 0xD5 */ + { 1, 0, NULL }, /* 0xD6 */ + { 1, 0, NULL }, /* 0xD7 */ + { 1, 0, NULL }, /* 0xD8 */ + { 1, 0, NULL }, /* 0xD9 */ + { 1, 0, NULL }, /* 0xDA */ + { 1, 0, NULL }, /* 0xDB */ + { 1, 0, NULL }, /* 0xDC */ + { 1, 0, NULL }, /* 0xDD */ + { 1, 0, NULL }, /* 0xDE */ + { 1, 0, NULL }, /* 0xDF */ + { 1, 0, NULL }, /* 0xE0 */ + { 1, 0, NULL }, /* 0xE1 */ + { 1, 0, NULL }, /* 0xE2 */ + { 1, 0, NULL }, /* 0xE3 */ + { 1, 0, NULL }, /* 0xE4 */ + { 1, 0, NULL }, /* 0xE5 */ + { 1, 0, NULL }, /* 0xE6 */ + { 1, 0, NULL }, /* 0xE7 */ + { 1, 0, NULL }, /* 0xE8 */ + { 1, 0, NULL }, /* 0xE9 */ + { 1, 0, NULL }, /* 0xEA */ + { 1, 0, NULL }, /* 0xEB */ + { 1, 0, NULL }, /* 0xEC */ + { 1, 0, NULL }, /* 0xED */ + { 1, 0, NULL }, /* 0xEE */ + { 1, 0, NULL }, /* 0xEF */ + { 1, 0, NULL }, /* 0xF0 */ + { 1, 0, NULL }, /* 0xF1 */ + { 1, 0, NULL }, /* 0xF2 */ + { 1, 0, NULL }, /* 0xF3 */ + { 1, 0, NULL }, /* 0xF4 */ + { 1, 0, NULL }, /* 0xF5 */ + { 1, 0, NULL }, /* 0xF6 */ + { 1, 0, NULL }, /* 0xF7 */ + { 1, 0, NULL }, /* 0xF8 */ + { 1, 0, NULL }, /* 0xF9 */ + { 0x0C, 0x0D, aImplUniToDBCSTab_BIG5_FA }, /* 0xFA */ + { 1, 0, NULL }, /* 0xFB */ + { 1, 0, NULL }, /* 0xFC */ + { 1, 0, NULL }, /* 0xFD */ + { 0x30, 0x6B, aImplUniToDBCSTab_BIG5_FE }, /* 0xFE */ + { 0x01, 0xFD, aImplUniToDBCSTab_BIG5_FF } /* 0xFF */ }; /* ----------------------------------------------------------------------- */ @@ -1204,569 +1186,549 @@ static ImplDBCSConvertData const aImplMS950DBCSCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData const aImplMS950TextConverterData = -{ - &aImplMS950DBCSCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplMS950TextConverter = -{ - &aImplMS950TextConverterData, - ImplDBCSToUnicode, - ImplUnicodeToDBCS, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplMS950TextEncodingData = -{ - &aImplMS950TextConverter, - RTL_TEXTENCODING_MS_950, - 1, 2, 2, - 136, - 950, - 2, - (const sal_Char*)"euc-tw", - (const sal_Char*)"big5", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_MULTIBYTE | - RTL_TEXTENCODING_INFO_WIN | - RTL_TEXTENCODING_INFO_DOS_OS2, - SCRIPT_CHINESE_TRADITIONAL -}; +static ImplTextEncodingData const aImplMS950TextEncodingData + = { { &aImplMS950DBCSCvtData, + ImplDBCSToUnicode, + ImplUnicodeToDBCS, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_MS_950, + 1, + 2, + 2, + 136, + "euc-tw", + "big5", + RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MULTIBYTE }; + /* WIN/DOS/OS2, SCRIPT_CHINESE_TRADITIONAL, pc code page 950, mac encoding + 2 */ /* ======================================================================= */ static ImplDBCSToUniLeadTab const aAPPLECHINTRADUniLeadTab[256] = { - { 0x0000, 0, 0, NULL }, /* 0x00 */ - { 0x0001, 0, 0, NULL }, /* 0x01 */ - { 0x0002, 0, 0, NULL }, /* 0x02 */ - { 0x0003, 0, 0, NULL }, /* 0x03 */ - { 0x0004, 0, 0, NULL }, /* 0x04 */ - { 0x0005, 0, 0, NULL }, /* 0x05 */ - { 0x0006, 0, 0, NULL }, /* 0x06 */ - { 0x0007, 0, 0, NULL }, /* 0x07 */ - { 0x0008, 0, 0, NULL }, /* 0x08 */ - { 0x0009, 0, 0, NULL }, /* 0x09 */ - { 0x000A, 0, 0, NULL }, /* 0x0A */ - { 0x000B, 0, 0, NULL }, /* 0x0B */ - { 0x000C, 0, 0, NULL }, /* 0x0C */ - { 0x000D, 0, 0, NULL }, /* 0x0D */ - { 0x000E, 0, 0, NULL }, /* 0x0E */ - { 0x000F, 0, 0, NULL }, /* 0x0F */ - { 0x0010, 0, 0, NULL }, /* 0x10 */ - { 0x0011, 0, 0, NULL }, /* 0x11 */ - { 0x0012, 0, 0, NULL }, /* 0x12 */ - { 0x0013, 0, 0, NULL }, /* 0x13 */ - { 0x0014, 0, 0, NULL }, /* 0x14 */ - { 0x0015, 0, 0, NULL }, /* 0x15 */ - { 0x0016, 0, 0, NULL }, /* 0x16 */ - { 0x0017, 0, 0, NULL }, /* 0x17 */ - { 0x0018, 0, 0, NULL }, /* 0x18 */ - { 0x0019, 0, 0, NULL }, /* 0x19 */ - { 0x001A, 0, 0, NULL }, /* 0x1A */ - { 0x001B, 0, 0, NULL }, /* 0x1B */ - { 0x001C, 0, 0, NULL }, /* 0x1C */ - { 0x001D, 0, 0, NULL }, /* 0x1D */ - { 0x001E, 0, 0, NULL }, /* 0x1E */ - { 0x001F, 0, 0, NULL }, /* 0x1F */ - { 0x0020, 0, 0, NULL }, /* 0x20 */ - { 0x0021, 0, 0, NULL }, /* 0x21 */ - { 0x0022, 0, 0, NULL }, /* 0x22 */ - { 0x0023, 0, 0, NULL }, /* 0x23 */ - { 0x0024, 0, 0, NULL }, /* 0x24 */ - { 0x0025, 0, 0, NULL }, /* 0x25 */ - { 0x0026, 0, 0, NULL }, /* 0x26 */ - { 0x0027, 0, 0, NULL }, /* 0x27 */ - { 0x0028, 0, 0, NULL }, /* 0x28 */ - { 0x0029, 0, 0, NULL }, /* 0x29 */ - { 0x002A, 0, 0, NULL }, /* 0x2A */ - { 0x002B, 0, 0, NULL }, /* 0x2B */ - { 0x002C, 0, 0, NULL }, /* 0x2C */ - { 0x002D, 0, 0, NULL }, /* 0x2D */ - { 0x002E, 0, 0, NULL }, /* 0x2E */ - { 0x002F, 0, 0, NULL }, /* 0x2F */ - { 0x0030, 0, 0, NULL }, /* 0x30 */ - { 0x0031, 0, 0, NULL }, /* 0x31 */ - { 0x0032, 0, 0, NULL }, /* 0x32 */ - { 0x0033, 0, 0, NULL }, /* 0x33 */ - { 0x0034, 0, 0, NULL }, /* 0x34 */ - { 0x0035, 0, 0, NULL }, /* 0x35 */ - { 0x0036, 0, 0, NULL }, /* 0x36 */ - { 0x0037, 0, 0, NULL }, /* 0x37 */ - { 0x0038, 0, 0, NULL }, /* 0x38 */ - { 0x0039, 0, 0, NULL }, /* 0x39 */ - { 0x003A, 0, 0, NULL }, /* 0x3A */ - { 0x003B, 0, 0, NULL }, /* 0x3B */ - { 0x003C, 0, 0, NULL }, /* 0x3C */ - { 0x003D, 0, 0, NULL }, /* 0x3D */ - { 0x003E, 0, 0, NULL }, /* 0x3E */ - { 0x003F, 0, 0, NULL }, /* 0x3F */ - { 0x0040, 0, 0, NULL }, /* 0x40 */ - { 0x0041, 0, 0, NULL }, /* 0x41 */ - { 0x0042, 0, 0, NULL }, /* 0x42 */ - { 0x0043, 0, 0, NULL }, /* 0x43 */ - { 0x0044, 0, 0, NULL }, /* 0x44 */ - { 0x0045, 0, 0, NULL }, /* 0x45 */ - { 0x0046, 0, 0, NULL }, /* 0x46 */ - { 0x0047, 0, 0, NULL }, /* 0x47 */ - { 0x0048, 0, 0, NULL }, /* 0x48 */ - { 0x0049, 0, 0, NULL }, /* 0x49 */ - { 0x004A, 0, 0, NULL }, /* 0x4A */ - { 0x004B, 0, 0, NULL }, /* 0x4B */ - { 0x004C, 0, 0, NULL }, /* 0x4C */ - { 0x004D, 0, 0, NULL }, /* 0x4D */ - { 0x004E, 0, 0, NULL }, /* 0x4E */ - { 0x004F, 0, 0, NULL }, /* 0x4F */ - { 0x0050, 0, 0, NULL }, /* 0x50 */ - { 0x0051, 0, 0, NULL }, /* 0x51 */ - { 0x0052, 0, 0, NULL }, /* 0x52 */ - { 0x0053, 0, 0, NULL }, /* 0x53 */ - { 0x0054, 0, 0, NULL }, /* 0x54 */ - { 0x0055, 0, 0, NULL }, /* 0x55 */ - { 0x0056, 0, 0, NULL }, /* 0x56 */ - { 0x0057, 0, 0, NULL }, /* 0x57 */ - { 0x0058, 0, 0, NULL }, /* 0x58 */ - { 0x0059, 0, 0, NULL }, /* 0x59 */ - { 0x005A, 0, 0, NULL }, /* 0x5A */ - { 0x005B, 0, 0, NULL }, /* 0x5B */ - { 0x005C, 0, 0, NULL }, /* 0x5C */ - { 0x005D, 0, 0, NULL }, /* 0x5D */ - { 0x005E, 0, 0, NULL }, /* 0x5E */ - { 0x005F, 0, 0, NULL }, /* 0x5F */ - { 0x0060, 0, 0, NULL }, /* 0x60 */ - { 0x0061, 0, 0, NULL }, /* 0x61 */ - { 0x0062, 0, 0, NULL }, /* 0x62 */ - { 0x0063, 0, 0, NULL }, /* 0x63 */ - { 0x0064, 0, 0, NULL }, /* 0x64 */ - { 0x0065, 0, 0, NULL }, /* 0x65 */ - { 0x0066, 0, 0, NULL }, /* 0x66 */ - { 0x0067, 0, 0, NULL }, /* 0x67 */ - { 0x0068, 0, 0, NULL }, /* 0x68 */ - { 0x0069, 0, 0, NULL }, /* 0x69 */ - { 0x006A, 0, 0, NULL }, /* 0x6A */ - { 0x006B, 0, 0, NULL }, /* 0x6B */ - { 0x006C, 0, 0, NULL }, /* 0x6C */ - { 0x006D, 0, 0, NULL }, /* 0x6D */ - { 0x006E, 0, 0, NULL }, /* 0x6E */ - { 0x006F, 0, 0, NULL }, /* 0x6F */ - { 0x0070, 0, 0, NULL }, /* 0x70 */ - { 0x0071, 0, 0, NULL }, /* 0x71 */ - { 0x0072, 0, 0, NULL }, /* 0x72 */ - { 0x0073, 0, 0, NULL }, /* 0x73 */ - { 0x0074, 0, 0, NULL }, /* 0x74 */ - { 0x0075, 0, 0, NULL }, /* 0x75 */ - { 0x0076, 0, 0, NULL }, /* 0x76 */ - { 0x0077, 0, 0, NULL }, /* 0x77 */ - { 0x0078, 0, 0, NULL }, /* 0x78 */ - { 0x0079, 0, 0, NULL }, /* 0x79 */ - { 0x007A, 0, 0, NULL }, /* 0x7A */ - { 0x007B, 0, 0, NULL }, /* 0x7B */ - { 0x007C, 0, 0, NULL }, /* 0x7C */ - { 0x007D, 0, 0, NULL }, /* 0x7D */ - { 0x007E, 0, 0, NULL }, /* 0x7E */ - { 0x007F, 0, 0, NULL }, /* 0x7F */ - { 0, 1, 0, NULL }, /* 0x80 */ - { 0xF880, 0, 0, NULL }, /* 0x81 */ - { 0xF881, 0, 0, NULL }, /* 0x82 */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x83 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x84 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x85 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x86 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x87 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x88 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x89 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8A */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8B */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8C */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8D */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8E */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8F */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x90 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x91 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x92 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x93 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x94 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x95 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x96 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x97 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x98 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x99 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9A */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9B */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9C */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9D */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9E */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9F */ /* We convert this as double byte */ - { 0x00A0, 0, 0, NULL }, /* 0xA0 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A1 }, /* 0xA1 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A2 }, /* 0xA2 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A3 }, /* 0xA3 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A4 }, /* 0xA4 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A5 }, /* 0xA5 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A6 }, /* 0xA6 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A7 }, /* 0xA7 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A8 }, /* 0xA8 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A9 }, /* 0xA9 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_AA }, /* 0xAA */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_AB }, /* 0xAB */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_AC }, /* 0xAC */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_AD }, /* 0xAD */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_AE }, /* 0xAE */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_AF }, /* 0xAF */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B0 }, /* 0xB0 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B1 }, /* 0xB1 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B2 }, /* 0xB2 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B3 }, /* 0xB3 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B4 }, /* 0xB4 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B5 }, /* 0xB5 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B6 }, /* 0xB6 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B7 }, /* 0xB7 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B8 }, /* 0xB8 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B9 }, /* 0xB9 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_BA }, /* 0xBA */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_BB }, /* 0xBB */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_BC }, /* 0xBC */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_BD }, /* 0xBD */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_BE }, /* 0xBE */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_BF }, /* 0xBF */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C0 }, /* 0xC0 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C1 }, /* 0xC1 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C2 }, /* 0xC2 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C3 }, /* 0xC3 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C4 }, /* 0xC4 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C5 }, /* 0xC5 */ - { 0, 0x40, 0x7E, aImplDBCSToUniTab_BIG5_C6 }, /* 0xC6 */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xC7 */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xC8 */ /* We convert this as double byte */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C9 }, /* 0xC9 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_CA }, /* 0xCA */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_CB }, /* 0xCB */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_CC }, /* 0xCC */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_CD }, /* 0xCD */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_CE }, /* 0xCE */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_CF }, /* 0xCF */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D0 }, /* 0xD0 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D1 }, /* 0xD1 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D2 }, /* 0xD2 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D3 }, /* 0xD3 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D4 }, /* 0xD4 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D5 }, /* 0xD5 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D6 }, /* 0xD6 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D7 }, /* 0xD7 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D8 }, /* 0xD8 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D9 }, /* 0xD9 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_DA }, /* 0xDA */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_DB }, /* 0xDB */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_DC }, /* 0xDC */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_DD }, /* 0xDD */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_DE }, /* 0xDE */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_DF }, /* 0xDF */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E0 }, /* 0xE0 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E1 }, /* 0xE1 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E2 }, /* 0xE2 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E3 }, /* 0xE3 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E4 }, /* 0xE4 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E5 }, /* 0xE5 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E6 }, /* 0xE6 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E7 }, /* 0xE7 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E8 }, /* 0xE8 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E9 }, /* 0xE9 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_EA }, /* 0xEA */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_EB }, /* 0xEB */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_EC }, /* 0xEC */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_ED }, /* 0xED */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_EE }, /* 0xEE */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_EF }, /* 0xEF */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F0 }, /* 0xF0 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F1 }, /* 0xF1 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F2 }, /* 0xF2 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F3 }, /* 0xF3 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F4 }, /* 0xF4 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F5 }, /* 0xF5 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F6 }, /* 0xF6 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F7 }, /* 0xF7 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F8 }, /* 0xF8 */ - { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F9 }, /* 0xF9 */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xFA */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xFB */ /* We convert this as double byte */ - { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xFC */ /* We convert this as double byte */ - { 0x00A9, 0, 0, NULL }, /* 0xFD */ - { 0x2122, 0, 0, NULL }, /* 0xFE */ - { 0x2026, 0, 0, NULL } /* 0xFF */ + { 0x0000, 0, 0, NULL }, /* 0x00 */ + { 0x0001, 0, 0, NULL }, /* 0x01 */ + { 0x0002, 0, 0, NULL }, /* 0x02 */ + { 0x0003, 0, 0, NULL }, /* 0x03 */ + { 0x0004, 0, 0, NULL }, /* 0x04 */ + { 0x0005, 0, 0, NULL }, /* 0x05 */ + { 0x0006, 0, 0, NULL }, /* 0x06 */ + { 0x0007, 0, 0, NULL }, /* 0x07 */ + { 0x0008, 0, 0, NULL }, /* 0x08 */ + { 0x0009, 0, 0, NULL }, /* 0x09 */ + { 0x000A, 0, 0, NULL }, /* 0x0A */ + { 0x000B, 0, 0, NULL }, /* 0x0B */ + { 0x000C, 0, 0, NULL }, /* 0x0C */ + { 0x000D, 0, 0, NULL }, /* 0x0D */ + { 0x000E, 0, 0, NULL }, /* 0x0E */ + { 0x000F, 0, 0, NULL }, /* 0x0F */ + { 0x0010, 0, 0, NULL }, /* 0x10 */ + { 0x0011, 0, 0, NULL }, /* 0x11 */ + { 0x0012, 0, 0, NULL }, /* 0x12 */ + { 0x0013, 0, 0, NULL }, /* 0x13 */ + { 0x0014, 0, 0, NULL }, /* 0x14 */ + { 0x0015, 0, 0, NULL }, /* 0x15 */ + { 0x0016, 0, 0, NULL }, /* 0x16 */ + { 0x0017, 0, 0, NULL }, /* 0x17 */ + { 0x0018, 0, 0, NULL }, /* 0x18 */ + { 0x0019, 0, 0, NULL }, /* 0x19 */ + { 0x001A, 0, 0, NULL }, /* 0x1A */ + { 0x001B, 0, 0, NULL }, /* 0x1B */ + { 0x001C, 0, 0, NULL }, /* 0x1C */ + { 0x001D, 0, 0, NULL }, /* 0x1D */ + { 0x001E, 0, 0, NULL }, /* 0x1E */ + { 0x001F, 0, 0, NULL }, /* 0x1F */ + { 0x0020, 0, 0, NULL }, /* 0x20 */ + { 0x0021, 0, 0, NULL }, /* 0x21 */ + { 0x0022, 0, 0, NULL }, /* 0x22 */ + { 0x0023, 0, 0, NULL }, /* 0x23 */ + { 0x0024, 0, 0, NULL }, /* 0x24 */ + { 0x0025, 0, 0, NULL }, /* 0x25 */ + { 0x0026, 0, 0, NULL }, /* 0x26 */ + { 0x0027, 0, 0, NULL }, /* 0x27 */ + { 0x0028, 0, 0, NULL }, /* 0x28 */ + { 0x0029, 0, 0, NULL }, /* 0x29 */ + { 0x002A, 0, 0, NULL }, /* 0x2A */ + { 0x002B, 0, 0, NULL }, /* 0x2B */ + { 0x002C, 0, 0, NULL }, /* 0x2C */ + { 0x002D, 0, 0, NULL }, /* 0x2D */ + { 0x002E, 0, 0, NULL }, /* 0x2E */ + { 0x002F, 0, 0, NULL }, /* 0x2F */ + { 0x0030, 0, 0, NULL }, /* 0x30 */ + { 0x0031, 0, 0, NULL }, /* 0x31 */ + { 0x0032, 0, 0, NULL }, /* 0x32 */ + { 0x0033, 0, 0, NULL }, /* 0x33 */ + { 0x0034, 0, 0, NULL }, /* 0x34 */ + { 0x0035, 0, 0, NULL }, /* 0x35 */ + { 0x0036, 0, 0, NULL }, /* 0x36 */ + { 0x0037, 0, 0, NULL }, /* 0x37 */ + { 0x0038, 0, 0, NULL }, /* 0x38 */ + { 0x0039, 0, 0, NULL }, /* 0x39 */ + { 0x003A, 0, 0, NULL }, /* 0x3A */ + { 0x003B, 0, 0, NULL }, /* 0x3B */ + { 0x003C, 0, 0, NULL }, /* 0x3C */ + { 0x003D, 0, 0, NULL }, /* 0x3D */ + { 0x003E, 0, 0, NULL }, /* 0x3E */ + { 0x003F, 0, 0, NULL }, /* 0x3F */ + { 0x0040, 0, 0, NULL }, /* 0x40 */ + { 0x0041, 0, 0, NULL }, /* 0x41 */ + { 0x0042, 0, 0, NULL }, /* 0x42 */ + { 0x0043, 0, 0, NULL }, /* 0x43 */ + { 0x0044, 0, 0, NULL }, /* 0x44 */ + { 0x0045, 0, 0, NULL }, /* 0x45 */ + { 0x0046, 0, 0, NULL }, /* 0x46 */ + { 0x0047, 0, 0, NULL }, /* 0x47 */ + { 0x0048, 0, 0, NULL }, /* 0x48 */ + { 0x0049, 0, 0, NULL }, /* 0x49 */ + { 0x004A, 0, 0, NULL }, /* 0x4A */ + { 0x004B, 0, 0, NULL }, /* 0x4B */ + { 0x004C, 0, 0, NULL }, /* 0x4C */ + { 0x004D, 0, 0, NULL }, /* 0x4D */ + { 0x004E, 0, 0, NULL }, /* 0x4E */ + { 0x004F, 0, 0, NULL }, /* 0x4F */ + { 0x0050, 0, 0, NULL }, /* 0x50 */ + { 0x0051, 0, 0, NULL }, /* 0x51 */ + { 0x0052, 0, 0, NULL }, /* 0x52 */ + { 0x0053, 0, 0, NULL }, /* 0x53 */ + { 0x0054, 0, 0, NULL }, /* 0x54 */ + { 0x0055, 0, 0, NULL }, /* 0x55 */ + { 0x0056, 0, 0, NULL }, /* 0x56 */ + { 0x0057, 0, 0, NULL }, /* 0x57 */ + { 0x0058, 0, 0, NULL }, /* 0x58 */ + { 0x0059, 0, 0, NULL }, /* 0x59 */ + { 0x005A, 0, 0, NULL }, /* 0x5A */ + { 0x005B, 0, 0, NULL }, /* 0x5B */ + { 0x005C, 0, 0, NULL }, /* 0x5C */ + { 0x005D, 0, 0, NULL }, /* 0x5D */ + { 0x005E, 0, 0, NULL }, /* 0x5E */ + { 0x005F, 0, 0, NULL }, /* 0x5F */ + { 0x0060, 0, 0, NULL }, /* 0x60 */ + { 0x0061, 0, 0, NULL }, /* 0x61 */ + { 0x0062, 0, 0, NULL }, /* 0x62 */ + { 0x0063, 0, 0, NULL }, /* 0x63 */ + { 0x0064, 0, 0, NULL }, /* 0x64 */ + { 0x0065, 0, 0, NULL }, /* 0x65 */ + { 0x0066, 0, 0, NULL }, /* 0x66 */ + { 0x0067, 0, 0, NULL }, /* 0x67 */ + { 0x0068, 0, 0, NULL }, /* 0x68 */ + { 0x0069, 0, 0, NULL }, /* 0x69 */ + { 0x006A, 0, 0, NULL }, /* 0x6A */ + { 0x006B, 0, 0, NULL }, /* 0x6B */ + { 0x006C, 0, 0, NULL }, /* 0x6C */ + { 0x006D, 0, 0, NULL }, /* 0x6D */ + { 0x006E, 0, 0, NULL }, /* 0x6E */ + { 0x006F, 0, 0, NULL }, /* 0x6F */ + { 0x0070, 0, 0, NULL }, /* 0x70 */ + { 0x0071, 0, 0, NULL }, /* 0x71 */ + { 0x0072, 0, 0, NULL }, /* 0x72 */ + { 0x0073, 0, 0, NULL }, /* 0x73 */ + { 0x0074, 0, 0, NULL }, /* 0x74 */ + { 0x0075, 0, 0, NULL }, /* 0x75 */ + { 0x0076, 0, 0, NULL }, /* 0x76 */ + { 0x0077, 0, 0, NULL }, /* 0x77 */ + { 0x0078, 0, 0, NULL }, /* 0x78 */ + { 0x0079, 0, 0, NULL }, /* 0x79 */ + { 0x007A, 0, 0, NULL }, /* 0x7A */ + { 0x007B, 0, 0, NULL }, /* 0x7B */ + { 0x007C, 0, 0, NULL }, /* 0x7C */ + { 0x007D, 0, 0, NULL }, /* 0x7D */ + { 0x007E, 0, 0, NULL }, /* 0x7E */ + { 0x007F, 0, 0, NULL }, /* 0x7F */ + { 0, 1, 0, NULL }, /* 0x80 */ + { 0xF880, 0, 0, NULL }, /* 0x81 */ + { 0xF881, 0, 0, NULL }, /* 0x82 */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x83 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x84 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x85 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x86 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x87 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x88 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x89 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8A */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8B */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8C */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8D */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8E */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x8F */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x90 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x91 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x92 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x93 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x94 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x95 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x96 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x97 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x98 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x99 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9A */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9B */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9C */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9D */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9E */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x9F */ /* We convert this as double byte */ + { 0x00A0, 0, 0, NULL }, /* 0xA0 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A1 }, /* 0xA1 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A2 }, /* 0xA2 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A3 }, /* 0xA3 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A4 }, /* 0xA4 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A5 }, /* 0xA5 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A6 }, /* 0xA6 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A7 }, /* 0xA7 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A8 }, /* 0xA8 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_A9 }, /* 0xA9 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_AA }, /* 0xAA */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_AB }, /* 0xAB */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_AC }, /* 0xAC */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_AD }, /* 0xAD */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_AE }, /* 0xAE */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_AF }, /* 0xAF */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B0 }, /* 0xB0 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B1 }, /* 0xB1 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B2 }, /* 0xB2 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B3 }, /* 0xB3 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B4 }, /* 0xB4 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B5 }, /* 0xB5 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B6 }, /* 0xB6 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B7 }, /* 0xB7 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B8 }, /* 0xB8 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_B9 }, /* 0xB9 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_BA }, /* 0xBA */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_BB }, /* 0xBB */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_BC }, /* 0xBC */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_BD }, /* 0xBD */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_BE }, /* 0xBE */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_BF }, /* 0xBF */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C0 }, /* 0xC0 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C1 }, /* 0xC1 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C2 }, /* 0xC2 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C3 }, /* 0xC3 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C4 }, /* 0xC4 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C5 }, /* 0xC5 */ + { 0, 0x40, 0x7E, aImplDBCSToUniTab_BIG5_C6 }, /* 0xC6 */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xC7 */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xC8 */ /* We convert this as double byte */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_C9 }, /* 0xC9 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_CA }, /* 0xCA */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_CB }, /* 0xCB */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_CC }, /* 0xCC */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_CD }, /* 0xCD */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_CE }, /* 0xCE */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_CF }, /* 0xCF */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D0 }, /* 0xD0 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D1 }, /* 0xD1 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D2 }, /* 0xD2 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D3 }, /* 0xD3 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D4 }, /* 0xD4 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D5 }, /* 0xD5 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D6 }, /* 0xD6 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D7 }, /* 0xD7 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D8 }, /* 0xD8 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_D9 }, /* 0xD9 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_DA }, /* 0xDA */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_DB }, /* 0xDB */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_DC }, /* 0xDC */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_DD }, /* 0xDD */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_DE }, /* 0xDE */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_DF }, /* 0xDF */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E0 }, /* 0xE0 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E1 }, /* 0xE1 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E2 }, /* 0xE2 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E3 }, /* 0xE3 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E4 }, /* 0xE4 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E5 }, /* 0xE5 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E6 }, /* 0xE6 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E7 }, /* 0xE7 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E8 }, /* 0xE8 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_E9 }, /* 0xE9 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_EA }, /* 0xEA */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_EB }, /* 0xEB */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_EC }, /* 0xEC */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_ED }, /* 0xED */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_EE }, /* 0xEE */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_EF }, /* 0xEF */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F0 }, /* 0xF0 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F1 }, /* 0xF1 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F2 }, /* 0xF2 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F3 }, /* 0xF3 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F4 }, /* 0xF4 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F5 }, /* 0xF5 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F6 }, /* 0xF6 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F7 }, /* 0xF7 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F8 }, /* 0xF8 */ + { 0, 0x40, 0xFE, aImplDBCSToUniTab_BIG5_F9 }, /* 0xF9 */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xFA */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xFB */ /* We convert this as double byte */ + { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xFC */ /* We convert this as double byte */ + { 0x00A9, 0, 0, NULL }, /* 0xFD */ + { 0x2122, 0, 0, NULL }, /* 0xFE */ + { 0x2026, 0, 0, NULL } /* 0xFF */ }; /* ----------------------------------------------------------------------- */ static ImplUniToDBCSHighTab const aAPPLECHINTRADDBCSHighTab[256] = { - { 0x00, 0xF7, aImplUniToDBCSTab_APPLECHINTRAD_00 }, /* 0x00 */ - { 1, 0, NULL }, /* 0x01 */ - { 0xC7, 0xD9, aImplUniToDBCSTab_BIG5_02 }, /* 0x02 */ - { 0x91, 0xC9, aImplUniToDBCSTab_BIG5_03 }, /* 0x03 */ - { 0x01, 0x51, aImplUniToDBCSTab_BIG5_04 }, /* 0x04 */ - { 1, 0, NULL }, /* 0x05 */ - { 1, 0, NULL }, /* 0x06 */ - { 1, 0, NULL }, /* 0x07 */ - { 1, 0, NULL }, /* 0x08 */ - { 1, 0, NULL }, /* 0x09 */ - { 1, 0, NULL }, /* 0x0A */ - { 1, 0, NULL }, /* 0x0B */ - { 1, 0, NULL }, /* 0x0C */ - { 1, 0, NULL }, /* 0x0D */ - { 1, 0, NULL }, /* 0x0E */ - { 1, 0, NULL }, /* 0x0F */ - { 1, 0, NULL }, /* 0x10 */ - { 1, 0, NULL }, /* 0x11 */ - { 1, 0, NULL }, /* 0x12 */ - { 1, 0, NULL }, /* 0x13 */ - { 1, 0, NULL }, /* 0x14 */ - { 1, 0, NULL }, /* 0x15 */ - { 1, 0, NULL }, /* 0x16 */ - { 1, 0, NULL }, /* 0x17 */ - { 1, 0, NULL }, /* 0x18 */ - { 1, 0, NULL }, /* 0x19 */ - { 1, 0, NULL }, /* 0x1A */ - { 1, 0, NULL }, /* 0x1B */ - { 1, 0, NULL }, /* 0x1C */ - { 1, 0, NULL }, /* 0x1D */ - { 1, 0, NULL }, /* 0x1E */ - { 1, 0, NULL }, /* 0x1F */ - { 0x20, 0xAC, aImplUniToDBCSTab_BIG5_20 }, /* 0x20 */ - { 0x03, 0x99, aImplUniToDBCSTab_APPLECHINTRAD_21 }, /* 0x21 */ - { 0x15, 0xEF, aImplUniToDBCSTab_BIG5_22 }, /* 0x22 */ - { 1, 0, NULL }, /* 0x23 */ - { 0x60, 0x7D, aImplUniToDBCSTab_BIG5_24 }, /* 0x24 */ - { 0x00, 0xE5, aImplUniToDBCSTab_BIG5_25 }, /* 0x25 */ - { 0x05, 0x42, aImplUniToDBCSTab_BIG5_26 }, /* 0x25 */ - { 1, 0, NULL }, /* 0x27 */ - { 1, 0, NULL }, /* 0x28 */ - { 1, 0, NULL }, /* 0x29 */ - { 1, 0, NULL }, /* 0x2A */ - { 1, 0, NULL }, /* 0x2B */ - { 1, 0, NULL }, /* 0x2C */ - { 1, 0, NULL }, /* 0x2D */ - { 1, 0, NULL }, /* 0x2E */ - { 1, 0, NULL }, /* 0x2F */ - { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_30 }, /* 0x30 */ - { 0x05, 0x29, aImplUniToDBCSTab_BIG5_31 }, /* 0x31 */ - { 0xA3, 0xA3, aImplUniToDBCSTab_BIG5_32 }, /* 0x32 */ - { 1, 0, NULL }, /* 0x33 */ - { 1, 0, NULL }, /* 0x34 */ - { 1, 0, NULL }, /* 0x35 */ - { 1, 0, NULL }, /* 0x36 */ - { 1, 0, NULL }, /* 0x37 */ - { 1, 0, NULL }, /* 0x38 */ - { 1, 0, NULL }, /* 0x39 */ - { 1, 0, NULL }, /* 0x3A */ - { 1, 0, NULL }, /* 0x3B */ - { 1, 0, NULL }, /* 0x3C */ - { 1, 0, NULL }, /* 0x3D */ - { 1, 0, NULL }, /* 0x3E */ - { 1, 0, NULL }, /* 0x3F */ - { 1, 0, NULL }, /* 0x40 */ - { 1, 0, NULL }, /* 0x41 */ - { 1, 0, NULL }, /* 0x42 */ - { 1, 0, NULL }, /* 0x43 */ - { 1, 0, NULL }, /* 0x44 */ - { 1, 0, NULL }, /* 0x45 */ - { 1, 0, NULL }, /* 0x46 */ - { 1, 0, NULL }, /* 0x47 */ - { 1, 0, NULL }, /* 0x48 */ - { 1, 0, NULL }, /* 0x49 */ - { 1, 0, NULL }, /* 0x4A */ - { 1, 0, NULL }, /* 0x4B */ - { 1, 0, NULL }, /* 0x4C */ - { 1, 0, NULL }, /* 0x4D */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_4E }, /* 0x4E */ - { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_4F }, /* 0x4F */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_50 }, /* 0x50 */ - { 0x00, 0xFD, aImplUniToDBCSTab_BIG5_51 }, /* 0x51 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_52 }, /* 0x52 */ - { 0x05, 0xFC, aImplUniToDBCSTab_BIG5_53 }, /* 0x53 */ - { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_54 }, /* 0x54 */ - { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_55 }, /* 0x55 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_56 }, /* 0x56 */ - { 0x01, 0xFD, aImplUniToDBCSTab_BIG5_57 }, /* 0x57 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_58 }, /* 0x58 */ - { 0x03, 0xFF, aImplUniToDBCSTab_BIG5_59 }, /* 0x59 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_5A }, /* 0x5A */ - { 0x01, 0xFA, aImplUniToDBCSTab_BIG5_5B }, /* 0x5B */ - { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_5C }, /* 0x5C */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_5D }, /* 0x5D */ - { 0x02, 0xFF, aImplUniToDBCSTab_BIG5_5E }, /* 0x5E */ - { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_5F }, /* 0x5F */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_60 }, /* 0x60 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_61 }, /* 0x61 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_62 }, /* 0x62 */ - { 0x00, 0xF9, aImplUniToDBCSTab_BIG5_63 }, /* 0x63 */ - { 0x06, 0xFF, aImplUniToDBCSTab_BIG5_64 }, /* 0x64 */ - { 0x00, 0xFD, aImplUniToDBCSTab_BIG5_65 }, /* 0x65 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_66 }, /* 0x66 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_67 }, /* 0x67 */ - { 0x12, 0xFD, aImplUniToDBCSTab_BIG5_68 }, /* 0x68 */ - { 0x04, 0xFF, aImplUniToDBCSTab_BIG5_69 }, /* 0x69 */ - { 0x00, 0xFC, aImplUniToDBCSTab_BIG5_6A }, /* 0x6A */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_6B }, /* 0x6B */ - { 0x00, 0xF9, aImplUniToDBCSTab_BIG5_6C }, /* 0x6C */ - { 0x00, 0xFD, aImplUniToDBCSTab_BIG5_6D }, /* 0x6D */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_6E }, /* 0x6E */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_6F }, /* 0x6F */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_70 }, /* 0x70 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_71 }, /* 0x71 */ - { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_72 }, /* 0x72 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_73 }, /* 0x73 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_74 }, /* 0x74 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_75 }, /* 0x75 */ - { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_76 }, /* 0x76 */ - { 0x01, 0xFD, aImplUniToDBCSTab_BIG5_77 }, /* 0x77 */ - { 0x02, 0xFF, aImplUniToDBCSTab_BIG5_78 }, /* 0x78 */ - { 0x01, 0xFB, aImplUniToDBCSTab_BIG5_79 }, /* 0x79 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_7A }, /* 0x7A */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_7B }, /* 0x7B */ - { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_7C }, /* 0x7C */ - { 0x00, 0xFB, aImplUniToDBCSTab_BIG5_7D }, /* 0x7D */ - { 0x03, 0x9C, aImplUniToDBCSTab_BIG5_7E }, /* 0x7E */ - { 0x36, 0xFF, aImplUniToDBCSTab_BIG5_7F }, /* 0x7F */ - { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_80 }, /* 0x80 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_81 }, /* 0x81 */ - { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_82 }, /* 0x82 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_83 }, /* 0x83 */ - { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_84 }, /* 0x84 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_85 }, /* 0x85 */ - { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_86 }, /* 0x86 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_87 }, /* 0x87 */ - { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_88 }, /* 0x88 */ - { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_89 }, /* 0x89 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_8A }, /* 0x8A */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_8B }, /* 0x8B */ - { 0x37, 0xFE, aImplUniToDBCSTab_BIG5_8C }, /* 0x8C */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_8D }, /* 0x8D */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_8E }, /* 0x8E */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_8F }, /* 0x8F */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_90 }, /* 0x90 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_91 }, /* 0x91 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_92 }, /* 0x92 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_93 }, /* 0x93 */ - { 0x00, 0x83, aImplUniToDBCSTab_BIG5_94 }, /* 0x94 */ - { 0x77, 0xE5, aImplUniToDBCSTab_BIG5_95 }, /* 0x95 */ - { 0x1C, 0xFF, aImplUniToDBCSTab_BIG5_96 }, /* 0x96 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_97 }, /* 0x97 */ - { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_98 }, /* 0x98 */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_99 }, /* 0x99 */ - { 0x01, 0xFE, aImplUniToDBCSTab_BIG5_9A }, /* 0x9A */ - { 0x01, 0xFD, aImplUniToDBCSTab_BIG5_9B }, /* 0x9B */ - { 0x05, 0xFF, aImplUniToDBCSTab_BIG5_9C }, /* 0x9C */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_9D }, /* 0x9D */ - { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_9E }, /* 0x9E */ - { 0x00, 0xA4, aImplUniToDBCSTab_BIG5_9F }, /* 0x9F */ - { 1, 0, NULL }, /* 0xA0 */ - { 1, 0, NULL }, /* 0xA1 */ - { 1, 0, NULL }, /* 0xA2 */ - { 1, 0, NULL }, /* 0xA3 */ - { 1, 0, NULL }, /* 0xA4 */ - { 1, 0, NULL }, /* 0xA5 */ - { 1, 0, NULL }, /* 0xA6 */ - { 1, 0, NULL }, /* 0xA7 */ - { 1, 0, NULL }, /* 0xA8 */ - { 1, 0, NULL }, /* 0xA9 */ - { 1, 0, NULL }, /* 0xAA */ - { 1, 0, NULL }, /* 0xAB */ - { 1, 0, NULL }, /* 0xAC */ - { 1, 0, NULL }, /* 0xAD */ - { 1, 0, NULL }, /* 0xAE */ - { 1, 0, NULL }, /* 0xAF */ - { 1, 0, NULL }, /* 0xB0 */ - { 1, 0, NULL }, /* 0xB1 */ - { 1, 0, NULL }, /* 0xB2 */ - { 1, 0, NULL }, /* 0xB3 */ - { 1, 0, NULL }, /* 0xB4 */ - { 1, 0, NULL }, /* 0xB5 */ - { 1, 0, NULL }, /* 0xB6 */ - { 1, 0, NULL }, /* 0xB7 */ - { 1, 0, NULL }, /* 0xB8 */ - { 1, 0, NULL }, /* 0xB9 */ - { 1, 0, NULL }, /* 0xBA */ - { 1, 0, NULL }, /* 0xBB */ - { 1, 0, NULL }, /* 0xBC */ - { 1, 0, NULL }, /* 0xBD */ - { 1, 0, NULL }, /* 0xBE */ - { 1, 0, NULL }, /* 0xBF */ - { 1, 0, NULL }, /* 0xC0 */ - { 1, 0, NULL }, /* 0xC1 */ - { 1, 0, NULL }, /* 0xC2 */ - { 1, 0, NULL }, /* 0xC3 */ - { 1, 0, NULL }, /* 0xC4 */ - { 1, 0, NULL }, /* 0xC5 */ - { 1, 0, NULL }, /* 0xC6 */ - { 1, 0, NULL }, /* 0xC7 */ - { 1, 0, NULL }, /* 0xC8 */ - { 1, 0, NULL }, /* 0xC9 */ - { 1, 0, NULL }, /* 0xCA */ - { 1, 0, NULL }, /* 0xCB */ - { 1, 0, NULL }, /* 0xCC */ - { 1, 0, NULL }, /* 0xCD */ - { 1, 0, NULL }, /* 0xCE */ - { 1, 0, NULL }, /* 0xCF */ - { 1, 0, NULL }, /* 0xD0 */ - { 1, 0, NULL }, /* 0xD1 */ - { 1, 0, NULL }, /* 0xD2 */ - { 1, 0, NULL }, /* 0xD3 */ - { 1, 0, NULL }, /* 0xD4 */ - { 1, 0, NULL }, /* 0xD5 */ - { 1, 0, NULL }, /* 0xD6 */ - { 1, 0, NULL }, /* 0xD7 */ - { 1, 0, NULL }, /* 0xD8 */ - { 1, 0, NULL }, /* 0xD9 */ - { 1, 0, NULL }, /* 0xDA */ - { 1, 0, NULL }, /* 0xDB */ - { 1, 0, NULL }, /* 0xDC */ - { 1, 0, NULL }, /* 0xDD */ - { 1, 0, NULL }, /* 0xDE */ - { 1, 0, NULL }, /* 0xDF */ - { 1, 0, NULL }, /* 0xE0 */ - { 1, 0, NULL }, /* 0xE1 */ - { 1, 0, NULL }, /* 0xE2 */ - { 1, 0, NULL }, /* 0xE3 */ - { 1, 0, NULL }, /* 0xE4 */ - { 1, 0, NULL }, /* 0xE5 */ - { 1, 0, NULL }, /* 0xE6 */ - { 1, 0, NULL }, /* 0xE7 */ - { 1, 0, NULL }, /* 0xE8 */ - { 1, 0, NULL }, /* 0xE9 */ - { 1, 0, NULL }, /* 0xEA */ - { 1, 0, NULL }, /* 0xEB */ - { 1, 0, NULL }, /* 0xEC */ - { 1, 0, NULL }, /* 0xED */ - { 1, 0, NULL }, /* 0xEE */ - { 1, 0, NULL }, /* 0xEF */ - { 1, 0, NULL }, /* 0xF0 */ - { 1, 0, NULL }, /* 0xF1 */ - { 1, 0, NULL }, /* 0xF2 */ - { 1, 0, NULL }, /* 0xF3 */ - { 1, 0, NULL }, /* 0xF4 */ - { 1, 0, NULL }, /* 0xF5 */ - { 1, 0, NULL }, /* 0xF6 */ - { 1, 0, NULL }, /* 0xF7 */ - { 0x80, 0x81, aImplUniToDBCSTab_APPLECHINTRAD_F8 }, /* 0xF8 */ - { 1, 0, NULL }, /* 0xF9 */ - { 0x0C, 0x0D, aImplUniToDBCSTab_BIG5_FA }, /* 0xFA */ - { 1, 0, NULL }, /* 0xFB */ - { 1, 0, NULL }, /* 0xFC */ - { 1, 0, NULL }, /* 0xFD */ - { 0x30, 0x6B, aImplUniToDBCSTab_BIG5_FE }, /* 0xFE */ - { 0x01, 0xFD, aImplUniToDBCSTab_BIG5_FF } /* 0xFF */ + { 0x00, 0xF7, aImplUniToDBCSTab_APPLECHINTRAD_00 }, /* 0x00 */ + { 1, 0, NULL }, /* 0x01 */ + { 0xC7, 0xD9, aImplUniToDBCSTab_BIG5_02 }, /* 0x02 */ + { 0x91, 0xC9, aImplUniToDBCSTab_BIG5_03 }, /* 0x03 */ + { 0x01, 0x51, aImplUniToDBCSTab_BIG5_04 }, /* 0x04 */ + { 1, 0, NULL }, /* 0x05 */ + { 1, 0, NULL }, /* 0x06 */ + { 1, 0, NULL }, /* 0x07 */ + { 1, 0, NULL }, /* 0x08 */ + { 1, 0, NULL }, /* 0x09 */ + { 1, 0, NULL }, /* 0x0A */ + { 1, 0, NULL }, /* 0x0B */ + { 1, 0, NULL }, /* 0x0C */ + { 1, 0, NULL }, /* 0x0D */ + { 1, 0, NULL }, /* 0x0E */ + { 1, 0, NULL }, /* 0x0F */ + { 1, 0, NULL }, /* 0x10 */ + { 1, 0, NULL }, /* 0x11 */ + { 1, 0, NULL }, /* 0x12 */ + { 1, 0, NULL }, /* 0x13 */ + { 1, 0, NULL }, /* 0x14 */ + { 1, 0, NULL }, /* 0x15 */ + { 1, 0, NULL }, /* 0x16 */ + { 1, 0, NULL }, /* 0x17 */ + { 1, 0, NULL }, /* 0x18 */ + { 1, 0, NULL }, /* 0x19 */ + { 1, 0, NULL }, /* 0x1A */ + { 1, 0, NULL }, /* 0x1B */ + { 1, 0, NULL }, /* 0x1C */ + { 1, 0, NULL }, /* 0x1D */ + { 1, 0, NULL }, /* 0x1E */ + { 1, 0, NULL }, /* 0x1F */ + { 0x20, 0xAC, aImplUniToDBCSTab_BIG5_20 }, /* 0x20 */ + { 0x03, 0x99, aImplUniToDBCSTab_APPLECHINTRAD_21 }, /* 0x21 */ + { 0x15, 0xEF, aImplUniToDBCSTab_BIG5_22 }, /* 0x22 */ + { 1, 0, NULL }, /* 0x23 */ + { 0x60, 0x7D, aImplUniToDBCSTab_BIG5_24 }, /* 0x24 */ + { 0x00, 0xE5, aImplUniToDBCSTab_BIG5_25 }, /* 0x25 */ + { 0x05, 0x42, aImplUniToDBCSTab_BIG5_26 }, /* 0x25 */ + { 1, 0, NULL }, /* 0x27 */ + { 1, 0, NULL }, /* 0x28 */ + { 1, 0, NULL }, /* 0x29 */ + { 1, 0, NULL }, /* 0x2A */ + { 1, 0, NULL }, /* 0x2B */ + { 1, 0, NULL }, /* 0x2C */ + { 1, 0, NULL }, /* 0x2D */ + { 1, 0, NULL }, /* 0x2E */ + { 1, 0, NULL }, /* 0x2F */ + { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_30 }, /* 0x30 */ + { 0x05, 0x29, aImplUniToDBCSTab_BIG5_31 }, /* 0x31 */ + { 0xA3, 0xA3, aImplUniToDBCSTab_BIG5_32 }, /* 0x32 */ + { 1, 0, NULL }, /* 0x33 */ + { 1, 0, NULL }, /* 0x34 */ + { 1, 0, NULL }, /* 0x35 */ + { 1, 0, NULL }, /* 0x36 */ + { 1, 0, NULL }, /* 0x37 */ + { 1, 0, NULL }, /* 0x38 */ + { 1, 0, NULL }, /* 0x39 */ + { 1, 0, NULL }, /* 0x3A */ + { 1, 0, NULL }, /* 0x3B */ + { 1, 0, NULL }, /* 0x3C */ + { 1, 0, NULL }, /* 0x3D */ + { 1, 0, NULL }, /* 0x3E */ + { 1, 0, NULL }, /* 0x3F */ + { 1, 0, NULL }, /* 0x40 */ + { 1, 0, NULL }, /* 0x41 */ + { 1, 0, NULL }, /* 0x42 */ + { 1, 0, NULL }, /* 0x43 */ + { 1, 0, NULL }, /* 0x44 */ + { 1, 0, NULL }, /* 0x45 */ + { 1, 0, NULL }, /* 0x46 */ + { 1, 0, NULL }, /* 0x47 */ + { 1, 0, NULL }, /* 0x48 */ + { 1, 0, NULL }, /* 0x49 */ + { 1, 0, NULL }, /* 0x4A */ + { 1, 0, NULL }, /* 0x4B */ + { 1, 0, NULL }, /* 0x4C */ + { 1, 0, NULL }, /* 0x4D */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_4E }, /* 0x4E */ + { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_4F }, /* 0x4F */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_50 }, /* 0x50 */ + { 0x00, 0xFD, aImplUniToDBCSTab_BIG5_51 }, /* 0x51 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_52 }, /* 0x52 */ + { 0x05, 0xFC, aImplUniToDBCSTab_BIG5_53 }, /* 0x53 */ + { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_54 }, /* 0x54 */ + { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_55 }, /* 0x55 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_56 }, /* 0x56 */ + { 0x01, 0xFD, aImplUniToDBCSTab_BIG5_57 }, /* 0x57 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_58 }, /* 0x58 */ + { 0x03, 0xFF, aImplUniToDBCSTab_BIG5_59 }, /* 0x59 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_5A }, /* 0x5A */ + { 0x01, 0xFA, aImplUniToDBCSTab_BIG5_5B }, /* 0x5B */ + { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_5C }, /* 0x5C */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_5D }, /* 0x5D */ + { 0x02, 0xFF, aImplUniToDBCSTab_BIG5_5E }, /* 0x5E */ + { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_5F }, /* 0x5F */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_60 }, /* 0x60 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_61 }, /* 0x61 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_62 }, /* 0x62 */ + { 0x00, 0xF9, aImplUniToDBCSTab_BIG5_63 }, /* 0x63 */ + { 0x06, 0xFF, aImplUniToDBCSTab_BIG5_64 }, /* 0x64 */ + { 0x00, 0xFD, aImplUniToDBCSTab_BIG5_65 }, /* 0x65 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_66 }, /* 0x66 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_67 }, /* 0x67 */ + { 0x12, 0xFD, aImplUniToDBCSTab_BIG5_68 }, /* 0x68 */ + { 0x04, 0xFF, aImplUniToDBCSTab_BIG5_69 }, /* 0x69 */ + { 0x00, 0xFC, aImplUniToDBCSTab_BIG5_6A }, /* 0x6A */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_6B }, /* 0x6B */ + { 0x00, 0xF9, aImplUniToDBCSTab_BIG5_6C }, /* 0x6C */ + { 0x00, 0xFD, aImplUniToDBCSTab_BIG5_6D }, /* 0x6D */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_6E }, /* 0x6E */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_6F }, /* 0x6F */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_70 }, /* 0x70 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_71 }, /* 0x71 */ + { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_72 }, /* 0x72 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_73 }, /* 0x73 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_74 }, /* 0x74 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_75 }, /* 0x75 */ + { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_76 }, /* 0x76 */ + { 0x01, 0xFD, aImplUniToDBCSTab_BIG5_77 }, /* 0x77 */ + { 0x02, 0xFF, aImplUniToDBCSTab_BIG5_78 }, /* 0x78 */ + { 0x01, 0xFB, aImplUniToDBCSTab_BIG5_79 }, /* 0x79 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_7A }, /* 0x7A */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_7B }, /* 0x7B */ + { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_7C }, /* 0x7C */ + { 0x00, 0xFB, aImplUniToDBCSTab_BIG5_7D }, /* 0x7D */ + { 0x03, 0x9C, aImplUniToDBCSTab_BIG5_7E }, /* 0x7E */ + { 0x36, 0xFF, aImplUniToDBCSTab_BIG5_7F }, /* 0x7F */ + { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_80 }, /* 0x80 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_81 }, /* 0x81 */ + { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_82 }, /* 0x82 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_83 }, /* 0x83 */ + { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_84 }, /* 0x84 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_85 }, /* 0x85 */ + { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_86 }, /* 0x86 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_87 }, /* 0x87 */ + { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_88 }, /* 0x88 */ + { 0x01, 0xFF, aImplUniToDBCSTab_BIG5_89 }, /* 0x89 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_8A }, /* 0x8A */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_8B }, /* 0x8B */ + { 0x37, 0xFE, aImplUniToDBCSTab_BIG5_8C }, /* 0x8C */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_8D }, /* 0x8D */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_8E }, /* 0x8E */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_8F }, /* 0x8F */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_90 }, /* 0x90 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_91 }, /* 0x91 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_92 }, /* 0x92 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_93 }, /* 0x93 */ + { 0x00, 0x83, aImplUniToDBCSTab_BIG5_94 }, /* 0x94 */ + { 0x77, 0xE5, aImplUniToDBCSTab_BIG5_95 }, /* 0x95 */ + { 0x1C, 0xFF, aImplUniToDBCSTab_BIG5_96 }, /* 0x96 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_97 }, /* 0x97 */ + { 0x00, 0xFE, aImplUniToDBCSTab_BIG5_98 }, /* 0x98 */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_99 }, /* 0x99 */ + { 0x01, 0xFE, aImplUniToDBCSTab_BIG5_9A }, /* 0x9A */ + { 0x01, 0xFD, aImplUniToDBCSTab_BIG5_9B }, /* 0x9B */ + { 0x05, 0xFF, aImplUniToDBCSTab_BIG5_9C }, /* 0x9C */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_9D }, /* 0x9D */ + { 0x00, 0xFF, aImplUniToDBCSTab_BIG5_9E }, /* 0x9E */ + { 0x00, 0xA4, aImplUniToDBCSTab_BIG5_9F }, /* 0x9F */ + { 1, 0, NULL }, /* 0xA0 */ + { 1, 0, NULL }, /* 0xA1 */ + { 1, 0, NULL }, /* 0xA2 */ + { 1, 0, NULL }, /* 0xA3 */ + { 1, 0, NULL }, /* 0xA4 */ + { 1, 0, NULL }, /* 0xA5 */ + { 1, 0, NULL }, /* 0xA6 */ + { 1, 0, NULL }, /* 0xA7 */ + { 1, 0, NULL }, /* 0xA8 */ + { 1, 0, NULL }, /* 0xA9 */ + { 1, 0, NULL }, /* 0xAA */ + { 1, 0, NULL }, /* 0xAB */ + { 1, 0, NULL }, /* 0xAC */ + { 1, 0, NULL }, /* 0xAD */ + { 1, 0, NULL }, /* 0xAE */ + { 1, 0, NULL }, /* 0xAF */ + { 1, 0, NULL }, /* 0xB0 */ + { 1, 0, NULL }, /* 0xB1 */ + { 1, 0, NULL }, /* 0xB2 */ + { 1, 0, NULL }, /* 0xB3 */ + { 1, 0, NULL }, /* 0xB4 */ + { 1, 0, NULL }, /* 0xB5 */ + { 1, 0, NULL }, /* 0xB6 */ + { 1, 0, NULL }, /* 0xB7 */ + { 1, 0, NULL }, /* 0xB8 */ + { 1, 0, NULL }, /* 0xB9 */ + { 1, 0, NULL }, /* 0xBA */ + { 1, 0, NULL }, /* 0xBB */ + { 1, 0, NULL }, /* 0xBC */ + { 1, 0, NULL }, /* 0xBD */ + { 1, 0, NULL }, /* 0xBE */ + { 1, 0, NULL }, /* 0xBF */ + { 1, 0, NULL }, /* 0xC0 */ + { 1, 0, NULL }, /* 0xC1 */ + { 1, 0, NULL }, /* 0xC2 */ + { 1, 0, NULL }, /* 0xC3 */ + { 1, 0, NULL }, /* 0xC4 */ + { 1, 0, NULL }, /* 0xC5 */ + { 1, 0, NULL }, /* 0xC6 */ + { 1, 0, NULL }, /* 0xC7 */ + { 1, 0, NULL }, /* 0xC8 */ + { 1, 0, NULL }, /* 0xC9 */ + { 1, 0, NULL }, /* 0xCA */ + { 1, 0, NULL }, /* 0xCB */ + { 1, 0, NULL }, /* 0xCC */ + { 1, 0, NULL }, /* 0xCD */ + { 1, 0, NULL }, /* 0xCE */ + { 1, 0, NULL }, /* 0xCF */ + { 1, 0, NULL }, /* 0xD0 */ + { 1, 0, NULL }, /* 0xD1 */ + { 1, 0, NULL }, /* 0xD2 */ + { 1, 0, NULL }, /* 0xD3 */ + { 1, 0, NULL }, /* 0xD4 */ + { 1, 0, NULL }, /* 0xD5 */ + { 1, 0, NULL }, /* 0xD6 */ + { 1, 0, NULL }, /* 0xD7 */ + { 1, 0, NULL }, /* 0xD8 */ + { 1, 0, NULL }, /* 0xD9 */ + { 1, 0, NULL }, /* 0xDA */ + { 1, 0, NULL }, /* 0xDB */ + { 1, 0, NULL }, /* 0xDC */ + { 1, 0, NULL }, /* 0xDD */ + { 1, 0, NULL }, /* 0xDE */ + { 1, 0, NULL }, /* 0xDF */ + { 1, 0, NULL }, /* 0xE0 */ + { 1, 0, NULL }, /* 0xE1 */ + { 1, 0, NULL }, /* 0xE2 */ + { 1, 0, NULL }, /* 0xE3 */ + { 1, 0, NULL }, /* 0xE4 */ + { 1, 0, NULL }, /* 0xE5 */ + { 1, 0, NULL }, /* 0xE6 */ + { 1, 0, NULL }, /* 0xE7 */ + { 1, 0, NULL }, /* 0xE8 */ + { 1, 0, NULL }, /* 0xE9 */ + { 1, 0, NULL }, /* 0xEA */ + { 1, 0, NULL }, /* 0xEB */ + { 1, 0, NULL }, /* 0xEC */ + { 1, 0, NULL }, /* 0xED */ + { 1, 0, NULL }, /* 0xEE */ + { 1, 0, NULL }, /* 0xEF */ + { 1, 0, NULL }, /* 0xF0 */ + { 1, 0, NULL }, /* 0xF1 */ + { 1, 0, NULL }, /* 0xF2 */ + { 1, 0, NULL }, /* 0xF3 */ + { 1, 0, NULL }, /* 0xF4 */ + { 1, 0, NULL }, /* 0xF5 */ + { 1, 0, NULL }, /* 0xF6 */ + { 1, 0, NULL }, /* 0xF7 */ + { 0x80, 0x81, aImplUniToDBCSTab_APPLECHINTRAD_F8 }, /* 0xF8 */ + { 1, 0, NULL }, /* 0xF9 */ + { 0x0C, 0x0D, aImplUniToDBCSTab_BIG5_FA }, /* 0xFA */ + { 1, 0, NULL }, /* 0xFB */ + { 1, 0, NULL }, /* 0xFC */ + { 1, 0, NULL }, /* 0xFD */ + { 0x30, 0x6B, aImplUniToDBCSTab_BIG5_FE }, /* 0xFE */ + { 0x01, 0xFD, aImplUniToDBCSTab_BIG5_FF } /* 0xFF */ }; /* ----------------------------------------------------------------------- */ @@ -1782,42 +1744,22 @@ static ImplDBCSConvertData const aImplAPPLECHINTRADDBCSCvtData = /* ----------------------------------------------------------------------- */ -static ImplTextConverterData const aImplAPPLECHINTRADTextConverterData = -{ - &aImplAPPLECHINTRADDBCSCvtData, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplAPPLECHINTRADTextConverter = -{ - &aImplAPPLECHINTRADTextConverterData, - ImplDBCSToUnicode, - ImplUnicodeToDBCS, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplAPPLECHINTRADTextEncodingData = -{ - &aImplAPPLECHINTRADTextConverter, - RTL_TEXTENCODING_APPLE_CHINTRAD, - 1, 2, 2, - 136, - 950, - 2, - (const sal_Char*)"euc-tw", - (const sal_Char*)"big5", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_MULTIBYTE | - RTL_TEXTENCODING_INFO_MAC, - SCRIPT_CHINESE_TRADITIONAL -}; +static ImplTextEncodingData const aImplAPPLECHINTRADTextEncodingData + = { { &aImplAPPLECHINTRADDBCSCvtData, + ImplDBCSToUnicode, + ImplUnicodeToDBCS, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_APPLE_CHINTRAD, + 1, + 2, + 2, + 136, + "euc-tw", + "big5", + RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MULTIBYTE }; + /* MAC, SCRIPT_CHINESE_TRADITIONAL, pc code page 950, mac encoding 2 */ diff --git a/sal/textenc/tcvtuni1.tab b/sal/textenc/tcvtuni1.tab index a0c4a14bb..e09388e31 100644 --- a/sal/textenc/tcvtuni1.tab +++ b/sal/textenc/tcvtuni1.tab @@ -2,9 +2,9 @@ * * $RCSfile: tcvtuni1.tab,v $ * - * $Revision: 1.1.1.1 $ + * $Revision: 1.2 $ * - * last change: $Author: hr $ $Date: 2000-09-18 15:17:30 $ + * last change: $Author: sb $ $Date: 2001-10-12 10:44:53 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -59,101 +59,51 @@ * ************************************************************************/ -/* ======================================================================= */ - -/* This file contain the tables for all unicode enabled text encodings */ - -/* ======================================================================= */ - -/* UTF7 */ - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverterData const aImplUTF7TextConverterData = -{ - NULL, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplUTF7TextConverter = -{ - &aImplUTF7TextConverterData, - ImplUTF7ToUnicode, - ImplUnicodeToUTF7, - ImplUTF7CreateUTF7TextToUnicodeContext, - ImplUTF7DestroyTextToUnicodeContext, - ImplUTF7ResetTextToUnicodeContext, - ImplUTF7CreateUnicodeToTextContext, - ImplUTF7DestroyUnicodeToTextContext, - ImplUTF7ResetUnicodeToTextContext -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplUTF7TextEncodingData = -{ - &aImplUTF7TextConverter, - RTL_TEXTENCODING_UTF7, - 1, 6, 1, - 0, - 850, - 0, - (const sal_Char*)"iso8859-1", - (const sal_Char*)"utf-7", - RTL_TEXTENCODING_INFO_CONTEXT | - RTL_TEXTENCODING_INFO_UNICODE | - RTL_TEXTENCODING_INFO_7BIT | - RTL_TEXTENCODING_INFO_MULTIBYTE | - RTL_TEXTENCODING_INFO_MIME, - SCRIPT_UNICODE -}; - -/* ======================================================================= */ - -/* UTF8 */ - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverterData const aImplUTF8TextConverterData = -{ - NULL, - NULL, - RTL_UNICODE_CHAR_DEFAULT -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextConverter const aImplUTF8TextConverter = -{ - &aImplUTF8TextConverterData, - ImplUTF8ToUnicode, - ImplUnicodeToUTF8, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- */ - -static ImplTextEncodingData const aImplUTF8TextEncodingData = -{ - &aImplUTF8TextConverter, - RTL_TEXTENCODING_UTF8, - 1, 6, 1, - 0, - 850, - 0, - (const sal_Char*)"iso8859-1", - (const sal_Char*)"utf-8", - RTL_TEXTENCODING_INFO_ASCII | - RTL_TEXTENCODING_INFO_UNICODE | - RTL_TEXTENCODING_INFO_MULTIBYTE | - RTL_TEXTENCODING_INFO_MIME, - SCRIPT_UNICODE -}; +/* Unicode Encodings */ + +static ImplTextEncodingData const aImplUTF7TextEncodingData + = { { NULL, + ImplUTF7ToUnicode, + ImplUnicodeToUTF7, + ImplUTF7CreateUTF7TextToUnicodeContext, + ImplUTF7DestroyTextToUnicodeContext, + ImplUTF7ResetTextToUnicodeContext, + ImplUTF7CreateUnicodeToTextContext, + ImplUTF7DestroyUnicodeToTextContext, + ImplUTF7ResetUnicodeToTextContext }, + RTL_TEXTENCODING_UTF7, + 1, + 6, + 1, + 0, + "iso8859-1", + "utf-7", + RTL_TEXTENCODING_INFO_CONTEXT + | RTL_TEXTENCODING_INFO_UNICODE + | RTL_TEXTENCODING_INFO_7BIT + | RTL_TEXTENCODING_INFO_MULTIBYTE + | RTL_TEXTENCODING_INFO_MIME }; + /* SCRIPT_UNICODE, pc code page 850 */ + +static ImplTextEncodingData const aImplUTF8TextEncodingData + = { { NULL, + ImplUTF8ToUnicode, + ImplUnicodeToUTF8, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL }, + RTL_TEXTENCODING_UTF8, + 1, + 6, + 1, + 0, + "iso8859-1", + "utf-8", + RTL_TEXTENCODING_INFO_ASCII + | RTL_TEXTENCODING_INFO_UNICODE + | RTL_TEXTENCODING_INFO_MULTIBYTE + | RTL_TEXTENCODING_INFO_MIME }; + /* SCRIPT_UNICODE, pc code page 850 */ diff --git a/sal/textenc/tcvtutf7.c b/sal/textenc/tcvtutf7.c index 454c8a73e..bd7946ca3 100644 --- a/sal/textenc/tcvtutf7.c +++ b/sal/textenc/tcvtutf7.c @@ -2,9 +2,9 @@ * * $RCSfile: tcvtutf7.c,v $ * - * $Revision: 1.1.1.1 $ + * $Revision: 1.2 $ * - * last change: $Author: hr $ $Date: 2000-09-18 15:17:30 $ + * last change: $Author: sb $ $Date: 2001-10-12 10:44:53 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -59,17 +59,15 @@ * ************************************************************************/ -#define _RTL_CCVTUTF7_C - -#ifndef _RTL_ALLOC_H -#include <rtl/alloc.h> +#ifndef INCLUDED_RTL_TEXTENC_TENCHELP_H +#include "tenchelp.h" #endif -#ifndef _RTL_TENCHELP_H -#include <tenchelp.h> +#ifndef _RTL_ALLOC_H +#include "rtl/alloc.h" #endif #ifndef _RTL_TEXTCVT_H -#include <rtl/textcvt.h> +#include "rtl/textcvt.h" #endif /* ======================================================================= */ @@ -94,58 +92,58 @@ static sal_uChar const aImplBase64Tab[64] = /* Index in Base64Tab or 0xFF, when is a invalid character */ static sal_uChar const aImplBase64IndexTab[128] = { - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, /* 0x00-0x07 */ - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, /* 0x08-0x0F */ - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, /* 0x10-0x17 */ - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, /* 0x18-0x1F */ - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, /* 0x20-0x27 !"#$%&' */ - 0xFF, 0xFF, 0xFF, 62, 0xFF, 0xFF, 0xFF, 63, /* 0x28-0x2F ()*+,-./ */ - 52, 53, 54, 55, 56, 57, 58, 59, /* 0x30-0x37 01234567 */ - 60, 61, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, /* 0x38-0x3F 89:;<=>? */ - 0xFF, 0, 1, 2, 3, 4, 5, 6, /* 0x40-0x47 @ABCDEFG */ - 7, 8, 9, 10, 11, 12, 13, 14, /* 0x48-0x4F HIJKLMNO */ - 15, 16, 17, 18, 19, 20, 21, 22, /* 0x50-0x57 PQRSTUVW */ - 23, 24, 25, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, /* 0x58-0x5F XYZ[\]^_ */ - 0xFF, 26, 27, 28, 29, 30, 31, 32, /* 0x60-0x67 `abcdefg */ - 33, 34, 35, 36, 37, 38, 39, 40, /* 0x68-0x6F hijklmno */ - 41, 42, 43, 44, 45, 46, 47, 48, /* 0x70-0x77 pqrstuvw */ - 49, 50, 51, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF /* 0x78-0x7F xyz{|}~ */ + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, /* 0x00-0x07 */ + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, /* 0x08-0x0F */ + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, /* 0x10-0x17 */ + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, /* 0x18-0x1F */ + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, /* 0x20-0x27 !"#$%&' */ + 0xFF, 0xFF, 0xFF, 62, 0xFF, 0xFF, 0xFF, 63, /* 0x28-0x2F ()*+,-./ */ + 52, 53, 54, 55, 56, 57, 58, 59, /* 0x30-0x37 01234567 */ + 60, 61, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, /* 0x38-0x3F 89:;<=>? */ + 0xFF, 0, 1, 2, 3, 4, 5, 6, /* 0x40-0x47 @ABCDEFG */ + 7, 8, 9, 10, 11, 12, 13, 14, /* 0x48-0x4F HIJKLMNO */ + 15, 16, 17, 18, 19, 20, 21, 22, /* 0x50-0x57 PQRSTUVW */ + 23, 24, 25, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, /* 0x58-0x5F XYZ[\]^_ */ + 0xFF, 26, 27, 28, 29, 30, 31, 32, /* 0x60-0x67 `abcdefg */ + 33, 34, 35, 36, 37, 38, 39, 40, /* 0x68-0x6F hijklmno */ + 41, 42, 43, 44, 45, 46, 47, 48, /* 0x70-0x77 pqrstuvw */ + 49, 50, 51, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF /* 0x78-0x7F xyz{|}~ */ }; static sal_uChar const aImplMustShiftTab[128] = { - 1, 1, 1, 1, 1, 1, 1, 1, /* 0x00-0x07 */ - 1, 0, 0, 1, 0, 1, 1, 1, /* 0x08-0x0F 0x09 == HTAB, 0x0A == LF 0x0C == CR */ - 1, 1, 1, 1, 1, 1, 1, 1, /* 0x10-0x17 */ - 1, 1, 1, 1, 1, 1, 1, 1, /* 0x18-0x1F */ - 0, 1, 1, 1, 1, 1, 1, 0, /* 0x20-0x27 !"#$%&' */ - 0, 0, 1, 1, 0, 1, 0, 0, /* 0x28-0x2F ()*+,-./ */ - 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30-0x37 01234567 */ - 0, 0, 0, 1, 1, 1, 1, 0, /* 0x38-0x3F 89:;<=>? */ - 1, 0, 0, 0, 0, 0, 0, 0, /* 0x40-0x47 @ABCDEFG */ - 0, 0, 0, 0, 0, 0, 0, 0, /* 0x48-0x4F HIJKLMNO */ - 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50-0x57 PQRSTUVW */ - 0, 0, 0, 1, 1, 1, 1, 1, /* 0x58-0x5F XYZ[\]^_ */ - 1, 0, 0, 0, 0, 0, 0, 0, /* 0x60-0x67 `abcdefg */ - 0, 0, 0, 0, 0, 0, 0, 0, /* 0x68-0x6F hijklmno */ - 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70-0x77 pqrstuvw */ - 0, 0, 0, 1, 1, 1, 1, 1 /* 0x78-0x7F xyz{|}~ */ + 1, 1, 1, 1, 1, 1, 1, 1, /* 0x00-0x07 */ + 1, 0, 0, 1, 0, 1, 1, 1, /* 0x08-0x0F 0x09 == HTAB, 0x0A == LF 0x0C == CR */ + 1, 1, 1, 1, 1, 1, 1, 1, /* 0x10-0x17 */ + 1, 1, 1, 1, 1, 1, 1, 1, /* 0x18-0x1F */ + 0, 1, 1, 1, 1, 1, 1, 0, /* 0x20-0x27 !"#$%&' */ + 0, 0, 1, 1, 0, 1, 0, 0, /* 0x28-0x2F ()*+,-./ */ + 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30-0x37 01234567 */ + 0, 0, 0, 1, 1, 1, 1, 0, /* 0x38-0x3F 89:;<=>? */ + 1, 0, 0, 0, 0, 0, 0, 0, /* 0x40-0x47 @ABCDEFG */ + 0, 0, 0, 0, 0, 0, 0, 0, /* 0x48-0x4F HIJKLMNO */ + 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50-0x57 PQRSTUVW */ + 0, 0, 0, 1, 1, 1, 1, 1, /* 0x58-0x5F XYZ[\]^_ */ + 1, 0, 0, 0, 0, 0, 0, 0, /* 0x60-0x67 `abcdefg */ + 0, 0, 0, 0, 0, 0, 0, 0, /* 0x68-0x6F hijklmno */ + 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70-0x77 pqrstuvw */ + 0, 0, 0, 1, 1, 1, 1, 1 /* 0x78-0x7F xyz{|}~ */ }; /* + */ -#define IMPL_SHIFT_IN_CHAR 0x2B +#define IMPL_SHIFT_IN_CHAR 0x2B /* - */ -#define IMPL_SHIFT_OUT_CHAR 0x2D +#define IMPL_SHIFT_OUT_CHAR 0x2D /* ----------------------------------------------------------------------- */ -typedef struct _ImplUTF7ToUCContextData +typedef struct { - int mbShifted; - int mbFirst; - int mbWroteOne; - sal_uInt32 mnBitBuffer; - sal_uInt32 mnBufferBits; + int mbShifted; + int mbFirst; + int mbWroteOne; + sal_uInt32 mnBitBuffer; + sal_uInt32 mnBufferBits; } ImplUTF7ToUCContextData; /* ----------------------------------------------------------------------- */ @@ -154,11 +152,11 @@ void* ImplUTF7CreateUTF7TextToUnicodeContext( void ) { ImplUTF7ToUCContextData* pContextData; pContextData = (ImplUTF7ToUCContextData*)rtl_allocateMemory( sizeof( ImplUTF7ToUCContextData ) ); - pContextData->mbShifted = sal_False; - pContextData->mbFirst = sal_False; - pContextData->mbWroteOne = sal_False; - pContextData->mnBitBuffer = 0; - pContextData->mnBufferBits = 0; + pContextData->mbShifted = sal_False; + pContextData->mbFirst = sal_False; + pContextData->mbWroteOne = sal_False; + pContextData->mnBitBuffer = 0; + pContextData->mnBufferBits = 0; return (void*)pContextData; } @@ -174,11 +172,11 @@ void ImplUTF7DestroyTextToUnicodeContext( void* pContext ) void ImplUTF7ResetTextToUnicodeContext( void* pContext ) { ImplUTF7ToUCContextData* pContextData = (ImplUTF7ToUCContextData*)pContext; - pContextData->mbShifted = sal_False; - pContextData->mbFirst = sal_False; - pContextData->mbWroteOne = sal_False; - pContextData->mnBitBuffer = 0; - pContextData->mnBufferBits = 0; + pContextData->mbShifted = sal_False; + pContextData->mbFirst = sal_False; + pContextData->mbWroteOne = sal_False; + pContextData->mnBitBuffer = 0; + pContextData->mnBufferBits = 0; } /* ----------------------------------------------------------------------- */ @@ -189,42 +187,42 @@ sal_Size ImplUTF7ToUnicode( const ImplTextConverterData* pData, void* pContext, sal_uInt32 nFlags, sal_uInt32* pInfo, sal_Size* pSrcCvtBytes ) { - ImplUTF7ToUCContextData* pContextData = (ImplUTF7ToUCContextData*)pContext; - sal_uChar c; - sal_uChar nBase64Value; - int bEnd = sal_False; - int bShifted; - int bFirst; - int bWroteOne; - int bBase64End; - sal_uInt32 nBitBuffer; - sal_uInt32 nBitBufferTemp; - sal_uInt32 nBufferBits; - sal_Unicode* pEndDestBuf; - const sal_Char* pEndSrcBuf; + ImplUTF7ToUCContextData* pContextData = (ImplUTF7ToUCContextData*)pContext; + sal_uChar c; + sal_uChar nBase64Value; + int bEnd = sal_False; + int bShifted; + int bFirst; + int bWroteOne; + int bBase64End; + sal_uInt32 nBitBuffer; + sal_uInt32 nBitBufferTemp; + sal_uInt32 nBufferBits; + sal_Unicode* pEndDestBuf; + const sal_Char* pEndSrcBuf; /* !!! Implementation not finnished !!! if ( pContextData ) { - bShifted = pContextData->mbShifted; - bFirst = pContextData->mbFirst; - bWroteOne = pContextData->mbWroteOne; - nBitBuffer = pContextData->mnBitBuffer; - nBufferBits = pContextData->mnBufferBits; + bShifted = pContextData->mbShifted; + bFirst = pContextData->mbFirst; + bWroteOne = pContextData->mbWroteOne; + nBitBuffer = pContextData->mnBitBuffer; + nBufferBits = pContextData->mnBufferBits; } else */ { - bShifted = sal_False; - bFirst = sal_False; - bWroteOne = sal_False; - nBitBuffer = 0; - nBufferBits = 0; + bShifted = sal_False; + bFirst = sal_False; + bWroteOne = sal_False; + nBitBuffer = 0; + nBufferBits = 0; } *pInfo = 0; pEndDestBuf = pDestBuf+nDestChars; - pEndSrcBuf = pSrcBuf+nSrcBytes; + pEndSrcBuf = pSrcBuf+nSrcBytes; do { if ( pSrcBuf < pEndSrcBuf ) @@ -380,9 +378,9 @@ sal_Size ImplUTF7ToUnicode( const ImplTextConverterData* pData, void* pContext, { if ( c == IMPL_SHIFT_IN_CHAR ) { - bShifted = sal_True; - bFirst = sal_True; - bWroteOne = sal_False; + bShifted = sal_True; + bFirst = sal_True; + bWroteOne = sal_False; } else { @@ -426,11 +424,11 @@ sal_Size ImplUTF7ToUnicode( const ImplTextConverterData* pData, void* pContext, if ( pContextData ) { - pContextData->mbShifted = bShifted; - pContextData->mbFirst = bFirst; - pContextData->mbWroteOne = bWroteOne; - pContextData->mnBitBuffer = nBitBuffer; - pContextData->mnBufferBits = nBufferBits; + pContextData->mbShifted = bShifted; + pContextData->mbFirst = bFirst; + pContextData->mbWroteOne = bWroteOne; + pContextData->mnBitBuffer = nBitBuffer; + pContextData->mnBufferBits = nBufferBits; } *pSrcCvtBytes = nSrcBytes - (pEndSrcBuf-pSrcBuf); @@ -439,11 +437,11 @@ sal_Size ImplUTF7ToUnicode( const ImplTextConverterData* pData, void* pContext, /* ======================================================================= */ -typedef struct _ImplUTF7FromUCContextData +typedef struct { - int mbShifted; - sal_uInt32 mnBitBuffer; - sal_uInt32 mnBufferBits; + int mbShifted; + sal_uInt32 mnBitBuffer; + sal_uInt32 mnBufferBits; } ImplUTF7FromUCContextData; /* ----------------------------------------------------------------------- */ @@ -452,9 +450,9 @@ void* ImplUTF7CreateUnicodeToTextContext( void ) { ImplUTF7FromUCContextData* pContextData; pContextData = (ImplUTF7FromUCContextData*)rtl_allocateMemory( sizeof( ImplUTF7FromUCContextData ) ); - pContextData->mbShifted = sal_False; - pContextData->mnBitBuffer = 0; - pContextData->mnBufferBits = 0; + pContextData->mbShifted = sal_False; + pContextData->mnBitBuffer = 0; + pContextData->mnBufferBits = 0; return (void*)pContextData; } @@ -470,9 +468,9 @@ void ImplUTF7DestroyUnicodeToTextContext( void* pContext ) void ImplUTF7ResetUnicodeToTextContext( void* pContext ) { ImplUTF7FromUCContextData* pContextData = (ImplUTF7FromUCContextData*)pContext; - pContextData->mbShifted = sal_False; - pContextData->mnBitBuffer = 0; - pContextData->mnBufferBits = 0; + pContextData->mbShifted = sal_False; + pContextData->mnBitBuffer = 0; + pContextData->mnBufferBits = 0; } /* ----------------------------------------------------------------------- */ @@ -483,35 +481,35 @@ sal_Size ImplUnicodeToUTF7( const ImplTextConverterData* pData, void* pContext, sal_uInt32 nFlags, sal_uInt32* pInfo, sal_Size* pSrcCvtChars ) { - ImplUTF7FromUCContextData* pContextData = (ImplUTF7FromUCContextData*)pContext; - sal_Unicode c; - int bEnd = sal_False; - int bShifted; - int bNeedShift; - sal_uInt32 nBitBuffer; - sal_uInt32 nBitBufferTemp; - sal_uInt32 nBufferBits; - sal_Char* pEndDestBuf; - const sal_Unicode* pEndSrcBuf; + ImplUTF7FromUCContextData* pContextData = (ImplUTF7FromUCContextData*)pContext; + sal_Unicode c; + int bEnd = sal_False; + int bShifted; + int bNeedShift; + sal_uInt32 nBitBuffer; + sal_uInt32 nBitBufferTemp; + sal_uInt32 nBufferBits; + sal_Char* pEndDestBuf; + const sal_Unicode* pEndSrcBuf; /* !!! Implementation not finnished !!! if ( pContextData ) { - bShifted = pContextData->mbShifted; - nBitBuffer = pContextData->mnBitBuffer; - nBufferBits = pContextData->mnBufferBits; + bShifted = pContextData->mbShifted; + nBitBuffer = pContextData->mnBitBuffer; + nBufferBits = pContextData->mnBufferBits; } else */ { - bShifted = sal_False; - nBitBuffer = 0; - nBufferBits = 0; + bShifted = sal_False; + nBitBuffer = 0; + nBufferBits = 0; } *pInfo = 0; pEndDestBuf = pDestBuf+nDestBytes; - pEndSrcBuf = pSrcBuf+nSrcChars; + pEndSrcBuf = pSrcBuf+nSrcChars; do { if ( pSrcBuf < pEndSrcBuf ) @@ -612,9 +610,9 @@ sal_Size ImplUnicodeToUTF7( const ImplTextConverterData* pData, void* pContext, if ( pContextData ) { - pContextData->mbShifted = bShifted; - pContextData->mnBitBuffer = nBitBuffer; - pContextData->mnBufferBits = nBufferBits; + pContextData->mbShifted = bShifted; + pContextData->mnBitBuffer = nBitBuffer; + pContextData->mnBufferBits = nBufferBits; } *pSrcCvtChars = nSrcChars - (pEndSrcBuf-pSrcBuf); diff --git a/sal/textenc/tcvtutf8.c b/sal/textenc/tcvtutf8.c index 57123ca87..f7ec9a0ba 100644 --- a/sal/textenc/tcvtutf8.c +++ b/sal/textenc/tcvtutf8.c @@ -2,9 +2,9 @@ * * $RCSfile: tcvtutf8.c,v $ * - * $Revision: 1.1.1.1 $ + * $Revision: 1.2 $ * - * last change: $Author: hr $ $Date: 2000-09-18 15:17:30 $ + * last change: $Author: sb $ $Date: 2001-10-12 10:44:53 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -59,18 +59,17 @@ * ************************************************************************/ -#define _RTL_TCVTUTF8_C - -#ifndef _RTL_TENCHELP_H -#include <tenchelp.h> +#ifndef INCLUDED_RTL_TEXTENC_TENCHELP_H +#include "tenchelp.h" #endif + #ifndef _RTL_TEXTCVT_H -#include <rtl/textcvt.h> +#include "rtl/textcvt.h" #endif -/* ======================================================================= */ - -#define TEXTCVT_MAX_UNICHAR 0x0010FFFF +#define RTL_UNICODE_SURROGATES_HALFMASK 0x3FFUL +#define RTL_UNICODE_SURROGATES_HALFBASE 0x10000UL +#define RTL_UNICODE_SURROGATES_HALFSHIFT 10 /* ----------------------------------------------------------------------- */ @@ -89,16 +88,16 @@ sal_Size ImplUTF8ToUnicode( const ImplTextConverterData* pData, void* pContext, 0x07, 0x03, 0x01 }; - sal_uInt8 nBytes; - sal_uInt8 nTempBytes; - sal_uChar c; - sal_uInt32 cConv; - sal_Unicode* pEndDestBuf; - const sal_Char* pEndSrcBuf; + sal_uInt8 nBytes; + sal_uInt8 nTempBytes; + sal_uChar c; + sal_uInt32 cConv; + sal_Unicode* pEndDestBuf; + const sal_Char* pEndSrcBuf; *pInfo = 0; pEndDestBuf = pDestBuf+nDestChars; - pEndSrcBuf = pSrcBuf+nSrcBytes; + pEndSrcBuf = pSrcBuf+nSrcBytes; while ( pSrcBuf < pEndSrcBuf ) { if ( pDestBuf == pEndDestBuf ) @@ -279,7 +278,7 @@ sal_Size ImplUTF8ToUnicode( const ImplTextConverterData* pData, void* pContext, else { pSrcBuf++; - if ( cConv > TEXTCVT_MAX_UNICHAR ) + if ( cConv > 0x10FFFF ) { *pInfo |= RTL_TEXTTOUNICODE_INFO_MBUNDEFINED; if ( (nFlags & RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_MASK) == RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR ) @@ -327,17 +326,17 @@ sal_Size ImplUnicodeToUTF8( const ImplTextConverterData* pData, void* pContext, 0x00, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC }; - sal_Unicode c; - sal_Unicode c2; - sal_uInt32 nUCS4Char; - sal_uInt8 nBytes; - sal_Char* pTempDestBuf; - sal_Char* pEndDestBuf; - const sal_Unicode* pEndSrcBuf; + sal_Unicode c; + sal_Unicode c2; + sal_uInt32 nUCS4Char; + sal_uInt8 nBytes; + sal_Char* pTempDestBuf; + sal_Char* pEndDestBuf; + const sal_Unicode* pEndSrcBuf; *pInfo = 0; pEndDestBuf = pDestBuf+nDestBytes; - pEndSrcBuf = pSrcBuf+nSrcChars; + pEndSrcBuf = pSrcBuf+nSrcChars; while ( pSrcBuf < pEndSrcBuf ) { c = *pSrcBuf; @@ -391,9 +390,9 @@ sal_Size ImplUnicodeToUTF8( const ImplTextConverterData* pData, void* pContext, pSrcBuf++; continue; } - /* in UTF8 we save the original code. I think */ - /* this is better than the default char, */ - /* because it is a unicode format. */ + /* in UTF8 we save the original code. I think */ + /* this is better than the default char, */ + /* because it is a unicode format. */ } } diff --git a/sal/textenc/tenchelp.c b/sal/textenc/tenchelp.c index 6344e0274..88986c5c9 100644 --- a/sal/textenc/tenchelp.c +++ b/sal/textenc/tenchelp.c @@ -2,9 +2,9 @@ * * $RCSfile: tenchelp.c,v $ * - * $Revision: 1.1.1.1 $ + * $Revision: 1.2 $ * - * last change: $Author: hr $ $Date: 2000-09-18 15:17:30 $ + * last change: $Author: sb $ $Date: 2001-10-12 10:44:53 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -59,132 +59,116 @@ * ************************************************************************/ -#define _RTL_TENCHELP_C - -#include <string.h> - -#ifndef _RTL_MEMORY_H -#include <rtl/memory.h> -#endif -#ifndef _RTL_TENCHELP_H -#include <tenchelp.h> +#ifndef INCLUDED_RTL_TEXTENC_TENCHELP_H +#include "tenchelp.h" #endif + #ifndef _RTL_TEXTCVT_H -#include <rtl/textcvt.h> +#include "rtl/textcvt.h" +#endif +#ifndef _SAL_TYPES_H_ +#include "sal/types.h" #endif -/* ======================================================================= */ +static sal_Bool ImplGetUndefinedAsciiMultiByte(sal_uInt32 nFlags, + sal_Char * pBuf, + sal_Size nMaxLen); -sal_Unicode ImplGetUndefinedUnicodeChar( sal_uChar c, sal_uInt32 nFlags, const ImplTextConverterData* pData ) -{ - sal_Unicode nUniChar; +static sal_Bool ImplGetInvalidAsciiMultiByte(sal_uInt32 nFlags, + sal_Char * pBuf, + sal_Size nMaxLen); - nFlags &= RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_MASK; - if ( nFlags == RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_MAPTOPRIVATE ) - nUniChar = 0xF100+c; - else +static int ImplIsUnicodeIgnoreChar(sal_Unicode c, sal_uInt32 nFlags); + +sal_Bool ImplGetUndefinedAsciiMultiByte(sal_uInt32 nFlags, + sal_Char * pBuf, + sal_Size nMaxLen) +{ + if (nMaxLen == 0) + return sal_False; + switch (nFlags & RTL_UNICODETOTEXT_FLAGS_UNDEFINED_MASK) { - if ( pData ) - nUniChar = pData->mcUnicodeDefChar; - else - nUniChar = RTL_UNICODE_CHAR_DEFAULT; + case RTL_UNICODETOTEXT_FLAGS_UNDEFINED_0: + *pBuf = 0x00; + break; + + case RTL_UNICODETOTEXT_FLAGS_UNDEFINED_QUESTIONMARK: + default: /* RTL_UNICODETOTEXT_FLAGS_UNDEFINED_DEFAULT */ + *pBuf = 0x3F; + break; + + case RTL_UNICODETOTEXT_FLAGS_UNDEFINED_UNDERLINE: + *pBuf = 0x5F; + break; } - - return nUniChar; + return sal_True; } -/* ----------------------------------------------------------------------- */ - -sal_Size ImplGetUndefinedAsciiMultiByte( sal_uInt32 nFlags, const ImplTextConverterData* pData, sal_Char* pBuf, sal_Size nMaxLen ) +sal_Bool ImplGetInvalidAsciiMultiByte(sal_uInt32 nFlags, + sal_Char * pBuf, + sal_Size nMaxLen) { - sal_Size nLen = 0; - - if ( nMaxLen ) + if (nMaxLen == 0) + return sal_False; + switch (nFlags & RTL_UNICODETOTEXT_FLAGS_UNDEFINED_MASK) { - switch ( nFlags & RTL_UNICODETOTEXT_FLAGS_UNDEFINED_MASK ) - { - case RTL_UNICODETOTEXT_FLAGS_UNDEFINED_0: - nLen = 1; - *pBuf = (sal_Char)0x00; - break; - case RTL_UNICODETOTEXT_FLAGS_UNDEFINED_QUESTIONMARK: - nLen = 1; - *pBuf = (sal_Char)0x3F; - break; - case RTL_UNICODETOTEXT_FLAGS_UNDEFINED_UNDERLINE: - nLen = 1; - *pBuf = (sal_Char)0x5F; - break; - default: /* RTL_UNICODETOTEXT_FLAGS_UNDEFINED_DEFAULT */ - if ( pData && pData->mpTextDefChar ) - { - nLen = strlen( pData->mpTextDefChar ); - if ( nLen < nMaxLen ) - rtl_copyMemory( pBuf, pData->mpTextDefChar, nLen ); - else - nLen = 0; - } - else - { - nLen = 1; - *pBuf = (sal_Char)0x3F; - } - break; - } + case RTL_UNICODETOTEXT_FLAGS_INVALID_0: + *pBuf = 0x00; + break; + + case RTL_UNICODETOTEXT_FLAGS_INVALID_QUESTIONMARK: + default: /* RTL_UNICODETOTEXT_FLAGS_INVALID_DEFAULT */ + *pBuf = 0x3F; + break; + + case RTL_UNICODETOTEXT_FLAGS_INVALID_UNDERLINE: + *pBuf = 0x5F; + break; } - - return nLen; + return sal_True; } -/* ----------------------------------------------------------------------- */ - -sal_Size ImplGetInvalidAsciiMultiByte( sal_uInt32 nFlags, const ImplTextConverterData* pData, sal_Char* pBuf, sal_Size nMaxLen ) +int ImplIsUnicodeIgnoreChar( sal_Unicode c, sal_uInt32 nFlags ) { - sal_Size nLen = 0; + if ( nFlags & RTL_UNICODETOTEXT_FLAGS_NONSPACING_IGNORE ) + { + /* !!! */ + } - if ( nMaxLen ) + if ( nFlags & RTL_UNICODETOTEXT_FLAGS_CONTROL_IGNORE ) { - switch ( nFlags & RTL_UNICODETOTEXT_FLAGS_UNDEFINED_MASK ) - { - case RTL_UNICODETOTEXT_FLAGS_INVALID_0: - nLen = 1; - *pBuf = (sal_Char)0x00; - break; - case RTL_UNICODETOTEXT_FLAGS_INVALID_QUESTIONMARK: - nLen = 1; - *pBuf = (sal_Char)0x3F; - break; - case RTL_UNICODETOTEXT_FLAGS_INVALID_UNDERLINE: - nLen = 1; - *pBuf = (sal_Char)0x5F; - break; - default: /* RTL_UNICODETOTEXT_FLAGS_INVALID_DEFAULT */ - if ( pData && pData->mpTextDefChar ) - { - nLen = strlen( pData->mpTextDefChar ); - if ( nLen < nMaxLen ) - rtl_copyMemory( pBuf, pData->mpTextDefChar, nLen ); - else - nLen = 0; - } - else - { - nLen = 1; - *pBuf = (sal_Char)0x3F; - } - break; - } + /* !!! */ + } + + if ( nFlags & RTL_UNICODETOTEXT_FLAGS_PRIVATE_IGNORE ) + { + if ( (c >= 0xE000) && (c <= 0xF8FF) ) + return sal_True; } - return nLen; + return sal_False; +} + +/* ======================================================================= */ + +sal_Unicode ImplGetUndefinedUnicodeChar(sal_uChar cChar, sal_uInt32 nFlags) +{ + return ((nFlags & RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_MASK) + == RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_MAPTOPRIVATE) ? + RTL_TEXTCVT_BYTE_PRIVATE_START + cChar : + RTL_UNICODE_CHAR_DEFAULT; } /* ----------------------------------------------------------------------- */ -int ImplHandleUndefinedUnicodeToTextChar( const ImplTextConverterData* pData, - const sal_Unicode** ppSrcBuf, const sal_Unicode* pEndSrcBuf, - sal_Char** ppDestBuf, const sal_Char* pEndDestBuf, - sal_uInt32 nFlags, sal_uInt32* pInfo ) +sal_Bool +ImplHandleUndefinedUnicodeToTextChar(ImplTextConverterData const * pData, + sal_Unicode const ** ppSrcBuf, + sal_Unicode const * pEndSrcBuf, + sal_Char ** ppDestBuf, + sal_Char const * pEndDestBuf, + sal_uInt32 nFlags, + sal_uInt32 * pInfo) { sal_Unicode c = **ppSrcBuf; @@ -196,7 +180,7 @@ int ImplHandleUndefinedUnicodeToTextChar( const ImplTextConverterData* pData, **ppDestBuf = (sal_Char)(sal_uChar)(c-RTL_TEXTCVT_BYTE_PRIVATE_START); (*ppDestBuf)++; (*ppSrcBuf)++; - return IMPL_TEXTCVT_CONTINUE; + return sal_True; } } @@ -204,7 +188,7 @@ int ImplHandleUndefinedUnicodeToTextChar( const ImplTextConverterData* pData, if ( ImplIsUnicodeIgnoreChar( c, nFlags ) ) { (*ppSrcBuf)++; - return IMPL_TEXTCVT_CONTINUE; + return sal_True; } /* Surrogates Characters should result in */ @@ -215,7 +199,7 @@ int ImplHandleUndefinedUnicodeToTextChar( const ImplTextConverterData* pData, if ( *ppSrcBuf == pEndSrcBuf ) { *pInfo |= RTL_UNICODETOTEXT_INFO_ERROR | RTL_UNICODETOTEXT_INFO_SRCBUFFERTOSMALL; - return IMPL_TEXTCVT_BREAK; + return sal_False; } c = *((*ppSrcBuf)+1); @@ -228,28 +212,26 @@ int ImplHandleUndefinedUnicodeToTextChar( const ImplTextConverterData* pData, if ( (nFlags & RTL_UNICODETOTEXT_FLAGS_INVALID_MASK) == RTL_UNICODETOTEXT_FLAGS_INVALID_ERROR ) { *pInfo |= RTL_UNICODETOTEXT_INFO_ERROR; - return IMPL_TEXTCVT_BREAK; + return sal_False; } else if ( (nFlags & RTL_UNICODETOTEXT_FLAGS_INVALID_MASK) == RTL_UNICODETOTEXT_FLAGS_INVALID_IGNORE ) { (*ppSrcBuf)++; - return IMPL_TEXTCVT_CONTINUE; + return sal_True; + } + else if (ImplGetInvalidAsciiMultiByte(nFlags, + *ppDestBuf, + pEndDestBuf - *ppDestBuf)) + { + ++*ppSrcBuf; + ++*ppDestBuf; + return sal_True; } else { - sal_Size nDefLen = ImplGetInvalidAsciiMultiByte( nFlags, pData, - *ppDestBuf, pEndDestBuf-*ppDestBuf ); - if ( nDefLen ) - { - *ppDestBuf += nDefLen; - (*ppSrcBuf)++; - return IMPL_TEXTCVT_CONTINUE; - } - else - { - *pInfo |= RTL_UNICODETOTEXT_INFO_ERROR | RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL; - return IMPL_TEXTCVT_BREAK; - } + *pInfo |= RTL_UNICODETOTEXT_INFO_ERROR + | RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL; + return sal_False; } } } @@ -258,475 +240,24 @@ int ImplHandleUndefinedUnicodeToTextChar( const ImplTextConverterData* pData, if ( (nFlags & RTL_UNICODETOTEXT_FLAGS_UNDEFINED_MASK) == RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR ) { *pInfo |= RTL_UNICODETOTEXT_INFO_ERROR; - return IMPL_TEXTCVT_BREAK; + return sal_False; } else if ( (nFlags & RTL_UNICODETOTEXT_FLAGS_UNDEFINED_MASK) == RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE ) (*ppSrcBuf)++; - else - { - sal_Size nDefLen = ImplGetUndefinedAsciiMultiByte( nFlags, pData, - *ppDestBuf, pEndDestBuf-*ppDestBuf ); - if ( nDefLen ) - { - *ppDestBuf += nDefLen; - (*ppSrcBuf)++; - } - else - { - *pInfo |= RTL_UNICODETOTEXT_INFO_ERROR | RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL; - return IMPL_TEXTCVT_BREAK; - } - } - - return IMPL_TEXTCVT_CONTINUE; -} - -/* ----------------------------------------------------------------------- */ - -int ImplIsUnicodeIgnoreChar( sal_Unicode c, sal_uInt32 nFlags ) -{ - if ( nFlags & RTL_UNICODETOTEXT_FLAGS_NONSPACING_IGNORE ) - { - /* !!! */ - } - - if ( nFlags & RTL_UNICODETOTEXT_FLAGS_CONTROL_IGNORE ) - { - /* !!! */ - } - - if ( nFlags & RTL_UNICODETOTEXT_FLAGS_PRIVATE_IGNORE ) + else if (ImplGetUndefinedAsciiMultiByte(nFlags, + *ppDestBuf, + pEndDestBuf - *ppDestBuf)) { - if ( (c >= 0xE000) && (c <= 0xF8FF) ) - return sal_True; + ++*ppSrcBuf; + ++*ppDestBuf; } - - return sal_False; -} - -/* ----------------------------------------------------------------------- */ - -typedef struct _ImplReplaceCharData -{ - sal_uInt16 mnUniChar; - sal_uInt16 mnReplaceChar; -} ImplReplaceCharData; - -static ImplReplaceCharData const aImplRepCharTab[] = -{ - { 0x00A0, 0x0020 }, /* NO-BREAK-SPACE */ - { 0x00A1, 0x0021 }, /* INVERTED EXCLAMATION MARK */ - { 0x00B7, 0x0045 }, /* MIDDLE DOT */ - { 0x00BF, 0x003F }, /* INVERTED QUESTION MARK */ - { 0x00D7, 0x002A }, /* MULTIPLIKATION SIGN */ - { 0x00F7, 0x002F }, /* DIVISION SIGN */ - { 0x2000, 0x0020 }, /* EN QUAD */ - { 0x2001, 0x0020 }, /* EM QUAD */ - { 0x2002, 0x0020 }, /* EN SPACE */ - { 0x2003, 0x0020 }, /* EM SPACE */ - { 0x2004, 0x0020 }, /* THREE-PER-EM SPACE */ - { 0x2005, 0x0020 }, /* FOUR-PER-EM SPACE */ - { 0x2006, 0x0020 }, /* SIX-PER-EM SPACE */ - { 0x2007, 0x0020 }, /* FIGURE SPACE */ - { 0x2008, 0x0020 }, /* PUNCTATION SPACE */ - { 0x2009, 0x0020 }, /* THIN SPACE */ - { 0x200A, 0x0020 }, /* HAIR SPACE */ - { 0x2010, 0x002D }, /* HYPHEN */ - { 0x2011, 0x002D }, /* NON-BREAKING HYPHEN */ - { 0x2012, 0x002D }, /* FIGURE DASH */ - { 0x2013, 0x002D }, /* EN DASH */ - { 0x2014, 0x002D }, /* EM DASH */ - { 0x2015, 0x002D }, /* HORIZONTAL BAR */ - { 0x2018, 0x0027 }, /* LEFT SINGLE QUOTATION MARK */ - { 0x2019, 0x0027 }, /* RIGHT SINGLE QUOTATION MARK */ - { 0x201A, 0x002C }, /* SINGLE LOW-9 QUOTATION MARK */ - { 0x201B, 0x0027 }, /* SINGLE HIGH-RESERVED-9 QUOTATION MARK */ - { 0x201C, 0x0022 }, /* LEFT DOUBLE QUOTATION MARK */ - { 0x201D, 0x0022 }, /* RIGHT DOUBLE QUOTATION MARK */ - { 0x201E, 0x0022 }, /* DOUBLE LOW-9 QUOTATION MARK */ - { 0x201F, 0x0022 }, /* DOUBLE HIGH-RESERVED-9 QUOTATION MARK */ - { 0x2022, 0x002D }, /* BULLET */ - { 0x2023, 0x002D }, /* TRIANGULAR BULLET */ - { 0x2024, 0x002D }, /* ONE DOT LEADER */ - { 0x2027, 0x002D }, /* HYPHENATION POINT */ - { 0x2028, 0x000A }, /* LINE SEPARATOR */ - { 0x2029, 0x000D }, /* PARAGRAPH SEPARATOR */ - { 0x2032, 0x0027 }, /* PRIME */ - { 0x2033, 0x0022 }, /* DOUBLE PRIME */ - { 0x2035, 0x0027 }, /* RESERVED PRIME */ - { 0x2036, 0x0022 }, /* RESERVED DOUBLE PRIME */ - { 0x2039, 0x003C }, /* SINGLE LEFT-POINTING ANGLE QUOTATION MARK */ - { 0x203A, 0x003E }, /* SINGLE RIGHT-POINTING ANGLE QUOTATION MARK */ - { 0x2043, 0x002D }, /* HYPHEN BULLET */ - { 0x2044, 0x002F }, /* FRACTION SLASH */ - { 0x2160, 0x0049 }, /* ROMAN NUMERAL ONE */ - { 0x2164, 0x0056 }, /* ROMAN NUMERAL FIVE */ - { 0x2169, 0x0058 }, /* ROMAN NUMERAL TEN */ - { 0x216C, 0x004C }, /* ROMAN NUMERAL FIFTY */ - { 0x216D, 0x0043 }, /* ROMAN NUMERAL ONE HUNDRED */ - { 0x216E, 0x0044 }, /* ROMAN NUMERAL FIVE HUNDRED */ - { 0x216F, 0x004D }, /* ROMAN NUMERAL ONE THOUSAND */ - { 0x2170, 0x0069 }, /* SMALL ROMAN NUMERAL ONE */ - { 0x2174, 0x0076 }, /* SMALL ROMAN NUMERAL FIVE */ - { 0x2179, 0x0078 }, /* SMALL ROMAN NUMERAL TEN */ - { 0x217C, 0x006C }, /* SMALL ROMAN NUMERAL FIFTY */ - { 0x217D, 0x0063 }, /* SMALL ROMAN NUMERAL ONE HUNDRED */ - { 0x217E, 0x0064 }, /* SMALL ROMAN NUMERAL FIVE HUNDRED */ - { 0x217F, 0x006D }, /* SMALL ROMAN NUMERAL ONE THOUSAND */ - { 0x2215, 0x002F }, /* DIVISION SLASH */ - { 0x2217, 0x002A }, /* ASTERIX OPERATOR */ - { 0xFF00, 0x0020 }, /* FULLWIDTH ASCII FORMS */ - { 0xFF01, 0x0021 }, /* FULLWIDTH ASCII FORMS */ - { 0xFF02, 0x0022 }, /* FULLWIDTH ASCII FORMS*/ - { 0xFF03, 0x0023 }, /* FULLWIDTH ASCII FORMS */ - { 0xFF04, 0x0024 }, /* FULLWIDTH ASCII FORMS*/ - { 0xFF05, 0x0025 }, /* FULLWIDTH ASCII FORMS */ - { 0xFF06, 0x0026 }, /* FULLWIDTH ASCII FORMS*/ - { 0xFF07, 0x0027 }, /* FULLWIDTH ASCII FORMS */ - { 0xFF08, 0x0028 }, /* FULLWIDTH ASCII FORMS*/ - { 0xFF09, 0x0029 }, /* FULLWIDTH ASCII FORMS */ - { 0xFF0A, 0x002A }, /* FULLWIDTH ASCII FORMS*/ - { 0xFF0B, 0x002B }, /* FULLWIDTH ASCII FORMS */ - { 0xFF0C, 0x002C }, /* FULLWIDTH ASCII FORMS*/ - { 0xFF0D, 0x002D }, /* FULLWIDTH ASCII FORMS */ - { 0xFF0E, 0x002E }, /* FULLWIDTH ASCII FORMS*/ - { 0xFF0F, 0x002F }, /* FULLWIDTH ASCII FORMS */ - { 0xFF10, 0x0030 }, /* FULLWIDTH ASCII FORMS */ - { 0xFF11, 0x0031 }, /* FULLWIDTH ASCII FORMS */ - { 0xFF12, 0x0032 }, /* FULLWIDTH ASCII FORMS*/ - { 0xFF13, 0x0033 }, /* FULLWIDTH ASCII FORMS */ - { 0xFF14, 0x0034 }, /* FULLWIDTH ASCII FORMS*/ - { 0xFF15, 0x0035 }, /* FULLWIDTH ASCII FORMS */ - { 0xFF16, 0x0036 }, /* FULLWIDTH ASCII FORMS*/ - { 0xFF17, 0x0037 }, /* FULLWIDTH ASCII FORMS */ - { 0xFF18, 0x0038 }, /* FULLWIDTH ASCII FORMS*/ - { 0xFF19, 0x0039 }, /* FULLWIDTH ASCII FORMS */ - { 0xFF1A, 0x003A }, /* FULLWIDTH ASCII FORMS*/ - { 0xFF1B, 0x003B }, /* FULLWIDTH ASCII FORMS */ - { 0xFF1C, 0x003C }, /* FULLWIDTH ASCII FORMS*/ - { 0xFF1D, 0x003D }, /* FULLWIDTH ASCII FORMS */ - { 0xFF1E, 0x003E }, /* FULLWIDTH ASCII FORMS*/ - { 0xFF1F, 0x003F }, /* FULLWIDTH ASCII FORMS */ - { 0xFF20, 0x0040 }, /* FULLWIDTH ASCII FORMS */ - { 0xFF21, 0x0041 }, /* FULLWIDTH ASCII FORMS */ - { 0xFF22, 0x0042 }, /* FULLWIDTH ASCII FORMS*/ - { 0xFF23, 0x0043 }, /* FULLWIDTH ASCII FORMS */ - { 0xFF24, 0x0044 }, /* FULLWIDTH ASCII FORMS*/ - { 0xFF25, 0x0045 }, /* FULLWIDTH ASCII FORMS */ - { 0xFF26, 0x0046 }, /* FULLWIDTH ASCII FORMS*/ - { 0xFF27, 0x0047 }, /* FULLWIDTH ASCII FORMS */ - { 0xFF28, 0x0048 }, /* FULLWIDTH ASCII FORMS*/ - { 0xFF29, 0x0049 }, /* FULLWIDTH ASCII FORMS */ - { 0xFF2A, 0x004A }, /* FULLWIDTH ASCII FORMS*/ - { 0xFF2B, 0x004B }, /* FULLWIDTH ASCII FORMS */ - { 0xFF2C, 0x004C }, /* FULLWIDTH ASCII FORMS*/ - { 0xFF2D, 0x004D }, /* FULLWIDTH ASCII FORMS */ - { 0xFF2E, 0x004E }, /* FULLWIDTH ASCII FORMS*/ - { 0xFF2F, 0x004F }, /* FULLWIDTH ASCII FORMS */ - { 0xFF30, 0x0050 }, /* FULLWIDTH ASCII FORMS */ - { 0xFF31, 0x0051 }, /* FULLWIDTH ASCII FORMS */ - { 0xFF32, 0x0052 }, /* FULLWIDTH ASCII FORMS*/ - { 0xFF33, 0x0053 }, /* FULLWIDTH ASCII FORMS */ - { 0xFF34, 0x0054 }, /* FULLWIDTH ASCII FORMS*/ - { 0xFF35, 0x0055 }, /* FULLWIDTH ASCII FORMS */ - { 0xFF36, 0x0056 }, /* FULLWIDTH ASCII FORMS*/ - { 0xFF37, 0x0057 }, /* FULLWIDTH ASCII FORMS */ - { 0xFF38, 0x0058 }, /* FULLWIDTH ASCII FORMS*/ - { 0xFF39, 0x0059 }, /* FULLWIDTH ASCII FORMS */ - { 0xFF3A, 0x005A }, /* FULLWIDTH ASCII FORMS*/ - { 0xFF3B, 0x005B }, /* FULLWIDTH ASCII FORMS */ - { 0xFF3C, 0x005C }, /* FULLWIDTH ASCII FORMS*/ - { 0xFF3D, 0x005D }, /* FULLWIDTH ASCII FORMS */ - { 0xFF3E, 0x005E }, /* FULLWIDTH ASCII FORMS*/ - { 0xFF3F, 0x005F }, /* FULLWIDTH ASCII FORMS */ - { 0xFF40, 0x0060 }, /* FULLWIDTH ASCII FORMS */ - { 0xFF41, 0x0061 }, /* FULLWIDTH ASCII FORMS */ - { 0xFF42, 0x0062 }, /* FULLWIDTH ASCII FORMS*/ - { 0xFF43, 0x0063 }, /* FULLWIDTH ASCII FORMS */ - { 0xFF44, 0x0064 }, /* FULLWIDTH ASCII FORMS*/ - { 0xFF45, 0x0065 }, /* FULLWIDTH ASCII FORMS */ - { 0xFF46, 0x0066 }, /* FULLWIDTH ASCII FORMS*/ - { 0xFF47, 0x0067 }, /* FULLWIDTH ASCII FORMS */ - { 0xFF48, 0x0068 }, /* FULLWIDTH ASCII FORMS*/ - { 0xFF49, 0x0069 }, /* FULLWIDTH ASCII FORMS */ - { 0xFF4A, 0x006A }, /* FULLWIDTH ASCII FORMS*/ - { 0xFF4B, 0x006B }, /* FULLWIDTH ASCII FORMS */ - { 0xFF4C, 0x006C }, /* FULLWIDTH ASCII FORMS*/ - { 0xFF4D, 0x006D }, /* FULLWIDTH ASCII FORMS */ - { 0xFF4E, 0x006E }, /* FULLWIDTH ASCII FORMS*/ - { 0xFF4F, 0x006F }, /* FULLWIDTH ASCII FORMS */ - { 0xFF50, 0x0070 }, /* FULLWIDTH ASCII FORMS */ - { 0xFF51, 0x0071 }, /* FULLWIDTH ASCII FORMS */ - { 0xFF52, 0x0072 }, /* FULLWIDTH ASCII FORMS*/ - { 0xFF53, 0x0073 }, /* FULLWIDTH ASCII FORMS */ - { 0xFF54, 0x0074 }, /* FULLWIDTH ASCII FORMS*/ - { 0xFF55, 0x0075 }, /* FULLWIDTH ASCII FORMS */ - { 0xFF56, 0x0076 }, /* FULLWIDTH ASCII FORMS*/ - { 0xFF57, 0x0077 }, /* FULLWIDTH ASCII FORMS */ - { 0xFF58, 0x0078 }, /* FULLWIDTH ASCII FORMS*/ - { 0xFF59, 0x0079 }, /* FULLWIDTH ASCII FORMS */ - { 0xFF5A, 0x007A }, /* FULLWIDTH ASCII FORMS*/ - { 0xFF5B, 0x007B }, /* FULLWIDTH ASCII FORMS */ - { 0xFF5C, 0x007C }, /* FULLWIDTH ASCII FORMS*/ - { 0xFF5D, 0x007D }, /* FULLWIDTH ASCII FORMS */ - { 0xFF5E, 0x007E }, /* FULLWIDTH ASCII FORMS*/ - { 0xFF5F, 0x007F }, /* FULLWIDTH ASCII FORMS */ - { 0xFF61, 0x3002 }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF62, 0x300C }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF63, 0x300D }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF64, 0x3001 }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF65, 0x30FB }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF66, 0x30F2 }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF67, 0x30A1 }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF68, 0x30A3 }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF69, 0x30A5 }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF6A, 0x30A7 }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF6B, 0x30A9 }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF6C, 0x30E3 }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF6D, 0x30E5 }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF6E, 0x30E7 }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF6F, 0x30C3 }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF70, 0x30FC }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF71, 0x30A2 }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF72, 0x30A4 }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF73, 0x30A6 }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF74, 0x30A8 }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF75, 0x30AA }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF76, 0x30AB }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF77, 0x30AD }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF78, 0x30AF }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF79, 0x30B1 }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF7A, 0x30B3 }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF7B, 0x30B5 }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF7C, 0x30B7 }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF7D, 0x30B9 }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF7E, 0x30BB }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF7F, 0x30BD }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF80, 0x30BF }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF81, 0x30C1 }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF82, 0x30C4 }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF83, 0x30C6 }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF84, 0x30C8 }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF85, 0x30CA }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF86, 0x30CB }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF87, 0x30CC }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF88, 0x30CD }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF89, 0x30CE }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF8A, 0x30CF }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF8B, 0x30D2 }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF8C, 0x30D5 }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF8D, 0x30D8 }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF8E, 0x30DB }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF8F, 0x30DE }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF90, 0x30DF }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF91, 0x30E0 }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF92, 0x30E1 }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF93, 0x30E2 }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF94, 0x30E4 }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF95, 0x30E6 }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF96, 0x30E8 }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF97, 0x30E9 }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF98, 0x30EA }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF99, 0x30EB }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF9A, 0x30EC }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF9B, 0x30ED }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF9C, 0x30EF }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF9D, 0x30F3 }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF9E, 0x309B }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFF9F, 0x309C }, /* HALFWIDTH KATAKANA FORMS */ - { 0xFFA0, 0x3164 }, /* HALFWIDTH HANGUL FORMS */ - { 0xFFA1, 0x3131 }, /* HALFWIDTH HANGUL FORMS */ - { 0xFFA2, 0x3132 }, /* HALFWIDTH HANGUL FORMS */ - { 0xFFA3, 0x3133 }, /* HALFWIDTH HANGUL FORMS */ - { 0xFFA4, 0x3134 }, /* HALFWIDTH HANGUL FORMS */ - { 0xFFA5, 0x3135 }, /* HALFWIDTH HANGUL FORMS */ - { 0xFFA6, 0x3136 }, /* HALFWIDTH HANGUL FORMS */ - { 0xFFA7, 0x3137 }, /* HALFWIDTH HANGUL FORMS */ - { 0xFFA8, 0x3138 }, /* HALFWIDTH HANGUL FORMS */ - { 0xFFA9, 0x3139 }, /* HALFWIDTH HANGUL FORMS */ - { 0xFFAA, 0x313A }, /* HALFWIDTH HANGUL FORMS */ - { 0xFFAB, 0x313B }, /* HALFWIDTH HANGUL FORMS */ - { 0xFFAC, 0x313C }, /* HALFWIDTH HANGUL FORMS */ - { 0xFFAD, 0x313D }, /* HALFWIDTH HANGUL FORMS */ - { 0xFFAE, 0x313E }, /* HALFWIDTH HANGUL FORMS */ - { 0xFFAF, 0x313F }, /* HALFWIDTH HANGUL FORMS */ - { 0xFFB0, 0x3140 }, /* HALFWIDTH HANGUL FORMS */ - { 0xFFB1, 0x3141 }, /* HALFWIDTH HANGUL FORMS */ - { 0xFFB2, 0x3142 }, /* HALFWIDTH HANGUL FORMS */ - { 0xFFB3, 0x3143 }, /* HALFWIDTH HANGUL FORMS */ - { 0xFFB4, 0x3144 }, /* HALFWIDTH HANGUL FORMS */ - { 0xFFB5, 0x3145 }, /* HALFWIDTH HANGUL FORMS */ - { 0xFFB6, 0x3146 }, /* HALFWIDTH HANGUL FORMS */ - { 0xFFB7, 0x3147 }, /* HALFWIDTH HANGUL FORMS */ - { 0xFFB8, 0x3148 }, /* HALFWIDTH HANGUL FORMS */ - { 0xFFB9, 0x3149 }, /* HALFWIDTH HANGUL FORMS */ - { 0xFFBA, 0x314A }, /* HALFWIDTH HANGUL FORMS */ - { 0xFFBB, 0x314B }, /* HALFWIDTH HANGUL FORMS */ - { 0xFFBC, 0x314C }, /* HALFWIDTH HANGUL FORMS */ - { 0xFFBD, 0x314D }, /* HALFWIDTH HANGUL FORMS */ - { 0xFFBE, 0x314E }, /* HALFWIDTH HANGUL FORMS */ - { 0xFFC2, 0x314F }, /* HALFWIDTH HANGUL FORMS */ - { 0xFFC3, 0x3150 }, /* HALFWIDTH HANGUL FORMS */ - { 0xFFC4, 0x3151 }, /* HALFWIDTH HANGUL FORMS */ - { 0xFFC5, 0x3152 }, /* HALFWIDTH HANGUL FORMS */ - { 0xFFC6, 0x3153 }, /* HALFWIDTH HANGUL FORMS */ - { 0xFFC7, 0x3154 }, /* HALFWIDTH HANGUL FORMS */ - { 0xFFCA, 0x3155 }, /* HALFWIDTH HANGUL FORMS */ - { 0xFFCB, 0x3156 }, /* HALFWIDTH HANGUL FORMS */ - { 0xFFCC, 0x3157 }, /* HALFWIDTH HANGUL FORMS */ - { 0xFFCD, 0x3158 }, /* HALFWIDTH HANGUL FORMS */ - { 0xFFCE, 0x3159 }, /* HALFWIDTH HANGUL FORMS */ - { 0xFFCF, 0x315A }, /* HALFWIDTH HANGUL FORMS */ - { 0xFFD2, 0x315B }, /* HALFWIDTH HANGUL FORMS */ - { 0xFFD3, 0x315C }, /* HALFWIDTH HANGUL FORMS */ - { 0xFFD4, 0x315D }, /* HALFWIDTH HANGUL FORMS */ - { 0xFFD5, 0x315E }, /* HALFWIDTH HANGUL FORMS */ - { 0xFFD6, 0x315F }, /* HALFWIDTH HANGUL FORMS */ - { 0xFFD7, 0x3160 }, /* HALFWIDTH HANGUL FORMS */ - { 0xFFDA, 0x3161 }, /* HALFWIDTH HANGUL FORMS */ - { 0xFFDB, 0x3162 }, /* HALFWIDTH HANGUL FORMS */ - { 0xFFDC, 0x3163 }, /* HALFWIDTH HANGUL FORMS */ - { 0xFFE0, 0x00A2 }, /* FULLWIDTH CENT SIGN */ - { 0xFFE1, 0x00A3 }, /* FULLWIDTH POUND SIGN */ - { 0xFFE2, 0x00AC }, /* FULLWIDTH NOT SIGN */ - { 0xFFE3, 0x00AF }, /* FULLWIDTH MACRON */ - { 0xFFE4, 0x00A6 }, /* FULLWIDTH BROKEN BAR */ - { 0xFFE5, 0x00A5 }, /* FULLWIDTH YEN SIGN */ - { 0xFFE6, 0x20A9 }, /* FULLWIDTH WON SIGN */ - { 0xFFE8, 0x2502 }, /* HALFWIDTH FORMS LIGHT VERTICAL */ - { 0xFFE9, 0x2190 }, /* HALFWIDTH LEFTWARDS ARROW */ - { 0xFFEA, 0x2191 }, /* HALFWIDTH UPWARDS ARROW */ - { 0xFFEB, 0x2192 }, /* HALFWIDTH RIGHTWARDS ARROW */ - { 0xFFEC, 0x2193 }, /* HALFWIDTH DOWNWARDS ARROW */ - { 0xFFED, 0x25A0 }, /* HALFWIDTH BLACK SQUARE */ - { 0xFFEE, 0x25CB }, /* HALFWIDTH WHITE CIRCLE */ - { 0xFFFD, 0x003F } /* REPLACEMENT CHARACTER */ -}; - -sal_uInt16 ImplGetReplaceChar( sal_Unicode c ) -{ - sal_uInt16 nLow; - sal_uInt16 nHigh; - sal_uInt16 nMid; - sal_uInt16 nCompareChar; - const ImplReplaceCharData* pCharData; - - nLow = 0; - nHigh = (sizeof( aImplRepCharTab )/sizeof( ImplReplaceCharData ))-1; - do + else { - nMid = (nLow+nHigh)/2; - pCharData = aImplRepCharTab+nMid; - nCompareChar = pCharData->mnUniChar; - if ( c < nCompareChar ) - { - if ( !nMid ) - break; - nHigh = nMid-1; - } - else - { - if ( c > nCompareChar ) - nLow = nMid+1; - else - return pCharData->mnReplaceChar; - } + *pInfo |= RTL_UNICODETOTEXT_INFO_ERROR + | RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL; + return sal_False; } - while ( nLow <= nHigh ); - return 0; + return sal_True; } -/* ----------------------------------------------------------------------- */ - -typedef struct _ImplReplaceCharStrData -{ - sal_uInt16 mnUniChar; - sal_uInt16 maReplaceChars[IMPL_MAX_REPLACECHAR]; -} ImplReplaceCharStrData; - -static ImplReplaceCharStrData const aImplRepCharStrTab[] = -{ - { 0x00A9, { 0x0028, 0x0063, 0x0029, 0x0000, 0x0000 } }, /* COPYRIGHT SIGN */ - { 0x00AB, { 0x003C, 0x003C, 0x0000, 0x0000, 0x0000 } }, /* LEFT-POINTING-DOUBLE ANGLE QUOTATION MARK */ - { 0x0AE0, { 0x0028, 0x0072, 0x0029, 0x0000, 0x0000 } }, /* REGISTERED SIGN */ - { 0x00BB, { 0x003E, 0x003E, 0x0000, 0x0000, 0x0000 } }, /* RIGHT-POINTING-DOUBLE ANGLE QUOTATION MARK */ - { 0x00BC, { 0x0031, 0x002F, 0x0034, 0x0000, 0x0000 } }, /* VULGAR FRACTION ONE QUARTER */ - { 0x00BD, { 0x0031, 0x002F, 0x0032, 0x0000, 0x0000 } }, /* VULGAR FRACTION ONE HALF */ - { 0x00BE, { 0x0033, 0x002F, 0x0034, 0x0000, 0x0000 } }, /* VULGAR FRACTION THREE QUARTERS */ - { 0x00C6, { 0x0041, 0x0045, 0x0000, 0x0000, 0x0000 } }, /* LATIN CAPITAL LETTER AE */ - { 0x00E6, { 0x0061, 0x0065, 0x0000, 0x0000, 0x0000 } }, /* LATIN SMALL LETTER AE */ - { 0x0152, { 0x004F, 0x0045, 0x0000, 0x0000, 0x0000 } }, /* LATIN CAPITAL LIGATURE OE */ - { 0x0153, { 0x006F, 0x0065, 0x0000, 0x0000, 0x0000 } }, /* LATIN SMALL LIGATURE OE */ - { 0x2025, { 0x002E, 0x002E, 0x0000, 0x0000, 0x0000 } }, /* TWO DOT LEADER */ - { 0x2026, { 0x002E, 0x002E, 0x002E, 0x0000, 0x0000 } }, /* HORIZONTAL ELLIPSES */ - { 0x2034, { 0x0027, 0x0027, 0x0027, 0x0000, 0x0000 } }, /* TRIPPLE PRIME */ - { 0x2037, { 0x0027, 0x0027, 0x0027, 0x0000, 0x0000 } }, /* RESERVED TRIPPLE PRIME */ - { 0x20AC, { 0x0045, 0x0055, 0x0052, 0x0000, 0x0000 } }, /* EURO SIGN */ - { 0x2122, { 0x0028, 0x0074, 0x006D, 0x0029, 0x0000 } }, /* TRADE MARK SIGN */ - { 0x2153, { 0x0031, 0x002F, 0x0033, 0x0000, 0x0000 } }, /* VULGAR FRACTION ONE THIRD */ - { 0x2154, { 0x0032, 0x002F, 0x0033, 0x0000, 0x0000 } }, /* VULGAR FRACTION TWO THIRD */ - { 0x2155, { 0x0031, 0x002F, 0x0035, 0x0000, 0x0000 } }, /* VULGAR FRACTION ONE FIFTH */ - { 0x2156, { 0x0032, 0x002F, 0x0035, 0x0000, 0x0000 } }, /* VULGAR FRACTION TWO FIFTH */ - { 0x2157, { 0x0033, 0x002F, 0x0035, 0x0000, 0x0000 } }, /* VULGAR FRACTION THREE FIFTH */ - { 0x2158, { 0x0034, 0x002F, 0x0035, 0x0000, 0x0000 } }, /* VULGAR FRACTION FOUR FIFTH */ - { 0x2159, { 0x0031, 0x002F, 0x0036, 0x0000, 0x0000 } }, /* VULGAR FRACTION ONE SIXTH */ - { 0x215A, { 0x0035, 0x002F, 0x0036, 0x0000, 0x0000 } }, /* VULGAR FRACTION FIVE SIXTH */ - { 0x215B, { 0x0031, 0x002F, 0x0038, 0x0000, 0x0000 } }, /* VULGAR FRACTION ONE EIGHTH */ - { 0x215C, { 0x0033, 0x002F, 0x0038, 0x0000, 0x0000 } }, /* VULGAR FRACTION THREE EIGHTH */ - { 0x215D, { 0x0035, 0x002F, 0x0038, 0x0000, 0x0000 } }, /* VULGAR FRACTION FIVE EIGHTH */ - { 0x215E, { 0x0037, 0x002F, 0x0038, 0x0000, 0x0000 } }, /* VULGAR FRACTION SEVEN EIGHTH */ - { 0x215F, { 0x0031, 0x002F, 0x0000, 0x0000, 0x0000 } }, /* FRACTION NUMERATOR ONE */ - { 0x2161, { 0x0049, 0x0049, 0x0000, 0x0000, 0x0000 } }, /* ROMAN NUMERAL TWO */ - { 0x2162, { 0x0049, 0x0049, 0x0049, 0x0000, 0x0000 } }, /* ROMAN NUMERAL THREE */ - { 0x2163, { 0x0049, 0x0056, 0x0000, 0x0000, 0x0000 } }, /* ROMAN NUMERAL FOUR */ - { 0x2165, { 0x0056, 0x0049, 0x0000, 0x0000, 0x0000 } }, /* ROMAN NUMERAL SIX */ - { 0x2166, { 0x0056, 0x0049, 0x0049, 0x0000, 0x0000 } }, /* ROMAN NUMERAL SEVEN */ - { 0x2168, { 0x0056, 0x0049, 0x0049, 0x0049, 0x0000 } }, /* ROMAN NUMERAL EIGHT */ - { 0x2169, { 0x0049, 0x0058, 0x0000, 0x0000, 0x0000 } }, /* ROMAN NUMERAL NINE */ - { 0x216A, { 0x0058, 0x0049, 0x0000, 0x0000, 0x0000 } }, /* ROMAN NUMERAL ELEVEN */ - { 0x216B, { 0x0058, 0x0049, 0x0049, 0x0000, 0x0000 } }, /* ROMAN NUMERAL TWELVE */ - { 0x2171, { 0x0069, 0x0069, 0x0000, 0x0000, 0x0000 } }, /* SMALL ROMAN NUMERAL TWO */ - { 0x2172, { 0x0069, 0x0069, 0x0069, 0x0000, 0x0000 } }, /* SMALL ROMAN NUMERAL THREE */ - { 0x2173, { 0x0069, 0x0076, 0x0000, 0x0000, 0x0000 } }, /* SMALL ROMAN NUMERAL FOUR */ - { 0x2175, { 0x0076, 0x0069, 0x0000, 0x0000, 0x0000 } }, /* SMALL ROMAN NUMERAL SIX */ - { 0x2176, { 0x0076, 0x0069, 0x0069, 0x0000, 0x0000 } }, /* SMALL ROMAN NUMERAL SEVEN */ - { 0x2178, { 0x0076, 0x0069, 0x0069, 0x0069, 0x0000 } }, /* SMALL ROMAN NUMERAL EIGHT */ - { 0x2179, { 0x0069, 0x0078, 0x0000, 0x0000, 0x0000 } }, /* SMALL ROMAN NUMERAL NINE */ - { 0x217A, { 0x0078, 0x0069, 0x0000, 0x0000, 0x0000 } }, /* SMALL ROMAN NUMERAL ELEVEN */ - { 0x217B, { 0x0058, 0x0069, 0x0069, 0x0000, 0x0000 } } /* SMALL ROMAN NUMERAL TWELVE */ -}; - -const sal_uInt16* ImplGetReplaceString( sal_Unicode c ) -{ - sal_uInt16 nLow; - sal_uInt16 nHigh; - sal_uInt16 nMid; - sal_uInt16 nCompareChar; - const ImplReplaceCharStrData* pCharData; - - nLow = 0; - nHigh = (sizeof( aImplRepCharStrTab )/sizeof( ImplReplaceCharStrData ))-1; - do - { - nMid = (nLow+nHigh)/2; - pCharData = aImplRepCharStrTab+nMid; - nCompareChar = pCharData->mnUniChar; - if ( c < nCompareChar ) - { - if ( !nMid ) - break; - nHigh = nMid-1; - } - else - { - if ( c > nCompareChar ) - nLow = nMid+1; - else - return pCharData->maReplaceChars; - } - } - while ( nLow <= nHigh ); - - return 0; -} diff --git a/sal/textenc/tenchelp.h b/sal/textenc/tenchelp.h index 2a5c2c85a..96e14f8c2 100644 --- a/sal/textenc/tenchelp.h +++ b/sal/textenc/tenchelp.h @@ -2,9 +2,9 @@ * * $RCSfile: tenchelp.h,v $ * - * $Revision: 1.4 $ + * $Revision: 1.5 $ * - * last change: $Author: th $ $Date: 2001-05-18 13:53:18 $ + * last change: $Author: sb $ $Date: 2001-10-12 10:44:53 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -59,159 +59,114 @@ * ************************************************************************/ -#ifndef _RTL_TENCHELP_H -#define _RTL_TENCHELP_H +#ifndef INCLUDED_RTL_TEXTENC_TENCHELP_H +#define INCLUDED_RTL_TEXTENC_TENCHELP_H -#ifndef _RTL_TEXTENC_H -#include <rtl/textenc.h> -#endif #ifndef _RTL_TENCINFO_H -#include <rtl/tencinfo.h> +#include "rtl/tencinfo.h" #endif - -/* ----------- */ -/* - Scripts - */ -/* ----------- */ - -typedef sal_uInt16 rtl_Script; -#define SCRIPT_DONTKNOW ((rtl_Script)0) -#define SCRIPT_UNICODE ((rtl_Script)1) -#define SCRIPT_SYMBOL ((rtl_Script)2) -#define SCRIPT_LATIN ((rtl_Script)3) -#define SCRIPT_EASTEUROPE ((rtl_Script)4) -#define SCRIPT_CYRILLIC ((rtl_Script)5) -#define SCRIPT_BALTIC ((rtl_Script)6) -#define SCRIPT_TURKISH ((rtl_Script)7) -#define SCRIPT_GREEK ((rtl_Script)8) -#define SCRIPT_JAPANESE ((rtl_Script)9) -#define SCRIPT_CHINESE_SIMPLIFIED ((rtl_Script)10) -#define SCRIPT_CHINESE_TRADITIONAL ((rtl_Script)11) -#define SCRIPT_KOREAN ((rtl_Script)12) -#define SCRIPT_ARABIC ((rtl_Script)13) -#define SCRIPT_HEBREW ((rtl_Script)14) -#define SCRIPT_ARMENIAN ((rtl_Script)15) -#define SCRIPT_DEVANAGARI ((rtl_Script)16) -#define SCRIPT_BENGALI ((rtl_Script)17) -#define SCRIPT_GURMUKHI ((rtl_Script)18) -#define SCRIPT_GUJARATI ((rtl_Script)19) -#define SCRIPT_ORIYA ((rtl_Script)20) -#define SCRIPT_TAMIL ((rtl_Script)21) -#define SCRIPT_TELUGU ((rtl_Script)22) -#define SCRIPT_KANNADA ((rtl_Script)23) -#define SCRIPT_MALAYALAM ((rtl_Script)24) -#define SCRIPT_THAI ((rtl_Script)25) -#define SCRIPT_VIETNAMESE ((rtl_Script)26) -#define SCRIPT_LAO ((rtl_Script)27) -#define SCRIPT_GEORGIEN ((rtl_Script)28) - -/* -------- */ -/* - Help - */ -/* -------- */ - -#ifndef NULL -#define NULL ((void*)0) +#ifndef _RTL_TEXTENC_H +#include "rtl/textenc.h" +#endif +#ifndef _SAL_TYPES_H_ +#include "sal/types.h" #endif -#define RTL_UNICODE_START_HIGH_SURROGATES 0xD800 -#define RTL_UNICODE_END_HIGH_SURROGATES 0xDBFF -#define RTL_UNICODE_START_LOW_SURROGATES 0xDC00 -#define RTL_UNICODE_END_LOW_SURROGATES 0xDFFF +#if defined __cplusplus +extern "C" { +#endif /* __cplusplus */ -#define RTL_UNICODE_SURROGATES_HALFMASK 0x03FFUL -#define RTL_UNICODE_SURROGATES_HALFBASE 0x0010000UL -#define RTL_UNICODE_SURROGATES_HALFSHIFT 10 +#define RTL_UNICODE_START_HIGH_SURROGATES 0xD800 +#define RTL_UNICODE_END_HIGH_SURROGATES 0xDBFF +#define RTL_UNICODE_START_LOW_SURROGATES 0xDC00 +#define RTL_UNICODE_END_LOW_SURROGATES 0xDFFF -#define RTL_UNICODE_CHAR_DEFAULT 0xFFFD +#define RTL_UNICODE_CHAR_DEFAULT 0xFFFD -#define RTL_TEXTCVT_BYTE_PRIVATE_START 0xF100 -#define RTL_TEXTCVT_BYTE_PRIVATE_END 0xF1FF +#define RTL_TEXTCVT_BYTE_PRIVATE_START 0xF100 +#define RTL_TEXTCVT_BYTE_PRIVATE_END 0xF1FF /* ----------------- */ /* - TextConverter - */ /* ----------------- */ -typedef struct _ImplTextConverterData -{ - const void* mpConvertTables; - sal_Char* mpTextDefChar; - sal_Unicode mcUnicodeDefChar; -} ImplTextConverterData; - -typedef sal_Size (*ImplConvertToUnicodeProc)( const ImplTextConverterData* pData, - void* pContext, - const sal_Char* pSrcBuf, sal_Size nSrcBytes, - sal_Unicode* pDestBuf, sal_Size nDestChars, - sal_uInt32 nFlags, sal_uInt32* pInfo, - sal_Size* pSrcCvtBytes ); -typedef sal_Size (*ImplConvertToTextProc)( const ImplTextConverterData* pData, - void* pContext, - const sal_Unicode* pSrcBuf, sal_Size nSrcChars, - sal_Char* pDestBuf, sal_Size nDestBytes, - sal_uInt32 nFlags, sal_uInt32* pInfo, - sal_Size* pSrcCvtChars ); -typedef void* (*ImplCreateTextContextProc)( void ); -typedef void (*ImplDestroyTextContextProc)( void* pContext ); -typedef void (*ImplResetTextContextProc)( void* pContext ); -typedef void* (*ImplCreateUnicodeContextProc)( void ); -typedef void (*ImplDestroyUnicodeContextProc)( void* pContext ); -typedef void (*ImplResetUnicodeContextProc)( void* pContext ); - -typedef struct _ImplTextConverter -{ - const ImplTextConverterData* mpConvertData; - ImplConvertToUnicodeProc mpConvertTextToUnicodeProc; - ImplConvertToTextProc mpConvertUnicodeToTextProc; - ImplCreateTextContextProc mpCreateTextToUnicodeContext; - ImplDestroyTextContextProc mpDestroyTextToUnicodeContext; - ImplResetTextContextProc mpResetTextToUnicodeContext; - ImplCreateUnicodeContextProc mpCreateUnicodeToTextContext; - ImplDestroyUnicodeContextProc mpDestroyUnicodeToTextContext; - ImplResetUnicodeContextProc mpResetUnicodeToTextContext; -} ImplTextConverter; +typedef void ImplTextConverterData; + +typedef +sal_Size (* ImplConvertToUnicodeProc)(ImplTextConverterData const * pData, + void * pContext, + sal_Char const * pSrcBuf, + sal_Size nSrcBytes, + sal_Unicode * pDestBuf, + sal_Size nDestChars, + sal_uInt32 nFlags, + sal_uInt32 * pInfo, + sal_Size * pSrcCvtBytes); + +typedef +sal_Size (* ImplConvertToTextProc)(ImplTextConverterData const * pData, + void * pContext, + sal_Unicode const * pSrcBuf, + sal_Size nSrcChars, + sal_Char * pDestBuf, + sal_Size nDestBytes, + sal_uInt32 nFlags, + sal_uInt32 * pInfo, + sal_Size * pSrcCvtChars); + +typedef void * (* ImplCreateTextContextProc)(void); -#define RTL_TEXTTOUNICODECONTEXT_NOTUSED ((rtl_TextToUnicodeContext)1) -#define RTL_UNICODETOTEXTCONTEXT_NOTUSED ((rtl_UnicodeToTextContext)1) +typedef void (* ImplDestroyTextContextProc)(void * pContext); -/* ---------------------------- */ -/* - TextEncoding - InfoFlags - */ -/* ---------------------------- */ +typedef void (* ImplResetTextContextProc)(void * pContext); -#define RTL_TEXTENCODING_INFO_WIN ((sal_uInt32)0x0100) -#define RTL_TEXTENCODING_INFO_DOS_OS2 ((sal_uInt32)0x0200) -#define RTL_TEXTENCODING_INFO_MAC ((sal_uInt32)0x0400) +typedef void * (* ImplCreateUnicodeContextProc)(void); + +typedef void (* ImplDestroyUnicodeContextProc)(void * pContext); + +typedef void (* ImplResetUnicodeContextProc)(void * pContext); + +typedef struct +{ + ImplTextConverterData const * mpConvertData; + ImplConvertToUnicodeProc mpConvertTextToUnicodeProc; + ImplConvertToTextProc mpConvertUnicodeToTextProc; + ImplCreateTextContextProc mpCreateTextToUnicodeContext; + ImplDestroyTextContextProc mpDestroyTextToUnicodeContext; + ImplResetTextContextProc mpResetTextToUnicodeContext; + ImplCreateUnicodeContextProc mpCreateUnicodeToTextContext; + ImplDestroyUnicodeContextProc mpDestroyUnicodeToTextContext; + ImplResetUnicodeContextProc mpResetUnicodeToTextContext; +} ImplTextConverter; /* ----------------------------- */ /* - TextEncoding - Structures - */ /* ----------------------------- */ -typedef struct _ImplTextEncodingData +typedef struct { - const ImplTextConverter* mpConverter; - rtl_TextEncoding meTextEncoding; - sal_uInt8 mnMinCharSize; - sal_uInt8 mnMaxCharSize; - sal_uInt8 mnAveCharSize; - sal_uInt8 mnBestWindowsCharset; - sal_uInt32 mnBestPCCodePage; - sal_uInt32 mnBestMacTextEncoding; - const sal_Char* mpBestUnixCharset; - const sal_Char* mpBestMimeCharset; - sal_uInt32 mnInfoFlags; - rtl_Script mnScript; + ImplTextConverter maConverter; + rtl_TextEncoding meTextEncoding; + sal_uInt8 mnMinCharSize; + sal_uInt8 mnMaxCharSize; + sal_uInt8 mnAveCharSize; + sal_uInt8 mnBestWindowsCharset; + char const * mpBestUnixCharset; + char const * mpBestMimeCharset; + sal_uInt32 mnInfoFlags; } ImplTextEncodingData; - /* ----------------------------------- */ /* - TextConverter - Byte-Structures - */ /* ----------------------------------- */ -typedef struct _ImplUniCharTabData +typedef struct { sal_uInt16 mnUniChar; sal_uChar mnChar; } ImplUniCharTabData; -typedef struct _ImplByteConvertData +typedef struct { const sal_uInt16* mpToUniTab1; const sal_uInt16* mpToUniTab2; @@ -233,7 +188,7 @@ typedef struct _ImplByteConvertData /* - TextConverter - DBCS-Structures - */ /* ----------------------------------- */ -typedef struct _ImplDBCSEUDCData +typedef struct { sal_uChar mnLeadStart; sal_uChar mnLeadEnd; @@ -249,7 +204,7 @@ typedef struct _ImplDBCSEUDCData sal_uInt16 mnUniEnd; } ImplDBCSEUDCData; -typedef struct _ImplDBCSToUniLeadTab +typedef struct { sal_uInt16 mnUniChar; sal_uInt8 mnTrailStart; @@ -257,14 +212,14 @@ typedef struct _ImplDBCSToUniLeadTab const sal_uInt16* mpToUniTrailTab; } ImplDBCSToUniLeadTab; -typedef struct _ImplUniToDBCSHighTab +typedef struct { sal_uInt8 mnLowStart; sal_uInt8 mnLowEnd; const sal_uInt16* mpToUniTrailTab; } ImplUniToDBCSHighTab; -typedef struct _ImplDBCSConvertData +typedef struct { const ImplDBCSToUniLeadTab* mpToUniLeadTab; const ImplUniToDBCSHighTab* mpToDBCSHighTab; @@ -278,7 +233,7 @@ typedef struct _ImplDBCSConvertData /* - TextConverter - EUC-Structures - */ /* ---------------------------------- */ -typedef struct _ImplEUCJPConvertData +typedef struct { const ImplDBCSToUniLeadTab* mpJIS0208ToUniLeadTab; const ImplDBCSToUniLeadTab* mpJIS0212ToUniLeadTab; @@ -286,32 +241,21 @@ typedef struct _ImplEUCJPConvertData const ImplUniToDBCSHighTab* mpUniToJIS0212HighTab; } ImplEUCJPConvertData; -/* -------------------------------------- */ -/* - TextConverter - ISO2022-Structures - */ -/* -------------------------------------- */ - -/* ---------------------------- */ -/* - TextEncoding - Functions - */ -/* ---------------------------- */ - -const ImplTextEncodingData* Impl_getTextEncodingData( rtl_TextEncoding eTextEncoding ); - /* --------------------------------- */ /* - TextConverter - HelpFunctions - */ /* --------------------------------- */ -sal_Unicode ImplGetUndefinedUnicodeChar( sal_uChar c, sal_uInt32 nFlags, const ImplTextConverterData* pData ); -sal_Size ImplGetUndefinedAsciiMultiByte( sal_uInt32 nFlags, const ImplTextConverterData* pData, sal_Char* pBuf, sal_Size nMaxLen ); -sal_Size ImplGetInvalidAsciiMultiByte( sal_uInt32 nFlags, const ImplTextConverterData* pData, sal_Char* pBuf, sal_Size nMaxLen ); +sal_Unicode ImplGetUndefinedUnicodeChar(sal_uChar cChar, sal_uInt32 nFlags); -#define IMPL_TEXTCVT_BREAK 1 -#define IMPL_TEXTCVT_CONTINUE 2 -int ImplHandleUndefinedUnicodeToTextChar( const ImplTextConverterData* pData, - const sal_Unicode** ppSrcBuf, const sal_Unicode* pEndSrcBuf, - sal_Char** ppDestBuf, const sal_Char* pEndDestBuf, - sal_uInt32 nFlags, sal_uInt32* pInfo ); - -int ImplIsUnicodeIgnoreChar( sal_Unicode c, sal_uInt32 nFlags ); +sal_Bool +ImplHandleUndefinedUnicodeToTextChar(ImplTextConverterData const * pData, + sal_Unicode const ** ppSrcBuf, + sal_Unicode const * pEndSrcBuf, + sal_Char ** ppDestBuf, + sal_Char const * pEndDestBuf, + sal_uInt32 nFlags, + sal_uInt32 * pInfo); + /* sal_True means 'continue,' sal_False means 'break' */ /* ----------------------------- */ /* - TextConverter - Functions - */ @@ -382,12 +326,8 @@ sal_Size ImplUnicodeToUTF8( const ImplTextConverterData* pData, void* pContext, sal_uInt32 nFlags, sal_uInt32* pInfo, sal_Size* pSrcCvtChars ); -/* ------------------------------------ */ -/* - TextConverter - ReplaceFunctions - */ -/* ------------------------------------ */ - -#define IMPL_MAX_REPLACECHAR 5 -sal_uInt16 ImplGetReplaceChar( sal_Unicode c ); -const sal_uInt16* ImplGetReplaceString( sal_Unicode c ); +#if defined __cplusplus +} +#endif /* __cplusplus */ -#endif /* _RTL_CCVTHELP_HXX */ +#endif /* INCLUDED_RTL_TEXTENC_TENCHELP_H */ diff --git a/sal/textenc/tencinfo.c b/sal/textenc/tencinfo.c index af056e4a1..4e8ff018d 100644 --- a/sal/textenc/tencinfo.c +++ b/sal/textenc/tencinfo.c @@ -2,9 +2,9 @@ * * $RCSfile: tencinfo.c,v $ * - * $Revision: 1.11 $ + * $Revision: 1.12 $ * - * last change: $Author: th $ $Date: 2001-08-22 09:52:54 $ + * last change: $Author: sb $ $Date: 2001-10-12 10:44:53 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -59,18 +59,28 @@ * ************************************************************************/ -#define _RTL_TENCINFO_C +#ifndef _RTL_TENCINFO_H +#include "rtl/tencinfo.h" +#endif -#include <string.h> +#ifndef INCLUDED_RTL_TEXTENC_GETTEXTENCODINGDATA_H +#include "gettextencodingdata.h" +#endif +#ifndef INCLUDED_RTL_TEXTENC_TENCHELP_H +#include "tenchelp.h" +#endif #ifndef _RTL_ALLOC_H -#include <rtl/alloc.h> +#include "rtl/alloc.h" #endif -#ifndef _RTL_TENCINFO_H -#include <rtl/tencinfo.h> + +#ifndef INCLUDED_STDDEF_H +#include <stddef.h> +#define INCLUDED_STDDEF_H #endif -#ifndef _RTL_TENCHELP_H -#include <tenchelp.h> +#ifndef INCLUDED_STRING_H +#include <string.h> +#define INCLUDED_STRING_H #endif /* ======================================================================= */ @@ -139,13 +149,13 @@ static sal_Bool Impl_matchString( const sal_Char* pCompStr, const sal_Char* pMat /* ======================================================================= */ -typedef struct _ImplStrCharsetDef +typedef struct { const sal_Char* mpCharsetStr; rtl_TextEncoding meTextEncoding; } ImplStrCharsetDef; -typedef struct _ImplStrFirstPartCharsetDef +typedef struct { const sal_Char* mpCharsetStr; const ImplStrCharsetDef* mpSecondPartTab; @@ -954,36 +964,14 @@ sal_uInt8 SAL_CALL rtl_getBestWindowsCharsetFromTextEncoding( rtl_TextEncoding e } /* ----------------------------------------------------------------------- */ -/* -sal_uInt32 SAL_CALL rtl_getBestPCCodePageFromTextEncoding( rtl_TextEncoding eTextEncoding ) -{ - const ImplTextEncodingData* pData = Impl_getTextEncodingData( eTextEncoding ); - if ( pData ) - return pData->mnBestPCCodePage; - else - return 0; -} -*/ -/* ----------------------------------------------------------------------- */ -/* -sal_uInt32 SAL_CALL rtl_getBestMacTextEncodingFromTextEncoding( rtl_TextEncoding eTextEncoding ) -{ - const ImplTextEncodingData* pData = Impl_getTextEncodingData( eTextEncoding ); - if ( pData ) - return pData->mnBestMacTextEncoding; - else - return 0xFFFFFFFF; -} -*/ -/* ----------------------------------------------------------------------- */ const sal_Char* SAL_CALL rtl_getBestUnixCharsetFromTextEncoding( rtl_TextEncoding eTextEncoding ) { const ImplTextEncodingData* pData = Impl_getTextEncodingData( eTextEncoding ); if ( pData ) - return pData->mpBestUnixCharset; + return (sal_Char const *) pData->mpBestUnixCharset; else if( eTextEncoding == RTL_TEXTENCODING_UNICODE ) - return "iso10646-1"; + return (sal_Char const *) "iso10646-1"; else return 0; } @@ -994,7 +982,7 @@ const sal_Char* SAL_CALL rtl_getBestMimeCharsetFromTextEncoding( rtl_TextEncodin { const ImplTextEncodingData* pData = Impl_getTextEncodingData( eTextEncoding ); if ( pData ) - return pData->mpBestMimeCharset; + return (sal_Char const *) pData->mpBestMimeCharset; else return 0; } diff --git a/sal/textenc/textcvt.c b/sal/textenc/textcvt.c index b3a325fed..385b42ab5 100644 --- a/sal/textenc/textcvt.c +++ b/sal/textenc/textcvt.c @@ -2,9 +2,9 @@ * * $RCSfile: textcvt.c,v $ * - * $Revision: 1.1.1.1 $ + * $Revision: 1.2 $ * - * last change: $Author: hr $ $Date: 2000-09-18 15:17:30 $ + * last change: $Author: sb $ $Date: 2001-10-12 10:44:53 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -59,13 +59,15 @@ * ************************************************************************/ -#define _RTL_TEXTCVT_C +#ifndef _RTL_TEXTCVT_H +#include "rtl/textcvt.h" +#endif -#ifndef _RTL_TENCHELP_H -#include <tenchelp.h> +#ifndef INCLUDED_RTL_TEXTENC_GETTEXTENCODINGDATA_H +#include "gettextencodingdata.h" #endif -#ifndef _RTL_TEXTCVT_H -#include <rtl/textcvt.h> +#ifndef INCLUDED_RTL_TEXTENC_TENCHELP_H +#include "tenchelp.h" #endif /* ======================================================================= */ @@ -75,8 +77,8 @@ static sal_Size ImplDummyToUnicode( const sal_Char* pSrcBuf, sal_Size nSrcBytes, sal_uInt32 nFlags, sal_uInt32* pInfo, sal_Size* pSrcCvtBytes ) { - sal_Unicode* pEndDestBuf; - const sal_Char* pEndSrcBuf; + sal_Unicode* pEndDestBuf; + const sal_Char* pEndSrcBuf; if ( ((nFlags & RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_MASK) == RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR) || ((nFlags & RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_MASK) == RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR) ) @@ -89,7 +91,7 @@ static sal_Size ImplDummyToUnicode( const sal_Char* pSrcBuf, sal_Size nSrcBytes, *pInfo = 0; pEndDestBuf = pDestBuf+nDestChars; - pEndSrcBuf = pSrcBuf+nSrcBytes; + pEndSrcBuf = pSrcBuf+nSrcBytes; while ( pSrcBuf < pEndSrcBuf ) { if ( pDestBuf == pEndDestBuf ) @@ -114,8 +116,8 @@ static sal_Size ImplUnicodeToDummy( const sal_Unicode* pSrcBuf, sal_Size nSrcCha sal_uInt32 nFlags, sal_uInt32* pInfo, sal_Size* pSrcCvtChars ) { - sal_Char* pEndDestBuf; - const sal_Unicode* pEndSrcBuf; + sal_Char* pEndDestBuf; + const sal_Unicode* pEndSrcBuf; if ( ((nFlags & RTL_UNICODETOTEXT_FLAGS_UNDEFINED_MASK) == RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR) ) { @@ -126,7 +128,7 @@ static sal_Size ImplUnicodeToDummy( const sal_Unicode* pSrcBuf, sal_Size nSrcCha *pInfo = 0; pEndDestBuf = pDestBuf+nDestBytes; - pEndSrcBuf = pSrcBuf+nSrcChars; + pEndSrcBuf = pSrcBuf+nSrcChars; while ( pSrcBuf < pEndSrcBuf ) { if ( pDestBuf == pEndDestBuf ) @@ -150,7 +152,7 @@ rtl_TextToUnicodeConverter SAL_CALL rtl_createTextToUnicodeConverter( rtl_TextEn { const ImplTextEncodingData* pData = Impl_getTextEncodingData( eTextEncoding ); if ( pData ) - return (rtl_TextToUnicodeConverter)pData->mpConverter; + return (rtl_TextToUnicodeConverter) &pData->maConverter; else return 0; } @@ -168,10 +170,10 @@ rtl_TextToUnicodeContext SAL_CALL rtl_createTextToUnicodeContext( rtl_TextToUnic const ImplTextConverter* pConverter = (const ImplTextConverter*)hConverter; if ( !pConverter ) return 0; - if ( pConverter->mpCreateTextToUnicodeContext ) + else if ( pConverter->mpCreateTextToUnicodeContext ) return (rtl_TextToUnicodeContext)pConverter->mpCreateTextToUnicodeContext(); else - return RTL_TEXTTOUNICODECONTEXT_NOTUSED; + return (rtl_TextToUnicodeContext)1; } /* ----------------------------------------------------------------------- */ @@ -228,7 +230,7 @@ rtl_UnicodeToTextConverter SAL_CALL rtl_createUnicodeToTextConverter( rtl_TextEn { const ImplTextEncodingData* pData = Impl_getTextEncodingData( eTextEncoding ); if ( pData ) - return (rtl_TextToUnicodeConverter)pData->mpConverter; + return (rtl_TextToUnicodeConverter) &pData->maConverter; else return 0; } @@ -246,10 +248,10 @@ rtl_UnicodeToTextContext SAL_CALL rtl_createUnicodeToTextContext( rtl_UnicodeToT const ImplTextConverter* pConverter = (const ImplTextConverter*)hConverter; if ( !pConverter ) return 0; - if ( pConverter->mpCreateUnicodeToTextContext ) + else if ( pConverter->mpCreateUnicodeToTextContext ) return (rtl_UnicodeToTextContext)pConverter->mpCreateUnicodeToTextContext(); else - return RTL_UNICODETOTEXTCONTEXT_NOTUSED; + return (rtl_UnicodeToTextContext)1; } /* ----------------------------------------------------------------------- */ |