#define CHR_DIST(a,b) (UTF ? utf8_distance(a,b) : a - b)
STATIC void
-clear_re(pTHX_ void *r)
+S_clear_re(pTHX_ void *r)
{
ReREFCNT_dec((regexp *)r);
}
STATIC void
-scan_commit(pTHX_ scan_data_t *data)
+S_scan_commit(pTHX_ scan_data_t *data)
{
dTHR;
STRLEN l = CHR_SVLEN(data->last_found);
to the position after last scanned or to NULL. */
STATIC I32
-study_chunk(pTHX_ regnode **scanp, I32 *deltap, regnode *last, scan_data_t *data, U32 flags)
+S_study_chunk(pTHX_ regnode **scanp, I32 *deltap, regnode *last, scan_data_t *data, U32 flags)
/* scanp: Start here (read-write). */
/* deltap: Write maxlen-minlen here. */
/* last: Stop before this one. */
if (ckWARN(WARN_UNSAFE) && (minnext + deltanext == 0)
&& !(data->flags & (SF_HAS_PAR|SF_IN_PAR))
&& maxcount <= REG_INFTY/3) /* Complement check for big count */
- warner(WARN_UNSAFE, "Strange *+?{} on zero-length expression");
+ Perl_warner(aTHX_ WARN_UNSAFE, "Strange *+?{} on zero-length expression");
min += minnext * mincount;
is_inf_internal |= (maxcount == REG_INFTY
&& (minnext + deltanext) > 0
}
STATIC I32
-add_data(pTHX_ I32 n, char *s)
+S_add_data(pTHX_ I32 n, char *s)
{
dTHR;
if (PL_regcomp_rx->data) {
* follows makes it hard to avoid.
*/
STATIC regnode *
-reg(pTHX_ I32 paren, I32 *flagp)
+S_reg(pTHX_ I32 paren, I32 *flagp)
/* paren: Parenthesized? 0=top, 1=(, inside: changed to letter. */
{
dTHR;
* Implements the concatenation operator.
*/
STATIC regnode *
-regbranch(pTHX_ I32 *flagp, I32 first)
+S_regbranch(pTHX_ I32 *flagp, I32 first)
{
dTHR;
register regnode *ret;
* endmarker role is not redundant.
*/
STATIC regnode *
-regpiece(pTHX_ I32 *flagp)
+S_regpiece(pTHX_ I32 *flagp)
{
dTHR;
register regnode *ret;
}
nest_check:
if (ckWARN(WARN_UNSAFE) && !SIZE_ONLY && !(flags&HASWIDTH) && max > REG_INFTY/3) {
- warner(WARN_UNSAFE, "%.*s matches null string many times",
+ Perl_warner(aTHX_ WARN_UNSAFE, "%.*s matches null string many times",
PL_regcomp_parse - origparse, origparse);
}
* [Yes, it is worth fixing, some scripts can run twice the speed.]
*/
STATIC regnode *
-regatom(pTHX_ I32 *flagp)
+S_regatom(pTHX_ I32 *flagp)
{
dTHR;
register regnode *ret = 0;
/* FALL THROUGH */
default:
if (!SIZE_ONLY && ckWARN(WARN_UNSAFE) && isALPHA(*p))
- warner(WARN_UNSAFE,
+ Perl_warner(aTHX_ WARN_UNSAFE,
"/%.127s/: Unrecognized escape \\%c passed through",
PL_regprecomp,
*p);
}
STATIC char *
-regwhite(pTHX_ char *p, char *e)
+S_regwhite(pTHX_ char *p, char *e)
{
while (p < e) {
if (isSPACE(*p))
/* parse POSIX character classes like [[:foo:]] */
STATIC char*
-regpposixcc(pTHX_ I32 value)
+S_regpposixcc(pTHX_ I32 value)
{
dTHR;
char *posixcc = 0;
* The text between e.g. [: and :] would start
* at s + 1 and stop at regcomp_parse - 2. */
if (ckWARN(WARN_UNSAFE) && !SIZE_ONLY)
- warner(WARN_UNSAFE,
+ Perl_warner(aTHX_ WARN_UNSAFE,
"Character class syntax [%c %c] is reserved for future extensions", c, c);
PL_regcomp_parse++; /* skip over the ending ] */
posixcc = s + 1;
}
STATIC regnode *
-regclass(pTHX)
+S_regclass(pTHX)
{
dTHR;
register char *opnd, *s;
}
STATIC regnode *
-regclassutf8(pTHX)
+S_regclassutf8(pTHX)
{
register char *opnd, *e;
register U32 value;
if (LOC)
flags |= ANYOF_ALNUML;
- sv_catpvf(listsv, "+utf8::IsAlnum\n");
+ Perl_sv_catpvf(aTHX_ listsv, "+utf8::IsAlnum\n");
}
lastvalue = 123456;
continue;
if (LOC)
flags |= ANYOF_NALNUML;
- sv_catpvf(listsv,
+ Perl_sv_catpvf(aTHX_ listsv,
"-utf8::IsAlpha\n-utf8::IsDigit\n0000\t%04x\n%04x\tffff\n",
'_' - 1,
'_' + 1);
if (!SIZE_ONLY) {
if (LOC)
flags |= ANYOF_SPACEL;
- sv_catpvf(listsv, "+utf8::IsSpace\n");
+ Perl_sv_catpvf(aTHX_ listsv, "+utf8::IsSpace\n");
if (!PL_utf8_space)
is_utf8_space((U8*)" ");
}
if (!SIZE_ONLY) {
if (LOC)
flags |= ANYOF_NSPACEL;
- sv_catpvf(listsv,
+ Perl_sv_catpvf(aTHX_ listsv,
"!utf8::IsSpace\n");
if (!PL_utf8_space)
is_utf8_space((U8*)" ");
continue;
case 'd':
if (!SIZE_ONLY) {
- sv_catpvf(listsv, "+utf8::IsDigit\n");
+ Perl_sv_catpvf(aTHX_ listsv, "+utf8::IsDigit\n");
}
lastvalue = 123456;
continue;
case 'D':
if (!SIZE_ONLY) {
- sv_catpvf(listsv,
+ Perl_sv_catpvf(aTHX_ listsv,
"!utf8::IsDigit\n");
}
lastvalue = 123456;
}
if (!SIZE_ONLY) {
if (value == 'p')
- sv_catpvf(listsv, "+utf8::%.*s\n", n, PL_regcomp_parse);
+ Perl_sv_catpvf(aTHX_ listsv, "+utf8::%.*s\n", n, PL_regcomp_parse);
else
- sv_catpvf(listsv,
+ Perl_sv_catpvf(aTHX_ listsv,
"!utf8::%.*s\n", n, PL_regcomp_parse);
}
PL_regcomp_parse = e + 1;
if (lastvalue > value)
FAIL("invalid [] range in regexp");
if (!SIZE_ONLY)
- sv_catpvf(listsv, "%04x\t%04x\n", lastvalue, value);
+ Perl_sv_catpvf(aTHX_ listsv, "%04x\t%04x\n", lastvalue, value);
lastvalue = value;
range = 0;
}
continue; /* do it next time */
}
if (!SIZE_ONLY)
- sv_catpvf(listsv, "%04x\n", value);
+ Perl_sv_catpvf(aTHX_ listsv, "%04x\n", value);
}
}
}
STATIC char*
-nextchar(pTHX)
+S_nextchar(pTHX)
{
dTHR;
char* retval = PL_regcomp_parse++;
- reg_node - emit a node
*/
STATIC regnode * /* Location. */
-reg_node(pTHX_ U8 op)
+S_reg_node(pTHX_ U8 op)
{
dTHR;
register regnode *ret;
- reganode - emit a node with an argument
*/
STATIC regnode * /* Location. */
-reganode(pTHX_ U8 op, U32 arg)
+S_reganode(pTHX_ U8 op, U32 arg)
{
dTHR;
register regnode *ret;
- regc - emit (if appropriate) a Unicode character
*/
STATIC void
-reguni(pTHX_ UV uv, char* s, I32* lenp)
+S_reguni(pTHX_ UV uv, char* s, I32* lenp)
{
dTHR;
if (SIZE_ONLY) {
- regc - emit (if appropriate) a byte of code
*/
STATIC void
-regc(pTHX_ U8 b, char* s)
+S_regc(pTHX_ U8 b, char* s)
{
dTHR;
if (!SIZE_ONLY)
* Means relocating the operand.
*/
STATIC void
-reginsert(pTHX_ U8 op, regnode *opnd)
+S_reginsert(pTHX_ U8 op, regnode *opnd)
{
dTHR;
register regnode *src;
- regtail - set the next-pointer at the end of a node chain of p to val.
*/
STATIC void
-regtail(pTHX_ regnode *p, regnode *val)
+S_regtail(pTHX_ regnode *p, regnode *val)
{
dTHR;
register regnode *scan;
- regoptail - regtail on operand of first argument; nop if operandless
*/
STATIC void
-regoptail(pTHX_ regnode *p, regnode *val)
+S_regoptail(pTHX_ regnode *p, regnode *val)
{
dTHR;
/* "Operandless" and "op != BRANCH" are synonymous in practice. */
- regcurly - a little FSA that accepts {\d+,?\d*}
*/
STATIC I32
-regcurly(pTHX_ register char *s)
+S_regcurly(pTHX_ register char *s)
{
if (*s++ != '{')
return FALSE;
STATIC regnode *
-dumpuntil(pTHX_ regnode *start, regnode *node, regnode *last, SV* sv, I32 l)
+S_dumpuntil(pTHX_ regnode *start, regnode *node, regnode *last, SV* sv, I32 l)
{
#ifdef DEBUGGING
register char op = EXACT; /* Arbitrary non-END op. */
k = PL_regkind[(U8)OP(o)];
if (k == EXACT)
- sv_catpvf(sv, " <%s%s%s>", PL_colors[0], OPERAND(o) + 1, PL_colors[1]);
+ Perl_sv_catpvf(aTHX_ sv, " <%s%s%s>", PL_colors[0], OPERAND(o) + 1, PL_colors[1]);
else if (k == CURLY) {
if (OP(o) == CURLYM || OP(o) == CURLYN)
- sv_catpvf(sv, "[%d]", o->flags); /* Parenth number */
- sv_catpvf(sv, " {%d,%d}", ARG1(o), ARG2(o));
+ Perl_sv_catpvf(aTHX_ sv, "[%d]", o->flags); /* Parenth number */
+ Perl_sv_catpvf(aTHX_ sv, " {%d,%d}", ARG1(o), ARG2(o));
}
else if (k == REF || k == OPEN || k == CLOSE || k == GROUPP )
- sv_catpvf(sv, "%d", ARG(o)); /* Parenth number */
+ Perl_sv_catpvf(aTHX_ sv, "%d", ARG(o)); /* Parenth number */
else if (k == LOGICAL)
- sv_catpvf(sv, "[%d]", ARG(o)); /* 2: embedded, otherwise 1 */
+ Perl_sv_catpvf(aTHX_ sv, "[%d]", ARG(o)); /* 2: embedded, otherwise 1 */
else if (k == BRANCHJ && (OP(o) == UNLESSM || OP(o) == IFMATCH))
- sv_catpvf(sv, "[-%d]", o->flags);
+ Perl_sv_catpvf(aTHX_ sv, "[-%d]", o->flags);
#endif /* DEBUGGING */
}
break;
case 'o':
if (new_comppad == NULL)
- croak("panic: pregfree comppad");
+ Perl_croak(aTHX_ "panic: pregfree comppad");
old_comppad = PL_comppad;
old_curpad = PL_curpad;
PL_comppad = new_comppad;
}
STATIC void
-re_croak2(pTHX_ const char* pat1,const char* pat2,...)
+S_re_croak2(pTHX_ const char* pat1,const char* pat2,...)
{
va_list args;
STRLEN l1 = strlen(pat1);
l1 = 512;
Copy(message, buf, l1 , char);
buf[l1] = '\0'; /* Overwrite \n */
- croak("%s", buf);
+ Perl_croak(aTHX_ "%s", buf);
}
/* XXX Here's a total kludge. But we need to re-enter for swash routines. */