Changeset 1929
- Timestamp:
- 04/24/07 22:31:17 (1 year ago)
- Files:
-
- libswish3/trunk/bindings/perl/3.xs (modified) (10 diffs)
- libswish3/trunk/bindings/perl/lib/SWISH/3.pm (modified) (1 diff)
- libswish3/trunk/bindings/perl/lib/SWISH/3/Xapian/Indexer.pm (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
libswish3/trunk/bindings/perl/3.xs
r1928 r1929 45 45 /* if called as a setter, make sure the extra arg is there */ \ 46 46 if (ix % 2 == 1) { \ 47 if (items !=2) \47 if (items < 2) \ 48 48 croak("usage: $object->set_xxxxxx($val)"); \ 49 49 } \ 50 50 else { \ 51 if (items != 1) \51 if (items > 2) \ 52 52 croak("usage: $object->get_xxxxx()"); \ 53 53 } \ … … 153 153 else 154 154 { 155 croak("failed to fetch %s from hash", key);155 //croak("failed to fetch %s from hash", key); 156 156 } 157 157 return *ok; … … 422 422 xmlChar * start_ptr = str + rx->startp[0]; 423 423 xmlChar * end_ptr = str + rx->endp[0]; 424 int start, end, tok_ len;424 int start, end, tok_bytes, tok_pts; 425 425 xmlChar * token; 426 426 … … 442 442 } 443 443 444 end = num_code_points; 444 end = num_code_points; /* characters (codepoints) */ 445 445 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 453 460 if (SWISH_DEBUG) 454 461 { 455 token = SvPV( newSVpvn(start_ptr, tok_len), PL_na );456 462 warn("%s (%d %d)\n", token, start + 1, end); 457 463 } 458 464 465 free(token); 459 466 } 460 467 … … 680 687 681 688 # 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), 683 690 (xmlChar*)buf, 684 691 (void*)self … … 704 711 set_handler = 5 705 712 get_handler = 6 713 set_stash = 7 714 get_stash = 8 706 715 PREINIT: 707 716 HV* stash; … … 710 719 swish_Config * conf; 711 720 swish_Analyzer * ana; 721 char * skey; 712 722 PPCODE: 713 723 { … … 748 758 break; 749 759 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 750 772 END_SET_OR_GET_SWITCH 751 773 } … … 938 960 939 961 962 SV* 963 nwords(self) 964 swish_WordList * self; 965 966 CODE: 967 RETVAL = newSViv( self->nwords ); 968 969 OUTPUT: 970 RETVAL 971 972 940 973 941 974 void … … 968 1001 OUTPUT: 969 1002 RETVAL 1003 1004 CLEANUP: 1005 SvREFCNT_inc(RETVAL); 970 1006 971 1007 libswish3/trunk/bindings/perl/lib/SWISH/3.pm
r1927 r1929 6 6 7 7 our $VERSION = '0.01'; 8 9 $ENV{SWISH3} = 1; # should be set by libswish3 in swish.c but doesn't seem to. 8 10 9 11 use Carp; libswish3/trunk/bindings/perl/lib/SWISH/3/Xapian/Indexer.pm
r1921 r1929 9 9 use SWISH::3::Xapian::Doc; 10 10 11 my $doc_class = 'SWISH::3::Xapian::Doc';12 my $prefix = $SWISH::3::Xapian::Doc::term_prefix;11 my $doc_class = 'SWISH::3::Xapian::Doc'; 12 my $prefix = $SWISH::3::Xapian::Doc::term_prefix; 13 13 14 14 our $VERSION = '0.01'; 15 15 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 17 18 18 19 __PACKAGE__->mk_accessors(qw( x_db ));
