/* parse arguments of typical command */ static int runtypical(int argc, char **argv){ char *path = NULL; char *tstr = NULL; char *rstr = NULL; char *wstr = NULL; char *lstr = NULL; int omode = 0; int rratio = -1; bool nc = false; for(int i = 2; i < argc; i++){ if(!path && argv[i][0] == '-'){ if(!strcmp(argv[i], "-nl")){ omode |= FDBONOLCK; } else if(!strcmp(argv[i], "-nb")){ omode |= FDBOLCKNB; } else if(!strcmp(argv[i], "-nc")){ nc = true; } else if(!strcmp(argv[i], "-rr")){ if(++i >= argc) usage(); rratio = tcatoix(argv[i]); } else { usage(); } } else if(!path){ path = argv[i]; } else if(!tstr){ tstr = argv[i]; } else if(!rstr){ rstr = argv[i]; } else if(!wstr){ wstr = argv[i]; } else if(!lstr){ lstr = argv[i]; } else { usage(); } } if(!path || !tstr || !rstr) usage(); int tnum = tcatoix(tstr); int rnum = tcatoix(rstr); if(tnum < 1 || rnum < 1) usage(); int width = wstr ? tcatoix(wstr) : -1; int64_t limsiz = lstr ? tcatoix(lstr) : -1; int rv = proctypical(path, tnum, rnum, width, limsiz, omode, nc, rratio); return rv; }
/* parse arguments of typical command */ static int runtypical(int argc, char **argv){ char *tstr = NULL; char *rstr = NULL; char *bstr = NULL; bool tr = false; int rratio = -1; bool nc = false; for(int i = 2; i < argc; i++){ if(!tstr && argv[i][0] == '-'){ if(!strcmp(argv[i], "-tr")){ tr = true; } else if(!strcmp(argv[i], "-nc")){ nc = true; } else if(!strcmp(argv[i], "-rr")){ if(++i >= argc) usage(); rratio = tcatoix(argv[i]); } else { usage(); } } else if(!tstr){ tstr = argv[i]; } else if(!rstr){ rstr = argv[i]; } else if(!bstr){ bstr = argv[i]; } else { usage(); } } if(!tstr || !rstr) usage(); int tnum = tcatoix(tstr); int rnum = tcatoix(rstr); if(tnum < 1 || rnum < 1) usage(); int bnum = bstr ? tcatoix(bstr) : -1; int rv = proctypical(tnum, rnum, bnum, tr, nc, rratio); return rv; }