| OLD | NEW |
| 1 /* | 1 /* |
| 2 ** 2006 September 30 | 2 ** 2006 September 30 |
| 3 ** | 3 ** |
| 4 ** The author disclaims copyright to this source code. In place of | 4 ** The author disclaims copyright to this source code. In place of |
| 5 ** a legal notice, here is a blessing: | 5 ** a legal notice, here is a blessing: |
| 6 ** | 6 ** |
| 7 ** May you do good and not evil. | 7 ** May you do good and not evil. |
| 8 ** May you find forgiveness for yourself and forgive others. | 8 ** May you find forgiveness for yourself and forgive others. |
| 9 ** May you share freely, never taking more than you give. | 9 ** May you share freely, never taking more than you give. |
| 10 ** | 10 ** |
| (...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 176 ** In prose: A word is an optional consonant followed by zero or | 176 ** In prose: A word is an optional consonant followed by zero or |
| 177 ** vowel-consonant pairs followed by an optional vowel. "m" is the | 177 ** vowel-consonant pairs followed by an optional vowel. "m" is the |
| 178 ** number of vowel consonant pairs. This routine computes the value | 178 ** number of vowel consonant pairs. This routine computes the value |
| 179 ** of m for the first i bytes of a word. | 179 ** of m for the first i bytes of a word. |
| 180 ** | 180 ** |
| 181 ** Return true if the m-value for z is 1 or more. In other words, | 181 ** Return true if the m-value for z is 1 or more. In other words, |
| 182 ** return true if z contains at least one vowel that is followed | 182 ** return true if z contains at least one vowel that is followed |
| 183 ** by a consonant. | 183 ** by a consonant. |
| 184 ** | 184 ** |
| 185 ** In this routine z[] is in reverse order. So we are really looking | 185 ** In this routine z[] is in reverse order. So we are really looking |
| 186 ** for an instance of of a consonant followed by a vowel. | 186 ** for an instance of a consonant followed by a vowel. |
| 187 */ | 187 */ |
| 188 static int m_gt_0(const char *z){ | 188 static int m_gt_0(const char *z){ |
| 189 while( isVowel(z) ){ z++; } | 189 while( isVowel(z) ){ z++; } |
| 190 if( *z==0 ) return 0; | 190 if( *z==0 ) return 0; |
| 191 while( isConsonant(z) ){ z++; } | 191 while( isConsonant(z) ){ z++; } |
| 192 return *z!=0; | 192 return *z!=0; |
| 193 } | 193 } |
| 194 | 194 |
| 195 /* Like mgt0 above except we are looking for a value of m which is | 195 /* Like mgt0 above except we are looking for a value of m which is |
| 196 ** exactly 1 | 196 ** exactly 1 |
| (...skipping 456 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 653 ** Allocate a new porter tokenizer. Return a pointer to the new | 653 ** Allocate a new porter tokenizer. Return a pointer to the new |
| 654 ** tokenizer in *ppModule | 654 ** tokenizer in *ppModule |
| 655 */ | 655 */ |
| 656 void sqlite3Fts3PorterTokenizerModule( | 656 void sqlite3Fts3PorterTokenizerModule( |
| 657 sqlite3_tokenizer_module const**ppModule | 657 sqlite3_tokenizer_module const**ppModule |
| 658 ){ | 658 ){ |
| 659 *ppModule = &porterTokenizerModule; | 659 *ppModule = &porterTokenizerModule; |
| 660 } | 660 } |
| 661 | 661 |
| 662 #endif /* !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_FTS3) */ | 662 #endif /* !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_FTS3) */ |
| OLD | NEW |