summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--regcomp.c2
-rwxr-xr-xt/op/pat.t6
2 files changed, 5 insertions, 3 deletions
diff --git a/regcomp.c b/regcomp.c
index 3b69817bb9..dedcd0079d 100644
--- a/regcomp.c
+++ b/regcomp.c
@@ -472,7 +472,7 @@ S_scan_commit(pTHX_ RExC_state_t *pRExC_state, scan_data_t *data)
STRLEN old_l = CHR_SVLEN(*data->longest);
if ((l >= old_l) && ((l > old_l) || (data->flags & SF_BEFORE_EOL))) {
- sv_setsv(*data->longest, data->last_found);
+ SvSetMagicSV(*data->longest, data->last_found);
if (*data->longest == data->longest_fixed) {
data->offset_fixed = l ? data->last_start_min : data->pos_min;
if (data->flags & SF_BEFORE_EOL)
diff --git a/t/op/pat.t b/t/op/pat.t
index 1e7eaf7392..d606a6a905 100755
--- a/t/op/pat.t
+++ b/t/op/pat.t
@@ -6,7 +6,7 @@
$| = 1;
-print "1..1007\n";
+print "1..1008\n";
BEGIN {
chdir 't' if -d 't';
@@ -3194,4 +3194,6 @@ $_="abcdef\n";
@x = m/./g;
ok("abcde" eq "$`", '# TODO #19049 - global match not setting $`');
-# last test 1007
+ok("123\x{100}" =~ /^.*1.*23\x{100}$/, 'uft8 + multiple floating substr');
+
+# last test 1008