make-alpha
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: addsuffix manual example wrong, se_implicit test 4 fails.


From: John E. Malmberg
Subject: Re: addsuffix manual example wrong, se_implicit test 4 fails.
Date: Tue, 23 Sep 2014 08:00:58 -0500
User-agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.1.1

On 9/19/2014 1:01 AM, John E. Malmberg wrote:

I was looking in the wrong place.  The pattern_search routine in
implicit.c appears to be the culprit.

It needs to be able to handle paths in both VMS syntax or in Unix syntax
under VMS.

It also does not appear to be properly handling VMS syntax either.

Fixing it to handle the Unix syntax should be easy.

The existing VMS specific code in dir.c, implicit.c, read.c, and rule.c is broken, along with the previously reported broken vmsify.c.

In dir.c, implicit.c, read.c, and rule.c, the VMS directory syntax parsing has an off by 1 error in it, and the Unix directory syntax parsing is disabled.

In addition the code does not know how to merge two VMS directory paths.

vmsify.c is turning a filename with out a path into a directory. I keep finding more common trivial cases that this code gets wrong. The only question is if any existing makefile.vms files expect the broken behavior.

I have not worked out a complete fix, but this is where I am going.

Unix directory syntax parsing should not be disabled on VMS.

The VMS specific code needs to know if a filename is in Unix syntax or in VMS syntax to determine how to parse it.

For expediency, I am going to do a quick check instead of a robust check. A completely robust check is not possible as Unix allows any string of characters to be a file specification, including one that looks like a VMS specification.

A file specification will be presumed to be in VMS format if any of the following characters are present: ":[]<>;^".

I am assuming that these characters are rarely found in a Unix file specification.

A file specification will be presumed to be Unix format if the "/" character is present.

For this pass, I am just concentrating on getting the Unix syntax functional on VMS.

In most cases the VMS specific code is instead of a test to see if "/" is present in the filename.

This will be changed to have the test for "/" and the VMS specific code will then test to see if that fails, and then test to see if any of the VMS specific characters are present before using VMS filename parsing. In some cases a flag will be set to indicate that the resulting filename needs to also be in VMS syntax.

Regards,
-John





reply via email to

[Prev in Thread] Current Thread [Next in Thread]