[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Case sensitive/insensitive changes needed
From: |
John E. Malmberg |
Subject: |
Case sensitive/insensitive changes needed |
Date: |
Sun, 25 Jan 2015 19:16:13 -0600 |
User-agent: |
Mozilla/5.0 (Windows NT 6.3; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.2.0 |
Currently on GNU Make is either built to be case sensitive or
insensitive as a build time parameter.
On Windows and Unix, including OS-X, I think that the case sensitivity
is a property of the file system, so it is possible to have both case
sensitive and case insensitive file systems mounted.
Traditionally VMS file systems are case insensitive. On the newer ODS-5
file system it is a per process setting to treat the file system as case
sensitive or just case preserving.
The properties of ODS-5 case handling is similar to what MSDOS/Windows
case handling should be, so it is surprising to me that some of the code
is VMS specific where it should be common to both.
This means that either some of the VMS specific code is not needed, or
there may be a bug that the other case insensitive platforms have not
detected yet.
On VMS, instead of having the case sensitivity as a build parameter, I
am going to change it to look up the process setting when make starts.
A global variable vms_case_sensitive will be added for VMS to hold that
setting.
* dir.c(vms_hash): will not lowercase the filename if
vms_case_sensitive.
* dir.c(find_directory): VMS specific block will have the same change.
* dir.c(dir_contents_file_exists_p): VMS Specific code will be added
to also check vms_case_sensitive. The VMS specific code in that
module will also be updated.
* dir.c(file_impossible): VMS specific code will be updated.
* dir.c(file_impossible_p): VMS Specific code will be added.
* file.c(lookup_file): VMS specific code will be updated.
* enter_file.c(enter_file): VMS specific code will be updated.
* vmsfunctions.c(readdir): Not used on any version of VMS that GNU Make
will currently build on, and is incorrectly uppercasing the result
where the real readdir() on VMS would have returned a lowercase
result. Probably time to just remove this and the related routines.
* vmsify.c(copyto): VMS specific code will be updated.
* hash.h: Will need to do something with these macros. Not sure what
yet.
* makeint.h: Have to do something with the patheq macro.
Regards,
-John
address@hidden
- Case sensitive/insensitive changes needed,
John E. Malmberg <=