57 |
|
{ |
58 |
|
fputs(HDRSTR, fp); |
59 |
|
fputs(s, fp); |
60 |
< |
putc('\n', fp); |
60 |
> |
fputc('\n', fp); |
61 |
|
} |
62 |
|
|
63 |
|
|
171 |
|
extern char *fixargv0(char *arg0); |
172 |
|
char myav0[128]; |
173 |
|
/* clean up Windows executable path */ |
174 |
< |
if (ac <= 0) return; |
174 |
> |
if (ac-- <= 0) return; |
175 |
|
fputs(fixargv0(strcpy(myav0, *av++)), fp); |
176 |
< |
fputc(--ac ? ' ' : '\n'); |
176 |
> |
fputc(ac ? ' ' : '\n', fp); |
177 |
|
#endif |
178 |
|
while (ac-- > 0) { |
179 |
|
fputword(*av++, fp); |
209 |
|
FILE *fp |
210 |
|
) |
211 |
|
{ |
212 |
+ |
int align = 0; |
213 |
+ |
|
214 |
|
fputs(FMTSTR, fp); |
215 |
|
fputs(s, fp); |
216 |
< |
putc('\n', fp); |
216 |
> |
/* pad to align binary type for mmap() */ |
217 |
> |
if (!strncmp(s, "float", 5)) |
218 |
> |
align = sizeof(float); |
219 |
> |
else if (!strncmp(s, "double", 6)) |
220 |
> |
align = sizeof(double); |
221 |
> |
else if (!strncmp(s, "16-bit", 6)) |
222 |
> |
align = 2; |
223 |
> |
else if (!strncmp(s, "32-bit", 6)) |
224 |
> |
align = 4; |
225 |
> |
else if (!strncmp(s, "64-bit", 6)) |
226 |
> |
align = 8; |
227 |
> |
if (align) { |
228 |
> |
long pos = ftell(fp); |
229 |
> |
if (pos >= 0) { |
230 |
> |
pos = (pos + 2) % align; |
231 |
> |
if (pos) align -= pos; |
232 |
> |
else align = 0; |
233 |
> |
} else |
234 |
> |
align = 0; |
235 |
> |
} |
236 |
> |
while (align-- > 0) |
237 |
> |
putc(' ', fp); |
238 |
> |
fputc('\n', fp); |
239 |
|
} |
240 |
|
|
241 |
|
|