diff --git a/intl/uconv/ucvlatin/makefile.win b/intl/uconv/ucvlatin/makefile.win index a20168c7d102..58658b5410ca 100644 --- a/intl/uconv/ucvlatin/makefile.win +++ b/intl/uconv/ucvlatin/makefile.win @@ -131,6 +131,8 @@ CPPSRCS = \ nsUnicodeToVIQR.cpp \ nsUnicodeToVNI.cpp \ nsUnicodeToUserDefined.cpp \ + nsUnicodeToSymbol.cpp \ + nsUnicodeToZapfDingbat.cpp \ ns1ByteToUnicodeBase.cpp \ nsUCvLatinSupport.cpp \ nsUCvLatinDll.cpp \ @@ -241,6 +243,8 @@ CPP_OBJS= \ .\$(OBJDIR)\nsUnicodeToVIQR.obj \ .\$(OBJDIR)\nsUnicodeToVNI.obj \ .\$(OBJDIR)\nsUnicodeToUserDefined.obj \ + .\$(OBJDIR)\nsUnicodeToSymbol.obj \ + .\$(OBJDIR)\nsUnicodeToZapfDingbat.obj \ .\$(OBJDIR)\ns1ByteToUnicodeBase.obj \ .\$(OBJDIR)\nsUCvLatinSupport.obj \ .\$(OBJDIR)\nsUCvLatinDll.obj \ diff --git a/intl/uconv/ucvlatin/nsUnicodeToSymbol.cpp b/intl/uconv/ucvlatin/nsUnicodeToSymbol.cpp new file mode 100644 index 000000000000..61bd63fea270 --- /dev/null +++ b/intl/uconv/ucvlatin/nsUnicodeToSymbol.cpp @@ -0,0 +1,58 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- + * + * The contents of this file are subject to the Netscape Public License + * Version 1.0 (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.mozilla.org/NPL/ + * + * Software distributed under the License is distributed on an "AS IS" + * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See + * the License for the specific language governing rights and limitations + * under the License. + * + * The Original Code is Mozilla Communicator client code. + * + * The Initial Developer of the Original Code is Netscape Communications + * Corporation. Portions created by Netscape are Copyright (C) 1998 + * Netscape Communications Corporation. All Rights Reserved. + */ + +#include "nsUnicodeToSymbol.h" + +//---------------------------------------------------------------------- +// Global functions and data [declaration] + +static PRUint16 g_ufMappingTable[] = { +#include "adobesymbol.uf" +}; + +static PRInt16 g_ufShiftTable[] = { + 0, u1ByteCharset , + ShiftCell(0,0,0,0,0,0,0,0) +}; + +//---------------------------------------------------------------------- +// Class nsUnicodeToSymbol [implementation] + +nsUnicodeToSymbol::nsUnicodeToSymbol() +: nsTableEncoderSupport((uShiftTable*) &g_ufShiftTable, + (uMappingTable*) &g_ufMappingTable) +{ +} + +nsresult nsUnicodeToSymbol::CreateInstance(nsISupports ** aResult) +{ + *aResult = (nsIUnicodeEncoder*) new nsUnicodeToSymbol(); + return (*aResult == NULL)? NS_ERROR_OUT_OF_MEMORY : NS_OK; +} + +//---------------------------------------------------------------------- +// Subclassing of nsTableEncoderSupport class [implementation] + +NS_IMETHODIMP nsUnicodeToSymbol::GetMaxLength(const PRUnichar * aSrc, + PRInt32 aSrcLength, + PRInt32 * aDestLength) +{ + *aDestLength = aSrcLength; + return NS_OK_UENC_EXACTLENGTH; +} diff --git a/intl/uconv/ucvlatin/nsUnicodeToSymbol.h b/intl/uconv/ucvlatin/nsUnicodeToSymbol.h new file mode 100644 index 000000000000..e1b5760392cf --- /dev/null +++ b/intl/uconv/ucvlatin/nsUnicodeToSymbol.h @@ -0,0 +1,55 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- + * + * The contents of this file are subject to the Netscape Public License + * Version 1.0 (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.mozilla.org/NPL/ + * + * Software distributed under the License is distributed on an "AS IS" + * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See + * the License for the specific language governing rights and limitations + * under the License. + * + * The Original Code is Mozilla Communicator client code. + * + * The Initial Developer of the Original Code is Netscape Communications + * Corporation. Portions created by Netscape are Copyright (C) 1998 + * Netscape Communications Corporation. All Rights Reserved. + */ + +#ifndef nsUnicodeToSymbol_h___ +#define nsUnicodeToSymbol_h___ + +#include "nsUCvLatinSupport.h" + +//---------------------------------------------------------------------- +// Class nsUnicodeToSymbol [declaration] + +/** + * A character set converter from Unicode to Symbol. + * + */ +class nsUnicodeToSymbol : public nsTableEncoderSupport +{ +public: + + /** + * Class constructor. + */ + nsUnicodeToSymbol(); + + /** + * Static class constructor. + */ + static nsresult CreateInstance(nsISupports **aResult); + +protected: + + //-------------------------------------------------------------------- + // Subclassing of nsEncoderSupport class [declaration] + + NS_IMETHOD GetMaxLength(const PRUnichar * aSrc, PRInt32 aSrcLength, + PRInt32 * aDestLength); +}; + +#endif /* nsUnicodeToSymbol_h___ */ diff --git a/intl/uconv/ucvlatin/nsUnicodeToZapfDingbat.cpp b/intl/uconv/ucvlatin/nsUnicodeToZapfDingbat.cpp new file mode 100644 index 000000000000..340984f76a57 --- /dev/null +++ b/intl/uconv/ucvlatin/nsUnicodeToZapfDingbat.cpp @@ -0,0 +1,58 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- + * + * The contents of this file are subject to the Netscape Public License + * Version 1.0 (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.mozilla.org/NPL/ + * + * Software distributed under the License is distributed on an "AS IS" + * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See + * the License for the specific language governing rights and limitations + * under the License. + * + * The Original Code is Mozilla Communicator client code. + * + * The Initial Developer of the Original Code is Netscape Communications + * Corporation. Portions created by Netscape are Copyright (C) 1998 + * Netscape Communications Corporation. All Rights Reserved. + */ + +#include "nsUnicodeToZapfDingbat.h" + +//---------------------------------------------------------------------- +// Global functions and data [declaration] + +static PRUint16 g_ufMappingTable[] = { +#include "adobezingbat.uf" +}; + +static PRInt16 g_ufShiftTable[] = { + 0, u1ByteCharset , + ShiftCell(0,0,0,0,0,0,0,0) +}; + +//---------------------------------------------------------------------- +// Class nsUnicodeToZapfDingbat [implementation] + +nsUnicodeToZapfDingbat::nsUnicodeToZapfDingbat() +: nsTableEncoderSupport((uShiftTable*) &g_ufShiftTable, + (uMappingTable*) &g_ufMappingTable) +{ +} + +nsresult nsUnicodeToZapfDingbat::CreateInstance(nsISupports ** aResult) +{ + *aResult = (nsIUnicodeEncoder*) new nsUnicodeToZapfDingbat(); + return (*aResult == NULL)? NS_ERROR_OUT_OF_MEMORY : NS_OK; +} + +//---------------------------------------------------------------------- +// Subclassing of nsTableEncoderSupport class [implementation] + +NS_IMETHODIMP nsUnicodeToZapfDingbat::GetMaxLength(const PRUnichar * aSrc, + PRInt32 aSrcLength, + PRInt32 * aDestLength) +{ + *aDestLength = aSrcLength; + return NS_OK_UENC_EXACTLENGTH; +} diff --git a/intl/uconv/ucvlatin/nsUnicodeToZapfDingbat.h b/intl/uconv/ucvlatin/nsUnicodeToZapfDingbat.h new file mode 100644 index 000000000000..e8b53f910f2d --- /dev/null +++ b/intl/uconv/ucvlatin/nsUnicodeToZapfDingbat.h @@ -0,0 +1,55 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- + * + * The contents of this file are subject to the Netscape Public License + * Version 1.0 (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.mozilla.org/NPL/ + * + * Software distributed under the License is distributed on an "AS IS" + * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See + * the License for the specific language governing rights and limitations + * under the License. + * + * The Original Code is Mozilla Communicator client code. + * + * The Initial Developer of the Original Code is Netscape Communications + * Corporation. Portions created by Netscape are Copyright (C) 1998 + * Netscape Communications Corporation. All Rights Reserved. + */ + +#ifndef nsUnicodeToZapfDingbat_h___ +#define nsUnicodeToZapfDingbat_h___ + +#include "nsUCvLatinSupport.h" + +//---------------------------------------------------------------------- +// Class nsUnicodeToZapfDingbat [declaration] + +/** + * A character set converter from Unicode to ZapfDingbat. + * + */ +class nsUnicodeToZapfDingbat : public nsTableEncoderSupport +{ +public: + + /** + * Class constructor. + */ + nsUnicodeToZapfDingbat(); + + /** + * Static class constructor. + */ + static nsresult CreateInstance(nsISupports **aResult); + +protected: + + //-------------------------------------------------------------------- + // Subclassing of nsEncoderSupport class [declaration] + + NS_IMETHOD GetMaxLength(const PRUnichar * aSrc, PRInt32 aSrcLength, + PRInt32 * aDestLength); +}; + +#endif /* nsUnicodeToZapfDingbat_h___ */