Exemple #1
0
/*
 * Read patterns from file.
 */
void
patfile(char *fn)
{
	struct stat st;
	struct expr *e = NULL;
	char *cp;
	struct iblok	*ip;
	size_t sz, len;
	int nl;

	if ((ip = ib_open(fn, 0)) == NULL || fstat(ip->ib_fd, &st) < 0) {
		fprintf(stderr, "%s: can't open %s\n", progname, fn);
		exit(2);
	}
	if (e0) {
		if (sus)
			for (e = e0; e->e_nxt; e = e->e_nxt);
		else
			e0 = NULL;
	}
	while (cp = NULL, sz = 0,
			(len = ib_getlin(ip, &cp, &sz, srealloc)) > 0) {
		if ((nl = cp[len - 1] == '\n') != 0)
			cp[len - 1] = '\0';
		addpat(&e, cp, len - nl, nl);
	}
	ib_close(ip);
}
Exemple #2
0
/*
 * Open a RDMA device.
 */
int
rd_open(DEVICE *dev, int trans, int max_send_wr, int max_recv_wr)
{
#if 0
    /* Send request to client */
    if (is_client())
        client_send_request();
#endif

    /* Clear structure */
    memset(dev, 0, sizeof(*dev));

    /* Set transport type and maximum work request parameters */
#if 0
    dev->trans = trans;
#endif
    dev->max_send_wr = max_send_wr;
    dev->max_recv_wr = max_recv_wr;

    /* Open device */
#if 0
    if (Req.use_cm)
        cm_open(dev);
    else
#endif
        int r = ib_open(dev);
    if (r != 0) {
        return r;
    }

    /* Request CQ notification if not polling */
    if (!Req.poll_mode) {
        if (ibv_req_notify_cq(dev->cq, 0) != 0)
            return error(SYS, "failed to request CQ notification");
    }

    return r;
}
Exemple #3
0
int
main(int argc, char **argv)
{
    int i;
    int n1, n2;
    off_t top2 = 0, bot2;
    char	*arg = 0, *x;

    progname = basename(argv[0]);
    setlocale(LC_COLLATE, "");
    setlocale(LC_CTYPE, "");
    mb_cur_max = MB_CUR_MAX;
    while (argc > 1 && argv[1][0] == '-') {
        if (argv[1][1] == '\0')
            break;
        switch (argv[1][1]) {
        case 'a':
            if (argv[1][2])
                arg = &argv[1][2];
            else if (argv[2]) {
                arg = argv[2];
                argv++, argc--;
            } else
                arg = "3";
            switch(*arg) {
            case '1':
                aflg |= 1;
                break;
            case '2':
                aflg |= 2;
                break;
            default:
                aflg |= 3;
            }
            break;
        case 'e':
            if (argv[1][2])
                null = &argv[1][2];
            else if (argv[2]) {
                null = argv[2];
                argv++;
                argc--;
            } else
                usage();
            break;
        case 't':
            if (argv[1][2]) {
                int n;
                next(sep1, &argv[1][2], n);
                sep2 = sep1;
            } else if (argv[2]) {
                int n;
                next(sep1, argv[2], n);
                sep2 = sep1;
                argv++, argc--;
            } else
                usage();
            break;
        case 'o':
            if (argv[2] == NULL)
                usage();
            arg = argv[1][2] ? &argv[1][2] : argv[2];
            for (no = 0;
                    olist = srealloc(olist, (no+1)*sizeof *olist),
                    olistf = srealloc(olistf,(no+1)*sizeof *olistf),
                    olist[no] = 0, olistf[no] = 0,
                    arg; no++) {
                if (arg[0] == '1' && arg[1] == '.') {
                    olistf[no] = F1;
                    olist[no] = strtol(&arg[2], &x, 10);
                } else if (arg[0] == '2' && arg[1] == '.') {
                    olist[no] = strtol(&arg[2], &x, 10);
                    olistf[no] = F2;
                } else if (arg[0] == '0') {
                    olistf[no] = JF;
                    x = &arg[1];
                } else
                    break;
                while (*x == ' ' || *x == ',')
                    x++;
                if (*x)
                    arg = x;
                else {
                    argc--;
                    argv++;
                    arg = argv[2];
                }
            }
            if (no == 0) {
                fprintf(stderr, "%s: invalid file number (%s) "
                        "for -o\n", progname, arg);
                exit(2);
            }
            break;
        case 'j':
            if (argv[2] == NULL)
                usage();
            if (argv[1][2] == '1')
                j1 = atoi(argv[2]);
            else if (argv[1][2] == '2')
                j2 = atoi(argv[2]);
            else
                j1 = j2 = atoi(argv[2]);
            argc--;
            argv++;
            break;
        case '1':
            if (argv[1][2])
                arg = &argv[1][2];
            else if (argv[2]) {
                arg = argv[2];
                argv++, argc--;
            } else
                usage();
            j1 = atoi(arg);
            break;
        case '2':
            if (argv[1][2])
                arg = &argv[1][2];
            else if (argv[2]) {
                arg = argv[2];
                argv++, argc--;
            } else
                usage();
            j2 = atoi(arg);
            break;
        case 'v':
            if (argv[1][2])
                arg = &argv[1][2];
            else if (argv[2]) {
                arg = argv[2];
                argv++, argc--;
            } else
                usage();
            if (*arg == '1')
                vflg |= 1;
            else if (*arg == '2')
                vflg |= 2;
            break;
        }
        argc--;
        argv++;
    }
    for (i = 0; i < no; i++)
        olist[i]--;	/* 0 origin */
    if (argc != 3)
        usage();
    j1--;
    j2--;	/* everyone else believes in 0 origin */
    s1 = ppi(F1, j1);
    s2 = ppi(F2, j2);
    if (argv[1][0] == '-' && argv[1][1] == '\0')
        f[F1] = ib_alloc(0, 0);
    else if ((f[F1] = ib_open(argv[1], 0)) == NULL)
        error("can't open ", argv[1]);
    if (argv[2][0] == '-' && argv[2][1] == '\0')
        f[F2] = ib_alloc(0, 0);
    else if ((f[F2] = ib_open(argv[2], 0)) == NULL)
        error("can't open ", argv[2]);

#define get1() n1=input(F1)
#define get2() n2=input(F2)
    get1();
    bot2 = ib_seek(f[F2], 0, SEEK_CUR);
    get2();
    while(n1>=0 && n2>=0 || (aflg|vflg)!=0 && (n1>=0||n2>=0)) {
        if(n1>=0 && n2>=0 && comp()>0 || n1<0) {
            if(aflg&2||vflg&2) output(0, n2);
            bot2 = ib_seek(f[F2], 0, SEEK_CUR);
            get2();
        } else if(n1>=0 && n2>=0 && comp()<0 || n2<0) {
            if(aflg&1||vflg&1) output(n1, 0);
            get1();
        } else { /*(n1>=0 && n2>=0 && comp()==0)*/
            while(n2>=0 && comp()==0) {
                if(vflg==0) output(n1, n2);
                top2 = ib_seek(f[F2], 0, SEEK_CUR);
                get2();
            }
            ib_seek(f[F2], bot2, SEEK_SET);
            get2();
            get1();
            for(;;) {
                if(n1>=0 && n2>=0 && comp()==0) {
                    if(vflg==0) output(n1, n2);
                    get2();
                } else if(n1>=0 && n2>=0 && comp()<0 || n2<0) {
                    ib_seek(f[F2], bot2, SEEK_SET);
                    get2();
                    get1();
                } else { /*(n1>=0 && n2>=0 && comp()>0 || n1<0)*/
                    ib_seek(f[F2], top2, SEEK_SET);
                    bot2 = top2;
                    get2();
                    break;
                }
            }
        }
    }
    return(0);
}
Exemple #4
0
int
main(int argc, char **argv)
{
	int c;
	char *termtype;
#ifdef	USE_TERMCAP
	char termcap[2048];
#endif
	struct iblok *f;

	progname = basename(argv[0]);
	setlocale(LC_CTYPE, "");
	mb_cur_max = MB_CUR_MAX;
	termtype = getenv("TERM");
	if (termtype == NULL || (progname[0] == 'c' && !isatty(1)))
		termtype = "lpr";
	while ((c=getopt(argc, argv, "it:T:?")) != EOF)
		switch(c) {

		case 't':
		case 'T': /* for nroff compatibility */
				termtype = optarg;
			break;
		case 'i':
			iflag = 1;
			break;

		default:
			fprintf(stderr,
				"Usage: %s [ -i ] [ -tTerm ] file...\n",
				progname);
			exit(1);
		}

#ifndef	USE_TERMCAP
	setupterm(termtype, 1, &c);
	if (c < 0)
		fprintf(stderr,"trouble reading termcap");
	if (c <= 0)
		termtype = "dumb";
#else	/* USE_TERMCAP */
	switch (tgetent(termcap, termtype)) {
	case 1:
		break;
	default:
		fprintf(stderr,"trouble reading termcap");
		/*FALLTHRU*/
	case 0:
		strcpy(termcap, "dumb:os:col#80:cr=^M:sf=^J:am:");
	}
	initcap();
#endif	/* USE_TERMCAP */
	if (    (over_strike && enter_bold_mode==NULL ) ||
		(transparent_underline && enter_underline_mode==NULL &&
				 underline_char==NULL))
			must_overstrike = 1;
	initbuf();
	if (optind == argc)
		filtr(ib_alloc(0, 0));
	else for (; optind<argc; optind++) {
		f = ib_open(argv[optind], 0);
		if (f == NULL) {
			perror(argv[optind]);
			exit(1);
		} else {
			filtr(f);
			ib_close(f);
		}
	}
	exit(0);
}