summaryrefslogtreecommitdiff
path: root/sv.c
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2011-03-23 12:18:20 +0000
committerNicholas Clark <nick@ccl4.org>2011-03-28 10:21:48 +0100
commitd5b9c847979c6f2305b186e446b045fa6af209ee (patch)
treec8c64a0eea294cbbd4899215b8b8abc3b67203ec /sv.c
parent1295f46c24c81f9da55f6c9e00e77ddb9cc49e34 (diff)
downloadperl-d5b9c847979c6f2305b186e446b045fa6af209ee.tar.gz
Fix *printf %ld handling for microperl (and other obscure platforms)
07208e09d4435b4e accidentally moved the implicit q = q + 1 into conditionally compiled code, which is compiled most everywhere else, except miniperl. Without the increment of q, formats such as 'ld' were not being recognised as formats. This was noticed because the tokeniser implements __LINE__ by converting to a string using %ld.
Diffstat (limited to 'sv.c')
-rw-r--r--sv.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sv.c b/sv.c
index 9351076833..9ea0b50c3f 100644
--- a/sv.c
+++ b/sv.c
@@ -10375,8 +10375,9 @@ Perl_sv_vcatpvfn(pTHX_ SV *const sv, const char *const pat, const STRLEN patlen,
break;
#endif
case 'l':
+ ++q;
#if defined(HAS_QUAD) || defined(HAS_LONG_DOUBLE)
- if (*++q == 'l') { /* lld, llf */
+ if (*q == 'l') { /* lld, llf */
intsize = 'q';
++q;
}