Re: namazu returns references, but no matching documents
[email protected] Wed, 26 Nov 2003 18:53:52 +0900
| Newsgroups | gmane.comp.search.namazu.user |
|---|---|
| Message-ID | <[email protected]> |
--Multipart_Wed_Nov_26_18:53:52_2003-1 Content-Type: text/plain; charset=US-ASCII At Wed, 26 Nov 2003 18:47:14 +0900, [email protected] wrote: > According to gdb, it's in the following line that the reason why > namazu couldn't work appropriately: > > val = nmz_do_searching(token, val); > > (nmz/parser.c: factor()) > > val is an structure (NmzResult). In nmz_do_searching() function, the > value of val seems handled appropriately, but the return value was not > effected, therefore val.num is still 0 after the line. I maed a patch for the issue. But 2 tests were still failed. -- NOKUBI Takatsugu E-mail: [email protected] [email protected] / [email protected] --Multipart_Wed_Nov_26_18:53:52_2003-1 Content-Type: application/octet-stream; type=patch Content-Disposition: attachment; filename="openbsd33-workaround.diff" Content-Transfer-Encoding: 7bit diff -ur namazu-2.0.12/nmz/parser.c namazu-2.0.12.new/nmz/parser.c --- namazu-2.0.12/nmz/parser.c Tue Sep 11 16:59:39 2001 +++ namazu-2.0.12.new/nmz/parser.c Wed Nov 26 10:26:23 2003 @@ -65,7 +65,7 @@ static NmzResult factor(void) { - NmzResult val; + static NmzResult val; val.num = 0; val.stat = SUCCESS; while (1) { @@ -91,7 +91,7 @@ Cp++; break; } else if (!nmz_is_query_op(token)) { - val = nmz_do_searching(token, val); + val = nmz_do_searching(token, &val); if (val.stat == ERR_FATAL) return val; if (val.stat == ERR_TOO_MUCH_MATCH || diff -ur namazu-2.0.12/nmz/search.c namazu-2.0.12.new/nmz/search.c --- namazu-2.0.12/nmz/search.c Tue Mar 26 19:49:33 2002 +++ namazu-2.0.12.new/nmz/search.c Wed Nov 26 10:26:12 2003 @@ -1032,10 +1032,12 @@ NmzResult -nmz_do_searching(const char *key, NmzResult val) +nmz_do_searching(const char *key, NmzResult *val2) { enum nmz_searchmethod mode; char tmpkey[BUFSIZE]; + NmzResult val; + memcpy(&val, val2, sizeof(val)); strncpy(tmpkey, key, BUFSIZE - 1); diff -ur namazu-2.0.12/nmz/search.h namazu-2.0.12.new/nmz/search.h --- namazu-2.0.12/nmz/search.h Mon Feb 26 17:39:52 2001 +++ namazu-2.0.12.new/nmz/search.h Wed Nov 26 10:27:13 2003 @@ -6,7 +6,7 @@ extern void nmz_free_hitnums ( struct nmz_hitnumlist *hn ); extern int nmz_binsearch ( const char *key, int prefix_match_mode ); extern NmzResult nmz_search ( const char *query ); -extern NmzResult nmz_do_searching ( const char *key, NmzResult val ); +extern NmzResult nmz_do_searching ( const char *key, NmzResult *val ); #endif /* _SEARCH_H */ --Multipart_Wed_Nov_26_18:53:52_2003-1--