Subject: [Vim-vms] if executable("perl") ... while "perl" is set up as a symbol

From: Samuel Ferencik <[email-masked]>
Date: Tue, 28 Dec 2010 09:24:27 +0100

Hi,

the Perl ftplugin (ftplugin/perl.vim) performs the following check:
    if executable("perl")
        ...
        system('perl -e ...')
        ...
    endif

On my VMS system, perl is a (global) symbol set as follows:
    PERL == "$PERL_ROOT:[000000]PERL.EXE"

Obviously, this is not recongnised by executable(), although it is
executable.

So I have two questions:

1) is this kind of set-up ("perl" being a symbol) common on other (yoru) VMS
systems? Or is my set-up exotic?

2) have you got any idea how to check for an executable symbol on VMS? The
simple solution is to change this to:

        if executable("perl") || has("vms") && exists($perl)

    but that's based on the (perhaps reasonable?) assumption that perl 1) is
a symbol (rather than a logical name) and that 2) it can be invoked to
execute the perl interpreter.

    Any better idea?

Thanks and regards,
Sam

---

From: Arpadffy Zoltan <[email-masked]>
Date: Tue, 28 Dec 2010 09:30:51 +0100

Hello,

 1.  this is a normal setup for perl on a VMS system
 2.  indeed the executable() command might need to be improved on VMS system as every EXE and COM is executable on VMS if the user has sufficient rights.

...also please note that by default Vim is built with -perl on VMS :(

Regards,
Z

________________________________
From: Samuel Ferencik [mailto:[email-masked]]
Sent: den 28 december 2010 09:24
To: Vim text editor list on OpenVMS
Cc: [email-masked]; Dan Sharp
Subject: [Vim-vms] if executable("perl") ... while "perl" is set up as a symbol

Hi,

Obviously, this is not recongnised by executable(), although it is executable.

So I have two questions:

1) is this kind of set-up ("perl" being a symbol) common on other (yoru) VMS systems? Or is my set-up exotic?

2) have you got any idea how to check for an executable symbol on VMS? The simple solution is to change this to:

    but that's based on the (perhaps reasonable?) assumption that perl 1) is a symbol (rather than a logical name) and that 2) it can be invoked to execute the perl interpreter.

    Any better idea?

Thanks and regards,
Sam