| 57 |
|
{ |
| 58 |
|
fputs(HDRSTR, fp); |
| 59 |
|
fputs(s, fp); |
| 60 |
< |
putc('\n', fp); |
| 60 |
> |
fputc('\n', fp); |
| 61 |
|
} |
| 62 |
|
|
| 63 |
|
|
| 167 |
|
FILE *fp |
| 168 |
|
) |
| 169 |
|
{ |
| 170 |
+ |
#if defined(_WIN32) || defined(_WIN64) |
| 171 |
+ |
extern char *fixargv0(char *arg0); |
| 172 |
+ |
char myav0[128]; |
| 173 |
+ |
/* clean up Windows executable path */ |
| 174 |
+ |
if (ac-- <= 0) return; |
| 175 |
+ |
fputs(fixargv0(strcpy(myav0, *av++)), fp); |
| 176 |
+ |
fputc(ac ? ' ' : '\n', fp); |
| 177 |
+ |
#endif |
| 178 |
|
while (ac-- > 0) { |
| 179 |
|
fputword(*av++, fp); |
| 180 |
|
fputc(ac ? ' ' : '\n', 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, "16-bit", 6)) |
| 218 |
> |
align = 2; |
| 219 |
> |
else if (!strcmp(s, "float") || !strncmp(s, "32-bit", 6)) |
| 220 |
> |
align = 4; |
| 221 |
> |
else if (!strcmp(s, "double") || !strncmp(s, "64-bit", 6)) |
| 222 |
> |
align = 8; |
| 223 |
> |
if (align) { |
| 224 |
> |
long pos = ftell(fp); |
| 225 |
> |
if (pos >= 0) { |
| 226 |
> |
pos = (pos + 2) % align; |
| 227 |
> |
if (pos) align -= pos; |
| 228 |
> |
else align = 0; |
| 229 |
> |
} else |
| 230 |
> |
align = 0; |
| 231 |
> |
} |
| 232 |
> |
while (align-- > 0) |
| 233 |
> |
putc(' ', fp); |
| 234 |
> |
fputc('\n', fp); |
| 235 |
|
} |
| 236 |
|
|
| 237 |
|
|