#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include /* ------------------------------------------- Eric's macros, makes C into modern language function is null - used so we have an easy way to search for functions ------------------------------------------- */ #define function #define then { #define els } else { #define fi } #define rof } #define elsif } else if #define or || #define and && #define z if (0==1) struct DiskfontBase *DiskfontBase; struct GfxBase *GfxBase; extern long *OpenLibrary(); extern struct TextFont *OpenDiskFont(); function main (argc,argv) int argc; char **argv; { struct TextFont *fontptr; static struct TextAttr ericfont = {(STRPTR)"ericbd.font",8L,0L,0L}; long int ecode = 0; struct Message *m1; /* travel thru structures to the name */ struct Node *n1; char *c1; if (argc < 2 ) then printf("Usage: %s fontname\n",argv[0]); exit(20l); els ericfont.ta_Name = (STRPTR) argv[1]; fi printf("replace topaz.font with |%s|\n",argv[1]); DiskfontBase = (struct DiskfontBase *) OpenLibrary("diskfont.library",0L); if ( DiskfontBase == NULL) then printf("can't open disk font library\n"); ecode = 20L; goto exiter; fi GfxBase = (struct GfxBase *) OpenLibrary("graphics.library",0L); if ( GfxBase == NULL) then printf("can't open graphics library\n"); ecode = 21L; goto exiter; fi fontptr = (struct TextFont *) OpenDiskFont(&ericfont); if (fontptr == 0) then printf("can't open font\n"); ecode = 21L; goto exiter; fi /* printf("gfxbase = %08lx %08lx\n",GfxBase,&GfxBase->TextFonts); */ /* printf("gfxbase = %08lx %08lx\n",GfxBase,&GfxBase->DefaultFont); */ /* printf("fontptr = %08lx %08lx\n",fontptr,GfxBase->TextFonts.lh_Head); */ GfxBase->TextFonts.lh_Head = (struct Node *) fontptr; m1 = &fontptr->tf_Message; /* find name of our font */ n1 = &m1->mn_Node; c1 = n1->ln_Name; /* address of string into c1 */ /* printf("m1 = %08lx n1 = %08lx c1 = %08lx\n",m1,n1,c1); */ GfxBase->DefaultFont = fontptr; movmem("topaz.font",c1,(short)11); /* overwrite name of ericbd.font */ ecode = 0; goto exiter; exiter: /* if (fontptr) CloseFont(fontptr); leave open forever */ if (DiskfontBase) CloseLibrary(DiskfontBase); if (GfxBase) CloseLibrary(GfxBase); exit(ecode); }