12 f (int ch
, char *fp
, char *ap
)
16 register struct sw
*p
;
23 unsigned long long _uquad
;
26 static char zeroes
[16];
31 _double
= (double) (ap
+= 8, *((double *) (ap
- 8)));
36 _uquad
= (f
& 0x020 ? (ap
+= 8, *((long long *) (ap
- 8))) : f
& 0x010 ? (ap
+= 4, *((long *) (ap
- 4))) : f
& 0x040 ? (long)(short)(ap
+= 4, *((int *) (ap
- 4))) : (long)(ap
+= 4, *((int *) (ap
- 4))));
39 _uquad
= (f
& 0x020 ? (ap
+= 8, *((long long *) (ap
- 8))) : f
& 0x010 ? (ap
+= 4, *((long *) (ap
- 4))) : f
& 0x040 ? (long)(unsigned short)(ap
+= 4, *((int *) (ap
- 4))) : (long)(ap
+= 4, *((int *) (ap
- 4))));
41 if (_uquad
!= 0 || prec
!= 0);
45 if ((f
& 0x100) == 0) {
49 if (expt
< ndig
|| (f
& 0x001) != 0) {
50 { if ((n
= (ndig
- 1)) > 0) { while (n
> 16) {{ p
->x
= (zeroes
); p
->r
= 16; q
.z
+= 16; p
++; if (++q
.t
>= 8) { if (g(fp
, &q
)) goto error
; p
= w
; }} n
-= 16; }{ p
->x
= (zeroes
); p
->r
= n
; q
.z
+= n
; p
++; if (++q
.t
>= 8) { if (g(fp
, &q
)) goto error
; p
= w
; }}}}
52 } else if (expt
<= 0) {
53 { p
->x
= ("0"); p
->r
= 1; q
.z
+= 1; p
++; if (++q
.t
>= 8) { if (g(fp
, &q
)) goto error
; p
= w
; }}
54 { p
->x
= 0; p
->r
= 1; q
.z
+= 1; p
++; if (++q
.t
>= 8) { if (g(fp
, &q
)) goto error
; p
= w
; }}
55 { if ((n
= (-expt
)) > 0) { while (n
> 16) {{ p
->x
= (zeroes
); p
->r
= 16; q
.z
+= 16; p
++; if (++q
.t
>= 8) { if (g(fp
, &q
)) goto error
; p
= w
; }} n
-= 16; }{ p
->x
= (zeroes
); p
->r
= n
; q
.z
+= n
; p
++; if (++q
.t
>= 8) { if (g(fp
, &q
)) goto error
; p
= w
; }} }}
56 { p
->x
= cp
; p
->r
= ndig
; q
.z
+= ndig
; p
++; if (++q
.t
>= 8) { if (g(fp
, &q
)) goto error
; p
= w
; }}
58 { p
->x
= cp
; p
->r
= expt
; q
.z
+= expt
; p
++; if (++q
.t
>= 8) { if (g(fp
, &q
)) goto error
; p
= w
; }}
60 { p
->x
= ("."); p
->r
= 1; q
.z
+= 1; p
++; if (++q
.t
>= 8) { if (g(fp
, &q
)) goto error
; p
= w
; }}
61 { p
->x
= cp
; p
->r
= (ndig
-expt
); q
.z
+= (ndig
-expt
); p
++; if (++q
.t
>= 8) { if (g(fp
, &q
)) goto error
; p
= w
; }}