summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUwe Steinmann <steinm@php.net>2000-03-09 12:45:55 +0000
committerUwe Steinmann <steinm@php.net>2000-03-09 12:45:55 +0000
commitff2443eb6791d79a478e73282a233cdb8846cdfb (patch)
tree425aeea6fa1c7eccd118995d73df92dd37bfff87
parentba5089812341c9bf9f845c49670382e7de0a6d5b (diff)
downloadphp-git-ff2443eb6791d79a478e73282a233cdb8846cdfb.tar.gz
- bug fix, insertion of links back into HTML document
- smarter test script
-rw-r--r--ext/hyperwave/hg_comm.c6
-rw-r--r--tests/testhyperwave16
2 files changed, 17 insertions, 5 deletions
diff --git a/ext/hyperwave/hg_comm.c b/ext/hyperwave/hg_comm.c
index 45ee5c6ca8..a3fe28265d 100644
--- a/ext/hyperwave/hg_comm.c
+++ b/ext/hyperwave/hg_comm.c
@@ -461,7 +461,7 @@ DLIST *fnCreateAnchorList(hw_objectID objID, char **anchors, char **docofanchorr
char *htmlattr, *str2;
int offset;
str1 = object;
- htmlattr = emalloc(strlen(object));
+ htmlattr = emalloc(strlen(object)); /* alloc mem big enough for htmlattr */
htmlattr[0] = '\0';
offset = 0;
while(NULL != (str = strstr(str1, "HtmlAttr="))) {
@@ -469,7 +469,9 @@ DLIST *fnCreateAnchorList(hw_objectID objID, char **anchors, char **docofanchorr
str1 = str;
while((*str1 != '\n') && (*str1 != '\0'))
str1++;
- if(NULL != (str2 = strchr(str, '='))) {
+ /* Find the '=' in the HTML attr and make sure it is part of the
+ attr and not somewhere in the objrec. */
+ if((NULL != (str2 = strchr(str, '='))) && (str2 < str1)) {
str2++;
strncpy(&htmlattr[offset], str, str2 - str);
offset = offset + (str2 - str);
diff --git a/tests/testhyperwave b/tests/testhyperwave
index 5391cc6f34..36f2b8c284 100644
--- a/tests/testhyperwave
+++ b/tests/testhyperwave
@@ -27,8 +27,8 @@
/* Lists an object array
*/
function list_attr($attributes) {
- var_dump($attributes);
- return;
+// var_dump($attributes);
+// return;
for($i=0; $i<count($attributes); $i++) {
$key = key($attributes);
switch($key) {
@@ -59,7 +59,17 @@
printf("\n");
break;
default:
- printf("%s = %s\n", $key, $attributes[$key]);
+ if(is_array($attributes[$key])) {
+ $group_arr = $attributes[$key];
+ $cj = count($group_arr);
+ for($j=0; $j<$cj; $j++) {
+ printf("%s = %s\n", $key, $group_arr[$j]);
+ next($group_arr);
+ }
+ } else {
+ printf("%s = %s\n", $key, $attributes[$key]);
+ }
+
}
next($attributes);
}