Changeset 129

Show
Ignore:
Timestamp:
05/02/08 17:14:26 (8 months ago)
Author:
zork
Message:

encoding support

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/dba/dba/xmlarchive.cpp

    r128 r129  
    4343    xmlDocSetRootElement(mDocument,node); 
    4444  }; 
     45  updateEncoding(); 
    4546  mRootNode = mDocument->children; 
    4647}; 
     
    5455XMLArchive::getOutputStream() { 
    5556  //TODO 
     57}; 
     58 
     59void 
     60XMLArchive::updateEncoding() { 
     61  if (mDocument->encoding == NULL) 
     62    return; 
     63  if (xmlStrcasecmp((xmlChar*)"utf-8",mDocument->encoding) == 0) 
     64    mConvSpecs.mDbCharset = ConvSpec::UTF8; 
     65  else if (xmlStrcasecmp((xmlChar*)"iso-8859-1",mDocument->encoding) == 0) 
     66    mConvSpecs.mDbCharset = ConvSpec::ISO8859_1; 
     67  else if (xmlStrcasecmp((xmlChar*)"iso-8859-2",mDocument->encoding) == 0) 
     68    mConvSpecs.mDbCharset = ConvSpec::ISO8859_2; 
     69  else if (xmlStrcasecmp((xmlChar*)"iso-8859-3",mDocument->encoding) == 0) 
     70    mConvSpecs.mDbCharset = ConvSpec::ISO8859_3; 
     71  else if (xmlStrcasecmp((xmlChar*)"iso-8859-4",mDocument->encoding) == 0) 
     72    mConvSpecs.mDbCharset = ConvSpec::ISO8859_4; 
     73  else if (xmlStrcasecmp((xmlChar*)"iso-8859-5",mDocument->encoding) == 0) 
     74    mConvSpecs.mDbCharset = ConvSpec::ISO8859_5; 
     75  else if (xmlStrcasecmp((xmlChar*)"iso-8859-6",mDocument->encoding) == 0) 
     76    mConvSpecs.mDbCharset = ConvSpec::ISO8859_6; 
     77  else if (xmlStrcasecmp((xmlChar*)"iso-8859-7",mDocument->encoding) == 0) 
     78    mConvSpecs.mDbCharset = ConvSpec::ISO8859_7; 
     79  else if (xmlStrcasecmp((xmlChar*)"iso-8859-8",mDocument->encoding) == 0) 
     80    mConvSpecs.mDbCharset = ConvSpec::ISO8859_8; 
     81  else if (xmlStrcasecmp((xmlChar*)"iso-8859-9",mDocument->encoding) == 0) 
     82    mConvSpecs.mDbCharset = ConvSpec::ISO8859_9; 
     83  else if (xmlStrcasecmp((xmlChar*)"iso-8859-10",mDocument->encoding) == 0) 
     84    mConvSpecs.mDbCharset = ConvSpec::ISO8859_10; 
     85  else if (xmlStrcasecmp((xmlChar*)"iso-8859-11",mDocument->encoding) == 0) 
     86    mConvSpecs.mDbCharset = ConvSpec::ISO8859_11; 
     87  else if (xmlStrcasecmp((xmlChar*)"iso-8859-13",mDocument->encoding) == 0) 
     88    mConvSpecs.mDbCharset = ConvSpec::ISO8859_13; 
     89  else if (xmlStrcasecmp((xmlChar*)"iso-8859-14",mDocument->encoding) == 0) 
     90    mConvSpecs.mDbCharset = ConvSpec::ISO8859_14; 
     91  else if (xmlStrcasecmp((xmlChar*)"iso-8859-15",mDocument->encoding) == 0) 
     92    mConvSpecs.mDbCharset = ConvSpec::ISO8859_15; 
     93  else if (xmlStrcasecmp((xmlChar*)"win-1250",mDocument->encoding) == 0) 
     94    mConvSpecs.mDbCharset = ConvSpec::CP1250; 
     95  else if (xmlStrcasecmp((xmlChar*)"win-1251",mDocument->encoding) == 0) 
     96    mConvSpecs.mDbCharset = ConvSpec::CP1251; 
     97  else if (xmlStrcasecmp((xmlChar*)"win-1252",mDocument->encoding) == 0) 
     98    mConvSpecs.mDbCharset = ConvSpec::CP1252; 
     99  else if (xmlStrcasecmp((xmlChar*)"win-1254",mDocument->encoding) == 0) 
     100    mConvSpecs.mDbCharset = ConvSpec::CP1254; 
     101  else if (xmlStrcasecmp((xmlChar*)"win-1255",mDocument->encoding) == 0) 
     102    mConvSpecs.mDbCharset = ConvSpec::CP1255; 
     103  else if (xmlStrcasecmp((xmlChar*)"win-1256",mDocument->encoding) == 0) 
     104    mConvSpecs.mDbCharset = ConvSpec::CP1256; 
    56105}; 
    57106 
  • trunk/dba/dba/xmlarchive.h

    r128 r129  
    6363    */ 
    6464    ConvSpec::charset getDebeaEncoding(const char* pLibxmlEncoding); 
     65    /** 
     66      update ConvSpec encoding 
     67    */ 
     68    void updateEncoding(); 
    6569}; 
    6670 
  • trunk/dba/test/main.cpp

    r127 r129  
    150150  //runner.addTest(new CppUnit::TestCaller<dba_tests::CSVTestCase>("debug_test",&dba_tests::CSVTestCase::manual)); 
    151151  //runner.addTest(new CppUnit::TestCaller<SQLite3SQLArchiveTestCase>("debug_test",&SQLite3SQLArchiveTestCase::transactions_rollback)); 
    152   runner.addTest(dba_tests::XMLTestCase::suite()); 
     152  //runner.addTest(dba_tests::XMLTestCase::suite()); 
     153  runner.addTest(new CppUnit::TestCaller<dba_tests::XMLTestCase>("debug_test",&dba_tests::XMLTestCase::encodingChange)); 
    153154  //runner.addTest(new CppUnit::TestCaller<OdbcPluginTestCase>("debug_test",&OdbcPluginTestCase::dbConnection)); 
    154155  //runner.addTest(new CppUnit::TestCaller<PostgresSQLArchiveTestCase>("debug_test",&PostgresSQLArchiveTestCase::sqlError)); 
  • trunk/dba/test/xmltestcase.cpp

    r128 r129  
    3939}; 
    4040 
     41void 
     42XMLTestCase::encodingChange() { 
     43  {  
     44    unlink("encoding.xml"); 
     45    dba::XMLArchive ar; 
     46    ar.conversionSpecs().mDbCharset = dba::ConvSpec::ISO8859_2; 
     47    ar.open("encoding.xml"); 
     48  };   
     49  dba::XMLArchive res; 
     50  res.open("encoding.xml"); 
     51  CPPUNIT_ASSERT(res.getConversionSpecs().mDbCharset == dba::ConvSpec::ISO8859_2); 
     52}; 
     53 
    4154} //namespace 
  • trunk/dba/test/xmltestcase.h

    r128 r129  
    2727    CPPUNIT_TEST_SUITE(XMLTestCase); 
    2828      CPPUNIT_TEST(empty); 
     29      CPPUNIT_TEST(encodingChange); 
    2930    CPPUNIT_TEST_SUITE_END(); 
    3031  public: 
     
    3536    //tests 
    3637    void empty(); 
     38    void encodingChange(); 
    3739  private: 
    3840};