summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--parser.h4
-rw-r--r--toke.c7
2 files changed, 6 insertions, 5 deletions
diff --git a/parser.h b/parser.h
index 96ab4f5ff5..35f172ea4e 100644
--- a/parser.h
+++ b/parser.h
@@ -68,8 +68,8 @@ typedef struct yy_parser {
SV *lex_stuff; /* runtime pattern from m// or s/// */
I32 multi_start; /* 1st line of multi-line string */
I32 multi_end; /* last line of multi-line string */
- char multi_open; /* delimiter of said string */
- char multi_close; /* delimiter of said string */
+ UV multi_open; /* delimiter of said string */
+ UV multi_close; /* delimiter of said string */
bool preambled;
bool lex_re_reparsing; /* we're doing G_RE_REPARSING */
I32 lex_allbrackets;/* (), [], {}, ?: bracket count */
diff --git a/toke.c b/toke.c
index c42d037aa5..d92723aa59 100644
--- a/toke.c
+++ b/toke.c
@@ -10020,7 +10020,8 @@ S_scan_str(pTHX_ char *start, int keep_bracketed_quoted, int keep_delims, int re
/* backslashes can escape the open or closing characters */
if (*s == '\\' && s+1 < PL_bufend) {
if (!keep_bracketed_quoted
- && ((s[1] == PL_multi_open) || (s[1] == PL_multi_close)))
+ && ( ((UV)s[1] == PL_multi_open)
+ || ((UV)s[1] == PL_multi_close) ))
{
s++;
}
@@ -10028,9 +10029,9 @@ S_scan_str(pTHX_ char *start, int keep_bracketed_quoted, int keep_delims, int re
*to++ = *s++;
}
/* allow nested opens and closes */
- else if (*s == PL_multi_close && --brackets <= 0)
+ else if ((UV)*s == PL_multi_close && --brackets <= 0)
break;
- else if (*s == PL_multi_open)
+ else if ((UV)*s == PL_multi_open)
brackets++;
else if (!has_utf8 && !UTF8_IS_INVARIANT((U8)*s) && UTF)
has_utf8 = TRUE;