Small fix for the font directory resource written by fnt2fon
Dmitry Timoshkov
dmitry at baikal.ru
Sat May 21 04:16:08 CDT 2005
Hello,
Windows font viewer uses font directory resource to get the font name from,
now it correctly displays "Wine Courier" instead of spaces.
Changelog:
Dmitry Timoshkov <dmitry at codeweavers.com>
Small fix for the font directory resource written by fnt2fon.
--- cvs/hq/wine/tools/fnt2fon.c Sat May 21 08:14:24 2005
+++ wine/tools/fnt2fon.c Sat May 21 09:10:33 2005
@@ -114,7 +114,8 @@ int main(int argc, char **argv)
*cp = '\0';
fprintf(stderr, "%s %d pts %dx%d dpi\n", name, pt, dpi[0], dpi[1]);
fclose(fp);
- fontdir_len += 0x74 + strlen(name) + 1; /* FIXME does the fontdir entry for version 3 fonts differ from 2? */
+ /* fontdir entries for version 3 fonts are the same as for version 2 */
+ fontdir_len += 0x74 + strlen(name) + 1;
if(i == 0) {
sprintf(non_resident_name, "FONTRES 100,%d,%d : %s %d", dpi[0], dpi[1], name, pt);
strcpy(resident_name, name);
@@ -234,10 +235,11 @@ int main(int argc, char **argv)
fwrite(&res, sizeof(res), 1, ofp);
fread(buf, 0x72, 1, fp);
- fwrite(buf, 0x72, 1, ofp);
fnt_header = (struct _fnt_header *)buf;
fseek(fp, fnt_header->fi.dfFace, SEEK_SET);
+ fnt_header->fi.dfBitsOffset = 0;
+ fwrite(buf, 0x72, 1, ofp);
cp = name;
while((c = fgetc(fp)) != 0 && c != EOF)
@@ -246,7 +248,8 @@ int main(int argc, char **argv)
fwrite(name, strlen(name) + 1, 1, ofp);
fclose(fp);
}
- pad = fontdir_len & 0xf;
+
+ pad = ftell(ofp) & 0xf;
if(pad != 0)
pad = 0x10 - pad;
for(i = 0; i < pad; i++)
More information about the wine-patches
mailing list