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);
|
||||
|
||||
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->type = clone->type;
|
||||
if (clone->next != NULL) {
|
||||
tSyntaxElement* tmp = se_find_last(clone);
|
||||
tmp->next = tree->next;
|
||||
tree->next = clone->next;
|
||||
}
|
||||
|
||||
free(clone);
|
||||
|
||||
|
10
src/syntax.c
10
src/syntax.c
@ -142,3 +142,13 @@ tSyntaxElement* se_clone_no_next(tSyntaxElement* syntaxelement, tSyntaxElement*
|
||||
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_find_last(tSyntaxElement*);
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user