all binaries with different ideas about file offsets, all this is
platform-dependent.
-=head2 ftmp-posix subtest 6 fails in VMS
-
-The test exposes a flushing bug in the VMS port of Perl, this failure
-as such can be ignored.
-
=head2 ftmp-security tests warn 'system possibly insecure'
Don't panic. Read INSTALL 'make test' section instead.
=head2 Long Doubles Still Don't Work In Solaris
The experimental long double support is still very much so in Solaris.
-(Other platforms like Linux and Tru64 are beginning to solidify in this area.)
+(Other platforms like Linux and Tru64 are beginning to solidify in
+this area.)
=head2 Storable tests fail in some platforms
+If any Storable tests fail the use of Storable is not advisable.
+
=over 4
=item *
This means that you cannot read old (pre-Storable-0.7) Storable images
made in other platforms.
+=item *
+
+st-store.t and st-retrieve may fail with Compaq C 6.2 on OpenVMS Alpha 7.2.
+
=back
=head1 Reporting Bugs
/* vms.c
*
* VMS-specific routines for perl5
+ * Version: 5.7.0
*
- * Last revised: 20-Aug-1999 by Charles Bailey bailey@newman.upenn.edu
- * Version: 5.5.60
+ * August 2000 tweaks to vms_image_init, my_flush, my_fwrite, cando_by_name,
+ * and Perl_cando by Craig Berry
+ * 29-Aug-2000 Charles Lane's piping improvements rolled in
+ * 20-Aug-1999 revisions by Charles Bailey bailey@newman.upenn.edu
*/
#include <acedef.h>
#endif
res = fsync(fileno(fp));
}
+/*
+ * If the flush succeeded but set end-of-file, we need to clear
+ * the error because our caller may check ferror(). BTW, this
+ * probably means we just flushed an empty file.
+ */
+ if (res == 0 && vaxc$errno == RMS$_EOF) clearerr(fp);
+
return res;
}
/*}}}*/
&namdsc,&namdsc.dsc$w_length,0,0);
if (retsts & 1) {
fname[namdsc.dsc$w_length] = '\0';
- return cando_by_name(bit,effective,fname);
+/*
+ * lib$fid_to_name returns DVI$_LOGVOLNAM as the device part of the name,
+ * but if someone has redefined that logical, Perl gets very lost. Since
+ * we have the physical device name from the stat buffer, just paste it on.
+ */
+ char fname_phdev[NAM$C_MAXRSS+1];
+ strcpy( fname_phdev, statbufp->st_devnam );
+ strcat( fname_phdev, strrchr(fname, ':') );
+
+ return cando_by_name(bit,effective,fname_phdev);
}
else if (retsts == SS$_NOSUCHDEV || retsts == SS$_NOSUCHFILE) {
Perl_warn(aTHX_ "Can't get filespec - stale stat buffer?\n");