cvs: php4 /ext/mnogosearch php_mnogo.c php_mnogo.h

From: Date: Thu, 06 Jun 2002 05:45:56 +0000
Subject: cvs: php4 /ext/mnogosearch php_mnogo.c php_mnogo.h
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-12239@lists.php.net to get a copy of this message
gluke Thu Jun 6 01:45:56 2002 EDT Modified files: /php4/ext/mnogosearch php_mnogo.c php_mnogo.h Log: # More mnogosearch updates Index: php4/ext/mnogosearch/php_mnogo.c diff -u php4/ext/mnogosearch/php_mnogo.c:1.53 php4/ext/mnogosearch/php_mnogo.c:1.54 --- php4/ext/mnogosearch/php_mnogo.c:1.53 Wed Jun 5 10:34:53 2002 +++ php4/ext/mnogosearch/php_mnogo.c Thu Jun 6 01:45:40 2002 @@ -1,5 +1,5 @@ /* $Source: /usr/repository/php4/ext/mnogosearch/php_mnogo.c,v $ */ -/* $Id: php_mnogo.c,v 1.53 2002/06/05 14:34:53 gluke Exp $ */ +/* $Id: php_mnogo.c,v 1.54 2002/06/06 05:45:40 gluke Exp $ */ /* +----------------------------------------------------------------------+ @@ -118,6 +118,7 @@ #define UDM_PARAM_SEARCHTIME 259 #define UDM_PARAM_FIRST_DOC 260 #define UDM_PARAM_LAST_DOC 261 +#define UDM_PARAM_WORDINFO_ALL 262 /* udm_load_ispell_data constants */ #define UDM_ISPELL_TYPE_AFFIX 1 @@ -135,20 +136,21 @@ */ function_entry mnogosearch_functions[] = { PHP_FE(udm_api_version, NULL) + #if UDM_VERSION_ID >= 30200 PHP_FE(udm_check_charset, NULL) -#endif - -#if UDM_VERSION_ID >= 30203 - PHP_FE(udm_crc32, NULL) +#if UDM_VERSION_ID == 30203 PHP_FE(udm_open_stored, NULL) PHP_FE(udm_check_stored,NULL) PHP_FE(udm_close_stored,NULL) #endif - +#if UDM_VERSION_ID >= 30203 + PHP_FE(udm_crc32, NULL) +#endif #if UDM_VERSION_ID >= 30204 PHP_FE(udm_parse_query_string,NULL) #endif +#endif PHP_FE(udm_alloc_agent, NULL) PHP_FE(udm_set_agent_param, NULL) @@ -201,14 +203,24 @@ static void _free_udm_agent(zend_rsrc_list_entry *rsrc TSRMLS_DC) { UDM_AGENT * Agent = (UDM_AGENT *)rsrc->ptr; +#if UDM_VERSION_ID >= 30204 + UdmEnvFree(Agent->Conf); + UdmAgentFree(Agent); +#else UdmFreeEnv(Agent->Conf); UdmFreeAgent(Agent); +#endif } static void _free_udm_res(zend_rsrc_list_entry *rsrc TSRMLS_DC) { UDM_RESULT * Res = (UDM_RESULT *)rsrc->ptr; - UdmFreeResult(Res); + +#if UDM_VERSION_ID >= 30204 + UdmResultFree(Res); +#else + UdmFreeResult(Res); +#endif } /* {{{ PHP_MINIT_FUNCTION @@ -294,6 +306,7 @@ REGISTER_LONG_CONSTANT("UDM_PARAM_FOUND", UDM_PARAM_FOUND,CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("UDM_PARAM_NUM_ROWS", UDM_PARAM_NUM_ROWS,CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("UDM_PARAM_WORDINFO", UDM_PARAM_WORDINFO,CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("UDM_PARAM_WORDINFO_ALL",UDM_PARAM_WORDINFO_ALL,CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("UDM_PARAM_WORD_INFO", UDM_PARAM_WORDINFO,CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("UDM_PARAM_SEARCHTIME", UDM_PARAM_SEARCHTIME,CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("UDM_PARAM_SEARCH_TIME", UDM_PARAM_SEARCHTIME,CONST_CS | CONST_PERSISTENT); @@ -1318,7 +1331,9 @@ RETURN_STRING(buf,1); } /* }}} */ +#endif +#if UDM_VERSION_ID == 30203 /* {{{ proto int udm_open_stored(int agent, string storedaddr) Open connection to stored */ DLEXPORT PHP_FUNCTION(udm_open_stored) @@ -1634,9 +1649,73 @@ RETURN_LONG(Res->total_found); break; - case UDM_PARAM_WORDINFO: + case UDM_PARAM_WORDINFO: +#if UDM_VERSION_ID >= 30204 + { + int len,i; + for(len = i = 0; i < Res->WWList.nwords; i++) + len += Res->WWList.Word[i].len; + { + size_t wsize=(1+len*15)*sizeof(char); + char *wordinfo = (char*) malloc(wsize); + int corder = -1, ccount = 0; + + *wordinfo = '\0'; + + for(i = 0; i < Res->WWList.nwords; i++){ + if ((Res->WWList.Word[i].count > 0) || (Res->WWList.Word[i].origin == UDM_WORD_ORIGIN_QUERY)) { + if(wordinfo[0]) strcat(wordinfo,", "); + sprintf(UDM_STREND(wordinfo)," %s : %d", Res->WWList.Word[i].word, Res->WWList.Word[i].count); + } else if (Res->WWList.Word[i].origin == UDM_WORD_ORIGIN_STOP) { + if(wordinfo[0]) strcat(wordinfo,", "); + sprintf(UDM_STREND(wordinfo)," %s : stopword", Res->WWList.Word[i].word); + } + } + RETURN_STRING(wordinfo,1); + } + } +#else RETURN_STRING((Res->wordinfo)?(Res->wordinfo):"",1); +#endif + break; + +#if UDM_VERSION_ID >= 30204 + case UDM_PARAM_WORDINFO_ALL: + { + int len,i; + for(len = i = 0; i < Res->WWList.nwords; i++) + len += Res->WWList.Word[i].len; + { + size_t wsize=(1+len*15)*sizeof(char); + char *wordinfo = (char*) malloc(wsize); + int corder = -1, ccount = 0; + + *wordinfo = '\0'; + + for(i = 0; i < Res->WWList.nwords; i++){ + if (Res->WWList.Word[i].order != corder) { + if(wordinfo[0]) { + sprintf(UDM_STREND(wordinfo)," / %d, ", ccount); + } + ccount = Res->WWList.Word[i].count; + if (Res->WWList.Word[i].origin == UDM_WORD_ORIGIN_STOP) { + sprintf(UDM_STREND(wordinfo)," %s : stopword", Res->WWList.Word[i].word); + } else { + sprintf(UDM_STREND(wordinfo)," %s : %d", Res->WWList.Word[i].word, Res->WWList.Word[i].count); + corder = Res->WWList.Word[i].order; + } + } else { + ccount += Res->WWList.Word[i].count; + } + } + if (Res->WWList.nwords) { + sprintf(UDM_STREND(wordinfo)," / %d", ccount); + } + RETURN_STRING(wordinfo,1); + } + } break; +#endif case UDM_PARAM_SEARCHTIME: RETURN_DOUBLE(((double)Res->work_time)/1000); @@ -1724,7 +1803,11 @@ break; } ZEND_FETCH_RESOURCE(Agent, UDM_AGENT *, yyagent, -1, "mnoGoSearch-Agent", le_link); +#if UDM_VERSION_ID >= 30204 + RETURN_LONG(UdmDBErrorCode(Agent->Conf->db)); +#else RETURN_LONG(UdmDBErrorCode(Agent->db)); +#endif } /* }}} */ @@ -1747,7 +1830,11 @@ break; } ZEND_FETCH_RESOURCE(Agent, UDM_AGENT *, yyagent, -1, "mnoGoSearch-Agent", le_link); +#if UDM_VERSION_ID >= 30204 + RETURN_STRING((UdmDBErrorMsg(Agent->Conf->db))?(UdmDBErrorMsg(Agent->Conf->db)):"",1); +#else RETURN_STRING((UdmDBErrorMsg(Agent->db))?(UdmDBErrorMsg(Agent->db)):"",1); +#endif } /* }}} */ Index: php4/ext/mnogosearch/php_mnogo.h diff -u php4/ext/mnogosearch/php_mnogo.h:1.17 php4/ext/mnogosearch/php_mnogo.h:1.18 --- php4/ext/mnogosearch/php_mnogo.h:1.17 Wed Jun 5 09:06:55 2002 +++ php4/ext/mnogosearch/php_mnogo.h Thu Jun 6 01:45:45 2002 @@ -1,5 +1,5 @@ /* $Source: /usr/repository/php4/ext/mnogosearch/php_mnogo.h,v $ */ -/* $Id: php_mnogo.h,v 1.17 2002/06/05 13:06:55 gluke Exp $ */ +/* $Id: php_mnogo.h,v 1.18 2002/06/06 05:45:45 gluke Exp $ */ /* +----------------------------------------------------------------------+ @@ -57,17 +57,17 @@ DLEXPORT PHP_FUNCTION(udm_api_version); #if UDM_VERSION_ID >= 30200 DLEXPORT PHP_FUNCTION(udm_check_charset); -#endif - -#if UDM_VERSION_ID >= 30203 -DLEXPORT PHP_FUNCTION(udm_crc32); +#if UDM_VERSION_ID == 30203 DLEXPORT PHP_FUNCTION(udm_open_stored); DLEXPORT PHP_FUNCTION(udm_check_stored); DLEXPORT PHP_FUNCTION(udm_close_stored); #endif - +#if UDM_VERSION_ID >= 30203 +DLEXPORT PHP_FUNCTION(udm_crc32); +#endif #if UDM_VERSION_ID >= 30204 DLEXPORT PHP_FUNCTION(udm_parse_query_string); +#endif #endif DLEXPORT PHP_FUNCTION(udm_alloc_agent);

« previous php.cvs (#12239) next »