317,14 → 317,26 |
ecode = 1; |
} else { |
unsigned short allocsz = biggest_langsz + (biggest_langsz / 20); |
printf("biggest lang block is %u bytes -> allocating a %u bytes buffe (5%% safety margin)r\n", biggest_langsz, allocsz); |
unsigned short nextstringin = 0, nextnlat = 40; |
printf("biggest lang block is %u bytes -> allocating a %u bytes buffer (5%% safety margin)\n", biggest_langsz, allocsz); |
fprintf(fd, "/* THIS FILE HAS BEEN GENERATED BY TLUMACZ (PART OF THE SVARLANG LIBRARY) */\r\n"); |
fprintf(fd, "const unsigned short svarlang_memsz = %uu;\r\n", allocsz); |
fprintf(fd, "char svarlang_mem[%u] = {\r\n", allocsz); |
fprintf(fd, "char svarlang_mem[%u] = {", allocsz); |
for (i = 0; i < refblocksz; i++) { |
if (nextstringin == 0) { |
fprintf(fd, "\r\n"); |
nextnlat = i + 40; |
nextstringin = 4 + (refblock[i + 3] << 8) + refblock[i + 2]; |
if (nextstringin == 4) nextstringin = 20000; /* last string in block */ |
} |
if (i == nextnlat) { |
nextnlat += 40; |
fprintf(fd, "\r\n"); |
} |
nextnlat--; |
nextstringin--; |
fprintf(fd, "%u", refblock[i]); |
if (i + 1 < refblocksz) fprintf(fd, ","); |
if ((i & 15) == 15) fprintf(fd, "\r\n"); |
} |
fprintf(fd, "};\r\n"); |
fclose(fd); |