cvs: php4 /ext/hyperwave hg_comm.c hw.c
| From: | Uwe Steinmann | Date: | Wed, 13 Dec 2000 17:27:12 +0000 |
| Subject: | cvs: php4 /ext/hyperwave hg_comm.c hw.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-3131@lists.php.net to get a copy of this message | ||
steinm Wed Dec 13 09:27:12 2000 EDT
Modified files:
/php4/ext/hyperwave hg_comm.c hw.c
Log:
- Bodytag is insertet by fnInsAnchors()
- several small bugs which might cause a segm fault
Index: php4/ext/hyperwave/hg_comm.c
diff -u php4/ext/hyperwave/hg_comm.c:1.35 php4/ext/hyperwave/hg_comm.c:1.36
--- php4/ext/hyperwave/hg_comm.c:1.35 Tue Dec 12 04:28:25 2000
+++ php4/ext/hyperwave/hg_comm.c Wed Dec 13 09:27:12 2000
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: hg_comm.c,v 1.35 2000/12/12 12:28:25 steinm Exp $ */
+/* $Id: hg_comm.c,v 1.36 2000/12/13 17:27:12 steinm Exp $ */
/* #define HW_DEBUG */
@@ -465,16 +465,16 @@
}
if(!cur_ptr->destdocname) {
- cur_ptr->link = NULL;
- if(NULL != (str = strstr(object, "Hint=URL:"))) {
- str += 9;
- if(sscanf(str, "%s\n", link))
- cur_ptr->link = estrdup(link);
- } else if(NULL != (str = strstr(object, "Hint="))) {
- str += 5;
- if(sscanf(str, "%s\n", link))
- cur_ptr->link = estrdup(link);
- }
+ cur_ptr->link = NULL;
+ if(NULL != (str = strstr(object, "Hint=URL:"))) {
+ str += 9;
+ if(sscanf(str, "%s\n", link))
+ cur_ptr->link = estrdup(link);
+ } else if(NULL != (str = strstr(object, "Hint="))) {
+ str += 5;
+ if(sscanf(str, "%s\n", link))
+ cur_ptr->link = estrdup(link);
+ }
}
cur_ptr->fragment = NULL;
@@ -687,7 +687,7 @@
/* The link is only set if the Link points to an external document */
switch(cur_ptr->linktype) {
case HW_BACKGROUND_LINK:
- snprintf(bgstr, BUFFERLEN, " background='%s'", cur_ptr->link);
+ snprintf(istr, BUFFERLEN, " background='%s'", cur_ptr->link);
break;
case HW_INTAG_LINK:
snprintf(istr, BUFFERLEN, " %s='%s'", cur_ptr->tagattr,
cur_ptr->link);
@@ -715,10 +715,10 @@
} else {
switch(cur_ptr->linktype) {
case HW_BACKGROUND_LINK:
- if(NULL != cur_ptr->destdocname)
- snprintf(bgstr, BUFFERLEN, " background='%s/%s'",
scriptname[HW_BACKGROUND_LINK], cur_ptr->destdocname);
- else
- bgstr[0] = '\0';
+ if(NULL != cur_ptr->destdocname) {
+ snprintf(istr, BUFFERLEN, " background='%s/%s'",
scriptname[HW_BACKGROUND_LINK], cur_ptr->destdocname);
+ } else
+ istr[0] = '\0';
break;
case HW_INTAG_LINK:
if(cur_ptr->fragment)
@@ -2140,7 +2140,7 @@
if(pAnchorList != NULL) {
char *newtext;
- char *body;
+ char *body = NULL;
char **prefixarray;
prefixarray = emalloc(5*sizeof(char *));
@@ -2157,7 +2157,7 @@
dlst_kill(pAnchorList, fnDeleteAnchor);
#endif
*bodytag = strdup(body);
- efree(body);
+ if(body) efree(body);
*text = newtext;
*count = strlen(newtext);
}
@@ -2186,7 +2186,7 @@
if(pAnchorList != NULL) {
char *newtext;
- char *body;
+ char *body = NULL;
newtext = fnInsAnchorsIntoText(*text, pAnchorList, &body, urlprefix);
@@ -2197,7 +2197,8 @@
dlst_kill(pAnchorList, fnDeleteAnchor);
#endif
*bodytag = strdup(body);
- efree(body);
+ if(body) efree(body);
+fprintf(stderr, "bodytag = %s\n", *bodytag);
*text = newtext;
*count = strlen(newtext);
}
@@ -5094,7 +5095,7 @@
if(pAnchorList != NULL) {
char *newtext;
- char *body;
+ char *body = NULL;
newtext = fnInsAnchorsIntoText(*text, pAnchorList, &body, urlprefix);
#ifdef newlist
@@ -5104,7 +5105,7 @@
dlst_kill(pAnchorList, fnDeleteAnchor);
#endif
*bodytag = strdup(body);
- efree(body);
+ if(body) efree(body);
*text = newtext;
*count = strlen(newtext);
}
Index: php4/ext/hyperwave/hw.c
diff -u php4/ext/hyperwave/hw.c:1.71 php4/ext/hyperwave/hw.c:1.72
--- php4/ext/hyperwave/hw.c:1.71 Tue Dec 12 04:28:25 2000
+++ php4/ext/hyperwave/hw.c Wed Dec 13 09:27:12 2000
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: hw.c,v 1.71 2000/12/12 12:28:25 steinm Exp $ */
+/* $Id: hw.c,v 1.72 2000/12/13 17:27:12 steinm Exp $ */
#include <stdlib.h>
#include <errno.h>
@@ -655,10 +655,12 @@
switch(data->type) {
case IS_STRING:
*ptr = estrdup(data->value.str.val);
-fprintf(stderr, "carr[] = %s\n", *ptr);
- ptr++;
+/*fprintf(stderr, "carr[] = %s\n", *ptr); */
break;
+ default:
+ *ptr = NULL;
}
+ ptr++;
zend_hash_move_forward(arrht);
}
@@ -2819,7 +2821,12 @@
strcpy(temp+strlen(ptr->bodytag)-1+argv[1]->value.str.len, ">\n");
RETURN_STRING(temp, 0);
} else {
- RETURN_STRING(ptr->bodytag, 1);
+//fprintf(stderr, "hw_document_bodytag: %s (%s)\n", ptr->bodytag, ptr->attributes);
+ if(ptr->bodytag) {
+ RETURN_STRING(ptr->bodytag, 1);
+ } else {
+ RETURN_EMPTY_STRING();
+ }
}
}
/* }}} */
@@ -4186,7 +4193,10 @@
php_error(E_WARNING, "command (insertanchors) returned %d\n", error);
RETURN_FALSE;
}
+/*fprintf(stderr, "in hw_insertanchors: %s\n", hwdoc->attributes); */
hwdoc->size = count;
+ if(hwdoc->bodytag) free (hwdoc->bodytag);
+ hwdoc->bodytag = bodytag;
RETURN_TRUE;
}