/* * * do_args.c - Argument processing - WB or CLI * */ #include #include #include #include #include #include "defines.h" extern struct WBStartup *WBenchMsg; extern char title[]; extern long density, show, all; char *myname; void *OpenLibrary(); struct IconBase *IconBase; long atol(); /* * General purpose Workbench argument processing subroutine. * It retrieves arguments from the icon ToolTypes array. */ getWBargs() { struct WBArg *wbArg; char **toolArray; char *string; struct DiskObject *diskObj; if(IconBase = (struct IconBase *) OpenLibrary("icon.library",0L)) { wbArg = WBenchMsg->sm_ArgList; diskObj = (struct DiskObject *)GetDiskObject(wbArg->wa_Name); if(diskObj) { toolArray = diskObj->do_ToolTypes; if(string = FindToolType(toolArray,"DENSITY")) { density = atol(string); if (density <0 || density >DENSITYMAX) density = DENSITYDEF; } if(string = FindToolType(toolArray,"ALL")) { all = TRUE; } if(string = FindToolType(toolArray,"SHOW")) { show = TRUE; } FreeDiskObject(diskObj); } CloseLibrary(IconBase); } } getCLIargs(argc,argv) int argc; char *argv[]; { register char *p; /* get command name */ myname = (argc-- < 1) ? "PrFont" : *argv++; while (argc > 0) { argc--; /* One fewer to process */ p = *argv++; /* Get arg pointer and bump to next */ if (*p != '-') /* If no '-' it is invalid */ { usage(); done(14); } p++; switch (*p) { case 'a': /* All - print all characters */ all = TRUE; break; case 's': /* Show - no print */ show = TRUE; break; case 'd': /* print density */ density = atoi(++p); if (density <0 || density >DENSITYMAX) density = DENSITYDEF; break; default: /* Wrong option */ usage(); done(14); } } } usage() { fprintf(stderr,"Usage:%s: -d# -s -a\n",myname); fprintf(stderr,"Print All Fonts\n"); fprintf(stderr,"-d# Density of the printer graphics (1-7)\n"); fprintf(stderr,"-s Show on screen only - don't print\n"); fprintf(stderr,"-a Show All characters, not 1 line\n"); } #ifdef AZTEC_C _wb_parse() /* keep aztec's paws off it */ { } #endif