patch against @10929
in C<open(FOO,"+foo")> the + would be interpreted as part of the
implicit open for reading, making it open for read/write. (i.e. +<)
This patch removes that icky behaviour. If you want +<, you need to
specify it. As a plus, perl can now open files starting with +.
the *(type+1) should be safe, because type should be a null terminated
string, and hopefully the compiler will be smart and optimize away the
double dereference.
--- doio.c.orig Tue Jun 26 01:14:30 2001
+++ doio.c Wed Jun 27 23:02:51 2001
@@ -233,6 +233,7 @@
}
IoTYPE(io) = *type;
if ((*type == IoTYPE_RDWR) && /* scary */
+ (*(type+1) == IoTYPE_RDONLY || *(type+1) == IoTYPE_WRONLY) &&
((!num_svs || (tend > type+1 && tend[-1] != IoTYPE_PIPE)))) {
mode[1] = *type++;
writing = 1;
Thread Next