summaryrefslogtreecommitdiff
path: root/sv.c
diff options
context:
space:
mode:
authorWilson P. Snyder II <unknown@perl.org>1998-11-30 00:00:00 +0000
committerJarkko Hietaniemi <jhi@iki.fi>1998-12-31 11:18:17 +0000
commit4f19785bce4da39a768aa6210f1f97ab4c0600dd (patch)
treed61c839a9780269b7b0766bad2487e8053caa5fd /sv.c
parent142393a6492fce5c4bb6f282b1ba1d8da7c0064b (diff)
downloadperl-4f19785bce4da39a768aa6210f1f97ab4c0600dd.tar.gz
REV2: Binary number support
To: perl5-porters@perl.org Message-ID: <199811301543.KAA15689@vulcan.maker.com> p4raw-id: //depot/cfgperl@2546
Diffstat (limited to 'sv.c')
-rw-r--r--sv.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/sv.c b/sv.c
index fdeed681f5..6d900cee0e 100644
--- a/sv.c
+++ b/sv.c
@@ -4645,6 +4645,10 @@ sv_vcatpvfn(SV *sv, const char *pat, STRLEN patlen, va_list *args, SV **svargs,
base = 10;
goto uns_integer;
+ case 'b':
+ base = 2;
+ goto uns_integer;
+
case 'O':
intsize = 'l';
/* FALL THROUGH */
@@ -4700,6 +4704,14 @@ sv_vcatpvfn(SV *sv, const char *pat, STRLEN patlen, va_list *args, SV **svargs,
if (alt && *eptr != '0')
*--eptr = '0';
break;
+ case 2:
+ do {
+ dig = uv & 1;
+ *--eptr = '0' + dig;
+ } while (uv >>= 1);
+ if (alt && *eptr != '0')
+ *--eptr = '0';
+ break;
default: /* it had better be ten or less */
do {
dig = uv % base;