int VSL_Arg(struct VSL_data *vsl, int opt, const char *arg) { switch (opt) { case 'i': case'x': return (vsl_ix_arg(vsl, opt, arg)); case 'v': vsl->v_opt = 1; return (1); default: return (0); } }
int VSL_Arg(struct VSL_data *vsl, int opt, const char *arg) { int i; char *p; double d; long l; CHECK_OBJ_NOTNULL(vsl, VSL_MAGIC); /* If first option is 'i', set all bits for supression */ if ((opt == 'i' || opt == 'I') && !(vsl->flags & F_SEEN_ixIX)) for (i = 0; i < SLT__MAX; i++) vbit_set(vsl->vbm_supress, i); switch (opt) { case 'b': vsl->b_opt = 1; return (1); case 'c': vsl->c_opt = 1; return (1); case 'C': /* Caseless regular expressions */ vsl->C_opt = 1; return (1); case 'i': case 'x': return (vsl_ix_arg(vsl, opt, arg)); case 'I': case 'X': return (vsl_IX_arg(vsl, opt, arg)); case 'L': l = strtol(arg, &p, 0); while (isspace(*p)) p++; if (*p != '\0') return (vsl_diag(vsl, "-L: Syntax error")); if (l < 0 || l > INT_MAX) return (vsl_diag(vsl, "-L: Range error")); vsl->L_opt = (int)l; return (1); case 'T': d = strtod(arg, &p); while (isspace(*p)) p++; if (*p != '\0') return (vsl_diag(vsl, "-P: Syntax error")); if (d < 0.) return (vsl_diag(vsl, "-L: Range error")); vsl->T_opt = d; return (1); case 'v': vsl->v_opt = 1; return (1); default: return (0); } }
int VSL_Arg(struct VSL_data *vd, int arg, const char *opt) { CHECK_OBJ_NOTNULL(vd, VSL_MAGIC); switch (arg) { case 'b': vd->b_opt = !vd->b_opt; return (1); case 'c': vd->c_opt = !vd->c_opt; return (1); case 'd': vd->d_opt = !vd->d_opt; vd->flags |= F_NON_BLOCKING; return (1); case 'i': case 'x': return (vsl_ix_arg(vd, opt, arg)); case 'r': return (vsl_r_arg(vd, opt)); case 'I': case 'X': return (vsl_IX_arg(vd, opt, arg)); case 'C': vd->regflags = VRE_CASELESS; return (1); case 's': return (vsl_s_arg(vd, opt)); case 'k': return (vsl_k_arg(vd, opt)); default: return (0); } }