slurping an empty file should return '' rather than undef, with
[p5sagit/p5-mst-13.2.git] / pp_sys.c
index 538fb68..e4694bc 100644 (file)
--- a/pp_sys.c
+++ b/pp_sys.c
@@ -1003,8 +1003,13 @@ PP(pp_select)
     }
 
     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);
     }
 
@@ -3276,7 +3281,11 @@ PP(pp_telldir)
 {
     djSP; dTARGET;
 #if defined(HAS_TELLDIR) || defined(telldir)
-# ifdef NEED_TELLDIR_PROTO /* XXX does _anyone_ need this? --AD 2/20/1998 */
+ /* XXX does _anyone_ need this? --AD 2/20/1998 */
+ /* XXX netbsd still seemed to.
+    XXX HAS_TELLDIR_PROTO is new style, NEED_TELLDIR_PROTO is old style.
+    --JHI 1999-Feb-02 */
+# if !defined(HAS_TELLDIR_PROTO) || defined(NEED_TELLDIR_PROTO)
     long telldir _((DIR *));
 # endif
     GV *gv = (GV*)POPs;