diff options
author | Brian Fraser <fraserbn@gmail.com> | 2012-03-22 17:29:16 -0700 |
---|---|---|
committer | Father Chrysostomos <sprout@cpan.org> | 2012-03-22 20:23:54 -0700 |
commit | b9e186cd7765a6bc8b028fb122664ed6e4c17f70 (patch) | |
tree | 9346effe54657216a4cce1136d1dae7425c773d0 | |
parent | 08454bd8a4cf1faf0c407c322e5e8dff7c80478e (diff) | |
download | perl-b9e186cd7765a6bc8b028fb122664ed6e4c17f70.tar.gz |
toke.c: 'Scalar value %s better written as $%s' cleanup.
-rw-r--r-- | t/lib/warnings/toke | 26 | ||||
-rw-r--r-- | toke.c | 10 |
2 files changed, 32 insertions, 4 deletions
diff --git a/t/lib/warnings/toke b/t/lib/warnings/toke index 2214005260..5a4af815d3 100644 --- a/t/lib/warnings/toke +++ b/t/lib/warnings/toke @@ -268,6 +268,32 @@ Scalar value @a[3] better written as $a[3] at - line 3. Scalar value @a{3} better written as $a{3} at - line 4. ######## # toke.c +use utf8; +use open qw( :utf8 :std ); +use warnings 'syntax' ; +@à[3] = 2; +@à{3} = 2; +no warnings 'syntax' ; +@à[3] = 2; +@à{3} = 2; +EXPECT +Scalar value @à[3] better written as $à[3] at - line 5. +Scalar value @à{3} better written as $à{3} at - line 6. +######## +# toke.c +use utf8; +use open qw( :utf8 :std ); +use warnings 'syntax' ; +@ぁ[3] = 2; +@ぁ{3} = 2; +no warnings 'syntax' ; +@ぁ[3] = 2; +@ぁ{3} = 2; +EXPECT +Scalar value @ぁ[3] better written as $ぁ[3] at - line 5. +Scalar value @ぁ{3} better written as $ぁ{3} at - line 6. +######## +# toke.c use warnings 'syntax' ; $_ = "ab" ; s/(ab)/\1/e; @@ -6268,15 +6268,17 @@ Perl_yylex(pTHX) if (ckWARN(WARN_SYNTAX)) { const char *t = s + 1; while (*t && (isALNUM_lazy_if(t,UTF) || strchr(" \t$#+-'\"", *t))) - t++; + t += UTF ? UTF8SKIP(t) : 1; if (*t == '}' || *t == ']') { t++; PL_bufptr = PEEKSPACE(PL_bufptr); /* XXX can realloc */ /* diag_listed_as: Scalar value @%s[%s] better written as $%s[%s] */ Perl_warner(aTHX_ packWARN(WARN_SYNTAX), - "Scalar value %.*s better written as $%.*s", - (int)(t-PL_bufptr), PL_bufptr, - (int)(t-PL_bufptr-1), PL_bufptr+1); + "Scalar value %"SVf" better written as $%"SVf, + SVfARG(newSVpvn_flags(PL_bufptr, (STRLEN)(t-PL_bufptr), + SVs_TEMP | (UTF ? SVf_UTF8 : 0 ))), + SVfARG(newSVpvn_flags(PL_bufptr+1, (STRLEN)(t-PL_bufptr-1), + SVs_TEMP | (UTF ? SVf_UTF8 : 0 )))); } } } |