From 34f7a5fe99f3faa5f4f74634b6f6f7c52e1655f8 Mon Sep 17 00:00:00 2001 From: Dan Sugalski Date: Fri, 2 Jun 2000 12:00:41 -0400 Subject: [PATCH] VMS fixups so we can build with MULTIPLICITY To: vmsperl@perl.org, perl5-porters@perl.org Message-Id: <4.3.2.7.0.20000602155951.01f02b20@24.8.96.48> Message-Id: <4.3.2.7.0.20000602164011.01ec8c30@24.8.96.48> p4raw-id: //depot/cfgperl@6198 --- embed.pl | 3 ++ ext/POSIX/POSIX.xs | 4 +- global.sym | 1 + perlapi.c | 3 ++ pod/perlapi.pod | 10 ++--- vms/vms.c | 94 +++++++++++++++++++++++------------------- vms/vmsish.h | 118 +++++++++++++++++++++++++++++++++++------------------ 7 files changed, 144 insertions(+), 89 deletions(-) diff --git a/embed.pl b/embed.pl index 8a89103..f2628e9 100755 --- a/embed.pl +++ b/embed.pl @@ -916,6 +916,9 @@ START_EXTERN_C { return &(PL_##v); } #define PERLVARA(v,n,t) PL_##v##_t* Perl_##v##_ptr(pTHXo) \ { return &(PL_##v); } +#undef PERLVARIC +#define PERLVARIC(v,t,i) const t* Perl_##v##_ptr(pTHXo) \ + { return (const t *)&(PL_##v); } #include "perlvars.h" #undef PERLVAR diff --git a/ext/POSIX/POSIX.xs b/ext/POSIX/POSIX.xs index d309ecb..c401527 100644 --- a/ext/POSIX/POSIX.xs +++ b/ext/POSIX/POSIX.xs @@ -83,7 +83,7 @@ /* The non-POSIX CRTL times() has void return type, so we just get the current time directly */ - clock_t vms_times(struct tms *PL_bufptr) { + clock_t vms_times(struct tms *bufptr) { dTHX; clock_t retval; /* Get wall time and convert to 10 ms intervals to @@ -104,7 +104,7 @@ _ckvmssts(lib$ediv(&divisor,vmstime,(long int *)&retval,&remainder)); # endif /* Fill in the struct tms using the CRTL routine . . .*/ - times((tbuffer_t *)PL_bufptr); + times((tbuffer_t *)bufptr); return (clock_t) retval; } # define times(t) vms_times(t) diff --git a/global.sym b/global.sym index 796f851..ec6180b 100644 --- a/global.sym +++ b/global.sym @@ -336,6 +336,7 @@ Perl_save_destructor_x Perl_save_freesv Perl_save_freepv Perl_save_generic_svref +Perl_save_generic_pvref Perl_save_gp Perl_save_hash Perl_save_helem diff --git a/perlapi.c b/perlapi.c index 10a7a37..d3e2482 100755 --- a/perlapi.c +++ b/perlapi.c @@ -41,6 +41,9 @@ START_EXTERN_C { return &(PL_##v); } #define PERLVARA(v,n,t) PL_##v##_t* Perl_##v##_ptr(pTHXo) \ { return &(PL_##v); } +#undef PERLVARIC +#define PERLVARIC(v,t,i) const t* Perl_##v##_ptr(pTHXo) \ + { return (const t *)&(PL_##v); } #include "perlvars.h" #undef PERLVAR diff --git a/pod/perlapi.pod b/pod/perlapi.pod index 2532620..19ab71f 100644 --- a/pod/perlapi.pod +++ b/pod/perlapi.pod @@ -1604,17 +1604,17 @@ false, defined or undefined. Does not handle 'get' magic. bool SvTRUE(SV* sv) +=item svtype + +An enum of flags for Perl types. These are found in the file B +in the C enum. Test these flags with the C macro. + =item SvTYPE Returns the type of the SV. See C. svtype SvTYPE(SV* sv) -=item svtype - -An enum of flags for Perl types. These are found in the file B -in the C enum. Test these flags with the C macro. - =item SVt_IV Integer type flag for scalars. See C. diff --git a/vms/vms.c b/vms/vms.c index cc1184b..a99d5e8 100644 --- a/vms/vms.c +++ b/vms/vms.c @@ -79,6 +79,16 @@ struct itmlst_3 { unsigned short int *retlen; }; +#define do_fileify_dirspec(a,b,c) mp_do_fileify_dirspec(aTHX_ a,b,c) +#define do_pathify_dirspec(a,b,c) mp_do_pathify_dirspec(aTHX_ a,b,c) +#define do_tovmsspec(a,b,c) mp_do_tovmsspec(aTHX_ a,b,c) +#define do_tovmspath(a,b,c) mp_do_tovmspath(aTHX_ a,b,c) +#define do_rmsexpand(a,b,c,d,e) mp_do_rmsexpand(aTHX_ a,b,c,d,e) +#define do_tounixspec(a,b,c) mp_do_tounixspec(aTHX_ a,b,c) +#define do_tounixpath(a,b,c) mp_do_tounixpath(aTHX_ a,b,c) +#define expand_wild_cards(a,b,c,d) mp_expand_wild_cards(aTHX_ a,b,c,d) +#define getredirection(a,b) mp_getredirection(aTHX_ a,b) + static char *__mystrtolower(char *str) { if (str) for (; *str; ++str) *str= tolower(*str); @@ -103,7 +113,7 @@ static struct dsc$descriptor_s VMScmd = {0,DSC$K_DTYPE_T,DSC$K_CLASS_S,Nullch}; /*{{{int vmstrnenv(const char *lnm, char *eqv, unsigned long int idx, struct dsc$descriptor_s **tabvec, unsigned long int flags) */ int -vmstrnenv(const char *lnm, char *eqv, unsigned long int idx, +Perl_vmstrnenv(pTHX_ const char *lnm, char *eqv, unsigned long int idx, struct dsc$descriptor_s **tabvec, unsigned long int flags) { char uplnm[LNM$C_NAMLENGTH+1], *cp1, *cp2; @@ -240,7 +250,7 @@ vmstrnenv(const char *lnm, char *eqv, unsigned long int idx, /*{{{ int my_trnlnm(const char *lnm, char *eqv, unsigned long int idx)*/ /* Define as a function so we can access statics. */ -int my_trnlnm(const char *lnm, char *eqv, unsigned long int idx) +int Perl_my_trnlnm(pTHX_ const char *lnm, char *eqv, unsigned long int idx) { return vmstrnenv(lnm,eqv,idx,fildev, #ifdef SECURE_INTERNAL_GETENV @@ -757,13 +767,13 @@ my_crypt(const char *textpasswd, const char *usrname) /*}}}*/ -static char *do_rmsexpand(char *, char *, int, char *, unsigned); -static char *do_fileify_dirspec(char *, char *, int); -static char *do_tovmsspec(char *, char *, int); +static char *mp_do_rmsexpand(pTHX_ char *, char *, int, char *, unsigned); +static char *mp_do_fileify_dirspec(pTHX_ char *, char *, int); +static char *mp_do_tovmsspec(pTHX_ char *, char *, int); /*{{{int do_rmdir(char *name)*/ int -do_rmdir(char *name) +Perl_do_rmdir(pTHX_ char *name) { char dirfile[NAM$C_MAXRSS+1]; int retval; @@ -1088,7 +1098,7 @@ popen_completion_ast(struct pipe_details *thispipe) } static unsigned long int setup_cmddsc(char *cmd, int check_img); -static void vms_execfree(); +static void vms_execfree(pTHX); static PerlIO * safe_popen(char *cmd, char *mode) @@ -1135,7 +1145,7 @@ safe_popen(char *cmd, char *mode) 0, popen_completion_ast,info,0,0,0)); } - vms_execfree(); + vms_execfree(aTHX); if (!handler_set_up) { _ckvmssts(sys$dclexh(&pipe_exitblock)); handler_set_up = TRUE; @@ -1293,10 +1303,10 @@ my_gconvert(double val, int ndig, int trail, char *buf) * rmesexpand() returns the address of the resultant string if * successful, and NULL on error. */ -static char *do_tounixspec(char *, char *, int); +static char *mp_do_tounixspec(pTHX_ char *, char *, int); static char * -do_rmsexpand(char *filespec, char *outbuf, int ts, char *defspec, unsigned opts) +mp_do_rmsexpand(pTHX_ char *filespec, char *outbuf, int ts, char *defspec, unsigned opts) { static char __rmsexpand_retbuf[NAM$C_MAXRSS+1]; char vmsfspec[NAM$C_MAXRSS+1], tmpfspec[NAM$C_MAXRSS+1]; @@ -1431,9 +1441,9 @@ do_rmsexpand(char *filespec, char *outbuf, int ts, char *defspec, unsigned opts) } /*}}}*/ /* External entry points */ -char *rmsexpand(char *spec, char *buf, char *def, unsigned opt) +char *Perl_rmsexpand(pTHX_ char *spec, char *buf, char *def, unsigned opt) { return do_rmsexpand(spec,buf,0,def,opt); } -char *rmsexpand_ts(char *spec, char *buf, char *def, unsigned opt) +char *Perl_rmsexpand_ts(pTHX_ char *spec, char *buf, char *def, unsigned opt) { return do_rmsexpand(spec,buf,1,def,opt); } @@ -1472,7 +1482,7 @@ char *rmsexpand_ts(char *spec, char *buf, char *def, unsigned opt) */ /*{{{ char *fileify_dirspec[_ts](char *path, char *buf)*/ -static char *do_fileify_dirspec(char *dir,char *buf,int ts) +static char *mp_do_fileify_dirspec(pTHX_ char *dir,char *buf,int ts) { static char __fileify_retbuf[NAM$C_MAXRSS+1]; unsigned long int dirlen, retlen, addmfd = 0, hasfilename = 0; @@ -1784,13 +1794,13 @@ static char *do_fileify_dirspec(char *dir,char *buf,int ts) } /* end of do_fileify_dirspec() */ /*}}}*/ /* External entry points */ -char *fileify_dirspec(char *dir, char *buf) +char *Perl_fileify_dirspec(pTHX_ char *dir, char *buf) { return do_fileify_dirspec(dir,buf,0); } -char *fileify_dirspec_ts(char *dir, char *buf) +char *Perl_fileify_dirspec_ts(pTHX_ char *dir, char *buf) { return do_fileify_dirspec(dir,buf,1); } /*{{{ char *pathify_dirspec[_ts](char *path, char *buf)*/ -static char *do_pathify_dirspec(char *dir,char *buf, int ts) +static char *mp_do_pathify_dirspec(pTHX_ char *dir,char *buf, int ts) { static char __pathify_retbuf[NAM$C_MAXRSS+1]; unsigned long int retlen; @@ -1970,13 +1980,13 @@ static char *do_pathify_dirspec(char *dir,char *buf, int ts) } /* end of do_pathify_dirspec() */ /*}}}*/ /* External entry points */ -char *pathify_dirspec(char *dir, char *buf) +char *Perl_pathify_dirspec(pTHX_ char *dir, char *buf) { return do_pathify_dirspec(dir,buf,0); } -char *pathify_dirspec_ts(char *dir, char *buf) +char *Perl_pathify_dirspec_ts(pTHX_ char *dir, char *buf) { return do_pathify_dirspec(dir,buf,1); } /*{{{ char *tounixspec[_ts](char *path, char *buf)*/ -static char *do_tounixspec(char *spec, char *buf, int ts) +static char *mp_do_tounixspec(pTHX_ char *spec, char *buf, int ts) { static char __tounixspec_retbuf[NAM$C_MAXRSS+1]; char *dirend, *rslt, *cp1, *cp2, *cp3, tmp[NAM$C_MAXRSS+1]; @@ -2100,11 +2110,11 @@ static char *do_tounixspec(char *spec, char *buf, int ts) } /* end of do_tounixspec() */ /*}}}*/ /* External entry points */ -char *tounixspec(char *spec, char *buf) { return do_tounixspec(spec,buf,0); } -char *tounixspec_ts(char *spec, char *buf) { return do_tounixspec(spec,buf,1); } +char *Perl_tounixspec(pTHX_ char *spec, char *buf) { return do_tounixspec(spec,buf,0); } +char *Perl_tounixspec_ts(pTHX_ char *spec, char *buf) { return do_tounixspec(spec,buf,1); } /*{{{ char *tovmsspec[_ts](char *path, char *buf)*/ -static char *do_tovmsspec(char *path, char *buf, int ts) { +static char *mp_do_tovmsspec(pTHX_ char *path, char *buf, int ts) { static char __tovmsspec_retbuf[NAM$C_MAXRSS+1]; char *rslt, *dirend; register char *cp1, *cp2; @@ -2244,11 +2254,11 @@ static char *do_tovmsspec(char *path, char *buf, int ts) { } /* end of do_tovmsspec() */ /*}}}*/ /* External entry points */ -char *tovmsspec(char *path, char *buf) { return do_tovmsspec(path,buf,0); } -char *tovmsspec_ts(char *path, char *buf) { return do_tovmsspec(path,buf,1); } +char *Perl_tovmsspec(pTHX_ char *path, char *buf) { return do_tovmsspec(path,buf,0); } +char *Perl_tovmsspec_ts(pTHX_ char *path, char *buf) { return do_tovmsspec(path,buf,1); } /*{{{ char *tovmspath[_ts](char *path, char *buf)*/ -static char *do_tovmspath(char *path, char *buf, int ts) { +static char *mp_do_tovmspath(pTHX_ char *path, char *buf, int ts) { static char __tovmspath_retbuf[NAM$C_MAXRSS+1]; int vmslen; char pathified[NAM$C_MAXRSS+1], vmsified[NAM$C_MAXRSS+1], *cp; @@ -2272,12 +2282,12 @@ static char *do_tovmspath(char *path, char *buf, int ts) { } /* end of do_tovmspath() */ /*}}}*/ /* External entry points */ -char *tovmspath(char *path, char *buf) { return do_tovmspath(path,buf,0); } -char *tovmspath_ts(char *path, char *buf) { return do_tovmspath(path,buf,1); } +char *Perl_tovmspath(pTHX_ char *path, char *buf) { return do_tovmspath(path,buf,0); } +char *Perl_tovmspath_ts(pTHX_ char *path, char *buf) { return do_tovmspath(path,buf,1); } /*{{{ char *tounixpath[_ts](char *path, char *buf)*/ -static char *do_tounixpath(char *path, char *buf, int ts) { +static char *mp_do_tounixpath(pTHX_ char *path, char *buf, int ts) { static char __tounixpath_retbuf[NAM$C_MAXRSS+1]; int unixlen; char pathified[NAM$C_MAXRSS+1], unixified[NAM$C_MAXRSS+1], *cp; @@ -2301,8 +2311,8 @@ static char *do_tounixpath(char *path, char *buf, int ts) { } /* end of do_tounixpath() */ /*}}}*/ /* External entry points */ -char *tounixpath(char *path, char *buf) { return do_tounixpath(path,buf,0); } -char *tounixpath_ts(char *path, char *buf) { return do_tounixpath(path,buf,1); } +char *Perl_tounixpath(pTHX_ char *path, char *buf) { return do_tounixpath(path,buf,0); } +char *Perl_tounixpath_ts(pTHX_ char *path, char *buf) { return do_tounixpath(path,buf,1); } /* * @(#)argproc.c 2.2 94/08/16 Mark Pizzolato (mark@infocomm.com) @@ -2347,10 +2357,10 @@ static void add_item(struct list_item **head, char *value, int *count); -static void expand_wild_cards(char *item, - struct list_item **head, - struct list_item **tail, - int *count); +static void mp_expand_wild_cards(pTHX_ char *item, + struct list_item **head, + struct list_item **tail, + int *count); static int background_process(int argc, char **argv); @@ -2358,7 +2368,7 @@ static void pipe_and_fork(char **cmargv); /*{{{ void getredirection(int *ac, char ***av)*/ static void -getredirection(int *ac, char ***av) +mp_getredirection(pTHX_ int *ac, char ***av) /* * Process vms redirection arg's. Exit if any error is seen. * If getredirection() processes an argument, it is erased @@ -2608,7 +2618,7 @@ static void add_item(struct list_item **head, ++(*count); } -static void expand_wild_cards(char *item, +static void mp_expand_wild_cards(pTHX_ char *item, struct list_item **head, struct list_item **tail, int *count) @@ -2962,7 +2972,7 @@ vms_image_init(int *argcp, char ***argvp) */ /*{{{int trim_unixpath(char *fspec, char *wildspec, int opts)*/ int -trim_unixpath(char *fspec, char *wildspec, int opts) +Perl_trim_unixpath(pTHX_ char *fspec, char *wildspec, int opts) { char unixified[NAM$C_MAXRSS+1], unixwild[NAM$C_MAXRSS+1], *template, *base, *end, *cp1, *cp2; @@ -3121,7 +3131,7 @@ trim_unixpath(char *fspec, char *wildspec, int opts) */ /*{{{ DIR *opendir(char*name) */ DIR * -opendir(char *name) +Perl_opendir(pTHX_ char *name) { DIR *dd; char dir[NAM$C_MAXRSS+1]; @@ -3375,7 +3385,7 @@ my_vfork() static void -vms_execfree() { +vms_execfree(pTHX) { if (PL_Cmd) { if (PL_Cmd != VMScmd.dsc$a_pointer) Safefree(PL_Cmd); PL_Cmd = Nullch; @@ -3625,7 +3635,7 @@ vms_do_exec(char *cmd) Perl_warner(aTHX_ WARN_EXEC,"Can't exec \"%*s\": %s", VMScmd.dsc$w_length, VMScmd.dsc$a_pointer, Strerror(errno)); } - vms_execfree(); + vms_execfree(aTHX); } return FALSE; @@ -3690,7 +3700,7 @@ do_spawn(char *cmd) Strerror(errno)); } } - vms_execfree(); + vms_execfree(aTHX); return substs; } /* end of do_spawn() */ @@ -4836,7 +4846,7 @@ my_getlogin() */ /*{{{int rmscopy(char *src, char *dst, int preserve_dates)*/ int -rmscopy(char *spec_in, char *spec_out, int preserve_dates) +Perl_rmscopy(pTHX_ char *spec_in, char *spec_out, int preserve_dates) { char vmsin[NAM$C_MAXRSS+1], vmsout[NAM$C_MAXRSS+1], esa[NAM$C_MAXRSS], rsa[NAM$C_MAXRSS], ubf[32256]; diff --git a/vms/vmsish.h b/vms/vmsish.h index a181e7c..48eda0a 100644 --- a/vms/vmsish.h +++ b/vms/vmsish.h @@ -91,42 +91,62 @@ #define DONT_DECLARE_STD 1 /* Our own contribution to PerlShr's global symbols . . . */ -#define vmstrnenv Perl_vmstrnenv -#define my_trnlnm Perl_my_trnlnm #define my_getenv_len Perl_my_getenv_len #define prime_env_iter Perl_prime_env_iter #define vmssetenv Perl_vmssetenv #if !defined(PERL_IMPLICIT_CONTEXT) +#define my_trnlnm Perl_my_trnlnm +#define vmstrnenv Perl_vmstrnenv #define my_setenv Perl_my_setenv #define my_getenv Perl_my_getenv +#define tounixspec Perl_tounixspec +#define tounixspec_ts Perl_tounixspec_ts +#define tovmsspec Perl_tovmsspec +#define tovmsspec_ts Perl_tovmsspec_ts +#define tounixpath Perl_tounixpath +#define tounixpath_ts Perl_tounixpath_ts +#define tovmspath Perl_tovmspath +#define tovmspath_ts Perl_tovmspath_ts +#define do_rmdir Perl_do_rmdir +#define fileify_dirspec Perl_fileify_dirspec +#define fileify_dirspec_ts Perl_fileify_dirspec_ts +#define pathify_dirspec Perl_pathify_dirspec +#define pathify_dirspec_ts Perl_pathify_dirspec_ts +#define trim_unixpath Perl_trim_unixpath +#define opendir Perl_opendir +#define rmscopy Perl_rmscopy #else +#define my_trnlnm(a,b,c) Perl_my_trnlnm(aTHX_ a,b,c) +#define vmstrnenv(a,b,c,d,e) Perl_vmstrnenv(aTHX_ a,b,c,d,e) #define my_setenv(a,b) Perl_my_setenv(aTHX_ a,b) #define my_getenv(a,b) Perl_my_getenv(aTHX_ a,b) +#define tounixspec(a,b) Perl_tounixspec(aTHX_ a,b) +#define tounixspec_ts(a,b) Perl_tounixspec_ts(aTHX_ a,b) +#define tovmsspec(a,b) Perl_tovmsspec(aTHX_ a,b) +#define tovmsspec_t(a,b) Perl_tovmsspec_ts(aTHX_ a,b) +#define tounixpath(a,b) Perl_tounixpath(aTHX_ a,b) +#define tounixpath_ts(a,b) Perl_tounixpath_ts(aTHX_ a,b) +#define tovmspath(a,b) Perl_tovmspath(aTHX_ a,b) +#define tovmspath_ts(a,b) Perl_tovmspath_ts(aTHX_ a,b) +#define do_rmdir(a) Perl_do_rmdir(aTHX_ a) +#define fileify_dirspec(a,b) Perl_fileify_dirspec(aTHX_ a,b) +#define fileify_dirspec_ts(a,b) Perl_fileify_dirspec_ts(aTHX_ a,b) +#define pathify_dirspec Perl_pathify_dirspec +#define pathify_dirspec_ts Perl_pathify_dirspec_ts +#define rmsexpand(a,b,c,d) Perl_rmsexpand(aTHX_ a,b,c,d) +#define rmsexpand_ts(a,b,c,d) Perl_rmsexpand_ts(aTHX_ a,b,c,d) +#define trim_unixpath(a,b,c) Perl_trim_unixpath(aTHX_ a,b,c) +#define opendir(a) Perl_opendir(aTHX_ a) +#define rmscopy(a,b,c) Perl_rmscopy(aTHX_ a,b,c) #endif #define my_crypt Perl_my_crypt #define my_waitpid Perl_my_waitpid #define my_gconvert Perl_my_gconvert -#define do_rmdir Perl_do_rmdir #define kill_file Perl_kill_file #define my_mkdir Perl_my_mkdir #define my_chdir Perl_my_chdir #define my_utime Perl_my_utime -#define rmsexpand Perl_rmsexpand -#define rmsexpand_ts Perl_rmsexpand_ts -#define fileify_dirspec Perl_fileify_dirspec -#define fileify_dirspec_ts Perl_fileify_dirspec_ts -#define pathify_dirspec Perl_pathify_dirspec -#define pathify_dirspec_ts Perl_pathify_dirspec_ts -#define tounixspec Perl_tounixspec -#define tounixspec_ts Perl_tounixspec_ts -#define tovmsspec Perl_tovmsspec -#define tovmsspec_ts Perl_tovmsspec_ts -#define tounixpath Perl_tounixpath -#define tounixpath_ts Perl_tounixpath_ts -#define tovmspath Perl_tovmspath -#define tovmspath_ts Perl_tovmspath_ts #define vms_image_init Perl_vms_image_init -#define opendir Perl_opendir #define readdir Perl_readdir #define telldir Perl_telldir #define seekdir Perl_seekdir @@ -144,7 +164,6 @@ #define cando_by_name Perl_cando_by_name #define flex_fstat Perl_flex_fstat #define flex_stat Perl_flex_stat -#define trim_unixpath Perl_trim_unixpath #define my_vfork Perl_my_vfork #define vms_do_aexec Perl_vms_do_aexec #define vms_do_exec Perl_vms_do_exec @@ -157,7 +176,6 @@ #define my_getpwent Perl_my_getpwent #define my_endpwent Perl_my_endpwent #define my_getlogin Perl_my_getlogin -#define rmscopy Perl_rmscopy #define init_os_extras Perl_init_os_extras /* Delete if at all possible, changing protections if necessary. */ @@ -627,39 +645,61 @@ void prime_env_iter (void); void init_os_extras (); /* prototype section start marker; `typedef' passes through cpp */ typedef char __VMS_PROTOTYPES__; -int vmstrnenv (const char *, char *, unsigned long int, struct dsc$descriptor_s **, unsigned long int); -int my_trnlnm (const char *, char *, unsigned long int); #if !defined(PERL_IMPLICIT_CONTEXT) char * Perl_my_getenv (const char *, bool); +int Perl_vmstrnenv (const char *, char *, unsigned long int, struct dsc$descriptor_s **, unsigned long int); +int Perl_my_trnlnm (const char *, char *, unsigned long int); +char * Perl_tounixspec (char *, char *); +char * Perl_tounixspec_ts (char *, char *); +char * Perl_tovmsspec (char *, char *); +char * Perl_tovmsspec_ts (char *, char *); +char * Perl_tounixpath (char *, char *); +char * Perl_tounixpath_ts (char *, char *); +char * Perl_tovmspath (char *, char *); +char * Perl_tovmspath_ts (char *, char *); +int Perl_do_rmdir (char *); +char * Perl_fileify_dirspec (char *, char *); +char * Perl_fileify_dirspec_ts (char *, char *); +char * Perl_pathify_dirspec (char *, char *); +char * Perl_pathify_dirspec_ts (char *, char *); +char * Perl_rmsexpand (char *, char *, char *, unsigned); +char * Perl_rmsexpand_ts (char *, char *, char *, unsigned); +int Perl_trim_unixpath (char *, char*, int); +DIR * Perl_opendir (char *); +int Perl_rmscopy (char *, char *, int); #else +int Perl_vmstrnenv (pTHX_ const char *, char *, unsigned long int, struct dsc$descriptor_s **, unsigned long int); char * Perl_my_getenv (pTHX_ const char *, bool); +int Perl_my_trnlnm (pTHX_ const char *, char *, unsigned long int); +char * Perl_tounixspec (pTHX_ char *, char *); +char * Perl_tounixspec_ts (pTHX_ char *, char *); +char * Perl_tovmsspec (pTHX_ char *, char *); +char * Perl_tovmsspec_ts (pTHX_ char *, char *); +char * Perl_tounixpath (pTHX_ char *, char *); +char * Perl_tounixpath_ts (pTHX_ char *, char *); +char * Perl_tovmspath (pTHX_ char *, char *); +char * Perl_tovmspath_ts (pTHX_ char *, char *); +int Perl_do_rmdir (pTHX_ char *); +char * Perl_fileify_dirspec (pTHX_ char *, char *); +char * Perl_fileify_dirspec_ts (pTHX_ char *, char *); +char * Perl_pathify_dirspec (pTHX_ char *, char *); +char * Perl_pathify_dirspec_ts (pTHX_ char *, char *); +char * Perl_rmsexpand (pTHX_ char *, char *, char *, unsigned); +char * Perl_rmsexpand_ts (pTHX_ char *, char *, char *, unsigned); +int Perl_trim_unixpath (pTHX_ char *, char*, int); +DIR * Perl_opendir (pTHX_ char *); +int Perl_rmscopy (pTHX_ char *, char *, int); #endif char * my_getenv_len (const char *, unsigned long *, bool); int vmssetenv (char *, char *, struct dsc$descriptor_s **); char * my_crypt (const char *, const char *); Pid_t my_waitpid (Pid_t, int *, int); char * my_gconvert (double, int, int, char *); -int do_rmdir (char *); int kill_file (char *); int my_mkdir (char *, Mode_t); int my_chdir (char *); int my_utime (char *, struct utimbuf *); -char * rmsexpand (char *, char *, char *, unsigned); -char * rmsexpand_ts (char *, char *, char *, unsigned); -char * fileify_dirspec (char *, char *); -char * fileify_dirspec_ts (char *, char *); -char * pathify_dirspec (char *, char *); -char * pathify_dirspec_ts (char *, char *); -char * tounixspec (char *, char *); -char * tounixspec_ts (char *, char *); -char * tovmsspec (char *, char *); -char * tovmsspec_ts (char *, char *); -char * tounixpath (char *, char *); -char * tounixpath_ts (char *, char *); -char * tovmspath (char *, char *); -char * tovmspath_ts (char *, char *); void vms_image_init (int *, char ***); -DIR * opendir (char *); struct dirent * readdir (DIR *); long telldir (DIR *); void seekdir (DIR *, long); @@ -679,7 +719,6 @@ int my_sigprocmask (int, sigset_t *, sigset_t *); I32 cando_by_name (I32, Uid_t, char *); int flex_fstat (int, Stat_t *); int flex_stat (const char *, Stat_t *); -int trim_unixpath (char *, char*, int); int my_vfork (); bool vms_do_aexec (SV *, SV **, SV **); bool vms_do_exec (char *); @@ -692,7 +731,6 @@ struct passwd * my_getpwuid (Uid_t uid); struct passwd * my_getpwent (); void my_endpwent (); char * my_getlogin (); -int rmscopy (char *, char *, int); typedef char __VMS_SEPYTOTORP__; /* prototype section end marker; `typedef' passes through cpp */ -- 2.7.4