Operating System - OpenVMS
1752577 Members
5377 Online
108788 Solutions
New Discussion юеВ

CREATE /SYMLINK v. SET PROCESS /PARSE_STYLE = EXTENDED

 
Steven Schweda
Honored Contributor

CREATE /SYMLINK v. SET PROCESS /PARSE_STYLE = EXTENDED

I didn't expect this behavior. Should I have?

ALP2 $ show proc /pars
[...]
Parse Style: Extended

Ok. Let's make some files and symbolic links.

ALP2 $ copy nl: plain.file
ALP2 $ create /symlink = plain.file symbolic.link
ALP2 $ create /symlink = "plain.file" symbolic.link_quoted

ALP2 $ dire /size

Directory DKA0:[test]

plain.file;1 0
SYMBOLIC.LINK;1 -> PLAIN.FILE
1
SYMBOLIC.LINK_QUOTED;1 -> plain.file
1
Total of 3 files, 2 blocks.

So, it appears to me that CREATE /SYMLINK
generally ignores the process parse style.
This is not what I'd expected. Any wisdom?

ALP2 $ tcpip show version

HP TCP/IP Services for OpenVMS Alpha Version V5.6
on a COMPAQ Professional Workstation XP1000 running OpenVMS V8.3

(Also, who else thinks that a plain DCL "SHOW
VERSION" command would be handy?)

Naturally, that's an ODS5 disk.
4 REPLIES 4
Hoff
Honored Contributor

Re: CREATE /SYMLINK v. SET PROCESS /PARSE_STYLE = EXTENDED

Concur. On both. Flag it to HP?
Jess Goodman
Esteemed Contributor

Re: CREATE /SYMLINK v. SET PROCESS /PARSE_STYLE = EXTENDED

I don't have access to a VMS 8.3 system but I'd be curious to see the verb definition in SYS$UPDATE:CREATE.CLD.

If it has this line:
qualifier symlink value

then to get /symlink=plain.file to work use instead:
qualifier symlink value(type=$file)

However after that /symlink="plain.file" will probably not work because the CLI calls won't strip the "s from the value so the outer code must do it.

I have one, but it's personal.
Steven Schweda
Honored Contributor

Re: CREATE /SYMLINK v. SET PROCESS /PARSE_STYLE = EXTENDED

VERB claims that it's:

define verb CREATE
image CREATE
parameter P1, label=OUTPUT, prompt="File"
value (required,list,impcat,type=$outfile)
[...]
qualifier SYMLINK, nonnegatable
value (required)
[...]

I can see why the link _target_ might need to
be quoted (as it may not be a VMS/RMS file
name), but not the file (symlink) itself.
Plain-old CREATE works as expected:

ALP2 $ pipe create fred.dat < nl:
ALP2 $ dg fred

Directory DKA0:[test]

fred.dat;1 0 2-MAR-2007 12:19:22.43 (RWED,RWED,RE,)

Total of 1 file, 0 blocks.
Steven Schweda
Honored Contributor

Re: CREATE /SYMLINK v. SET PROCESS /PARSE_STYLE = EXTENDED

An informal not-really-support request
resulted in an admission of guilt, and
offered some hope for a fix at some (future)
time for the problem with the link name.

Currently, the suggested work-around is to
define a DEC C feature logical name first
(and it'd probably be wise to clear it soon
afterward):

DEFINE DECC$EFS_CASE_PRESERVE ENABLE

because DCL is using the C RTL to do the job,
but it's not setting the features according
to the /PARSE_STYLE setting.

Case preservation of the link text may
continue to require quotation.