summaryrefslogtreecommitdiffstats
path: root/intl/uconv/ucvja/nsJapaneseToUnicode.h
diff options
context:
space:
mode:
authorMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
committerMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
commit5f8de423f190bbb79a62f804151bc24824fa32d8 (patch)
tree10027f336435511475e392454359edea8e25895d /intl/uconv/ucvja/nsJapaneseToUnicode.h
parent49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff)
downloadUXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip
Add m-esr52 at 52.6.0
Diffstat (limited to 'intl/uconv/ucvja/nsJapaneseToUnicode.h')
-rw-r--r--intl/uconv/ucvja/nsJapaneseToUnicode.h143
1 files changed, 143 insertions, 0 deletions
diff --git a/intl/uconv/ucvja/nsJapaneseToUnicode.h b/intl/uconv/ucvja/nsJapaneseToUnicode.h
new file mode 100644
index 000000000..8e3f207eb
--- /dev/null
+++ b/intl/uconv/ucvja/nsJapaneseToUnicode.h
@@ -0,0 +1,143 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+#ifndef nsShiftJISToUnicode_h__
+#define nsShiftJISToUnicode_h__
+#include "nsUCSupport.h"
+#include "mozilla/Telemetry.h"
+
+class nsShiftJISToUnicode : public nsBasicDecoderSupport
+{
+public:
+
+ nsShiftJISToUnicode()
+ {
+ mState=0; mData=0;
+ }
+ virtual ~nsShiftJISToUnicode() {}
+
+ NS_IMETHOD Convert(const char * aSrc, int32_t * aSrcLength,
+ char16_t * aDest, int32_t * aDestLength) ;
+ NS_IMETHOD GetMaxLength(const char * aSrc, int32_t aSrcLength,
+ int32_t * aDestLength)
+ {
+ *aDestLength = aSrcLength;
+ return NS_OK;
+ }
+ NS_IMETHOD Reset()
+ {
+ mState = 0;
+ return NS_OK;
+ }
+
+ virtual char16_t GetCharacterForUnMapped();
+
+private:
+
+private:
+ int32_t mState;
+ int32_t mData;
+};
+
+class nsEUCJPToUnicodeV2 : public nsBasicDecoderSupport
+{
+public:
+
+ nsEUCJPToUnicodeV2()
+ {
+ mState=0; mData=0;
+ }
+ virtual ~nsEUCJPToUnicodeV2() {}
+
+ NS_IMETHOD Convert(const char * aSrc, int32_t * aSrcLength,
+ char16_t * aDest, int32_t * aDestLength) ;
+ NS_IMETHOD GetMaxLength(const char * aSrc, int32_t aSrcLength,
+ int32_t * aDestLength)
+ {
+ *aDestLength = aSrcLength;
+ return NS_OK;
+ }
+ NS_IMETHOD Reset()
+ {
+ mState = 0;
+ return NS_OK;
+ }
+
+private:
+ int32_t mState;
+ int32_t mData;
+};
+
+class nsISO2022JPToUnicodeV2 : public nsBasicDecoderSupport
+{
+public:
+
+ nsISO2022JPToUnicodeV2()
+ {
+ mState = mState_ASCII;
+ mLastLegalState = mState_ASCII;
+ mData = 0;
+ mRunLength = 0;
+ G2charset = G2_unknown;
+ mGB2312Decoder = nullptr;
+ mEUCKRDecoder = nullptr;
+ mISO88597Decoder = nullptr;
+ mozilla::Telemetry::Accumulate(
+ mozilla::Telemetry::DECODER_INSTANTIATED_ISO2022JP, true);
+ }
+ virtual ~nsISO2022JPToUnicodeV2()
+ {
+ }
+
+ NS_IMETHOD Convert(const char * aSrc, int32_t * aSrcLength,
+ char16_t * aDest, int32_t * aDestLength) ;
+ NS_IMETHOD GetMaxLength(const char * aSrc, int32_t aSrcLength,
+ int32_t * aDestLength)
+ {
+ *aDestLength = aSrcLength;
+ return NS_OK;
+ }
+ NS_IMETHOD Reset()
+ {
+ mState = mState_ASCII;
+ mLastLegalState = mState_ASCII;
+ mRunLength = 0;
+ return NS_OK;
+ }
+
+private:
+ enum {
+ mState_ASCII,
+ mState_ESC,
+ mState_ESC_28,
+ mState_ESC_24,
+ mState_ESC_24_28,
+ mState_JISX0201_1976Roman,
+ mState_JISX0201_1976Kana,
+ mState_JISX0208_1978,
+ mState_GB2312_1980,
+ mState_JISX0208_1983,
+ mState_KSC5601_1987,
+ mState_JISX0212_1990,
+ mState_JISX0208_1978_2ndbyte,
+ mState_GB2312_1980_2ndbyte,
+ mState_JISX0208_1983_2ndbyte,
+ mState_KSC5601_1987_2ndbyte,
+ mState_JISX0212_1990_2ndbyte,
+ mState_ESC_2e,
+ mState_ESC_4e,
+ mState_ERROR
+ } mState, mLastLegalState;
+ int32_t mData;
+ int32_t mRunLength; // the length of a non-ASCII run
+ enum {
+ G2_unknown,
+ G2_ISO88591,
+ G2_ISO88597
+ } G2charset;
+ nsCOMPtr<nsIUnicodeDecoder> mGB2312Decoder;
+ nsCOMPtr<nsIUnicodeDecoder> mEUCKRDecoder;
+ nsCOMPtr<nsIUnicodeDecoder> mISO88597Decoder;
+};
+#endif // nsShiftJISToUnicode_h__