]> git.saurik.com Git - apple/icu.git/blobdiff - icuSources/i18n/csrsbcs.h
ICU-511.35.tar.gz
[apple/icu.git] / icuSources / i18n / csrsbcs.h
index 456fc4dff439b1aaeb52f8a918bac10e642c4be8..cc26b057b48754796b5e309132fd779db5db0020 100644 (file)
@@ -1,6 +1,6 @@
 /*
  **********************************************************************
- *   Copyright (C) 2005-2006, International Business Machines
+ *   Copyright (C) 2005-2012, International Business Machines
  *   Corporation and others.  All Rights Reserved.
  **********************************************************************
  */
@@ -46,44 +46,37 @@ public:
 
 };
 
+
 class CharsetRecog_sbcs : public CharsetRecognizer
 {
-protected:
-    UBool haveC1Bytes;
-
 public:
     CharsetRecog_sbcs();
-
     virtual ~CharsetRecog_sbcs();
-
     virtual const char *getName() const = 0;
-
-    virtual int32_t match(InputText *det) = 0;
-
-    int32_t match_sbcs(InputText *det, const int32_t ngrams[], const uint8_t charMap[]);
+    virtual UBool match(InputText *det, CharsetMatch *results) const = 0;
+    virtual int32_t match_sbcs(InputText *det, const int32_t ngrams[], const uint8_t charMap[]) const;
 };
 
 class CharsetRecog_8859_1 : public CharsetRecog_sbcs
 {
 public:
     virtual ~CharsetRecog_8859_1();
-
     const char *getName() const;
+    virtual UBool match(InputText *det, CharsetMatch *results) const;
 };
 
 class CharsetRecog_8859_2 : public CharsetRecog_sbcs
 {
 public:
     virtual ~CharsetRecog_8859_2();
-
     const char *getName() const;
+    virtual UBool match(InputText *det, CharsetMatch *results) const;
 };
 
 class CharsetRecog_8859_5 : public CharsetRecog_sbcs
 {
 public:
     virtual ~CharsetRecog_8859_5();
-
     const char *getName() const;
 };
 
@@ -119,246 +112,171 @@ public:
     const char *getName() const;
 };
 
-class CharsetRecog_8859_1_en : public CharsetRecog_8859_1
-{
-public:
-    virtual ~CharsetRecog_8859_1_en();
-
-    const char *getLanguage() const;
 
-    int32_t match(InputText *textIn);
-};
 
-class CharsetRecog_8859_1_da : public CharsetRecog_8859_1
-{
-public:
-    virtual ~CharsetRecog_8859_1_da();
-
-    const char *getLanguage() const;
-
-    int32_t match(InputText *textIn);
-};
-
-class CharsetRecog_8859_1_de : public CharsetRecog_8859_1
-{
-public:
-    virtual ~CharsetRecog_8859_1_de();
-
-    const char *getLanguage() const;
-
-    int32_t match(InputText *textIn);
-};
-
-class CharsetRecog_8859_1_es : public CharsetRecog_8859_1
+class CharsetRecog_8859_5_ru : public CharsetRecog_8859_5
 {
 public:
-    virtual ~CharsetRecog_8859_1_es();
+    virtual ~CharsetRecog_8859_5_ru();
 
     const char *getLanguage() const;
 
-    int32_t match(InputText *textIn);
+    virtual UBool match(InputText *det, CharsetMatch *results) const;
 };
 
-class CharsetRecog_8859_1_fr : public CharsetRecog_8859_1
+class CharsetRecog_8859_6_ar : public CharsetRecog_8859_6
 {
 public:
-    virtual ~CharsetRecog_8859_1_fr();
+    virtual ~CharsetRecog_8859_6_ar();
 
     const char *getLanguage() const;
 
-    int32_t match(InputText *textIn);
+    virtual UBool match(InputText *det, CharsetMatch *results) const;
 };
 
-class CharsetRecog_8859_1_it : public CharsetRecog_8859_1
+class CharsetRecog_8859_7_el : public CharsetRecog_8859_7
 {
 public:
-    virtual ~CharsetRecog_8859_1_it();
+    virtual ~CharsetRecog_8859_7_el();
 
     const char *getLanguage() const;
 
-    int32_t match(InputText *textIn);
+    virtual UBool match(InputText *det, CharsetMatch *results) const;
 };
 
-class CharsetRecog_8859_1_nl : public CharsetRecog_8859_1
+class CharsetRecog_8859_8_I_he : public CharsetRecog_8859_8
 {
 public:
-    virtual ~CharsetRecog_8859_1_nl();
+    virtual ~CharsetRecog_8859_8_I_he();
+       
+    const char *getName() const;
 
     const char *getLanguage() const;
 
-    int32_t match(InputText *textIn);
+    virtual UBool match(InputText *det, CharsetMatch *results) const;
 };
 
-class CharsetRecog_8859_1_no : public CharsetRecog_8859_1
+class CharsetRecog_8859_8_he : public CharsetRecog_8859_8
 {
 public:
-    virtual ~CharsetRecog_8859_1_no();
+    virtual ~CharsetRecog_8859_8_he ();
 
     const char *getLanguage() const;
 
-    int32_t match(InputText *textIn);
+    virtual UBool match(InputText *det, CharsetMatch *results) const;
 };
 
-class CharsetRecog_8859_1_pt : public CharsetRecog_8859_1
+class CharsetRecog_8859_9_tr : public CharsetRecog_8859_9
 {
 public:
-    virtual ~CharsetRecog_8859_1_pt();
+    virtual ~CharsetRecog_8859_9_tr ();
 
     const char *getLanguage() const;
 
-    int32_t match(InputText *textIn);
+    virtual UBool match(InputText *det, CharsetMatch *results) const;
 };
 
-class CharsetRecog_8859_1_sv : public CharsetRecog_8859_1
+class CharsetRecog_windows_1256 : public CharsetRecog_sbcs
 {
 public:
-    virtual ~CharsetRecog_8859_1_sv();
-
-    const char *getLanguage() const;
-
-    int32_t match(InputText *textIn);
-};
+    virtual ~CharsetRecog_windows_1256();
 
-class CharsetRecog_8859_2_cs : public CharsetRecog_8859_2
-{
-public:
-    virtual ~CharsetRecog_8859_2_cs();
+    const char *getName() const;
 
     const char *getLanguage() const;
 
-    int32_t match(InputText *textIn);
+    virtual UBool match(InputText *det, CharsetMatch *results) const;
 };
 
-class CharsetRecog_8859_2_hu : public CharsetRecog_8859_2
+class CharsetRecog_windows_1251 : public CharsetRecog_sbcs
 {
 public:
-    virtual ~CharsetRecog_8859_2_hu();
-
-    const char *getLanguage() const;
-
-    int32_t match(InputText *textIn);
-};
+    virtual ~CharsetRecog_windows_1251();
 
-class CharsetRecog_8859_2_pl : public CharsetRecog_8859_2
-{
-public:
-    virtual ~CharsetRecog_8859_2_pl();
+    const char *getName() const;
 
     const char *getLanguage() const;
 
-    int32_t match(InputText *textIn);
+    virtual UBool match(InputText *det, CharsetMatch *results) const;
 };
 
-class CharsetRecog_8859_2_ro : public CharsetRecog_8859_2
-{
-public:
-    virtual ~CharsetRecog_8859_2_ro();
-
-    const char *getLanguage() const;
-
-    int32_t match(InputText *textIn);
-};
 
-class CharsetRecog_8859_5_ru : public CharsetRecog_8859_5
+class CharsetRecog_KOI8_R : public CharsetRecog_sbcs
 {
 public:
-    virtual ~CharsetRecog_8859_5_ru();
-
-    const char *getLanguage() const;
-
-    int32_t match(InputText *textIn);
-};
+    virtual ~CharsetRecog_KOI8_R();
 
-class CharsetRecog_8859_6_ar : public CharsetRecog_8859_6
-{
-public:
-    virtual ~CharsetRecog_8859_6_ar();
+    const char *getName() const;
 
     const char *getLanguage() const;
 
-    int32_t match(InputText *textIn);
+    virtual UBool match(InputText *det, CharsetMatch *results) const;
 };
 
-class CharsetRecog_8859_7_el : public CharsetRecog_8859_7
+class CharsetRecog_IBM424_he : public CharsetRecog_sbcs
 {
 public:
-    virtual ~CharsetRecog_8859_7_el();
+    virtual ~CharsetRecog_IBM424_he();
 
     const char *getLanguage() const;
-
-    int32_t match(InputText *textIn);
 };
 
-class CharsetRecog_8859_8_I_he : public CharsetRecog_8859_8
-{
+class CharsetRecog_IBM424_he_rtl : public CharsetRecog_IBM424_he {
 public:
-    virtual ~CharsetRecog_8859_8_I_he();
-       
+    virtual ~CharsetRecog_IBM424_he_rtl();
+    
     const char *getName() const;
-
-    const char *getLanguage() const;
-
-    int32_t match(InputText *textIn);
+    
+    virtual UBool match(InputText *det, CharsetMatch *results) const;
 };
 
-class CharsetRecog_8859_8_he : public CharsetRecog_8859_8
-{
-public:
-    virtual ~CharsetRecog_8859_8_he ();
-
-    const char *getLanguage() const;
-
-    int32_t match(InputText *textIn);
-};
-
-class CharsetRecog_8859_9_tr : public CharsetRecog_8859_9
-{
-public:
-    virtual ~CharsetRecog_8859_9_tr ();
-
-    const char *getLanguage() const;
-
-    int32_t match(InputText *textIn);
+class CharsetRecog_IBM424_he_ltr : public CharsetRecog_IBM424_he {
+    virtual ~CharsetRecog_IBM424_he_ltr();
+    
+    const char *getName() const;
+    
+    virtual UBool match(InputText *det, CharsetMatch *results) const;
 };
 
-class CharsetRecog_windows_1256 : public CharsetRecog_sbcs
+class CharsetRecog_IBM420_ar : public CharsetRecog_sbcs
 {
 public:
-    virtual ~CharsetRecog_windows_1256();
-
-    const char *getName() const;
+    virtual ~CharsetRecog_IBM420_ar();
 
     const char *getLanguage() const;
-
-    int32_t match(InputText *textIn);
+    
+protected:
+    void matchInit(InputText *textIn);
+    void matchFinish(InputText *textIn);
+    
+private:
+    uint8_t *prev_fInputBytes;
+    int32_t prev_fInputBytesLength;
+    UBool deleteBuffer;
+    
+    UBool isLamAlef(uint8_t b);
+    uint8_t *unshapeLamAlef(const uint8_t *inputBytes, int32_t inputBytesLength, int32_t &length);
+    uint8_t *unshape(const uint8_t *inputBytes, int32_t inputBytesLength, int32_t &length);
 };
 
-class CharsetRecog_windows_1251 : public CharsetRecog_sbcs
-{
+class CharsetRecog_IBM420_ar_rtl : public CharsetRecog_IBM420_ar {
 public:
-    virtual ~CharsetRecog_windows_1251();
-
+    virtual ~CharsetRecog_IBM420_ar_rtl();
+    
     const char *getName() const;
-
-    const char *getLanguage() const;
-
-    int32_t match(InputText *textIn);
+    
+    virtual UBool match(InputText *det, CharsetMatch *results) const;
 };
 
-
-class CharsetRecog_KOI8_R : public CharsetRecog_sbcs
-{
-public:
-    virtual ~CharsetRecog_KOI8_R();
-
+class CharsetRecog_IBM420_ar_ltr : public CharsetRecog_IBM420_ar {
+    virtual ~CharsetRecog_IBM420_ar_ltr();
+    
     const char *getName() const;
-
-    const char *getLanguage() const;
-
-    int32_t match(InputText *textIn);
+    
+    virtual UBool match(InputText *det, CharsetMatch *results) const;
 };
 
 U_NAMESPACE_END
 
-#endif
+#endif /* !UCONFIG_NO_CONVERSION */
 #endif /* __CSRSBCS_H */