Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Fix compiler warnings about unused code in spellfix. Fix the editDist3Core() routine to return the matchlen in characters instead of bytes. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | spellfix-matchlen |
Files: | files | file ages | folders |
SHA1: |
f96d4e7bd7d81b05b1490bf5d79c77ff |
User & Date: | drh 2012-07-16 22:16:44.619 |
Context
2012-07-16
| ||
23:13 | Merge the spellfix1 changes for supporting matchlen into trunk. (check-in: 6f167adf60 user: drh tags: trunk) | |
22:16 | Fix compiler warnings about unused code in spellfix. Fix the editDist3Core() routine to return the matchlen in characters instead of bytes. (Closed-Leaf check-in: f96d4e7bd7 user: drh tags: spellfix-matchlen) | |
14:52 | Fix a bug in the phonetic-hash routine in spellfix1: Even if the first character of a word is deemed to be "silent", do not apply the special handling intended for the first character of each word to the second. (check-in: 6333b42dd2 user: dan tags: spellfix-matchlen) | |
Changes
Changes to src/test8.c.
︙ | ︙ | |||
1377 1378 1379 1380 1381 1382 1383 | */ static int register_spellfix_module( ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[] ){ | < < | 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 | */ static int register_spellfix_module( ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[] ){ sqlite3 *db; if( objc!=2 ){ Tcl_WrongNumArgs(interp, 1, objv, "DB"); return TCL_ERROR; } if( getDbPointer(interp, Tcl_GetString(objv[1]), &db) ) return TCL_ERROR; |
︙ | ︙ |
Changes to src/test_spellfix.c.
︙ | ︙ | |||
1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 | pStr = 0; break; } } return pStr; } /* ** Return the number of bytes in the common prefix of two UTF8 strings. ** Only complete characters are considered. */ static int editDist3PrefixLen(const char *z1, const char *z2){ int n = 0; while( z1[n] && z1[n]==z2[n] ){ n++; } | > | 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 | pStr = 0; break; } } return pStr; } #if 0 /* No longer used */ /* ** Return the number of bytes in the common prefix of two UTF8 strings. ** Only complete characters are considered. */ static int editDist3PrefixLen(const char *z1, const char *z2){ int n = 0; while( z1[n] && z1[n]==z2[n] ){ n++; } |
︙ | ︙ | |||
1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 | */ static int editDist3SuffixLen(const char *z1, int n1, const char *z2, int n2){ int origN1 = n1; while( n1>0 && n2>0 && z1[n1-1]==z2[n2-1] ){ n1--; n2--; } while( n1<origN1 && (z1[n1]&0xc0)==0x80 ){ n1++; n2++; } return origN1 - n1; } /* ** Update entry m[i] such that it is the minimum of its current value ** and m[j]+iCost. ** ** If the iCost is 1,000,000 or greater, then consider the cost to be ** infinite and skip the update. | > | 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 | */ static int editDist3SuffixLen(const char *z1, int n1, const char *z2, int n2){ int origN1 = n1; while( n1>0 && n2>0 && z1[n1-1]==z2[n2-1] ){ n1--; n2--; } while( n1<origN1 && (z1[n1]&0xc0)==0x80 ){ n1++; n2++; } return origN1 - n1; } #endif /* 0 */ /* ** Update entry m[i] such that it is the minimum of its current value ** and m[j]+iCost. ** ** If the iCost is 1,000,000 or greater, then consider the cost to be ** infinite and skip the update. |
︙ | ︙ | |||
1301 1302 1303 1304 1305 1306 1307 1308 | } printf("\n"); } #endif /* Free memory allocations and return the result */ res = (int)m[szRow*(n2+1)-1]; if( f.isPrefix ){ | > < | > | > > > > | | 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 | } printf("\n"); } #endif /* Free memory allocations and return the result */ res = (int)m[szRow*(n2+1)-1]; n = n2; if( f.isPrefix ){ for(i2=1; i2<=n2; i2++){ int b = m[szRow*i2-1]; if( b<=res ){ res = b; n = i2 - 1; } } } if( pnMatch ){ int nExtra = 0; for(k=0; k<n; k++){ if( (z2[k] & 0xc0)==0x80 ) nExtra++; } *pnMatch = n - nExtra; } editDist3Abort: for(i2=0; i2<n2; i2++) sqlite3_free(a2[i2].apIns); sqlite3_free(m); return res; } |
︙ | ︙ |