Esempio n. 1
0
File: sum.c Progetto: 99years/plan9
void
main(int argc, char **argv)
{
	Sumfn *fn = sum32;
	char *exitstr=0, *s;

	ARGBEGIN{
	case 'r':
		fn = sumr;
		break;
	case '5':
		fn = sum5;
		break;
	default:
		usage();
		break;
	}ARGEND
	if(*argv){
		while(*argv)
			if(s = sumfile(*argv++, fn))	/* assign = */
				exitstr = s;
	}else
		exitstr = sumfile(0, fn);
	exits(exitstr);
}
Esempio n. 2
0
int main(int argc, char *argv[])
{
	OptNode *o;
	Node *n;
	xiargs *args;
	int verbose = 0, check=0;

	binary = " ";

	key1 = (unsigned char *)calloc(1, 40);
	if(!key1) {
		fprintf(stderr, "Memory allocation failed!\n");
		return 2;
	}
	key2 = (unsigned char *)calloc(1, 40);
	if(!key2) {
		free(key1);
		fprintf(stderr, "Memory allocation failed!\n");
		return 2;
	}

	args = xi_getopts(argc, argv, "MD5 summer (Xiqual example program)",
		"[-b] [-v] [-c] | [file...]", opt);
	if(!args) return 0;

	o = (OptNode *)args->opts.head;
	while(o) {
		switch(o->name[0]) {
		case 'b':
			binary = "*";
			break;
		case 'v':
			verbose = 1;
			break;
		case 'c':
			check = 1;
		}
		o = o->next;
	}
	n = args->leftovers.head;
	if(check) {
		while(n) {
			checklist(n->data);
			n = n->next;
		}
	} else {
		while(n) {
			sumfile(n->data);
			n = n->next;
		}
	}
	free(key1);
	free(key2);
	xi_freeopts(args);
	return 0;
}