Implement longer defines
This commit is contained in:
parent
5cc866637e
commit
1c9de73b91
@ -10,9 +10,14 @@ bool replace(tSyntaxElement* tree, tProcessingData* pd) {
|
|||||||
|
|
||||||
free(tree->content.none);
|
free(tree->content.none);
|
||||||
|
|
||||||
tSyntaxElement* clone = se_clone_no_next(pd->data.replace.replacewiththis, tree);
|
tSyntaxElement* clone = se_clone(pd->data.replace.replacewiththis, tree);
|
||||||
tree->content = clone->content;
|
tree->content = clone->content;
|
||||||
tree->type = clone->type;
|
tree->type = clone->type;
|
||||||
|
if (clone->next != NULL) {
|
||||||
|
tSyntaxElement* tmp = se_find_last(clone);
|
||||||
|
tmp->next = tree->next;
|
||||||
|
tree->next = clone->next;
|
||||||
|
}
|
||||||
|
|
||||||
free(clone);
|
free(clone);
|
||||||
|
|
||||||
|
10
src/syntax.c
10
src/syntax.c
@ -142,3 +142,13 @@ tSyntaxElement* se_clone_no_next(tSyntaxElement* syntaxelement, tSyntaxElement*
|
|||||||
return clone;
|
return clone;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tSyntaxElement* se_find_last(tSyntaxElement* syntaxelement) {
|
||||||
|
tSyntaxElement* i = syntaxelement;
|
||||||
|
while (1)
|
||||||
|
if (i->next == NULL)
|
||||||
|
return i;
|
||||||
|
else
|
||||||
|
i = i->next;
|
||||||
|
}
|
||||||
|
|
||||||
|
@ -47,4 +47,6 @@ tSyntaxElement* se_clone(tSyntaxElement*, tSyntaxElement*);
|
|||||||
|
|
||||||
tSyntaxElement* se_clone_no_next(tSyntaxElement*, tSyntaxElement*);
|
tSyntaxElement* se_clone_no_next(tSyntaxElement*, tSyntaxElement*);
|
||||||
|
|
||||||
|
tSyntaxElement* se_find_last(tSyntaxElement*);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user