summaryrefslogtreecommitdiff
path: root/src/cmd/cc/pswt.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/cc/pswt.c')
-rw-r--r--src/cmd/cc/pswt.c23
1 files changed, 12 insertions, 11 deletions
diff --git a/src/cmd/cc/pswt.c b/src/cmd/cc/pswt.c
index b94035faa..cc9c22763 100644
--- a/src/cmd/cc/pswt.c
+++ b/src/cmd/cc/pswt.c
@@ -102,28 +102,29 @@ newcase(void)
}
int32
-outlstring(ushort *s, int32 n)
+outlstring(TRune *s, int32 n)
{
- char buf[2];
- int c;
+ char buf[sizeof(TRune)];
+ uint c;
+ int i;
int32 r;
if(suppress)
return nstring;
- while(nstring & 1)
+ while(nstring & (sizeof(TRune)-1))
outstring("", 1);
r = nstring;
while(n > 0) {
c = *s++;
if(align(0, types[TCHAR], Aarg1, nil)) {
- buf[0] = c>>8;
- buf[1] = c;
+ for(i = 0; i < sizeof(TRune); i++)
+ buf[i] = c>>(8*(sizeof(TRune) - i - 1));
} else {
- buf[0] = c;
- buf[1] = c>>8;
+ for(i = 0; i < sizeof(TRune); i++)
+ buf[i] = c>>(8*i);
}
- outstring(buf, 2);
- n -= sizeof(ushort);
+ outstring(buf, sizeof(TRune));
+ n -= sizeof(TRune);
}
return r;
}
@@ -155,7 +156,7 @@ ieeedtod(Ieee *ieee, double native)
return;
}
fr = frexp(native, &exp);
- f = 2097152L; /* shouldnt use fp constants here */
+ f = 2097152L; /* shouldn't use fp constants here */
fr = modf(fr*f, &ho);
ieee->h = ho;
ieee->h &= 0xfffffL;