Es |regnode*|reganode |NN struct RExC_state_t *state|U8 op|U32 arg
Es |regnode*|regatom |NN struct RExC_state_t *state|NN I32 *flagp
Es |regnode*|regbranch |NN struct RExC_state_t *state|NN I32 *flagp|I32 first
-Es |void |reguni |NN const struct RExC_state_t *state|UV uv|NN char *s|NN STRLEN *lenp
+Es |STRLEN |reguni |NN const struct RExC_state_t *state|UV uv|NN char *s
Es |regnode*|regclass |NN struct RExC_state_t *state
ERsn |I32 |regcurly |NN const char *
Es |regnode*|reg_node |NN struct RExC_state_t *state|U8 op
#define reganode(a,b,c) S_reganode(aTHX_ a,b,c)
#define regatom(a,b) S_regatom(aTHX_ a,b)
#define regbranch(a,b,c) S_regbranch(aTHX_ a,b,c)
-#define reguni(a,b,c,d) S_reguni(aTHX_ a,b,c,d)
+#define reguni(a,b,c) S_reguni(aTHX_ a,b,c)
#define regclass(a) S_regclass(aTHX_ a)
#define regcurly S_regcurly
#define reg_node(a,b) S_reg_node(aTHX_ a,b)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
-STATIC void S_reguni(pTHX_ const struct RExC_state_t *state, UV uv, char *s, STRLEN *lenp)
+STATIC STRLEN S_reguni(pTHX_ const struct RExC_state_t *state, UV uv, char *s)
__attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_3)
- __attribute__nonnull__(pTHX_4);
+ __attribute__nonnull__(pTHX_3);
STATIC regnode* S_regclass(pTHX_ struct RExC_state_t *state)
__attribute__nonnull__(pTHX_1);
if (len)
p = oldp;
else if (UTF) {
- STRLEN unilen;
-
if (FOLD) {
/* Emit all the Unicode characters. */
STRLEN numlen;
foldlen -= numlen) {
ender = utf8_to_uvchr(foldbuf, &numlen);
if (numlen > 0) {
- reguni(pRExC_state, ender, s, &unilen);
+ const STRLEN unilen = reguni(pRExC_state, ender, s);
s += unilen;
len += unilen;
/* In EBCDIC the numlen
}
}
else {
- reguni(pRExC_state, ender, s, &unilen);
+ const STRLEN unilen = reguni(pRExC_state, ender, s);
if (unilen > 0) {
s += unilen;
len += unilen;
break;
}
if (UTF) {
- STRLEN unilen;
-
if (FOLD) {
/* Emit all the Unicode characters. */
STRLEN numlen;
foldlen -= numlen) {
ender = utf8_to_uvchr(foldbuf, &numlen);
if (numlen > 0) {
- reguni(pRExC_state, ender, s, &unilen);
+ const STRLEN unilen = reguni(pRExC_state, ender, s);
len += unilen;
s += unilen;
/* In EBCDIC the numlen
}
}
else {
- reguni(pRExC_state, ender, s, &unilen);
+ const STRLEN unilen = reguni(pRExC_state, ender, s);
if (unilen > 0) {
s += unilen;
len += unilen;
/*
- reguni - emit (if appropriate) a Unicode character
*/
-STATIC void
-S_reguni(pTHX_ const RExC_state_t *pRExC_state, UV uv, char* s, STRLEN* lenp)
+STATIC STRLEN
+S_reguni(pTHX_ const RExC_state_t *pRExC_state, UV uv, char* s)
{
dVAR;
- *lenp = SIZE_ONLY ? UNISKIP(uv) : (uvchr_to_utf8((U8*)s, uv) - (U8*)s);
+ return SIZE_ONLY ? UNISKIP(uv) : (uvchr_to_utf8((U8*)s, uv) - (U8*)s);
}
/*