use warnings;
use Carp;
-our $VERSION = '0.95';
+our $VERSION = '0.96';
require XSLoader;
SV *uv
SV *flags
PREINIT:
- U8 dest[UTF8_MAXBYTES];
+ U8 dest[UTF8_MAXBYTES + 1];
U8 *ret;
CODE:
STRLEN retlen;
UV auv;
if (utf8) {
- U8 result[UTF8_MAXLEN];
+ U8 result[UTF8_MAXLEN+1];
const char *ptr = s;
STRLEN len;
/* Bug: warns about bad utf8 even if we are short on bytes
fromstr = NEXTFROM;
auv = SvUV_no_inf(fromstr, datumtype);
if (utf8) {
- U8 buffer[UTF8_MAXLEN], *endb;
+ U8 buffer[UTF8_MAXLEN+1], *endb;
endb = uvchr_to_utf8_flags(buffer, UNI_TO_NATIVE(auv), 0);
if (cur+(endb-buffer)*UTF8_EXPAND >= end) {
*cur = '\0';
char *p;
char *s;
#define MAX_NODE_STRING_SIZE 127
- char foldbuf[MAX_NODE_STRING_SIZE+UTF8_MAXBYTES_CASE];
+ char foldbuf[MAX_NODE_STRING_SIZE+UTF8_MAXBYTES_CASE+1];
char *s0;
U8 upper_parse = MAX_NODE_STRING_SIZE;
U8 node_type = compute_EXACTish(pRExC_state);
{
/* Here <value> is indeed a multi-char fold. Get what it is */
- U8 foldbuf[UTF8_MAXBYTES_CASE];
+ U8 foldbuf[UTF8_MAXBYTES_CASE+1];
STRLEN foldlen;
UV folded = _to_uni_fold_flags(
I32 brackets = 1; /* bracket nesting level */
bool has_utf8 = FALSE; /* is there any utf8 content? */
IV termcode; /* terminating char. code */
- U8 termstr[UTF8_MAXBYTES]; /* terminating string */
+ U8 termstr[UTF8_MAXBYTES+1]; /* terminating string */
STRLEN termlen; /* length of terminating string */
line_t herelines;