VMS' logicals are limited to 255 characters, and attempting to set
them to a longer value will fail. This patch automagically truncates
the value to 255 and emits a warning if warnings are enabled.
--- vms/vms.c;1 Mon Feb 28 01:47:08 2000
+++ vms/vms.c Tue Feb 29 11:03:01 2000
@@ -616,6 +616,12 @@
}
else {
if (!*eqv) eqvdsc.dsc$w_length = 1;
+ if (eqvdsc.dsc$w_length > LNM$C_NAMLENGTH) {
+ eqvdsc.dsc$w_length = LNM$C_NAMLENGTH;
+ if (ckWARN(WARN_MISC)) {
+ Perl_warner(aTHX_ WARN_MISC,"Value of logical \"%s\" too long.
+Truncating to %i bytes",lnm, LNM$C_NAMLENGTH);
+ }
+ }
retsts = lib$set_logical(&lnmdsc,&eqvdsc,tabvec[0],0,0);
}
}