pike.git / src / modules / _WhiteFish / whitefish.c

version» Context lines:

pike.git/src/modules/_WhiteFish/whitefish.c:1:   #include "global.h"   #include "stralloc.h"   #include "global.h" - RCSID("$Id: whitefish.c,v 1.5 2001/05/22 13:52:49 per Exp $"); + RCSID("$Id: whitefish.c,v 1.6 2001/05/22 14:03:31 per Exp $");   #include "pike_macros.h"   #include "interpret.h"   #include "program.h"   #include "program_id.h"   #include "object.h"   #include "operators.h"   #include "array.h"   #include "module_support.h"      #include "config.h"
pike.git/src/modules/_WhiteFish/whitefish.c:33:    int i;    if( t->res ) free_object( t->res );    for( i = 0; i<t->nblobs; i++ )    wf_blob_free( t->blobs[i] );    free( t );   }      static struct object *low_do_query_merge( Blob **blobs,    int nblobs,    int field_c[68], -  int prox_c[8], -  int field ) +  int prox_c[8])   {    struct object *res = wf_resultset_new();    struct tofree *__f = malloc( sizeof( struct tofree ) );    ONERROR e;       __f->res = res;    __f->blobs = blobs;    __f->nblobs = nblobs;    SET_ONERROR( e, free_stuff, __f );   
pike.git/src/modules/_WhiteFish/whitefish.c:104:    *! 5 spread: 41-80    *! 6 spread: 81-160    *! 7 spread: 161-    *!    *! The 'spread' value should be defined somehow.    *!    *! @[blobfeeder]    *!    *! This function returns a Pike string containing the word hits    *! for a certain word_id. Call repeatedly until it returns 0. -  *! -  *! @[field] -  *! -  *! Selects what fields to match words in. Should be -1 to -  *! match any field. -  *! -  *! Index Field -  *! ----- --------------------- -  *! -1 Any field -  *! 0..63 Special field 0..63 -  *! 64 Body text +     */   {    int proximity_coefficients[8];    int field_coefficients[68];    int numblobs, i;    Blob **blobs;       struct svalue *cb;    struct array *_words, *_field, *_prox; -  int field; +        /* 1: Get all arguments. */ -  get_all_args( "do_query_merge", args, "%a%a%a%O%d", -  &_words, &_field, &_prox, &cb, &field ); +  get_all_args( "do_query_merge", args, "%a%a%a%O", +  &_words, &_field, &_prox, &cb);       if( _field->size != 68 )    Pike_error("Illegal size of field_coefficients array (expected 68)\n" );    if( _prox->size != 8 )    Pike_error("Illegal size of proximity_coefficients array (expected 8)\n" );       numblobs = _words->size;    if( !numblobs )    {    struct object *o = wf_resultset_new( );
pike.git/src/modules/_WhiteFish/whitefish.c:157:    blobs[i] = wf_blob_new( cb, _words->item[i].u.integer );       for( i = 0; i<8; i++ )    proximity_coefficients[i] = _prox->item[i].u.integer;       for( i = 0; i<48; i++ )    field_coefficients[i] = _field->item[i].u.integer;       push_object(low_do_query_merge(blobs,numblobs,    field_coefficients, -  proximity_coefficients,field )); +  proximity_coefficients ));   }      void pike_module_init(void)   {    init_resultset_program();       add_function( "do_query_merge", f_do_query_merge,    "function(array(int),array(int),array(int)" -  ",function(int:string),int", +  ",function(int:string):object)",    0 );   }      void pike_module_exit(void)   {    exit_resultset_program();   }