/* * Config program for use by savers that just need a font selected. * * Copyright (c) 1991, Mike Meyer * All Rights Reserved * * See the file "ShadowMaster:Distribution" for information on distribution. * * ===build instructions * % lc font-config ; output= font-config.o input= font-config.c * % blink font-config.o lib lib:amiga.lib to font-config SC SD ; output= font-config input= font-config.o * % copy font-config //config * ===endbuild */ #include #include #include #include #include #include #include struct ExecBase *SysBase = NULL ; struct DosLibrary *DOSBase = NULL ; struct Library *AslBase = NULL ; #define done(x) do { status = x; goto out; } while (0) ; int __saveds start(void) { int status ; struct RDArgs *args = NULL ; struct FontRequester *my_req = NULL ; long opts[3] = { 0, 0, 0} ; SysBase = *((struct ExecBase **) 4); if (!(DOSBase = (struct DosLibrary *) OpenLibrary("dos.library", 37))) done(RETURN_FAIL) ; if (!(AslBase = OpenLibrary("asl.library", 37))) done(RETURN_FAIL) ; if (!(args = ReadArgs("NAME/A,FONT,SIZE/N", opts, NULL))) done(RETURN_ERROR) ; if (!(my_req = AllocAslRequestTags(ASL_FontRequest, ASL_Hail, (LONG) opts[0], ASL_LeftEdge, 0, ASL_TopEdge, 11, ASL_FontName, opts[1] ? ((char *) opts[1]) : "topaz.font", ASL_FontHeight, opts[2] ? *((long *) opts[2]) : 8, TAG_DONE, 0))) done(RETURN_FAIL) ; if (AslRequest(my_req, NULL)) Printf("%s FONT %s SIZE %ld\n", opts[0], my_req->fo_Attr.ta_Name, my_req->fo_Attr.ta_YSize) ; status = RETURN_OK ; out: if (my_req) FreeAslRequest(my_req) ; FreeArgs(args) ; if (AslBase) CloseLibrary(AslBase) ; if (DOSBase) CloseLibrary((struct Library *) DOSBase) ; return status ; }