Changeset 1929

Show
Ignore:
Timestamp:
04/24/07 22:31:17 (1 year ago)
Author:
karpet
Message:

fix number of bugs for swish3 example script

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • libswish3/trunk/bindings/perl/3.xs

    r1928 r1929  
    4545    /* if called as a setter, make sure the extra arg is there */ \ 
    4646    if (ix % 2 == 1) { \ 
    47         if (items != 2) \ 
     47        if (items < 2) \ 
    4848            croak("usage: $object->set_xxxxxx($val)"); \ 
    4949    } \ 
    5050    else { \ 
    51         if (items != 1) \ 
     51        if (items > 2) \ 
    5252            croak("usage: $object->get_xxxxx()"); \ 
    5353    } \ 
     
    153153    else 
    154154    { 
    155         croak("failed to fetch %s from hash", key); 
     155        //croak("failed to fetch %s from hash", key); 
    156156    } 
    157157    return *ok; 
     
    422422        xmlChar * start_ptr = str + rx->startp[0]; 
    423423        xmlChar * end_ptr   = str + rx->endp[0]; 
    424         int start, end, tok_len
     424        int start, end, tok_bytes, tok_pts
    425425        xmlChar * token; 
    426426 
     
    442442        } 
    443443             
    444         end = num_code_points; 
     444        end = num_code_points;          /* characters (codepoints) */ 
    445445             
    446         tok_len = end_ptr - start_ptr;  /* bytes */ 
    447          
    448         /* TODO add to list based on max, min, etc */ 
    449          
    450         /* equivalent to swish_xstrdup()  
    451           -- TODO better way, since add_word() will also xstrdup */ 
    452            
     446        tok_pts   = end - start; 
     447        tok_bytes = end_ptr - start_ptr; 
     448         
     449        /* TODO lc() ? */ 
     450         
     451        if (tok_pts < analyzer->minwordlen) 
     452            continue; 
     453             
     454        if (tok_pts > analyzer->maxwordlen) 
     455            continue; 
     456         
     457        token = xmlStrndup(start_ptr, tok_bytes);         
     458        swish_add_to_wordlist( list, token, meta, ctxt, ++wpos, (tok_bytes + offset - 1) ); 
     459         
    453460        if (SWISH_DEBUG) 
    454461        { 
    455             token = SvPV( newSVpvn(start_ptr, tok_len), PL_na ); 
    456462            warn("%s (%d %d)\n", token, start + 1, end); 
    457463        } 
    458  
     464         
     465        free(token); 
    459466    }  
    460467 
     
    680687 
    681688# need to swap return values to make it Perlish 
    682         RETVAL = swish_parse_file(  (swish_Parser*)sp_ptr_from_object(self), 
     689        RETVAL = swish_parse_buffer((swish_Parser*)sp_ptr_from_object(self), 
    683690                                    (xmlChar*)buf, 
    684691                                    (void*)self 
     
    704711    set_handler      = 5 
    705712    get_handler      = 6 
     713    set_stash        = 7 
     714    get_stash        = 8 
    706715PREINIT: 
    707716    HV* stash; 
     
    710719    swish_Config * conf; 
    711720    swish_Analyzer * ana; 
     721    char * skey; 
    712722PPCODE: 
    713723{ 
     
    748758             break; 
    749759     
     760# first val is key, second is value.          
     761    case 7:   
     762             skey   = SvPV(ST(1), PL_na); 
     763#             oldval = sp_hv_delete(stash, skey); 
     764             sp_hv_store(stash, skey, ST(2)); 
     765             break; 
     766 
     767    case 8:  skey   = SvPV(ST(1), PL_na); 
     768             RETVAL = sp_hv_fetch(stash, skey); 
     769             break; 
     770 
     771     
    750772    END_SET_OR_GET_SWITCH 
    751773} 
     
    938960 
    939961 
     962SV* 
     963nwords(self) 
     964    swish_WordList * self; 
     965     
     966    CODE: 
     967        RETVAL = newSViv( self->nwords ); 
     968         
     969    OUTPUT: 
     970        RETVAL 
     971     
     972     
    940973 
    941974void 
     
    9681001    OUTPUT: 
    9691002        RETVAL 
     1003         
     1004    CLEANUP: 
     1005        SvREFCNT_inc(RETVAL); 
    9701006 
    9711007 
  • libswish3/trunk/bindings/perl/lib/SWISH/3.pm

    r1927 r1929  
    66 
    77our $VERSION = '0.01'; 
     8 
     9$ENV{SWISH3} = 1;   # should be set by libswish3 in swish.c but doesn't seem to. 
    810 
    911use Carp; 
  • libswish3/trunk/bindings/perl/lib/SWISH/3/Xapian/Indexer.pm

    r1921 r1929  
    99use SWISH::3::Xapian::Doc; 
    1010 
    11 my $doc_class   = 'SWISH::3::Xapian::Doc'; 
    12 my $prefix = $SWISH::3::Xapian::Doc::term_prefix; 
     11my $doc_class = 'SWISH::3::Xapian::Doc'; 
     12my $prefix    = $SWISH::3::Xapian::Doc::term_prefix; 
    1313 
    1414our $VERSION = '0.01'; 
    1515 
    16 $ENV{XAPIAN_PREFER_FLINT} = 1;  # force Flint db until Xapian 1.0 makes it default 
     16$ENV{XAPIAN_PREFER_FLINT} = 
     17  1;    # force Flint db until Xapian 1.0 makes it default 
    1718 
    1819__PACKAGE__->mk_accessors(qw( x_db ));