Add a factory method to QIsciiCodec and fix the names
authorLars Knoll <lars.knoll@nokia.com>
Wed, 25 Jul 2012 10:54:56 +0000 (12:54 +0200)
committerQt by Nokia <qt-info@nokia.com>
Tue, 31 Jul 2012 09:12:51 +0000 (11:12 +0200)
Make the names all lower case to be in line with what ICU
reports. Add a factory method to create the codecs according
to their name.

Change-Id: Ia3dddaa7701a0645d9d8fbcb52f1f8d58f79cf98
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
src/corelib/codecs/qisciicodec.cpp
src/corelib/codecs/qisciicodec_p.h

index 723a4dc..1e5d512 100644 (file)
@@ -39,6 +39,7 @@
 **
 ****************************************************************************/
 #include "qisciicodec_p.h"
+#include "qtextcodec_p.h"
 #include "qlist.h"
 
 #ifndef QT_NO_BIG_CODECS
@@ -59,17 +60,26 @@ struct Codecs {
 };
 
 static const Codecs codecs [] = {
-    { "Iscii-Dev", 0x900 },
-    { "Iscii-Bng", 0x980 },
-    { "Iscii-Pnj", 0xa00 },
-    { "Iscii-Gjr", 0xa80 },
-    { "Iscii-Ori", 0xb00 },
-    { "Iscii-Tml", 0xb80 },
-    { "Iscii-Tlg", 0xc00 },
-    { "Iscii-Knd", 0xc80 },
-    { "Iscii-Mlm", 0xd00 }
+    { "iscii-dev", 0x900 },
+    { "iscii-bng", 0x980 },
+    { "iscii-pnj", 0xa00 },
+    { "iscii-gjr", 0xa80 },
+    { "iscii-ori", 0xb00 },
+    { "iscii-tml", 0xb80 },
+    { "iscii-tlg", 0xc00 },
+    { "iscii-knd", 0xc80 },
+    { "iscii-mlm", 0xd00 }
 };
 
+QTextCodec *QIsciiCodec::create(const char *name)
+{
+    for (int i = 0; i < 9; ++i) {
+        if (!qstricmp(name, codecs[i].name))
+            return new QIsciiCodec(i);
+    }
+    return 0;
+}
+
 QIsciiCodec::~QIsciiCodec()
 {
 }
index 70af5e8..2a92985 100644 (file)
@@ -64,6 +64,8 @@ public:
     explicit QIsciiCodec(int i) : idx(i) {}
     ~QIsciiCodec();
 
+    static QTextCodec *create(const char *name);
+
     QByteArray name() const;
     int mibEnum() const;