* later on, or even if we update this one, we can use a different ID so the
* system knows it needs to throw away the existing index and rebuild it.
*/
-#define FT_WORDBREAKER_ID 0x0002
+#define FT_WORDBREAKER_ID 0x0003
/*
* Minimum and maximum length of words to index
cdb_bucket = malloc(sizeof(struct cdbdata));
cdb_bucket->len = 0;
cdb_bucket->ptr = malloc(sizeof(long));
+ num_msgs = 0;
+ }
+ else {
+ num_msgs = cdb_bucket->len / sizeof(long);
}
- num_msgs = cdb_bucket->len / sizeof(long);
++num_msgs;
cdb_bucket->ptr = realloc(cdb_bucket->ptr, num_msgs*sizeof(long) );
char search_string[256];
int num_tokens = 0;
int *tokens = NULL;
- int i;
+ int i, j;
+ struct cdbdata *cdb_bucket;
+ int num_msgs;
+ long *msgs;
if (CtdlAccessCheck(ac_logged_in)) return;
extract_token(search_string, argbuf, 0, '|', sizeof search_string);
if (num_tokens > 0) {
for (i=0; i<num_tokens; ++i) {
- cprintf("FIXME search for token %d\n", tokens[i]);
+ /* search for tokens[i] */
+ cdb_bucket = cdb_fetch(CDB_FULLTEXT, &tokens[i], sizeof(int));
+ if (cdb_bucket != NULL) {
+ num_msgs = cdb_bucket->len / sizeof(long);
+ msgs = (long *)cdb_bucket->ptr;
+ cdb_free(cdb_bucket);
+ for (j=0; j<num_msgs; ++j) {
+ cprintf("Token <%d> is in msg <%ld>\n", tokens[i], msgs[j]);
+ }
+ }
}
free(tokens);