home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Frozen Fish 1: Amiga
/
FrozenFish-Apr94.iso
/
bbs
/
alib
/
d3xx
/
d305
/
prfont.lha
/
PrFont
/
doargs.c
< prev
next >
Wrap
C/C++ Source or Header
|
1990-01-17
|
2KB
|
117 lines
/*
*
* 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