Craig A. Berry wrote:
Change 25824 by [EMAIL PROTECTED] on 2005/10/22 16:43:40

        VMS threaded build fixes for things broken in #25783
-          if (eqv && *eqv) Perl_my_chdir(eqv);
+          if (eqv && *eqv) my_chdir(eqv);

So I do not break things again, can you explain to me what the difference between these two definitions are?

To put in support for the long filenames means that I will need to replace most places that to_vmsspec is used with the rmsexpand() routine instead so that I can be sure that the resulting VMS file specification
will fit in 255 characters.

To put in support for the EFS character set and proper handling of UNIX file specifications, I have to avoid translating UNIX names to VMS if the resulting routine can handle a UNIX format name.

-         mp_do_pathify_dirspec(name, remove_name, 0);
+         do_pathify_dirspec(name, remove_name, 0);

-         mp_do_pathify_dirspec(name, remove_name, 0);
+         do_pathify_dirspec(name, remove_name, 0);

-    else retval = mp_do_kill_file(dirfile, 1);
+    else retval = mp_do_kill_file(aTHX_ dirfile, 1);

-       islnm = my_trnlnm(vmspath, esa, 0);
-        trnend = islnm ? strlen(esa) - 1 : 0;
+       islnm = vmstrnenv(vmspath, esa, 0, fildev, 0);
+        trnend = islnm ? islnm - 1 : 0;

And these likewise?

- entry = Perl_readdir(dd);
+    entry = readdir(dd);
     *result = entry;
     retval = ( *result == NULL ? errno : 0 );

This will probably break with the Posix Pathname mode. I think it will need to call the CRTL readdir() routine from vms.c instead of the replacement routines or that symbolic links will not be processed correctly.

There should not in any case be a public routine in vms.c with the same name as an existing CRTL routine of the same name.

And unless I got the previous change wrong, readdir() is should now be calling the real CRTL readdir().

==== //depot/perl/vms/vmsish.h#73 (text) ====
Index: perl/vms/vmsish.h
--- perl/vms/vmsish.h#72~25801~ Tue Oct 18 17:29:00 2005
+++ perl/vms/vmsish.h   Sat Oct 22 09:43:40 2005
@@ -234,14 +234,6 @@
 #define init_os_extras         Perl_init_os_extras
 #define vms_realpath(a, b)     Perl_vms_realpath(aTHX_ a,b)
 #define vms_case_tolerant(a)   Perl_vms_case_tolerant(a)
-#define vms_decc_feature_get_name(a) \
-                       Perl_vms_decc_feature_get_name(aTHX_ a)
-#define vms_decc_feature_get_value(a, b) \
-                       Perl_vms_decc_feature_get_value(aTHX_ a, b)
-#define vms_decc_feature_set_value(a, b, c) \
-                       Perl_vms_decc_feature_set_value(aTHX_ a, b, c)
-#define vms_decc_feature_get_index(a) \
-                       Perl_vms_decc_feature_get_index(aTHX_ a)

So you do not want these in until the real functions are implemented?

-John
[EMAIL PROTECTED]
Personal Opinion Only

Reply via email to