steinm Tue Mar 20 23:58:20 2001 EDT
Modified files:
/php4/ext/hyperwave hg_comm.c
Log:
- fulltext query are working now
Index: php4/ext/hyperwave/hg_comm.c
diff -u php4/ext/hyperwave/hg_comm.c:1.40 php4/ext/hyperwave/hg_comm.c:1.41
--- php4/ext/hyperwave/hg_comm.c:1.40 Fri Mar 16 09:40:37 2001
+++ php4/ext/hyperwave/hg_comm.c Tue Mar 20 23:58:20 2001
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: hg_comm.c,v 1.40 2001/03/16 17:40:37 steinm Exp $ */
+/* $Id: hg_comm.c,v 1.41 2001/03/21 07:58:20 steinm Exp $ */
/* #define HW_DEBUG */
@@ -4392,6 +4392,9 @@
return -1;
}
if(*ptr++ == 0) {
+ char *cptr, tmp[20];
+ float weight;
+ int j;
*count = (*ptr < maxhits) ? *ptr : maxhits;
ptr++;
if(NULL != (*childIDs = emalloc(*count * sizeof(hw_objectID)))) {
@@ -4399,8 +4402,18 @@
if(NULL != (*weights = emalloc(*count * sizeof(float)))) {
ptr2 = *weights;
for(i=0; i<*count; i++) {
- ptr1[i] = *ptr++;
- ptr2[i] = (float) *ptr++;
+ ptr1[i] = *ptr++; /* Object id */
+ cptr = (char *) ptr;
+ j = 0;
+ while(*cptr != ' ') {
+ tmp[j++] = *cptr++;
+ }
+ cptr++; /* Skip space after weight */
+ tmp[j] = '\0';
+ sscanf(tmp, "%f", &weight);
+ ptr2[i] = weight;
+ ptr = (int *) cptr;
+ ptr++; /* Skip 0-Integer after weight string */
}
efree(retmsg->buf);
efree(retmsg);
@@ -4464,6 +4477,9 @@
return -4;
}
if(*ptr++ == 0) {
+ char *cptr, tmp[20];
+ float weight;
+ int j;
*count = (*ptr < maxhits) ? *ptr : maxhits;
ptr++;
if(NULL != (childIDs = emalloc(*count * sizeof(hw_objectID)))) {
@@ -4471,8 +4487,18 @@
if(NULL != (*weights = emalloc(*count * sizeof(float)))) {
ptr2 = *weights;
for(i=0; i<*count; i++) {
- ptr1[i] = *ptr++;
- ptr2[i] = (float) *ptr++;
+ ptr1[i] = *ptr++; /* Object id */
+ cptr = (char *) ptr;
+ j = 0;
+ while(*cptr != ' ') {
+ tmp[j++] = *cptr++;
+ }
+ cptr++; /* Skip space after weight */
+ tmp[j] = '\0';
+ sscanf(tmp, "%f", &weight);
+ ptr2[i] = weight;
+ ptr = (int *) cptr;
+ ptr++; /* Skip 0-Integer after weight string */
}
efree(retmsg->buf);
efree(retmsg);
@@ -4600,6 +4626,9 @@
return -1;
}
if(*ptr++ == 0) {
+ char *cptr, tmp[20];
+ float weight;
+ int j;
*count = (*ptr < maxhits) ? *ptr : maxhits;
ptr++;
if(NULL != (*childIDs = emalloc(*count * sizeof(hw_objectID)))) {
@@ -4607,8 +4636,18 @@
if(NULL != (*weights = emalloc(*count * sizeof(float)))) {
ptr2 = *weights;
for(i=0; i<*count; i++) {
- ptr1[i] = *ptr++;
- ptr2[i] = (float) *ptr++;
+ ptr1[i] = *ptr++; /* Object id */
+ cptr = (char *) ptr;
+ j = 0;
+ while(*cptr != ' ') {
+ tmp[j++] = *cptr++;
+ }
+ cptr++; /* Skip space after weight */
+ tmp[j] = '\0';
+ sscanf(tmp, "%f", &weight);
+ ptr2[i] = weight;
+ ptr = (int *) cptr;
+ ptr++; /* Skip 0-Integer after weight string */
}
} else {
efree(*childIDs);
@@ -4673,6 +4712,9 @@
return -1;
}
if(*ptr++ == 0) {
+ char *cptr, tmp[20];
+ float weight;
+ int j;
*count = (*ptr < maxhits) ? *ptr : maxhits;
ptr++;
if(NULL != (childIDs = emalloc(*count * sizeof(hw_objectID)))) {
@@ -4680,8 +4722,18 @@
if(NULL != (*weights = emalloc(*count * sizeof(float)))) {
ptr2 = *weights;
for(i=0; i<*count; i++) {
- ptr1[i] = *ptr++;
- ptr2[i] = (float) *ptr++;
+ ptr1[i] = *ptr++; /* Object id */
+ cptr = (char *) ptr;
+ j = 0;
+ while(*cptr != ' ') {
+ tmp[j++] = *cptr++;
+ }
+ cptr++; /* Skip space after weight */
+ tmp[j] = '\0';
+ sscanf(tmp, "%f", &weight);
+ ptr2[i] = weight;
+ ptr = (int *) cptr;
+ ptr++; /* Skip 0-Integer after weight string */
}
efree(retmsg->buf);
efree(retmsg);
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]