{
ANCHOR *cur_ptr;
+#ifdef newlist
+#else
if((cur_ptr = (ANCHOR *) dlst_newnode(sizeof(ANCHOR))) == NULL) {
return NULL;
}
+#endif
memset(cur_ptr, 0, sizeof(ANCHOR));
cur_ptr->start = start;
cur_ptr->keyword = NULL;
cur_ptr->fragment = NULL;
+#ifdef newlist
+ zend_llist_prepend_element(pAnchorList, cur_ptr);
+ free(cur_ptr);
+#else
dlst_insertafter(pAnchorList, cur_ptr, PHP_DLST_HEAD(pAnchorList));
+#endif
return(cur_ptr);
}
if(ptr->keyword) efree(ptr->keyword);
if(ptr->fragment) efree(ptr->fragment);
+#ifdef newlist
+ free(ptr);
+#else
dlst_freenode(ptr);
+#endif
}
/***********************************************************************
{
int start, end, i, destid, anchordestid, objectID;
ANCHOR *cur_ptr = NULL;
+#ifdef newlist
+ zend_llist *pAnchorList;
+ zend_llist_init(pAnchorList, sizeof(char *), fnDeleteAnchor, 0);
+#else
DLIST *pAnchorList = dlst_init();
+#endif
for(i=ancount-1; i>=0; i--) {
char *object = NULL;
newtext = text;
bgstr[0] = '\0';
+#ifdef newlist
+ zend_llist_sort(pAnchorList, fnCmpAnchors);
+ cur_ptr = (ANCHOR *) zend_llist_get_last(pAnchorList);
+#else
dlst_mergesort(pAnchorList, fnCmpAnchors);
-
cur_ptr = (ANCHOR *) dlst_last(pAnchorList);
+#endif
+
while(NULL != cur_ptr) {
istr[0] = '\0';
if(cur_ptr->tanchor == 1) { /* Src Anchor */
offset += strlen(istr) + 4;
laststart = cur_ptr->start;
}
+#if newlist
cur_ptr = (ANCHOR *) dlst_prev(cur_ptr);
+#else
+ cur_ptr = (ANCHOR *) zend_llist_get_prev(pAnchorList);
+#endif
}
snprintf(istr, BUFFERLEN, "<BODY %s>", bgstr);
*bodytag = estrdup(istr);
char *body;
newtext = fnInsAnchorsIntoText(*text, pAnchorList, &body, urlprefix);
+#ifdef newlist
+ zend_llist_destroy(pAnchorList)
+#else
dlst_kill(pAnchorList, fnDeleteAnchor);
+#endif
*bodytag = strdup(body);
efree(body);
*text = newtext;
char *body;
newtext = fnInsAnchorsIntoText(*text, pAnchorList, &body, urlprefix);
+#ifdef newlist
+ zend_llist_destroy(pAnchorList)
+#else
dlst_kill(pAnchorList, fnDeleteAnchor);
+#endif
*bodytag = strdup(body);
efree(body);
*text = newtext;