- row = a->v_type != V_NUM ? 1 : a->v_num;
- col = (++a)->v_type != V_NUM ? 0 : a->v_num;
- nrow = (++a)->v_type != V_NUM ? wwnrow - row : a->v_num;
- ncol = (++a)->v_type != V_NUM ? wwncol - col : a->v_num;
- nline = (++a)->v_type == V_ERR ? nbufline : a->v_num;
- label = (++a)->v_type == V_ERR ? 0 : a->v_str;
- if (openwin(id, row, col, nrow, ncol, nline, label) == 0)
+ row = a[0].v_type != V_NUM ? 1 : a[0].v_num;
+ col = a[1].v_type != V_NUM ? 0 : a[1].v_num;
+ nrow = a[2].v_type != V_NUM ? wwnrow - row : a[2].v_num;
+ ncol = a[3].v_type != V_NUM ? wwncol - col : a[3].v_num;
+ nline = a[4].v_type == V_ERR ? nbufline : a[4].v_num;
+ label = a[5].v_type == V_ERR ? 0 : a[5].v_str;
+ if (a[6].v_type == V_STR) {
+ if (mkargv(a[6].v_str, argv, sizeof argv / sizeof *argv) < 0)
+ return;
+ sh = argv;
+ shf = *argv;
+ } else {
+ sh = shell;
+ shf = shellfile;
+ }
+ if ((haspty = vtobool(a + 7, 1, -1)) < 0)
+ return;
+ if ((hasframe = vtobool(a + 8, 1, -1)) < 0)
+ return;
+ if (openwin(id, row, col, nrow, ncol, nline, label,
+ haspty, hasframe, shf, sh) == 0)