diff options
Diffstat (limited to 'sal/textenc')
34 files changed, 487 insertions, 313 deletions
diff --git a/sal/textenc/context.c b/sal/textenc/context.c index 4b120d5d4843..26232cbd89c8 100644 --- a/sal/textenc/context.c +++ b/sal/textenc/context.c @@ -1,3 +1,4 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -45,3 +46,5 @@ void ImplDestroyContext(void * pContext) { rtl_freeMemory(pContext); } + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sal/textenc/context.h b/sal/textenc/context.h index 769625ae8df8..6b7740ebadbb 100644 --- a/sal/textenc/context.h +++ b/sal/textenc/context.h @@ -1,3 +1,4 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -50,3 +51,5 @@ void ImplDestroyContext(void * pContext) SAL_THROW_EXTERN_C(); #endif /* __cpluscplus */ #endif /* INCLUDED_RTL_TEXTENC_CONTEXT_H */ + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sal/textenc/convertadobe.tab b/sal/textenc/convertadobe.tab index 31ec3305933b..4267aa100811 100644 --- a/sal/textenc/convertadobe.tab +++ b/sal/textenc/convertadobe.tab @@ -30,6 +30,7 @@ #include "tenchelp.h" #include "rtl/tencinfo.h" +#include <sal/macros.h> namespace { @@ -103,8 +104,7 @@ adobeStandardEncodingConverterData = { 0x0141, 0x00D8, 0x0152, 0x00BA, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x00E6, 0xffff, 0xffff, 0xffff, 0x0131, 0xffff, 0xffff, // 0xF0 0x0142, 0x00F8, 0x0153, 0x00DF, 0xffff, 0xffff, 0xffff, 0xffff }, - (sizeof unicodeToAdobeStandardEncoding - / sizeof unicodeToAdobeStandardEncoding[0]), + SAL_N_ELEMENTS(unicodeToAdobeStandardEncoding), unicodeToAdobeStandardEncoding }; // RTL_TEXTENCODING_ADOBE_SYMBOL is based on @@ -225,8 +225,7 @@ adobeSymbolEncodingConverterData = { 0x239D, 0x23A1, 0x23A2, 0x23A3, 0x23A7, 0x23A8, 0x23A9, 0x23AA, 0xffff, 0x232A, 0x222B, 0x2320, 0x23AE, 0x2321, 0x239E, 0x239F, // 0xF0 0x23A0, 0x23A4, 0x23A5, 0x23A6, 0x23AB, 0x23AC, 0x23AD, 0xffff }, - (sizeof unicodeToAdobeSymbolEncoding - / sizeof unicodeToAdobeSymbolEncoding[0]), + SAL_N_ELEMENTS( unicodeToAdobeSymbolEncoding ), unicodeToAdobeSymbolEncoding }; // RTL_TEXTENCODING_ADOBE_DINGBATS is based on diff --git a/sal/textenc/convertbig5hkscs.c b/sal/textenc/convertbig5hkscs.c index 06fabe33a9b9..2237a96475d9 100644 --- a/sal/textenc/convertbig5hkscs.c +++ b/sal/textenc/convertbig5hkscs.c @@ -1,3 +1,4 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -491,3 +492,5 @@ sal_Size ImplConvertUnicodeToBig5Hkscs(ImplTextConverterData const * pData, return pDestBufPtr - pDestBuf; } + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sal/textenc/convertbig5hkscs.h b/sal/textenc/convertbig5hkscs.h index 629dd327ccfe..e7e66434b9c9 100644 --- a/sal/textenc/convertbig5hkscs.h +++ b/sal/textenc/convertbig5hkscs.h @@ -1,3 +1,4 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -79,3 +80,5 @@ sal_Size ImplConvertUnicodeToBig5Hkscs(ImplTextConverterData const * pData, #endif /* __cpluscplus */ #endif /* INCLUDED_RTL_TEXTENC_CONVERTBIG5HKSCS_H */ + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sal/textenc/converter.c b/sal/textenc/converter.c index 8911b9dc28e3..07c1e04c9ba3 100644 --- a/sal/textenc/converter.c +++ b/sal/textenc/converter.c @@ -1,3 +1,4 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -162,3 +163,5 @@ ImplHandleBadInputUnicodeToTextConversion(sal_Bool bUndefined, else return IMPL_BAD_INPUT_NO_OUTPUT; } + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sal/textenc/converter.h b/sal/textenc/converter.h index 703aa4173acc..c74652704781 100644 --- a/sal/textenc/converter.h +++ b/sal/textenc/converter.h @@ -1,3 +1,4 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -64,3 +65,5 @@ ImplHandleBadInputUnicodeToTextConversion(sal_Bool bUndefined, #endif /* __cpluscplus */ #endif /* INCLUDED_RTL_TEXTENC_CONVERTER_H */ + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sal/textenc/converteuctw.c b/sal/textenc/converteuctw.c index f55d87b73d17..062862abf76a 100644 --- a/sal/textenc/converteuctw.c +++ b/sal/textenc/converteuctw.c @@ -1,3 +1,4 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -450,3 +451,5 @@ sal_Size ImplConvertUnicodeToEucTw(ImplTextConverterData const * pData, return pDestBufPtr - pDestBuf; } + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sal/textenc/converteuctw.h b/sal/textenc/converteuctw.h index f883546a2924..6d30fced354a 100644 --- a/sal/textenc/converteuctw.h +++ b/sal/textenc/converteuctw.h @@ -1,3 +1,4 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -76,3 +77,5 @@ sal_Size ImplConvertUnicodeToEucTw(ImplTextConverterData const * pData, #endif /* __cpluscplus */ #endif /* INCLUDED_RTL_TEXTENC_CONVERTEUCTW_H */ + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sal/textenc/convertgb18030.c b/sal/textenc/convertgb18030.c index bb8fa521d88e..c9cac4bf7693 100644 --- a/sal/textenc/convertgb18030.c +++ b/sal/textenc/convertgb18030.c @@ -1,3 +1,4 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -466,3 +467,5 @@ sal_Size ImplConvertUnicodeToGb18030(ImplTextConverterData const * pData, return pDestBufPtr - pDestBuf; } + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sal/textenc/convertgb18030.h b/sal/textenc/convertgb18030.h index 0cbbd9e5c2cd..b80224d62d35 100644 --- a/sal/textenc/convertgb18030.h +++ b/sal/textenc/convertgb18030.h @@ -1,3 +1,4 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -90,3 +91,5 @@ sal_Size ImplConvertUnicodeToGb18030(ImplTextConverterData const * pData, #endif /* __cpluscplus */ #endif /* INCLUDED_RTL_TEXTENC_CONVERTGB18030_H */ + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sal/textenc/convertiso2022cn.c b/sal/textenc/convertiso2022cn.c index 6ae445d99e73..40a0039aa3f0 100644 --- a/sal/textenc/convertiso2022cn.c +++ b/sal/textenc/convertiso2022cn.c @@ -1,3 +1,4 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -860,3 +861,5 @@ sal_Size ImplConvertUnicodeToIso2022Cn(ImplTextConverterData const * pData, return pDestBufPtr - pDestBuf; } + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sal/textenc/convertiso2022cn.h b/sal/textenc/convertiso2022cn.h index 4315e63b4faf..bf5186d66e1f 100644 --- a/sal/textenc/convertiso2022cn.h +++ b/sal/textenc/convertiso2022cn.h @@ -1,3 +1,4 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -82,3 +83,5 @@ sal_Size ImplConvertUnicodeToIso2022Cn(ImplTextConverterData const * pData, #endif /* __cpluscplus */ #endif /* INCLUDED_RTL_TEXTENC_CONVERTISO2022CN_H */ + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sal/textenc/convertiso2022jp.c b/sal/textenc/convertiso2022jp.c index 82edc8dbfb68..e4792b573373 100644 --- a/sal/textenc/convertiso2022jp.c +++ b/sal/textenc/convertiso2022jp.c @@ -1,3 +1,4 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -567,3 +568,5 @@ sal_Size ImplConvertUnicodeToIso2022Jp(ImplTextConverterData const * pData, return pDestBufPtr - pDestBuf; } + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sal/textenc/convertiso2022jp.h b/sal/textenc/convertiso2022jp.h index 275d51c7caba..257558387456 100644 --- a/sal/textenc/convertiso2022jp.h +++ b/sal/textenc/convertiso2022jp.h @@ -1,3 +1,4 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -76,3 +77,5 @@ sal_Size ImplConvertUnicodeToIso2022Jp(ImplTextConverterData const * pData, #endif /* __cpluscplus */ #endif /* INCLUDED_RTL_TEXTENC_CONVERTISO2022JP_H */ + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sal/textenc/convertiso2022kr.c b/sal/textenc/convertiso2022kr.c index c2bbee3196a8..8354b312ab87 100644 --- a/sal/textenc/convertiso2022kr.c +++ b/sal/textenc/convertiso2022kr.c @@ -1,3 +1,4 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -525,3 +526,5 @@ sal_Size ImplConvertUnicodeToIso2022Kr(ImplTextConverterData const * pData, return pDestBufPtr - pDestBuf; } + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sal/textenc/convertiso2022kr.h b/sal/textenc/convertiso2022kr.h index 82255d74f7a8..7208bcf63bb0 100644 --- a/sal/textenc/convertiso2022kr.h +++ b/sal/textenc/convertiso2022kr.h @@ -1,3 +1,4 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -76,3 +77,5 @@ sal_Size ImplConvertUnicodeToIso2022Kr(ImplTextConverterData const * pData, #endif /* __cpluscplus */ #endif /* INCLUDED_RTL_TEXTENC_CONVERTISO2022KR_H */ + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sal/textenc/convertsinglebytetobmpunicode.cxx b/sal/textenc/convertsinglebytetobmpunicode.cxx index 1e482249907c..75f94d3cc60a 100644 --- a/sal/textenc/convertsinglebytetobmpunicode.cxx +++ b/sal/textenc/convertsinglebytetobmpunicode.cxx @@ -1,3 +1,4 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -209,3 +210,5 @@ sal_Size rtl_textenc_convertBmpUnicodeToSingleByte( } return destBufPtr - destBuf; } + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sal/textenc/convertsinglebytetobmpunicode.hxx b/sal/textenc/convertsinglebytetobmpunicode.hxx index badc01673fbc..39ebed9eabca 100644 --- a/sal/textenc/convertsinglebytetobmpunicode.hxx +++ b/sal/textenc/convertsinglebytetobmpunicode.hxx @@ -1,3 +1,4 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -124,3 +125,5 @@ extern "C" sal_Size rtl_textenc_convertBmpUnicodeToSingleByte( sal_Size * srcCvtChars); #endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sal/textenc/gettextencodingdata.h b/sal/textenc/gettextencodingdata.h index 9307074f6cff..f2d31be82902 100644 --- a/sal/textenc/gettextencodingdata.h +++ b/sal/textenc/gettextencodingdata.h @@ -1,3 +1,4 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -44,3 +45,5 @@ Impl_getTextEncodingData(rtl_TextEncoding nEncoding) SAL_THROW_EXTERN_C(); #endif /* __cplusplus */ #endif /* INCLUDED_RTL_TEXTENC_GETTEXTENCODINGDATA_H */ + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sal/textenc/makefile.mk b/sal/textenc/makefile.mk index 260559366ffd..7970ae0526eb 100644 --- a/sal/textenc/makefile.mk +++ b/sal/textenc/makefile.mk @@ -28,13 +28,19 @@ PRJ = .. PRJNAME = sal TARGET = textenc +LIBTARGET=NO .INCLUDE: settings.mk CFLAGS+= $(LFS_CFLAGS) CXXFLAGS+= $(LFS_CFLAGS) -SLOFILES = \ +SAL_OBJECTS = \ + $(SLO)$/tencinfo.obj \ + $(SLO)$/textcvt.obj \ + $(SLO)$/textenc.obj + +SAL_COMMON_OBJECTS = \ $(SLO)$/context.obj \ $(SLO)$/convertbig5hkscs.obj \ $(SLO)$/converter.obj \ @@ -49,12 +55,19 @@ SLOFILES = \ $(SLO)$/tcvtutf7.obj \ $(SLO)$/tcvtutf8.obj \ $(SLO)$/tenchelp.obj \ - $(SLO)$/tencinfo.obj \ - $(SLO)$/textcvt.obj \ - $(SLO)$/textenc.obj \ $(SLO)$/unichars.obj -OBJFILES = \ +SAL_TABLES_OBJECTS = \ + $(SLO)$/tables.obj + +SLOFILES = $(SAL_OBJECTS) $(SAL_COMMON_OBJECTS) $(SAL_TABLES_OBJECTS) + +SAL_OBJFILES = \ + $(OBJ)$/tencinfo.obj \ + $(OBJ)$/textcvt.obj \ + $(OBJ)$/textenc.obj + +SAL_COMMON_OBJFILES = \ $(OBJ)$/context.obj \ $(OBJ)$/convertbig5hkscs.obj \ $(OBJ)$/converter.obj \ @@ -69,19 +82,36 @@ OBJFILES = \ $(OBJ)$/tcvtutf7.obj \ $(OBJ)$/tcvtutf8.obj \ $(OBJ)$/tenchelp.obj \ - $(OBJ)$/tencinfo.obj \ - $(OBJ)$/textcvt.obj \ - $(OBJ)$/textenc.obj \ $(OBJ)$/unichars.obj +SAL_TABLES_OBJFILES = \ + $(OBJ)$/tables.obj + +OBJFILES = $(SAL_OBJFILES) $(SAL_COMMON_OBJFILES) $(SAL_TABLES_OBJFILES) + # Optimization off on Solaris Intel due to internal compiler error; to be # reevaluated after compiler upgrade: .IF "$(OS)$(CPU)" == "SOLARISI" NOOPTFILES = \ $(OBJ)$/textenc.obj \ - $(SLO)$/textenc.obj + $(SLO)$/textenc.obj \ + $(OBJ)$/tables.obj \ + $(SLO)$/tables.obj .ENDIF # OS, CPU, SOLARISI +LIB1TARGET= $(SLB)$/$(TARGET).lib +LIB1OBJFILES= $(SAL_OBJECTS) $(SAL_COMMON_OBJECTS) +OBJTARGET=$(LB)$/$(TARGET).lib + +# be nicer to avoid DLLPRE +.IF "$(GUI)" == "WNT" +CDEFS+=-DPLUGIN_NAME=$(DLLPRE)sal_textenc$(UDK_MAJOR)$(DLLPOST) +.ELSE +CDEFS+=-DPLUGIN_NAME=$(DLLPRE)sal_textenc$(DLLPOST).$(UDK_MAJOR) +.ENDIF +LIB2TARGET= $(SLB)$/textenc_tables.lib +LIB2OBJFILES= $(SAL_TABLES_OBJECTS) $(SAL_COMMON_OBJECTS) + .INCLUDE: target.mk diff --git a/sal/textenc/tables.cxx b/sal/textenc/tables.cxx new file mode 100644 index 000000000000..00d78110106b --- /dev/null +++ b/sal/textenc/tables.cxx @@ -0,0 +1,236 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org 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 version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef INCLUDED_RTL_TEXTENC_GETTEXTENCODINGDATA_H +#include "gettextencodingdata.h" +#endif + +#ifndef INCLUDED_RTL_TEXTENC_TENCHELP_H +#include "tenchelp.h" +#endif + +#ifndef _RTL_TEXTENC_H +#include "rtl/textenc.h" +#endif + +#ifndef INCLUDED_STDDEF_H +#include <stddef.h> +#define INCLUDED_STDDEF_H +#endif + +#define NOTABUNI_START 0xFF +#define NOTABUNI_END 0x00 + +#define NOTABCHAR_START 0xFFFF +#define NOTABCHAR_END 0x0000 + +#define SAME8090UNI_START 0x80 +#define SAME8090UNI_END 0x9F +static sal_uInt16 const aImpl8090SameToUniTab[SAME8090UNI_END + - SAME8090UNI_START + + 1] += { 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, /* 0x80 */ + 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F, + 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, /* 0x90 */ + 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F }; + +#define SAME8090CHAR_START 0x0080 +#define SAME8090CHAR_END 0x009F +static sal_uChar const aImpl8090SameToCharTab[SAME8090CHAR_END + - SAME8090CHAR_START + + 1] + = { 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x0080 */ + 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, /* 0x0090 */ + 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F }; + +#define SAMEA0FFCHAR_START 0x00A0 +#define SAMEA0FFCHAR_END 0x00FF +static sal_uChar const aImplA0FFSameToCharTab[SAMEA0FFCHAR_END + - SAMEA0FFCHAR_START + + 1] + = { 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, /* 0x00A0 */ + 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, + 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, /* 0x00B0 */ + 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, + 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, /* 0x00C0 */ + 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, + 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, /* 0x00D0 */ + 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, + 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, /* 0x00E0 */ + 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, + 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, /* 0x00F0 */ + 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF }; + +static sal_uInt16 const aImplDoubleByteIdentifierTab[1] = { 0 }; + +#include "tcvtarb1.tab" +#include "tcvteas1.tab" +#include "tcvtest1.tab" +#include "tcvtjp1.tab" +#include "tcvtjp2.tab" +#include "tcvtjp3.tab" +#include "tcvtjp4.tab" +#include "tcvtjp5.tab" +#include "tcvtjp6.tab" +#include "tcvtkr1.tab" +#include "tcvtkr2.tab" +#include "tcvtkr4.tab" +#include "tcvtkr5.tab" +#include "tcvtkr6.tab" +#include "tcvtlat1.tab" +#include "tcvtscn1.tab" +#include "tcvtscn2.tab" +#include "tcvtscn3.tab" +#include "tcvtscn4.tab" +#include "tcvtscn5.tab" +#include "tcvtscn6.tab" +#include "tcvtsym1.tab" +#include "tcvttcn1.tab" +#include "tcvttcn2.tab" +#include "tcvttcn6.tab" +#include "tcvtuni1.tab" +#include "convertiscii.tab" + +#include "convertbig5hkscs.tab" +#include "converteuctw.tab" +#include "convertgb18030.tab" +#include "convertiso2022cn.tab" +#include "convertiso2022jp.tab" +#include "convertiso2022kr.tab" +#include "convertadobe.tab" + +ImplTextEncodingData const * +Impl_getTextEncodingData(rtl_TextEncoding nEncoding) +#ifdef IOS + // Dunno if the g++ for iOS is just pickier, or why other g++ + // versions don't complain about the lack of throw to match the + // one in the declaration in gettextencodingdata.h.o + SAL_THROW_EXTERN_C() +#endif +{ + static ImplTextEncodingData const * const aData[] + = { NULL, /* DONTKNOW */ + &aImplMS1252TextEncodingData, /* MS_1252 */ + &aImplAPPLEROMANTextEncodingData, /* APPLE_ROMAN */ + &aImplIBM437TextEncodingData, /* IBM_437 */ + &aImplIBM850TextEncodingData, /* IBM_850 */ + &aImplIBM860TextEncodingData, /* IBM_860 */ + &aImplIBM861TextEncodingData, /* IBM_861 */ + &aImplIBM863TextEncodingData, /* IBM_863 */ + &aImplIBM865TextEncodingData, /* IBM_865 */ + NULL, /* reserved (SYSTEM) */ + &aImplSYMBOLTextEncodingData, /* SYMBOL */ + &aImplUSASCIITextEncodingData, /* ASCII_US */ + &aImplISO88591TextEncodingData, /* ISO_8859_1 */ + &aImplISO88592TextEncodingData, /* ISO_8859_2 */ + &aImplISO88593TextEncodingData, /* ISO_8859_3 */ + &aImplISO88594TextEncodingData, /* ISO_8859_4 */ + &aImplISO88595TextEncodingData, /* ISO_8859_5 */ + &aImplISO88596TextEncodingData, /* ISO_8859_6 */ + &aImplISO88597TextEncodingData, /* ISO_8859_7 */ + &aImplISO88598TextEncodingData, /* ISO_8859_8 */ + &aImplISO88599TextEncodingData, /* ISO_8859_9 */ + &aImplISO885914TextEncodingData, /* ISO_8859_14 */ + &aImplISO885915TextEncodingData, /* ISO_8859_15 */ + &aImplIBM737TextEncodingData, /* IBM_737 */ + &aImplIBM775TextEncodingData, /* IBM_775 */ + &aImplIBM852TextEncodingData, /* IBM_852 */ + &aImplIBM855TextEncodingData, /* IBM_855 */ + &aImplIBM857TextEncodingData, /* IBM_857 */ + &aImplIBM862TextEncodingData, /* IBM_862 */ + &aImplIBM864TextEncodingData, /* IBM_864 */ + &aImplIBM866TextEncodingData, /* IBM_866 */ + &aImplIBM869TextEncodingData, /* IBM_869 */ + &aImplMS874TextEncodingData, /* MS_874 */ + &aImplMS1250TextEncodingData, /* MS_1250 */ + &aImplMS1251TextEncodingData, /* MS_1251 */ + &aImplMS1253TextEncodingData, /* MS_1253 */ + &aImplMS1254TextEncodingData, /* MS_1254 */ + &aImplMS1255TextEncodingData, /* MS_1255 */ + &aImplMS1256TextEncodingData, /* MS_1256 */ + &aImplMS1257TextEncodingData, /* MS_1257 */ + &aImplMS1258TextEncodingData, /* MS_1258 */ + NULL, /* TODO! APPLE_ARABIC */ + &aImplAPPLECENTEUROTextEncodingData, /* APPLE_CENTEURO */ + &aImplAPPLECROATIANTextEncodingData, /* APPLE_CROATIAN */ + &aImplAPPLECYRILLICTextEncodingData, /* APPLE_CYRILLIC */ + NULL, /* TODO! APPLE_DEVANAGARI */ + NULL, /* TODO! APPLE_FARSI */ + &aImplAPPLEGREEKTextEncodingData, /* APPLE_GREEK */ + NULL, /* TODO! APPLE_GUJARATI */ + NULL, /* TODO! APPLE_GURMUKHI */ + NULL, /* TODO! APPLE_HEBREW */ + &aImplAPPLEICELANDTextEncodingData, /* APPLE_ICELAND */ + &aImplAPPLEROMANIANTextEncodingData, /* APPLE_ROMANIAN */ + NULL, /* TODO! APPLE_THAI */ + &aImplAPPLETURKISHTextEncodingData, /* APPLE_TURKISH */ + &aImplAPPLEUKRAINIANTextEncodingData, /* APPLE_UKRAINIAN */ + &aImplAPPLECHINSIMPTextEncodingData, /* APPLE_CHINSIMP */ + &aImplAPPLECHINTRADTextEncodingData, /* APPLE_CHINTRAD */ + &aImplAPPLEJAPANESETextEncodingData, /* APPLE_JAPANESE */ + &aImplAPPLEKOREANTextEncodingData, /* APPLE_KOREAN */ + &aImplMS932TextEncodingData, /* MS_932 */ + &aImplMS936TextEncodingData, /* MS_936 */ + &aImplMS949TextEncodingData, /* MS_949 */ + &aImplMS950TextEncodingData, /* MS_950 */ + &aImplSJISTextEncodingData, /* SHIFT_JIS */ + &aImplGB2312TextEncodingData, /* GB_2312 */ + &aImplGBT12345TextEncodingData, /* GBT_12345 */ + &aImplGBKTextEncodingData, /* GBK */ + &aImplBIG5TextEncodingData, /* BIG5 */ + &aImplEUCJPTextEncodingData, /* EUC_JP */ + &aImplEUCCNTextEncodingData, /* EUC_CN */ + &aImplEucTwTextEncodingData, /* EUC_TW */ + &aImplIso2022JpTextEncodingData, /* ISO_2022_JP */ + &aImplIso2022CnTextEncodingData, /* ISO_2022_CN */ + &aImplKOI8RTextEncodingData, /* KOI8_R */ + &aImplUTF7TextEncodingData, /* UTF7 */ + &aImplUTF8TextEncodingData, /* UTF8 */ + &aImplISO885910TextEncodingData, /* ISO_8859_10 */ + &aImplISO885913TextEncodingData, /* ISO_8859_13 */ + &aImplEUCKRTextEncodingData, /* EUC_KR */ + &aImplIso2022KrTextEncodingData, /* ISO_2022_KR */ + &aImplJISX0201TextEncodingData, /* JIS_X_0201 */ + &aImplJISX0208TextEncodingData, /* JIS_X_0208 */ + &aImplJISX0212TextEncodingData, /* JIS_X_0212 */ + &aImplMS1361TextEncodingData, /* MS_1361 */ + &aImplGb18030TextEncodingData, /* GB_18030 */ + &aImplBig5HkscsTextEncodingData, /* BIG5_HKSCS */ + &aImplTis620TextEncodingData, /* TIS_620 */ + &aImplKoi8UTextEncodingData, /* KOI8_U */ + &aImplIsciiDevanagariTextEncodingData, /* ISCII_DEVANAGARI */ + &aImplJavaUtf8TextEncodingData, /* JAVA_UTF8 */ + &adobeStandardEncodingData, /* ADOBE_STANDARD */ + &adobeSymbolEncodingData, /* ADOBE_SYMBOL */ + &aImplPT154TextEncodingData }; /* PT154 */ + return + nEncoding < SAL_N_ELEMENTS(aData) ? aData[nEncoding] : NULL; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sal/textenc/tcvtbyte.c b/sal/textenc/tcvtbyte.c index 238c51fba223..b8e3ed222f7c 100644 --- a/sal/textenc/tcvtbyte.c +++ b/sal/textenc/tcvtbyte.c @@ -1,3 +1,4 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -640,6 +641,51 @@ sal_Size ImplCharToUnicode( const ImplTextConverterData* pData, /* ----------------------------------------------------------------------- */ +sal_Size ImplUpperCharToUnicode( 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 ) +{ + sal_uChar c; + sal_Unicode cConv; + const ImplByteConvertData* pConvertData = (const ImplByteConvertData*)pData; + sal_Unicode* pEndDestBuf; + const sal_Char* pEndSrcBuf; + + (void) pContext; /* unused */ + (void) nFlags; /* unused */ + + *pInfo = 0; + pEndDestBuf = pDestBuf+nDestChars; + pEndSrcBuf = pSrcBuf+nSrcBytes; + if ( pDestBuf == pEndDestBuf ) + { + *pInfo |= RTL_TEXTTOUNICODE_INFO_ERROR | RTL_TEXTTOUNICODE_INFO_DESTBUFFERTOSMALL; + *pSrcCvtBytes = 0; + return 0; + } + while ( pSrcBuf < pEndSrcBuf ) + { + c = (sal_uChar)*pSrcBuf; + if (c < 0x80) + cConv = c; + else + // c <= 0xFF is implied. + cConv = pConvertData->mpToUniTab1[c - 0x80]; + + *pDestBuf = cConv; + pDestBuf++; + pSrcBuf++; + } + + *pSrcCvtBytes = nSrcBytes - (pEndSrcBuf-pSrcBuf); + return (nDestChars - (pEndDestBuf-pDestBuf)); +} + +/* ----------------------------------------------------------------------- */ + // Writes 0--2 characters to dest: static int ImplConvertUnicodeCharToChar( const ImplByteConvertData* pConvertData, sal_Unicode c, sal_Char * dest ) @@ -808,3 +854,5 @@ sal_Size ImplUnicodeToChar( const ImplTextConverterData* pData, *pSrcCvtChars = nSrcChars - (pEndSrcBuf-pSrcBuf); return (nDestBytes - (pEndDestBuf-pDestBuf)); } + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sal/textenc/tcvtlat1.tab b/sal/textenc/tcvtlat1.tab index 6e8e55cf1d65..60c3218b64b3 100644 --- a/sal/textenc/tcvtlat1.tab +++ b/sal/textenc/tcvtlat1.tab @@ -188,7 +188,7 @@ static ImplByteConvertData const aImplIBM437ByteCvtData = static ImplTextEncodingData const aImplIBM437TextEncodingData = { { &aImplIBM437ByteCvtData, - ImplCharToUnicode, + ImplUpperCharToUnicode, ImplUnicodeToChar, NULL, NULL, @@ -322,7 +322,7 @@ static ImplByteConvertData const aImplIBM850ByteCvtData = static ImplTextEncodingData const aImplIBM850TextEncodingData = { { &aImplIBM850ByteCvtData, - ImplCharToUnicode, + ImplUpperCharToUnicode, ImplUnicodeToChar, NULL, NULL, @@ -495,7 +495,7 @@ static ImplByteConvertData const aImplIBM860ByteCvtData = static ImplTextEncodingData const aImplIBM860TextEncodingData = { { &aImplIBM860ByteCvtData, - ImplCharToUnicode, + ImplUpperCharToUnicode, ImplUnicodeToChar, NULL, NULL, @@ -670,7 +670,7 @@ static ImplByteConvertData const aImplIBM861ByteCvtData = static ImplTextEncodingData const aImplIBM861TextEncodingData = { { &aImplIBM861ByteCvtData, - ImplCharToUnicode, + ImplUpperCharToUnicode, ImplUnicodeToChar, NULL, NULL, @@ -845,7 +845,7 @@ static ImplByteConvertData const aImplIBM863ByteCvtData = static ImplTextEncodingData const aImplIBM863TextEncodingData = { { &aImplIBM863ByteCvtData, - ImplCharToUnicode, + ImplUpperCharToUnicode, ImplUnicodeToChar, NULL, NULL, @@ -1020,7 +1020,7 @@ static ImplByteConvertData const aImplIBM865ByteCvtData = static ImplTextEncodingData const aImplIBM865TextEncodingData = { { &aImplIBM865ByteCvtData, - ImplCharToUnicode, + ImplUpperCharToUnicode, ImplUnicodeToChar, NULL, NULL, @@ -1560,7 +1560,7 @@ static ImplByteConvertData const aImplAPPLEICELANDByteCvtData = static ImplTextEncodingData const aImplAPPLEICELANDTextEncodingData = { { &aImplAPPLEICELANDByteCvtData, - ImplCharToUnicode, + ImplUpperCharToUnicode, ImplUnicodeToChar, NULL, NULL, @@ -1707,7 +1707,7 @@ static ImplByteConvertData const aImplAPPLEROMANByteCvtData = static ImplTextEncodingData const aImplAPPLEROMANTextEncodingData = { { &aImplAPPLEROMANByteCvtData, - ImplCharToUnicode, + ImplUpperCharToUnicode, ImplUnicodeToChar, NULL, NULL, diff --git a/sal/textenc/tcvtmb.c b/sal/textenc/tcvtmb.c index 4801e2ed665e..e0936979eb19 100644 --- a/sal/textenc/tcvtmb.c +++ b/sal/textenc/tcvtmb.c @@ -1,3 +1,4 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -114,7 +115,6 @@ sal_Size ImplDBCSToUnicode( const ImplTextConverterData* pData, void* pContext, if ( (cLead >= pEUDCTab->mnLeadStart) && (cLead <= pEUDCTab->mnLeadEnd) ) { - sal_uInt16 nTrailCount = 0; if ( (cTrail >= pEUDCTab->mnTrail1Start) && (cTrail <= pEUDCTab->mnTrail1End) ) { @@ -125,7 +125,7 @@ sal_Size ImplDBCSToUnicode( const ImplTextConverterData* pData, void* pContext, } else { - nTrailCount = pEUDCTab->mnTrail1End-pEUDCTab->mnTrail1Start+1; + sal_uInt16 nTrailCount = pEUDCTab->mnTrail1End-pEUDCTab->mnTrail1Start+1; if ( (pEUDCTab->mnTrailCount >= 2) && (cTrail >= pEUDCTab->mnTrail2Start) && (cTrail <= pEUDCTab->mnTrail2End) ) @@ -691,3 +691,5 @@ sal_Size ImplUnicodeToEUCJP( const ImplTextConverterData* pData, *pSrcCvtChars = nSrcChars - (pEndSrcBuf-pSrcBuf); return (nDestBytes - (pEndDestBuf-pDestBuf)); } + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sal/textenc/tcvtutf7.c b/sal/textenc/tcvtutf7.c index 344aae6ab5dd..8093a866f0c4 100644 --- a/sal/textenc/tcvtutf7.c +++ b/sal/textenc/tcvtutf7.c @@ -1,3 +1,4 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -586,3 +587,5 @@ sal_Size ImplUnicodeToUTF7( const ImplTextConverterData* pData, void* pContext, *pSrcCvtChars = nSrcChars - (pEndSrcBuf-pSrcBuf); return (nDestBytes - (pEndDestBuf-pDestBuf)); } + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sal/textenc/tcvtutf8.c b/sal/textenc/tcvtutf8.c index cc5141f2c3e2..3023c3e754e6 100644 --- a/sal/textenc/tcvtutf8.c +++ b/sal/textenc/tcvtutf8.c @@ -1,3 +1,4 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -417,3 +418,5 @@ sal_Size ImplConvertUnicodeToUtf8(ImplTextConverterData const * pData, *pSrcCvtChars = pSrcBufPtr - pSrcBuf; return pDestBufPtr - pDestBuf; } + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sal/textenc/tenchelp.c b/sal/textenc/tenchelp.c index 73495b05a98b..ed924336fa17 100644 --- a/sal/textenc/tenchelp.c +++ b/sal/textenc/tenchelp.c @@ -1,3 +1,4 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -211,3 +212,4 @@ ImplHandleUndefinedUnicodeToTextChar(ImplTextConverterData const * pData, return sal_True; } +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sal/textenc/tenchelp.h b/sal/textenc/tenchelp.h index 98be923472ba..7f6879c4bee1 100644 --- a/sal/textenc/tenchelp.h +++ b/sal/textenc/tenchelp.h @@ -1,3 +1,4 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -230,6 +231,11 @@ sal_Size ImplCharToUnicode( 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 ); +/** For those encodings only with unicode range of 0x80 to 0xFF. */ +sal_Size ImplUpperCharToUnicode( 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 ); sal_Size ImplUnicodeToChar( const ImplTextConverterData* pData, void* pContext, const sal_Unicode* pSrcBuf, sal_Size nSrcChars, sal_Char* pDestBuf, sal_Size nDestBytes, @@ -295,3 +301,5 @@ sal_Size ImplConvertUnicodeToUtf8(ImplTextConverterData const * pData, #endif /* __cplusplus */ #endif /* INCLUDED_RTL_TEXTENC_TENCHELP_H */ + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sal/textenc/tencinfo.c b/sal/textenc/tencinfo.c index 30a2fef0da72..2731880c66d2 100644 --- a/sal/textenc/tencinfo.c +++ b/sal/textenc/tencinfo.c @@ -1,3 +1,4 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -212,166 +213,6 @@ rtl_TextEncoding SAL_CALL rtl_getTextEncodingFromWindowsCharset( sal_uInt8 nWinC /* ----------------------------------------------------------------------- */ -#if 0 - -rtl_TextEncoding SAL_CALL rtl_getTextEncodingFromMacTextEncoding( sal_uInt32 nMacTextEncoding ) -{ - rtl_TextEncoding eTextEncoding; - - switch ( nMacTextEncoding ) - { - case 0: eTextEncoding = RTL_TEXTENCODING_APPLE_ROMAN; break; - case 1: eTextEncoding = RTL_TEXTENCODING_APPLE_JAPANESE; break; - case 2: eTextEncoding = RTL_TEXTENCODING_APPLE_CHINTRAD; break; - case 3: eTextEncoding = RTL_TEXTENCODING_APPLE_KOREAN; break; - case 4: eTextEncoding = RTL_TEXTENCODING_APPLE_ARABIC; break; - case 5: eTextEncoding = RTL_TEXTENCODING_APPLE_HEBREW; break; - case 6: eTextEncoding = RTL_TEXTENCODING_APPLE_GREEK; break; - case 7: eTextEncoding = RTL_TEXTENCODING_APPLE_CYRILLIC; break; - /* RIGHT-TO-LEFT SYMBOLS = 8 ??? */ - case 9: eTextEncoding = RTL_TEXTENCODING_APPLE_DEVANAGARI; break; - case 10: eTextEncoding = RTL_TEXTENCODING_APPLE_GURMUKHI; break; - case 11: eTextEncoding = RTL_TEXTENCODING_APPLE_GUJARATI; break; - /* MacOriya = 12 */ - /* MacBengali = 13 */ - /* MacTamil = 14 */ - /* MacTelugu = 15 */ - /* MacKannada = 16 */ - /* MacMalayalam = 17 */ - /* MacSinhalese = 18 */ - /* MacBurmese = 19 */ - /* MacKhmer = 20 */ - case 21: eTextEncoding = RTL_TEXTENCODING_APPLE_THAI; break; - /* MacLaotian = 22 */ - /* MacGeorgian = 23 */ - /* MacArmenian = 24 */ - case 25: eTextEncoding = RTL_TEXTENCODING_APPLE_CHINSIMP; break; - /* MacTibetan = 26 */ - /* MacMongolian = 27 */ - /* MacEthiopic = 28 */ - case 29: eTextEncoding = RTL_TEXTENCODING_APPLE_CENTEURO; break; /* MacCentralEurRoman */ - /* MacVietnamese = 30 */ - /* MacExtArabic = 31 */ - case 32: eTextEncoding = RTL_TEXTENCODING_SYMBOL; break; - case 33: eTextEncoding = RTL_TEXTENCODING_SYMBOL; break; /* MacSymbol */ - case 34: eTextEncoding = RTL_TEXTENCODING_SYMBOL; break; /* MacDingbats */ - case 35: eTextEncoding = RTL_TEXTENCODING_APPLE_TURKISH; break; /* MacTurkish */ - case 36: eTextEncoding = RTL_TEXTENCODING_APPLE_CROATIAN; break; /* MacCroatian */ - case 37: eTextEncoding = RTL_TEXTENCODING_APPLE_ICELAND; break; /* MacIcelandic */ - case 38: eTextEncoding = RTL_TEXTENCODING_APPLE_ROMANIAN; break; /* MacRomanian */ - /* MacCeltic = 39 */ - /* MacGaelic = 40 */ - /* Beginning in Mac OS 8.5, the set of Mac OS script codes has been */ - /* extended for some Mac OS components to include Unicode. Some of */ - /* these components have only 7 bits available for script code, so */ - /* kTextEncodingUnicodeDefault cannot be used to indicate Unicode. */ - /* Instead, the following meta-value is used to indicate Unicode */ - /* handled as a special Mac OS script code; TEC handles this value */ - /* like kTextEncodingUnicodeDefault. */ - /* The following use script code 4, smArabic */ - case 0x08C: eTextEncoding = RTL_TEXTENCODING_APPLE_FARSI; break; /* MacFarsi */ - /* The following use script code 7, smCyrillic */ - case 0x098: eTextEncoding = RTL_TEXTENCODING_APPLE_UKRAINIAN; break; /* MacUkrainian */ - /* The following use script code 28, smEthiopic */ - /* MacInuit = 0xEC */ - /* The following use script code 32, smUninterp */ - case 0x0FC: eTextEncoding = RTL_TEXTENCODING_SYMBOL; break; /* MacVT100 - VT100/102 font */ - /* Special Mac OS encodings */ - /* MacHFS = 0xFF */ /* metavalue. */ - /* Unicode & ISO UCS encodings begin at 0x100 */ - case 0x100: eTextEncoding = RTL_TEXTENCODING_UNICODE; break; /* UnicodeDefault */ - case 0x101: eTextEncoding = RTL_TEXTENCODING_UNICODE; break; /* UnicodeV1_1 / ISO10646_1993 */ - case 0x103: eTextEncoding = RTL_TEXTENCODING_UNICODE; break; /* UnicodeV2_1 - new location for Korean Hangul / UnicodeV2_1 */ - /* ISO 8-bit and 7-bit encodings begin at 0x200 */ - case 0x201: eTextEncoding = RTL_TEXTENCODING_ISO_8859_1; break; /* ISOLatin1 - ISO 8859-1 */ - case 0x202: eTextEncoding = RTL_TEXTENCODING_ISO_8859_2; break; /* ISOLatin2 - ISO 8859-2 */ - case 0x203: eTextEncoding = RTL_TEXTENCODING_ISO_8859_3; break; /* ISOLatin3 - ISO 8859-3 */ - case 0x204: eTextEncoding = RTL_TEXTENCODING_ISO_8859_4; break; /* ISOLatin4 - ISO 8859-4 */ - case 0x205: eTextEncoding = RTL_TEXTENCODING_ISO_8859_5; break; /* ISOLatinCyrillic - ISO 8859-5 */ - case 0x206: eTextEncoding = RTL_TEXTENCODING_ISO_8859_6; break; /* ISOLatinArabic - ISO 8859-6, = ASMO 708, =DOS CP 708 */ - case 0x207: eTextEncoding = RTL_TEXTENCODING_ISO_8859_7; break; /* ISOLatinGreek - ISO 8859-7 */ - case 0x208: eTextEncoding = RTL_TEXTENCODING_ISO_8859_8; break; /* ISOLatinHebrew - ISO 8859-8 */ - case 0x209: eTextEncoding = RTL_TEXTENCODING_ISO_8859_9; break; /* ISOLatin5 - ISO 8859-9 */ - /* MS-DOS & Windows encodings begin at 0x400 */ - case 0x400: eTextEncoding = RTL_TEXTENCODING_IBM_437; break; /* DOSLatinUS - code page 437 */ - case 0x405: eTextEncoding = RTL_TEXTENCODING_IBM_737; break; /* DOSGreek - code page 737 (formerly 437G) */ - case 0x406: eTextEncoding = RTL_TEXTENCODING_IBM_775; break; /* DOSBalticRim - code page 775 */ - case 0x410: eTextEncoding = RTL_TEXTENCODING_IBM_850; break; /* DOSLatin1 - code page 850, "Multilingual" */ -/* !!! case 0x411: eTextEncoding = RTL_TEXTENCODING_IBM_851; break; */ /* DOSGreek1 - code page 851 */ - case 0x412: eTextEncoding = RTL_TEXTENCODING_IBM_852; break; /* DOSLatin2 - code page 852, Slavic */ - case 0x413: eTextEncoding = RTL_TEXTENCODING_IBM_855; break; /* DOSCyrillic - code page 855, IBM Cyrillic */ - case 0x414: eTextEncoding = RTL_TEXTENCODING_IBM_857; break; /* DOSTurkish - code page 857, IBM Turkish */ - case 0x415: eTextEncoding = RTL_TEXTENCODING_IBM_860; break; /* DOSPortuguese - code page 860 */ - case 0x416: eTextEncoding = RTL_TEXTENCODING_IBM_861; break; /* DOSIcelandic - code page 861 */ - case 0x417: eTextEncoding = RTL_TEXTENCODING_IBM_862; break; /* DOSHebrew - code page 862 */ - case 0x418: eTextEncoding = RTL_TEXTENCODING_IBM_863; break; /* DOSCanadianFrench - code page 863 */ - case 0x419: eTextEncoding = RTL_TEXTENCODING_IBM_864; break; /* DOSArabic - code page 864 */ - case 0x41A: eTextEncoding = RTL_TEXTENCODING_IBM_865; break; /* DOSNordic - code page 865 */ - case 0x41B: eTextEncoding = RTL_TEXTENCODING_IBM_866; break; /* DOSRussian - code page 866 */ - case 0x41C: eTextEncoding = RTL_TEXTENCODING_IBM_869; break; /* DOSGreek2 - code page 869, IBM Modern Greek */ - case 0x41D: eTextEncoding = RTL_TEXTENCODING_MS_874; break; /* DOSThai - code page 874, also for Windows */ - case 0x420: eTextEncoding = RTL_TEXTENCODING_MS_932; break; /* DOSJapanese - code page 932, also for Windows */ - case 0x421: eTextEncoding = RTL_TEXTENCODING_MS_936; break; /* DOSChineseSimplif - code page 936, also for Windows */ - case 0x422: eTextEncoding = RTL_TEXTENCODING_MS_949; break; /* DOSKorean - code page 949, also for Windows;Unified Hangul */ - case 0x423: eTextEncoding = RTL_TEXTENCODING_MS_950; break; /* DOSChineseTrad - code page 950, also for Windows */ - case 0x500: eTextEncoding = RTL_TEXTENCODING_MS_1252; break; /* WindowsLatin1 / WindowsANSI - code page 1252 */ - case 0x501: eTextEncoding = RTL_TEXTENCODING_MS_1250; break; /* WindowsLatin2 - code page 1250, Central Europe */ - case 0x502: eTextEncoding = RTL_TEXTENCODING_MS_1251; break; /* WindowsCyrillic - code page 1251, Slavic Cyrillic */ - case 0x503: eTextEncoding = RTL_TEXTENCODING_MS_1253; break; /* WindowsGreek - code page 1253 */ - case 0x504: eTextEncoding = RTL_TEXTENCODING_MS_1254; break; /* WindowsLatin5 - code page 1254, Turkish */ - case 0x505: eTextEncoding = RTL_TEXTENCODING_MS_1255; break; /* WindowsHebrew - code page 1255 */ - case 0x506: eTextEncoding = RTL_TEXTENCODING_MS_1256; break; /* WindowsArabic - code page 1256 */ - case 0x507: eTextEncoding = RTL_TEXTENCODING_MS_1257; break; /* WindowsBalticRim - code page 1257 */ - case 0x508: eTextEncoding = RTL_TEXTENCODING_MS_1258; break; /* WindowsVietnamese - code page 1258 */ - case 0x510: eTextEncoding = RTL_TEXTENCODING_MS_1361; break; /* WindowsKoreanJohab - code page 1361, for Windows NT */ - /* Various national standards begin at 0x600 */ - case 0x600: eTextEncoding = RTL_TEXTENCODING_ASCII_US; break; /* US_ASCII */ - case 0x620: eTextEncoding = RTL_TEXTENCODING_JIS_X_0201; break; /* JIS_X0201_76 */ - case 0x621: eTextEncoding = RTL_TEXTENCODING_JIS_X_0208; break; /* JIS_X0208_83 */ - case 0x622: eTextEncoding = RTL_TEXTENCODING_JIS_X_0208; break; /* JIS_X0208_90 */ - case 0x623: eTextEncoding = RTL_TEXTENCODING_JIS_X_0212; break; /* JIS_X0212_90 */ - /* !!! JIS_C6226_78 = 0x624 */ - /* !!! GB_2312_80 = 0x630 */ - /* !!! GBK_95 = 0x631 */ /* annex to GB 13000-93; for Windows 95 */ -// case 0x640: eTextEncoding = RTL_TEXTENCODING_KSC_5601_1987; break; /* KSC_5601_87 */ /* same as KSC 5601-92 without Johab annex */ -// case 0x641: eTextEncoding = RTL_TEXTENCODING_KSC_5601_1992; break; /* KSC 5601-92 Johab annex */ - /* !!! CNS_11643_92_P1 = 0x651 */ /* CNS 11643-1992 plane 1 */ - /* !!! CNS_11643_92_P2 = 0x652 */ /* CNS 11643-1992 plane 2 */ - /* !!! CNS_11643_92_P3 = 0x653 */ /* CNS 11643-1992 plane 3 (11643-1986 plane 14) */ - /* ISO 2022 collections begin at 0x800 */ - case 0x820: eTextEncoding = RTL_TEXTENCODING_ISO_2022_JP; break; /* ISO_2022_JP */ - case 0x821: eTextEncoding = RTL_TEXTENCODING_ISO_2022_JP; break; /* ISO_2022_JP_2 */ - case 0x830: eTextEncoding = RTL_TEXTENCODING_ISO_2022_CN; break; /* ISO_2022_CN */ - case 0x831: eTextEncoding = RTL_TEXTENCODING_ISO_2022_CN; break; /* ISO_2022_CN_EXT */ - /* !!! ISO_2022_KR = 0x840 */ - /* EUC collections begin at 0x900 */ - case 0x920: eTextEncoding = RTL_TEXTENCODING_EUC_JP; break; /* EUC_JP - ISO 646,1-byte Katakana,JIS 208,JIS 212 */ - case 0x930: eTextEncoding = RTL_TEXTENCODING_EUC_CN; break; /* EUC_CN - ISO 646, GB 2312-80 */ - case 0x931: eTextEncoding = RTL_TEXTENCODING_EUC_TW; break; /* EUC_TW - ISO 646, CNS 11643-1992 Planes 1-16 */ - case 0x940: eTextEncoding = RTL_TEXTENCODING_EUC_KR; break; /* EUC_KR - ISO 646, KS C 5601-1987 */ - /* Miscellaneous standards begin at 0xA00 */ - case 0xA01: eTextEncoding = RTL_TEXTENCODING_SHIFT_JIS; break; /* ShiftJIS - plain Shift-JIS */ - case 0xA02: eTextEncoding = RTL_TEXTENCODING_KOI8_R; break; /* KOI8_R - Russian Internet standard */ - case 0xA03: eTextEncoding = RTL_TEXTENCODING_BIG5; break; /* Big5 - Big-5 */ - /* !!! MacRomanLatin1 = 0xA04 */ /* Mac OS Roman permuted to align with 8859-1 */ - /* !!! HZ_GB_2312 = 0xA05 */ /* HZ (RFC 1842, for Chinese mail & news) */ - /* Other platform encodings */ - /* !!! NextStepLatin = 0xB01 */ /* NextStep encoding */ - /* EBCDIC & IBM host encodings begin at 0xC00 */ - /* !!! EBCDIC_US = 0xC01 */ /* basic EBCDIC-US */ - /* !!! EBCDIC_CP037 = 0xC02 */ /* code page 037, extended EBCDIC-US Latin1 */ - /* Special value */ - /* MultiRun = 0xFFF */ /* Multiple encoded text, external run info */ - default: eTextEncoding = RTL_TEXTENCODING_DONTKNOW; break; - }; - - return eTextEncoding; -} - -#endif - -/* ----------------------------------------------------------------------- */ - rtl_TextEncoding SAL_CALL rtl_getTextEncodingFromUnixCharset( const sal_Char* pUnixCharset ) { /* See <ftp://ftp.x.org/pub/DOCS/registry>, section 14 ("Font Charset @@ -911,7 +752,7 @@ rtl_TextEncoding SAL_CALL rtl_getTextEncodingFromMimeCharset( const sal_Char* pM { "pt154", RTL_TEXTENCODING_PT154 }, { "cp154", RTL_TEXTENCODING_PT154 }, { "xisciide", RTL_TEXTENCODING_ISCII_DEVANAGARI }, - /* This is no official MIME character set name, but is in use by + /* This is not an official MIME character set name, but is in use by various windows APIs. */ { NULL, RTL_TEXTENCODING_DONTKNOW } }; @@ -1157,3 +998,5 @@ rtl_getWindowsCodePageFromTextEncoding(rtl_TextEncoding nEncoding) default: return 0; } } + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sal/textenc/textcvt.c b/sal/textenc/textcvt.c index 1ef20285f015..0030590cf926 100644 --- a/sal/textenc/textcvt.c +++ b/sal/textenc/textcvt.c @@ -1,3 +1,4 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -262,3 +263,5 @@ sal_Size SAL_CALL rtl_convertUnicodeToText( rtl_UnicodeToTextConverter hConverte nFlags, pInfo, pSrcCvtChars ); } + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sal/textenc/textenc.cxx b/sal/textenc/textenc.cxx index 00a46e509f02..66ca45ca601b 100644 --- a/sal/textenc/textenc.cxx +++ b/sal/textenc/textenc.cxx @@ -1,3 +1,4 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -34,6 +35,9 @@ #include "gettextencodingdata.h" #include "tenchelp.h" #include "rtl/textenc.h" +#include <sal/macros.h> +#include "rtl/ustring.hxx" +#include "osl/module.h" #ifndef INCLUDED_STDDEF_H #include <stddef.h> @@ -86,141 +90,71 @@ static sal_uChar const aImplA0FFSameToCharTab[SAMEA0FFCHAR_END static sal_uInt16 const aImplDoubleByteIdentifierTab[1] = { 0 }; -#include "tcvtarb1.tab" -#include "tcvteas1.tab" #include "tcvtest1.tab" -#include "tcvtjp1.tab" -#include "tcvtjp2.tab" -#include "tcvtjp3.tab" -#include "tcvtjp4.tab" -#include "tcvtjp5.tab" -#include "tcvtjp6.tab" -#include "tcvtkr1.tab" -#include "tcvtkr2.tab" -#include "tcvtkr4.tab" -#include "tcvtkr5.tab" -#include "tcvtkr6.tab" #include "tcvtlat1.tab" -#include "tcvtscn1.tab" -#include "tcvtscn2.tab" -#include "tcvtscn3.tab" -#include "tcvtscn4.tab" -#include "tcvtscn5.tab" -#include "tcvtscn6.tab" -#include "tcvtsym1.tab" -#include "tcvttcn1.tab" -#include "tcvttcn2.tab" -#include "tcvttcn6.tab" #include "tcvtuni1.tab" -#include "convertiscii.tab" -#include "convertbig5hkscs.tab" -#include "converteuctw.tab" -#include "convertgb18030.tab" -#include "convertiso2022cn.tab" -#include "convertiso2022jp.tab" -#include "convertiso2022kr.tab" -#include "convertadobe.tab" +extern "C" { + typedef ImplTextEncodingData const *(*TextEncodingFunction) (rtl_TextEncoding nEncoding); +}; + +// Yes - we should use the unpleasant to use templatized +// sal:: doublecheckfoo thing here. +static TextEncodingFunction pTables; + +#define DOSTRING( x ) #x +#define STRING( x ) DOSTRING( x ) ImplTextEncodingData const * Impl_getTextEncodingData(rtl_TextEncoding nEncoding) SAL_THROW_EXTERN_C() { - static ImplTextEncodingData const * const aData[] - = { NULL, /* DONTKNOW */ - &aImplMS1252TextEncodingData, /* MS_1252 */ - &aImplAPPLEROMANTextEncodingData, /* APPLE_ROMAN */ - &aImplIBM437TextEncodingData, /* IBM_437 */ - &aImplIBM850TextEncodingData, /* IBM_850 */ - &aImplIBM860TextEncodingData, /* IBM_860 */ - &aImplIBM861TextEncodingData, /* IBM_861 */ - &aImplIBM863TextEncodingData, /* IBM_863 */ - &aImplIBM865TextEncodingData, /* IBM_865 */ - NULL, /* reserved (SYSTEM) */ - &aImplSYMBOLTextEncodingData, /* SYMBOL */ - &aImplUSASCIITextEncodingData, /* ASCII_US */ - &aImplISO88591TextEncodingData, /* ISO_8859_1 */ - &aImplISO88592TextEncodingData, /* ISO_8859_2 */ - &aImplISO88593TextEncodingData, /* ISO_8859_3 */ - &aImplISO88594TextEncodingData, /* ISO_8859_4 */ - &aImplISO88595TextEncodingData, /* ISO_8859_5 */ - &aImplISO88596TextEncodingData, /* ISO_8859_6 */ - &aImplISO88597TextEncodingData, /* ISO_8859_7 */ - &aImplISO88598TextEncodingData, /* ISO_8859_8 */ - &aImplISO88599TextEncodingData, /* ISO_8859_9 */ - &aImplISO885914TextEncodingData, /* ISO_8859_14 */ - &aImplISO885915TextEncodingData, /* ISO_8859_15 */ - &aImplIBM737TextEncodingData, /* IBM_737 */ - &aImplIBM775TextEncodingData, /* IBM_775 */ - &aImplIBM852TextEncodingData, /* IBM_852 */ - &aImplIBM855TextEncodingData, /* IBM_855 */ - &aImplIBM857TextEncodingData, /* IBM_857 */ - &aImplIBM862TextEncodingData, /* IBM_862 */ - &aImplIBM864TextEncodingData, /* IBM_864 */ - &aImplIBM866TextEncodingData, /* IBM_866 */ - &aImplIBM869TextEncodingData, /* IBM_869 */ - &aImplMS874TextEncodingData, /* MS_874 */ - &aImplMS1250TextEncodingData, /* MS_1250 */ - &aImplMS1251TextEncodingData, /* MS_1251 */ - &aImplMS1253TextEncodingData, /* MS_1253 */ - &aImplMS1254TextEncodingData, /* MS_1254 */ - &aImplMS1255TextEncodingData, /* MS_1255 */ - &aImplMS1256TextEncodingData, /* MS_1256 */ - &aImplMS1257TextEncodingData, /* MS_1257 */ - &aImplMS1258TextEncodingData, /* MS_1258 */ - NULL, /* TODO! APPLE_ARABIC */ - &aImplAPPLECENTEUROTextEncodingData, /* APPLE_CENTEURO */ - &aImplAPPLECROATIANTextEncodingData, /* APPLE_CROATIAN */ - &aImplAPPLECYRILLICTextEncodingData, /* APPLE_CYRILLIC */ - NULL, /* TODO! APPLE_DEVANAGARI */ - NULL, /* TODO! APPLE_FARSI */ - &aImplAPPLEGREEKTextEncodingData, /* APPLE_GREEK */ - NULL, /* TODO! APPLE_GUJARATI */ - NULL, /* TODO! APPLE_GURMUKHI */ - NULL, /* TODO! APPLE_HEBREW */ - &aImplAPPLEICELANDTextEncodingData, /* APPLE_ICELAND */ - &aImplAPPLEROMANIANTextEncodingData, /* APPLE_ROMANIAN */ - NULL, /* TODO! APPLE_THAI */ - &aImplAPPLETURKISHTextEncodingData, /* APPLE_TURKISH */ - &aImplAPPLEUKRAINIANTextEncodingData, /* APPLE_UKRAINIAN */ - &aImplAPPLECHINSIMPTextEncodingData, /* APPLE_CHINSIMP */ - &aImplAPPLECHINTRADTextEncodingData, /* APPLE_CHINTRAD */ - &aImplAPPLEJAPANESETextEncodingData, /* APPLE_JAPANESE */ - &aImplAPPLEKOREANTextEncodingData, /* APPLE_KOREAN */ - &aImplMS932TextEncodingData, /* MS_932 */ - &aImplMS936TextEncodingData, /* MS_936 */ - &aImplMS949TextEncodingData, /* MS_949 */ - &aImplMS950TextEncodingData, /* MS_950 */ - &aImplSJISTextEncodingData, /* SHIFT_JIS */ - &aImplGB2312TextEncodingData, /* GB_2312 */ - &aImplGBT12345TextEncodingData, /* GBT_12345 */ - &aImplGBKTextEncodingData, /* GBK */ - &aImplBIG5TextEncodingData, /* BIG5 */ - &aImplEUCJPTextEncodingData, /* EUC_JP */ - &aImplEUCCNTextEncodingData, /* EUC_CN */ - &aImplEucTwTextEncodingData, /* EUC_TW */ - &aImplIso2022JpTextEncodingData, /* ISO_2022_JP */ - &aImplIso2022CnTextEncodingData, /* ISO_2022_CN */ - &aImplKOI8RTextEncodingData, /* KOI8_R */ - &aImplUTF7TextEncodingData, /* UTF7 */ - &aImplUTF8TextEncodingData, /* UTF8 */ - &aImplISO885910TextEncodingData, /* ISO_8859_10 */ - &aImplISO885913TextEncodingData, /* ISO_8859_13 */ - &aImplEUCKRTextEncodingData, /* EUC_KR */ - &aImplIso2022KrTextEncodingData, /* ISO_2022_KR */ - &aImplJISX0201TextEncodingData, /* JIS_X_0201 */ - &aImplJISX0208TextEncodingData, /* JIS_X_0208 */ - &aImplJISX0212TextEncodingData, /* JIS_X_0212 */ - &aImplMS1361TextEncodingData, /* MS_1361 */ - &aImplGb18030TextEncodingData, /* GB_18030 */ - &aImplBig5HkscsTextEncodingData, /* BIG5_HKSCS */ - &aImplTis620TextEncodingData, /* TIS_620 */ - &aImplKoi8UTextEncodingData, /* KOI8_U */ - &aImplIsciiDevanagariTextEncodingData, /* ISCII_DEVANAGARI */ - &aImplJavaUtf8TextEncodingData, /* JAVA_UTF8 */ - &adobeStandardEncodingData, /* ADOBE_STANDARD */ - &adobeSymbolEncodingData, /* ADOBE_SYMBOL */ - &aImplPT154TextEncodingData, /* PT154 */ - &adobeDingbatsEncodingData }; /* ADOBE_DINGBATS */ - return - nEncoding < sizeof aData / sizeof aData[0] ? aData[nEncoding] : NULL; + switch(nEncoding) + { + case RTL_TEXTENCODING_ASCII_US: + return &aImplUSASCIITextEncodingData; break; + case RTL_TEXTENCODING_MS_1252: + return &aImplMS1252TextEncodingData; break; + case RTL_TEXTENCODING_UTF8: + return &aImplUTF8TextEncodingData; break; + case RTL_TEXTENCODING_ISO_8859_1: + return &aImplISO88591TextEncodingData; break; + +#ifndef TOOLS_STRING_MISSUSE +// ---------------------------------------------- +// These are here temporarily since they are used in error +// all over the place +// ---------------------------------------------- + case RTL_TEXTENCODING_IBM_850: + return &aImplIBM850TextEncodingData; break; + case RTL_TEXTENCODING_IBM_857: + return &aImplIBM857TextEncodingData; break; + case RTL_TEXTENCODING_IBM_860: + return &aImplIBM860TextEncodingData; break; + case RTL_TEXTENCODING_IBM_861: + return &aImplIBM861TextEncodingData; break; + case RTL_TEXTENCODING_IBM_863: + return &aImplIBM863TextEncodingData; break; +// ---------------------------------------------- +#endif + default: + if (!pTables) + { + static char const pName[] = STRING(PLUGIN_NAME); + oslModule aModule = osl_loadModuleAscii(pName, SAL_LOADMODULE_DEFAULT); + + if(aModule) + { + static char const pSymbol[] = "Impl_getTextEncodingData"; + pTables = (TextEncodingFunction)osl_getAsciiFunctionSymbol(aModule, pSymbol); + } + } + if (pTables) + return pTables(nEncoding); +// else +// fprintf (stderr, "missing text encoding library for %d\n", nEncoding); + break; + } + return NULL; } + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sal/textenc/unichars.c b/sal/textenc/unichars.c index 454e057c7f84..0d4131699732 100644 --- a/sal/textenc/unichars.c +++ b/sal/textenc/unichars.c @@ -1,3 +1,4 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -134,3 +135,5 @@ sal_uInt32 ImplCombineSurrogates(sal_uInt32 nHigh, sal_uInt32 nLow) "specification violation"); return (((nHigh & 0x3FF) << 10) | (nLow & 0x3FF)) + 0x10000; } + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sal/textenc/unichars.h b/sal/textenc/unichars.h index f629432a29f8..f1e18460dfb0 100644 --- a/sal/textenc/unichars.h +++ b/sal/textenc/unichars.h @@ -1,3 +1,4 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -60,3 +61,5 @@ sal_uInt32 ImplCombineSurrogates(sal_uInt32 nHigh, sal_uInt32 nLow) #endif /* __cpluscplus */ #endif /* INCLUDED_RTL_TEXTENC_UNICHARS_H */ + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |