DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download
Index: T o

⟦0e4c66979⟧ TextFile

    Length: 3712 (0xe80)
    Types: TextFile
    Names: »opts.c«

Derivation

└─⟦b20c6495f⟧ Bits:30007238 EUUGD18: Wien-båndet, efterår 1987
    └─⟦this⟧ »EUUGD18/X/Xgo/opts.c« 

TextFile

/*
 * $Header: opts.c,v 1.2 88/02/13 12:50:46 hale Exp $
 */

#include "go.h"
#include <strings.h>



#define ISARG(s) (!strncmp(*argv,s,strlen(s)))

int numberblink;

parseline (argc, argv)
int argc;
char **argv;
{
	char **argval;
	extern char *loadname,*hisname, *myname;
	extern int strength,beepflg,demflg,changeflg,myport,handicaps;
	extern int loadflg;
	extern float wins;

	GetStr();

	numberblink = 4;
	changeflg = 0;
	handicaps = -2;
	argval = argv;
	display[0] = '\0';
	dimensions = MAXDIM;
	myport = DEFAULTPORT;
	demflg = beepflg = 0;
	hisname = NULL;

	while (++argv,--argc>0) {
		if (ISARG("-h")) {
			longhelp();
		} else if (ISARG("-s")) {
			if (--argc>0) {
				dimensions = atoi(*++argv);
				if (dimensions < 7) dimensions = 7;
				if (dimensions > 19) dimensions = 19;
			} else helpstart(argval);
		} else if (ISARG("-d")) {
			if (--argc>0) strcpy(*++argv,display);
			else helpstart(argval);
		} else if (ISARG("-p")) {
			if (--argc>0) myport = atoi(*++argv);
			else helpstart(argval);
		} else if (ISARG("-H")) {
			if (--argc>0) handicaps = atoi(*++argv);
			else helpstart(argval);
		} else if (ISARG("-c")) {
			changeflg=1;
		} else if (ISARG("-r")) {
			showstr();
			exit(0);
		} else if (ISARG("-m")) {
			demflg=1;
		} else if (ISARG("-b")) {
			beepflg=1;
		} else if (ISARG("-n")) {
			if (--argc>0) {
				numberblink = atoi(*++argv);
				if (numberblink<0) numberblink = 4;
			} else helpstart(argval);

		} else if (ISARG("-l")) {
			if (--argc>0) {
				loadflg++;
				loadname= *++argv;
			} else helpstart(argval);

		} else if (ISARG("-R")) {
		    wins = 0.0;
		    if (--argc) {
			if (*argv[1]=='+') {
				strength++;
				argv++;
			} else if (*argv[1]=='-') {
				strength--;
				argv++;

			} else if (--argc) {
			    switch (*argv[2]) {
				WHEN 'k':
					strength = 31 - atoi(argv[1]);
				WHEN 'd':
					strength = 30 + atoi(argv[1]);
				WHEN 'p':
					strength = 39 + atoi(argv[1]);
				OTHERWISE:
					helpstart(argval);
			    }
			    argv+=2;
			} else
			    helpstart(argval);

			if (strength < 1) strength = 1;
			else if (strength > MAXSTR) strength = MAXSTR;

			savestr0();
			exit(0);
		    } else
			    helpstart(argval);
		} else {
			hisname = *argv++;
		}
	}
	if (hisname == NULL) helpstart();
}


helpstart(argv)
char *argv[];
{
	fprintf (stderr,"\nUsage:\n");
	fprintf (stderr,"%s {opts} user[@host]\n",argv[0]);

	fprintf (stderr,"{opts} is any of :\n");
	fprintf (stderr,"-d display             set your display.\n");
	fprintf (stderr,"-p port#               which address to meet at.\n");
	fprintf (stderr,"-m                     turn on demo mode during handicap setup.\n");
	fprintf (stderr,"-b                     turn on beeping during plays and messages.\n");
	fprintf (stderr,"-s size                set the board size [7-19].\n");
	fprintf (stderr,"-n blink               set the number of times to blink a piece.\n");
	fprintf (stderr,"-H #handicaps          set the number of handicap stones.\n");
	fprintf (stderr,"-c                     give a quick summery of the last changes\n");
	fprintf (stderr,"-l <filename>          load a saved/sample game.\n");
	fprintf (stderr,"                       changes made to the program and the version number.\n\n");

	fprintf (stderr,"OR:\n");
	fprintf (stderr,"\"%s -r\" for your current rank.\n",argv[0]);
	fprintf (stderr,"\"%s -h\" for help.\n",argv[0]);
	fprintf (stderr,"\"%s -R # {k|d|p} to set your rank to # kyu/dan/pro dan respectively\n",argv[0]);
	fprintf (stderr,"\"%s -R {+|-} to increase/decrease your rank respectively\n",argv[0]);
	exit (0);
}


/*
 * $Log:	opts.c,v $
 * Revision 1.2  88/02/13  12:50:46  hale
 * added searching for new opts and opponent name.
 * 
 */