+ if ((mapnl = vtobool(++a, !haspty, -1)) < 0)
+ return;
+ if ((keepopen = vtobool(++a, 0, -1)) < 0)
+ return;
+ if ((smooth = vtobool(++a, default_smooth, -1)) < 0)
+ return;
+ if ((++a)->v_type != V_ERR) {
+ for (pp = argv; a->v_type != V_ERR &&
+ pp < &argv[sizeof argv/sizeof *argv-1]; pp++, a++)
+ *pp = a->v_str;
+ *pp = 0;
+ shf = *(sh = argv);
+ if (*sh = rindex(shf, '/'))
+ (*sh)++;
+ else
+ *sh = shf;
+ } else {
+ sh = default_shell;
+ shf = default_shellfile;
+ }
+ if ((w = openwin(id, row, col, nrow, ncol, nline, label, haspty,
+ hasframe, shf, sh)) == 0)
+ return;
+ w->ww_mapnl = mapnl;
+ w->ww_keepopen = keepopen;
+ w->ww_noupdate = !smooth;