home *** CD-ROM | disk | FTP | other *** search
- /*
- *
- * do_args.c - Argument processing - WB or CLI
- *
- */
-
- #include <exec/types.h>
- #include <workbench/workbench.h>
- #include <workbench/icon.h>
- #include <workbench/startup.h>
- #include <stdio.h>
- #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
-