Exemple #1
0
int create_num(int num)
{
	int ret;
	int tmp;

	while (1) {
			ret = mylock();
			if (ret != 0) {
					fprintf(stderr, "mylock fail!\n");
					exit(1);
			}
			tmp = getnum(PRIMER);
			if (tmp != 0) {
				ret = myunlock();
				if (ret != 0) {
					fprintf(stderr, "myunlock fail!\n");
					exit(1);
				}
				continue;
			}
			ret = setnum(PRIMER, num);
			if (ret != 0) {
				fprintf(stderr, "setnum() error!\n");
				exit(1);
			}
			
			ret = myunlock();
			if (ret != 0) {
					fprintf(stderr, "myunlock fail!\n");
					exit(1);
			}
	}
	return 0;
}
Exemple #2
0
int do_child(void)
{
		int ret;
		int tmp;
		int i;
		while (1) {
				ret = mylock();
				if (ret != 0) {
						fprintf(stderr, "mylock fail!\n");
						exit(1);
				}

				if ((tmp = getnum(PRIMER)) == 0) {
						ret = myunlock();
						if (ret != 0) {
								fprintf(stderr, "myunlock fail!\n");
								exit(1);
						}
						continue;
				}
				if (tmp == END) {
						ret = myunlock();
						if (ret != 0) {
								fprintf(stderr, "myunlock fail!\n");
								exit(1);
						}
						break;
				}
				ret = setnum(PRIMER, 0);
				if (ret != 0) {
					fprintf(stderr, "setnum() error!\n");
					exit(1);
				}
				ret = myunlock();
				if (ret != 0) {
						fprintf(stderr, "myunlock fail!\n");
						exit(1);
				}
				for (i=2;i<tmp/2;i++) {
					if (tmp%i == 0) {
						ret = 0;
						break;
					}
					ret = 1;
					continue;
				}
				if (ret == 1) {
					printf("%d\n", tmp);
				}
		}
	exit(0);
}
Exemple #3
0
void
process(Biobuf *b, char *name)
{
	int c, r, v, i;
	char *p;

	cno = 0;
	prevlineH = res;
	filename = name;
	for(;;){
		c = getc(b);
		switch(c){
		case Beof:
			/* go to ground state */
			attr = 0;
			emit('\n');
			return;
		case '\n':
			break;
		case '0': case '1': case '2': case '3': case '4':
		case '5': case '6': case '7': case '8': case '9':
			v = c-'0';
			c = getc(b);
			if(c<'0' || '9'<c)
				sysfatal("illegal character motion at %s:#%d", filename, cno);
			v = v*10 + (c-'0');
			hp += v;
			/* fall through to character case */
		case 'c':
			indent();
			r = getc(b);
			emithtmlchar(r);
			break;
		case 'D':
			/* draw line; ignore */
			do
				c = getc(b);
			while(c!='\n' && c!= Beof);
			break;
		case 'f':
			v = setnum(b, "font", 0, Nfont);
			switchfont(v);
			break;
		case 'h':
			v = setnum(b, "hpos", -20000, 20000);
			/* generate spaces if motion is large and within a line */
			if(!atnewline && v>2*72)
				for(i=0; i<v; i+=72)
					emitstr("&nbsp;");
			hp += v;
			break;
		case 'n':
			setnum(b, "n1", -10000, 10000);
			//Bprint(&bout, " N1=%d", v);
			getc(b);	/* space separates */
			setnum(b, "n2", -10000, 10000);
			atnewline = 1;
			if(!didP && hp < (Wid-1)*res)	/* if line is less than 19" long, probably need a line break */
				emitstr("<br>");
			emit('\n');
			break;
		case 'p':
			page = setnum(b, "ps", -10000, 10000);
			break;
		case 's':
			ps = setnum(b, "ps", 1, 1000);
			break;
		case 'v':
			vp += setnum(b, "vpos", -10000, 10000);
			/* BUG: ignore motion */
			break;
		case 'x':
			xcmd(b);
			break;
		case 'w':
			emit(' ');
			break;
		case 'C':
			indent();
			p = getstr(b);
			emitstr(troffchar(p));
			break;
		case 'H':
			hp = setnum(b, "hpos", 0, 20000);
			//Bprint(&bout, " H=%d ", hp);
			break;
		case 'V':
			vp = setnum(b, "vpos", 0, 10000);
			break;
		default:
			fprint(2, "dhtml: unknown directive %c(0x%.2ux) at %s:#%d\n", c, c, filename, cno);
			return;
		}
	}
}
card::card(char n){
    setnum(n);
}