From: K.Kosako Date: Mon, 27 Aug 2018 04:26:57 +0000 (+0900) Subject: refactoring X-Git-Tag: v6.9.0~7 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=91d76a333990d7046566a48f64806f0ad6d92246;p=onig refactoring --- diff --git a/src/regparse.c b/src/regparse.c index d8c5b11..45fd01b 100644 --- a/src/regparse.c +++ b/src/regparse.c @@ -3193,27 +3193,31 @@ node_new_str_raw_char(UChar c) } static Node* -str_node_split_last_char(StrNode* sn, OnigEncoding enc) +str_node_split_last_char(Node* node, OnigEncoding enc) { const UChar *p; - Node* n = NULL_NODE; + Node* rn; + StrNode* sn; + sn = STR_(node); + rn = NULL_NODE; if (sn->end > sn->s) { p = onigenc_get_prev_char_head(enc, sn->s, sn->end); if (p && p > sn->s) { /* can be split. */ - n = node_new_str(p, sn->end); + rn = node_new_str(p, sn->end); if ((sn->flag & STRING_RAW) != 0) - NODE_STRING_SET_RAW(n); + NODE_STRING_SET_RAW(rn); sn->end = (UChar* )p; } } - return n; + return rn; } static int -str_node_can_be_split(StrNode* sn, OnigEncoding enc) +str_node_can_be_split(Node* node, OnigEncoding enc) { + StrNode* sn = STR_(node); if (sn->end > sn->s) { return ((enclen(enc, sn->s) < sn->end - sn->s) ? 1 : 0); } @@ -7515,9 +7519,8 @@ set_quantifier(Node* qnode, Node* target, int group, ScanEnv* env) switch (NODE_TYPE(target)) { case NODE_STRING: if (! group) { - StrNode* sn = STR_(target); - if (str_node_can_be_split(sn, env->enc)) { - Node* n = str_node_split_last_char(sn, env->enc); + if (str_node_can_be_split(target, env->enc)) { + Node* n = str_node_split_last_char(target, env->enc); if (IS_NOT_NULL(n)) { NODE_BODY(qnode) = n; return 2;