}
}
+static Node*
+node_list_add(Node* list, Node* x)
+{
+ Node *n;
+
+ n = onig_node_new_list(x, NULL);
+ if (IS_NULL(n)) return NULL_NODE;
+
+ if (IS_NOT_NULL(list)) {
+ while (IS_NOT_NULL(NODE_CDR(list)))
+ list = NODE_CDR(list);
+
+ NODE_CDR(list) = n;
+ }
+
+ return n;
+}
+
static OnigLen
distance_add(OnigLen d1, OnigLen d2)
{
goto mem_err2;
}
- xnode = onig_node_list_add(NULL_NODE, snode);
+ xnode = node_list_add(NULL_NODE, snode);
if (IS_NULL(xnode)) {
onig_node_free(an);
onig_node_free(rem);
goto mem_err2;
}
- if (IS_NULL(onig_node_list_add(xnode, rem))) {
+ if (IS_NULL(node_list_add(xnode, rem))) {
onig_node_free(an);
onig_node_free(xnode);
onig_node_free(rem);
&& !(p == start && p + len >= end)))) {
if (IS_NULL(snode)) {
if (IS_NULL(root) && IS_NOT_NULL(prev_node)) {
- top_root = root = onig_node_list_add(NULL_NODE, prev_node);
+ top_root = root = node_list_add(NULL_NODE, prev_node);
if (IS_NULL(root)) {
onig_node_free(prev_node);
goto mem_err;
prev_node = snode = onig_node_new_str(NULL, NULL);
if (IS_NULL(snode)) goto mem_err;
if (IS_NOT_NULL(root)) {
- if (IS_NULL(onig_node_list_add(root, snode))) {
+ if (IS_NULL(node_list_add(root, snode))) {
onig_node_free(snode);
goto mem_err;
}
if ((prev_is_ambig == 0 && n != 0) ||
(prev_is_ambig > 0 && (n == 0 || prev_is_good != is_good))) {
if (IS_NULL(root) /* && IS_NOT_NULL(prev_node) */) {
- top_root = root = onig_node_list_add(NULL_NODE, prev_node);
+ top_root = root = node_list_add(NULL_NODE, prev_node);
if (IS_NULL(root)) {
onig_node_free(prev_node);
goto mem_err;
prev_node = snode = onig_node_new_str(foldp, foldp + fold_len);
if (IS_NULL(snode)) goto mem_err;
- if (IS_NULL(onig_node_list_add(root, snode))) {
+ if (IS_NULL(node_list_add(root, snode))) {
onig_node_free(snode);
goto mem_err;
}
if (alt_num > THRESHOLD_CASE_FOLD_ALT_FOR_EXPANSION) break;
if (IS_NULL(root) && IS_NOT_NULL(prev_node)) {
- top_root = root = onig_node_list_add(NULL_NODE, prev_node);
+ top_root = root = node_list_add(NULL_NODE, prev_node);
if (IS_NULL(root)) {
onig_node_free(prev_node);
goto mem_err;
top_root = prev_node;
}
else {
- if (IS_NULL(onig_node_list_add(root, prev_node))) {
+ if (IS_NULL(node_list_add(root, prev_node))) {
onig_node_free(prev_node);
goto mem_err;
}
}
else { /* r == 0 */
if (IS_NOT_NULL(root)) {
- if (IS_NULL(onig_node_list_add(root, prev_node))) {
+ if (IS_NULL(node_list_add(root, prev_node))) {
onig_node_free(prev_node);
goto mem_err;
}
if (r != 0) goto mem_err;
if (IS_NOT_NULL(prev_node) && IS_NULL(root)) {
- top_root = root = onig_node_list_add(NULL_NODE, prev_node);
+ top_root = root = node_list_add(NULL_NODE, prev_node);
if (IS_NULL(root)) {
onig_node_free(rem_node);
onig_node_free(prev_node);
prev_node = rem_node;
}
else {
- if (IS_NULL(onig_node_list_add(root, rem_node))) {
+ if (IS_NULL(node_list_add(root, rem_node))) {
onig_node_free(rem_node);
goto mem_err;
}