}
if (newdefout) {
- if (!GvIO(newdefout))
- gv_IOadd(newdefout);
+ if (!GvIO(newdefout)) {
+ if (ckWARN(WARN_UNOPENED))
+ warner(WARN_UNOPENED, "select() on unopened file");
+ if (SvTYPE(newdefout) != SVt_PVGV)
+ RETURN;
+ gv_IOadd(newdefout); /* XXX probably bogus */
+ }
setdefout(newdefout);
}