webengine/osswebengine/WebCore/platform/symbian/TextBreakIteratorSymbian.cpp
changeset 5 10e98eab6f85
parent 0 dd21522fd290
child 10 a359256acfc6
equal deleted inserted replaced
1:7c90e6132015 5:10e98eab6f85
   163     {
   163     {
   164        //not implemented
   164        //not implemented
   165        return -1;
   165        return -1;
   166     }
   166     }
   167     
   167     
       
   168 static WordBreakIteratorSymbian *wordIterator = 0;
       
   169 static CharBreakIteratorSymbian *charIterator = 0;
       
   170 static LineBreakIteratorSymbian *lineIterator = 0;
       
   171 struct cleanupIterators {
       
   172     ~cleanupIterators() {
       
   173     		delete wordIterator;
       
   174     		wordIterator = NULL;
       
   175     		delete charIterator;
       
   176     		charIterator = NULL;
       
   177     		delete lineIterator;
       
   178     		lineIterator = NULL;
       
   179     }
       
   180 };
       
   181 static cleanupIterators deleteBreakIterator;
   168 
   182 
   169 TextBreakIterator* wordBreakIterator(const UChar* string, int length)
   183 TextBreakIterator* wordBreakIterator(const UChar* string, int length)
   170 {
   184 {
   171     static WordBreakIteratorSymbian *iterator = 0;
   185     if (!wordIterator)
   172     if (!iterator)
   186         wordIterator = new WordBreakIteratorSymbian;
   173         iterator = new WordBreakIteratorSymbian;
   187 
   174 
   188     wordIterator->string = string;
   175     iterator->string = string;
   189     wordIterator->length = length;
   176     iterator->length = length;
   190     wordIterator->currentPos = 0;
   177     iterator->currentPos = 0;
   191 
   178 
   192     return wordIterator;
   179     return iterator;
       
   180 }
   193 }
   181 
   194 
   182 TextBreakIterator* characterBreakIterator(const UChar* string, int length)
   195 TextBreakIterator* characterBreakIterator(const UChar* string, int length)
   183 {
   196 {
   184     static CharBreakIteratorSymbian *iterator = 0;
   197     if (!charIterator)
   185     if (!iterator)
   198         charIterator = new CharBreakIteratorSymbian;
   186         iterator = new CharBreakIteratorSymbian;
   199 
   187 
   200     charIterator->string = string;
   188     iterator->string = string;
   201     charIterator->length = length;
   189     iterator->length = length;
   202     charIterator->currentPos = 0;
   190     iterator->currentPos = 0;
   203 
   191 
   204     return charIterator;
   192     return iterator;
       
   193 }
   205 }
   194 
   206 
   195 TextBreakIterator* lineBreakIterator(const UChar* string, int length)
   207 TextBreakIterator* lineBreakIterator(const UChar* string, int length)
   196 {
   208 {
   197    static LineBreakIteratorSymbian *iterator = 0;
   209     if (!lineIterator)
   198     if (!iterator)
   210         lineIterator = new LineBreakIteratorSymbian;
   199         iterator = new LineBreakIteratorSymbian;
   211 
   200 
   212     lineIterator->string = string;
   201     iterator->string = string;
   213     lineIterator->length = length;
   202     iterator->length = length;
   214     lineIterator->currentPos = 0;
   203     iterator->currentPos = 0;
   215 
   204 
   216     return lineIterator;
   205     return iterator;
       
   206 }
   217 }
   207 
   218 
   208 TextBreakIterator* sentenceBreakIterator(const UChar*, int)
   219 TextBreakIterator* sentenceBreakIterator(const UChar*, int)
   209 {
   220 {
   210     // not yet implemented
   221     // not yet implemented
   242     return true;
   253     return true;
   243 }
   254 }
   244 
   255 
   245 }
   256 }
   246 
   257 
       
   258 
       
   259