diff --git a/intl/uconv/ucvcn/Makefile.in b/intl/uconv/ucvcn/Makefile.in index e5ae730d8e4..3923a137e00 100644 --- a/intl/uconv/ucvcn/Makefile.in +++ b/intl/uconv/ucvcn/Makefile.in @@ -31,6 +31,7 @@ CSRCS = \ CPPSRCS = \ nsGB2312ToUnicode.cpp \ nsUnicodeToGB2312.cpp \ + nsUnicodeToGB2312GL.cpp \ nsUCvCnSupport.cpp \ nsUCvCnDll.cpp \ $(NULL) diff --git a/intl/uconv/ucvcn/nsUnicodeToGB2312GL.cpp b/intl/uconv/ucvcn/nsUnicodeToGB2312GL.cpp new file mode 100644 index 00000000000..702ef5cab08 --- /dev/null +++ b/intl/uconv/ucvcn/nsUnicodeToGB2312GL.cpp @@ -0,0 +1,60 @@ +/* -*- 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 "nsUnicodeToGB2312GL.h" +#include "nsUCvCnDll.h" + +//---------------------------------------------------------------------- +// Global functions and data [declaration] + +static PRInt16 g_2BytesShiftTable[] = { + 0, u2BytesCharset, + ShiftCell(0,0,0,0,0,0,0,0) +}; + +//---------------------------------------------------------------------- +// Class nsUnicodeToGB2312GL [implementation] + +nsUnicodeToGB2312GL::nsUnicodeToGB2312GL() +: nsTableEncoderSupport( + (uShiftTable*) &g_2BytesShiftTable, + (uMappingTable*) &g_ufGB2312Mapping) +{ +} + +nsresult nsUnicodeToGB2312GL::CreateInstance(nsISupports ** aResult) +{ + nsIUnicodeEncoder *p = new nsUnicodeToGB2312GL(); + if(p) { + *aResult = p; + return NS_OK; + } + return NS_ERROR_OUT_OF_MEMORY; +} + +//---------------------------------------------------------------------- +// Subclassing of nsTableEncoderSupport class [implementation] + +NS_IMETHODIMP nsUnicodeToGB2312GL::GetMaxLength(const PRUnichar * aSrc, + PRInt32 aSrcLength, + PRInt32 * aDestLength) +{ + *aDestLength = 2 * aSrcLength; + return NS_OK_UENC_EXACTLENGTH; +} diff --git a/intl/uconv/ucvcn/nsUnicodeToGB2312GL.h b/intl/uconv/ucvcn/nsUnicodeToGB2312GL.h new file mode 100644 index 00000000000..3346c637a7e --- /dev/null +++ b/intl/uconv/ucvcn/nsUnicodeToGB2312GL.h @@ -0,0 +1,57 @@ +/* -*- 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 nsUnicodeToGB2312GL_h___ +#define nsUnicodeToGB2312GL_h___ + +#include "nsUCvCnSupport.h" + +//---------------------------------------------------------------------- +// Class nsUnicodeToGB2312GL [declaration] + +/** + * A character set converter from Unicode to GB2312GL. + * + * @created 06/Apr/1999 + * @author Catalin Rotaru [CATA] + */ +class nsUnicodeToGB2312GL : public nsTableEncoderSupport +{ +public: + + /** + * Class constructor. + */ + nsUnicodeToGB2312GL(); + + /** + * 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 /* nsUnicodeToGB2312GL_h___ */