mirror of
https://github.com/mirror/make.git
synced 2024-12-27 13:20:34 +08:00
Apply spelling corrections from Fossies spellcheck
See https://fossies.org/features.html#codespell Spelling issues in Git commit messages or lib/* source are not applied. * README.OS2.template: Apply spelling corrections. * README.VMS: Ditto. * src/commands.c: Ditto. * src/config.ami.template: Ditto. * src/configh.dos.template: Ditto. * src/job.c: Ditto. * src/job.h: Ditto. * src/read.c: Ditto. * src/variable.c: Ditto. * src/vms_exit.c: Ditto. * src/vms_export_symbol.c: Ditto. * src/vms_progname.c: Ditto. * src/vmsfunctions.c: Ditto. * src/vmsjobs.c: Ditto. * src/w32/pathstuff.c: Ditto. * tests/scripts/variables/automatic: Ditto. * tests/test_driver.pl: Ditto.
This commit is contained in:
parent
68fbad6667
commit
4533348826
@ -138,7 +138,7 @@ testsuite itself. -DNO_CMD_DEFAULT causes make to use /bin/sh as default
|
|||||||
shell in every case. Normally you could simply set MAKESHELL="/bin/sh"
|
shell in every case. Normally you could simply set MAKESHELL="/bin/sh"
|
||||||
to do this but the testsuite ignores the environment. -DNO_CHDIR2 causes
|
to do this but the testsuite ignores the environment. -DNO_CHDIR2 causes
|
||||||
make not to use drive letters for directory names (i.e. _chdir2() and
|
make not to use drive letters for directory names (i.e. _chdir2() and
|
||||||
_getcwd2() are NOT used). The testsuite interpretes the whole output of
|
_getcwd2() are NOT used). The testsuite interprets the whole output of
|
||||||
make, especially statements like make[1]: Entering directory
|
make, especially statements like make[1]: Entering directory
|
||||||
'C:/somewhere/make-3.79.1/tests' where the testsuite does not expect the
|
'C:/somewhere/make-3.79.1/tests' where the testsuite does not expect the
|
||||||
drive letter. This would be interpreted as an error even if there is
|
drive letter. This would be interpreted as an error even if there is
|
||||||
|
70
README.VMS
70
README.VMS
@ -11,7 +11,7 @@ Overview: -*-text-mode-*-
|
|||||||
There is an older implementation of GNU Make that was ported to GNV.
|
There is an older implementation of GNU Make that was ported to GNV.
|
||||||
Work is now in progress to merge that port to get a single version
|
Work is now in progress to merge that port to get a single version
|
||||||
of GNU Make available. When that merge is done, GNU Make will auto
|
of GNU Make available. When that merge is done, GNU Make will auto
|
||||||
detect that it is running under a Posix shell and then operate as close to
|
detect that it is running under a POSIX shell and then operate as close to
|
||||||
GNU Make on Unix as possible.
|
GNU Make on Unix as possible.
|
||||||
|
|
||||||
The descriptions below are for running GNU make from DCL or equivalent.
|
The descriptions below are for running GNU make from DCL or equivalent.
|
||||||
@ -62,15 +62,15 @@ Recipe differences:
|
|||||||
enabled if the GNU Make is set to the older behavior.
|
enabled if the GNU Make is set to the older behavior.
|
||||||
|
|
||||||
The name GNV$MAKE_SHELL_SIM when enabled will cause GNU Make to try to
|
The name GNV$MAKE_SHELL_SIM when enabled will cause GNU Make to try to
|
||||||
simulate a Posix shell more closely. The following behaviors occur:
|
simulate a POSIX shell more closely. The following behaviors occur:
|
||||||
|
|
||||||
* Single quotes are converted to double quotes and any double
|
* Single quotes are converted to double quotes and any double
|
||||||
quotes inside of them are doubled. No environment variable expansion
|
quotes inside of them are doubled. No environment variable expansion
|
||||||
is simulated.
|
is simulated.
|
||||||
* A exit command status will be converted to a Posix Exit
|
* A exit command status will be converted to a POSIX Exit
|
||||||
where 0 is success and non-zero is failure.
|
where 0 is success and non-zero is failure.
|
||||||
* The $ character will cause environment variable expansion.
|
* The $ character will cause environment variable expansion.
|
||||||
* Environent variables can be set on the command line before a command.
|
* Environment variables can be set on the command line before a command.
|
||||||
|
|
||||||
VMS generally uses logical name search lists instead of path variables
|
VMS generally uses logical name search lists instead of path variables
|
||||||
where the resolution is handled by VMS independent of the program. Which
|
where the resolution is handled by VMS independent of the program. Which
|
||||||
@ -88,7 +88,7 @@ Recipe differences:
|
|||||||
|
|
||||||
If you are creating a OpenVMS specific makefile from scratch, you should also
|
If you are creating a OpenVMS specific makefile from scratch, you should also
|
||||||
look at MMK (Madgoat Make) available at https://github.com/endlesssoftware/mmk
|
look at MMK (Madgoat Make) available at https://github.com/endlesssoftware/mmk
|
||||||
MMK uses full OpenVMS syntax and a persistent subprocess is used for the
|
MMK uses full OpenVMS syntax and a persistent sub-process is used for the
|
||||||
recipe lines, allowing multiple line rules.
|
recipe lines, allowing multiple line rules.
|
||||||
|
|
||||||
The default makefile search order is "makefile.vms", "gnumakefile",
|
The default makefile search order is "makefile.vms", "gnumakefile",
|
||||||
@ -207,15 +207,15 @@ foo: $(addsuffix .3,$(subs $(comma),$(space),$^)
|
|||||||
override OpenVMS symbols/logicals.
|
override OpenVMS symbols/logicals.
|
||||||
|
|
||||||
OpenVMS logical and symbols names show up as "environment" using the
|
OpenVMS logical and symbols names show up as "environment" using the
|
||||||
origin function. when the "-e" option is specified, the origion function
|
origin function. when the "-e" option is specified, the origin function
|
||||||
shows them as "environment override". On Posix the test scripts indicate
|
shows them as "environment override". On POSIX the test scripts indicate
|
||||||
that they should show up just as "environment".
|
that they should show up just as "environment".
|
||||||
|
|
||||||
When GNU make reads in a symbol or logical name into the environment, it
|
When GNU make reads in a symbol or logical name into the environment, it
|
||||||
converts any dollar signs found to double dollar signs for convenience in
|
converts any dollar signs found to double dollar signs for convenience in
|
||||||
using DCL symbols and logical names in recipes. When GNU make exports a
|
using DCL symbols and logical names in recipes. When GNU make exports a
|
||||||
DCL symbol for a child process, if the first dollar sign found is followed
|
DCL symbol for a child process, if the first dollar sign found is followed
|
||||||
by second dollar sign, then all double dollar signs will be convirted to
|
by second dollar sign, then all double dollar signs will be converted to
|
||||||
single dollar signs.
|
single dollar signs.
|
||||||
|
|
||||||
The variable $(ARCH) is predefined as IA64, ALPHA or VAX respectively.
|
The variable $(ARCH) is predefined as IA64, ALPHA or VAX respectively.
|
||||||
@ -233,17 +233,17 @@ endif
|
|||||||
|
|
||||||
Empty commands are handled correctly and don't end in a new DCL process.
|
Empty commands are handled correctly and don't end in a new DCL process.
|
||||||
|
|
||||||
The exit command needs to have OpenVMS exit codes. To pass a Posix code
|
The exit command needs to have OpenVMS exit codes. To pass a POSIX code
|
||||||
back to the make script, you need to encode it by multiplying it by 8
|
back to the make script, you need to encode it by multiplying it by 8
|
||||||
and then adding %x1035a002 for a failure code and %x1035a001 for a
|
and then adding %x1035a002 for a failure code and %x1035a001 for a
|
||||||
success. Make will interpret any posix code other than 0 as a failure.
|
success. Make will interpret any POSIX code other than 0 as a failure.
|
||||||
TODO: Add an option have simulate Posix exit commands in recipes.
|
TODO: Add an option have simulate POSIX exit commands in recipes.
|
||||||
|
|
||||||
Lexical functions can be used in pipes to simulate shell file test rules.
|
Lexical functions can be used in pipes to simulate shell file test rules.
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|
||||||
Posix:
|
POSIX:
|
||||||
b : c ; [ -f $@ ] || echo >> $@
|
b : c ; [ -f $@ ] || echo >> $@
|
||||||
|
|
||||||
OpenVMS:
|
OpenVMS:
|
||||||
@ -261,16 +261,16 @@ x = %x1035a00a
|
|||||||
|
|
||||||
Runtime issues:
|
Runtime issues:
|
||||||
|
|
||||||
The OpenVMS C Runtime has a convention for encoding a Posix exit status into
|
The OpenVMS C Runtime has a convention for encoding a POSIX exit status into
|
||||||
to OpenVMS exit codes. These status codes will have the hex value of
|
to OpenVMS exit codes. These status codes will have the hex value of
|
||||||
0x35a000. OpenVMS exit code may also have a hex value of %x10000000 set on
|
0x35a000. OpenVMS exit code may also have a hex value of %x10000000 set on
|
||||||
them. This is a flag to tell DCL not to write out the exit code.
|
them. This is a flag to tell DCL not to write out the exit code.
|
||||||
|
|
||||||
To convert an OpenVMS encoded Posix exit status code to the original code
|
To convert an OpenVMS encoded POSIX exit status code to the original code
|
||||||
You subtract %x35a000 and any flags from the OpenVMS code and divide it by 8.
|
You subtract %x35a000 and any flags from the OpenVMS code and divide it by 8.
|
||||||
|
|
||||||
WARNING: Backward-incompatibility!
|
WARNING: Backward-incompatibility!
|
||||||
The make program exit now returns the same encoded Posix exit code as on
|
The make program exit now returns the same encoded POSIX exit code as on
|
||||||
Unix. Previous versions returned the OpenVMS exit status code if that is what
|
Unix. Previous versions returned the OpenVMS exit status code if that is what
|
||||||
caused the recipe to fail.
|
caused the recipe to fail.
|
||||||
TODO: Provide a way for scripts calling make to obtain that OpenVMS status
|
TODO: Provide a way for scripts calling make to obtain that OpenVMS status
|
||||||
@ -280,9 +280,9 @@ Runtime issues:
|
|||||||
will have the error "-E-" severity set on exit.
|
will have the error "-E-" severity set on exit.
|
||||||
|
|
||||||
MAKE_TROUBLE is returned only if the option "-q" or "--question" is used and
|
MAKE_TROUBLE is returned only if the option "-q" or "--question" is used and
|
||||||
has a Posix value of 1 and an OpenVMS status of %x1035a00a.
|
has a POSIX value of 1 and an OpenVMS status of %x1035a00a.
|
||||||
|
|
||||||
MAKE_FAILURE has a Posix value of 2 and an OpenVMS status of %x1035a012.
|
MAKE_FAILURE has a POSIX value of 2 and an OpenVMS status of %x1035a012.
|
||||||
|
|
||||||
Output from GNU make may have single quotes around some values where on
|
Output from GNU make may have single quotes around some values where on
|
||||||
other platforms it does not. Also output that would be in double quotes
|
other platforms it does not. Also output that would be in double quotes
|
||||||
@ -294,10 +294,10 @@ Runtime issues:
|
|||||||
There may be a "Waiting for unfinished jobs..." show up in the output.
|
There may be a "Waiting for unfinished jobs..." show up in the output.
|
||||||
|
|
||||||
Error messages generated by Make or Unix utilities may slightly vary from
|
Error messages generated by Make or Unix utilities may slightly vary from
|
||||||
Posix platforms. Typically the case may be different.
|
POSIX platforms. Typically the case may be different.
|
||||||
|
|
||||||
When make deletes files, on posix platforms it writes out 'rm' and the list
|
When make deletes files, on POSIX platforms it writes out 'rm' and the list
|
||||||
of files. On VMS, only the files are writen out, one per line.
|
of files. On VMS, only the files are written out, one per line.
|
||||||
TODO: VMS
|
TODO: VMS
|
||||||
|
|
||||||
There may be extra leading white space or additional or missing whitespace
|
There may be extra leading white space or additional or missing whitespace
|
||||||
@ -323,15 +323,15 @@ Runtime issues:
|
|||||||
to override this in your makefile, or whatever).
|
to override this in your makefile, or whatever).
|
||||||
|
|
||||||
|
|
||||||
Unix compatibilty features:
|
Unix compatibility features:
|
||||||
---------------------------
|
----------------------------
|
||||||
|
|
||||||
If the command 'echo' is seen, any single quotes on the line will be
|
If the command 'echo' is seen, any single quotes on the line will be
|
||||||
converted to double quotes.
|
converted to double quotes.
|
||||||
|
|
||||||
The variable $(CD) is implemented as a built in Change Directory
|
The variable $(CD) is implemented as a built in Change Directory
|
||||||
command. This invokes the 'builtin_cd' Executing a 'set default'
|
command. This invokes the 'builtin_cd' Executing a 'set default'
|
||||||
recipe doesn't do the trick, since it only affects the subprocess
|
recipe doesn't do the trick, since it only affects the sub-process
|
||||||
spawned for that command.
|
spawned for that command.
|
||||||
|
|
||||||
The 'builtin_cd' is generally expected to be on its own line.
|
The 'builtin_cd' is generally expected to be on its own line.
|
||||||
@ -347,7 +347,7 @@ Unix compatibilty features:
|
|||||||
Unix shell style I/O redirection is supported. You can now write lines like:
|
Unix shell style I/O redirection is supported. You can now write lines like:
|
||||||
"<tab>mcr sys$disk:[]program.exe < input.txt > output.txt &> error.txt"
|
"<tab>mcr sys$disk:[]program.exe < input.txt > output.txt &> error.txt"
|
||||||
|
|
||||||
Posix shells have ":" as a null command. These are now handled.
|
POSIX shells have ":" as a null command. These are now handled.
|
||||||
https://savannah.gnu.org/bugs/index.php?41761
|
https://savannah.gnu.org/bugs/index.php?41761
|
||||||
|
|
||||||
A note on appending the redirected output. A simple mechanism is
|
A note on appending the redirected output. A simple mechanism is
|
||||||
@ -367,10 +367,10 @@ Unix compatibilty features:
|
|||||||
The older implementation wrote the output to a temporary file in
|
The older implementation wrote the output to a temporary file in
|
||||||
in sys$scratch: and then attempted to append the file to the existing file.
|
in sys$scratch: and then attempted to append the file to the existing file.
|
||||||
The temporary file names looked like "CMDxxxxx.". Any time the created
|
The temporary file names looked like "CMDxxxxx.". Any time the created
|
||||||
command procedure can not complete, this happens. Pressing Ctrl+Y to
|
command procedure can not complete, this happens. Pressing CTRL+Y to
|
||||||
abort make is one case.
|
abort make is one case.
|
||||||
|
|
||||||
In case of Ctrl+Y the associated command procedure is left in SYS$SCRATCH:.
|
In case of CTRL+Y the associated command procedure is left in SYS$SCRATCH:.
|
||||||
The command procedures will be named gnv$make_cmd*.com.
|
The command procedures will be named gnv$make_cmd*.com.
|
||||||
|
|
||||||
The CtrlY handler now uses $delprc to delete all children. This way also
|
The CtrlY handler now uses $delprc to delete all children. This way also
|
||||||
@ -378,12 +378,12 @@ Unix compatibilty features:
|
|||||||
then sends SIGQUIT to itself, which is handled in common code.
|
then sends SIGQUIT to itself, which is handled in common code.
|
||||||
|
|
||||||
Temporary command files are now deleted in the OpenVMS child termination
|
Temporary command files are now deleted in the OpenVMS child termination
|
||||||
handler. That deletes them even if a Ctrl+C was pressed.
|
handler. That deletes them even if a CTRL+C was pressed.
|
||||||
TODO: Does the previous section about >> leaving files still apply?
|
TODO: Does the previous section about >> leaving files still apply?
|
||||||
|
|
||||||
The behavior of pressing Ctrl+C is not changed. It still has only an effect,
|
The behavior of pressing CTRL+C is not changed. It still has only an effect,
|
||||||
after the current action is terminated. If that doesn't happen or takes too
|
after the current action is terminated. If that doesn't happen or takes too
|
||||||
long, Ctrl+Y should be used instead.
|
long, CTRL+Y should be used instead.
|
||||||
|
|
||||||
|
|
||||||
Build Options:
|
Build Options:
|
||||||
@ -422,7 +422,7 @@ Self test failures and todos:
|
|||||||
child.
|
child.
|
||||||
|
|
||||||
GNU make was not currently translating the OpenVMS encoded POSIX values
|
GNU make was not currently translating the OpenVMS encoded POSIX values
|
||||||
returned to it back to the Posix values. I have temporarily modified the
|
returned to it back to the POSIX values. I have temporarily modified the
|
||||||
Perl test script to compensate for it. This should be being handled
|
Perl test script to compensate for it. This should be being handled
|
||||||
internally to Make.
|
internally to Make.
|
||||||
TODO: Verify and update the Perl test script.
|
TODO: Verify and update the Perl test script.
|
||||||
@ -435,7 +435,7 @@ Self test failures and todos:
|
|||||||
Symlink support is not present. Symlinks are supported by OpenVMS 8.3 and
|
Symlink support is not present. Symlinks are supported by OpenVMS 8.3 and
|
||||||
later.
|
later.
|
||||||
|
|
||||||
Error messages should be supressed with the "-" at the beginning of a line.
|
Error messages should be suppressed with the "-" at the beginning of a line.
|
||||||
On openVMS they were showing up. TODO: Is this still an issue?
|
On openVMS they were showing up. TODO: Is this still an issue?
|
||||||
|
|
||||||
The internal vmsify and unixify OpenVMS to/from UNIX are not handling logical
|
The internal vmsify and unixify OpenVMS to/from UNIX are not handling logical
|
||||||
@ -443,7 +443,7 @@ Self test failures and todos:
|
|||||||
|
|
||||||
|
|
||||||
Build instructions:
|
Build instructions:
|
||||||
------------------
|
-------------------
|
||||||
|
|
||||||
Don't use the HP C V7.2-001 compiler, which has an incompatible change
|
Don't use the HP C V7.2-001 compiler, which has an incompatible change
|
||||||
how __STDC__ is defined. This results at least in compile time warnings.
|
how __STDC__ is defined. This results at least in compile time warnings.
|
||||||
@ -478,7 +478,7 @@ Running the tests:
|
|||||||
https://sourceforge.net/projects/gnv/files/
|
https://sourceforge.net/projects/gnv/files/
|
||||||
|
|
||||||
As the test scripts need to create some foreign commands that persist
|
As the test scripts need to create some foreign commands that persist
|
||||||
after the test is run, it is recommend that either you use a subprocess or
|
after the test is run, it is recommend that either you use a sub-process or
|
||||||
a dedicated login to run the tests.
|
a dedicated login to run the tests.
|
||||||
|
|
||||||
To get detailed information for running the tests:
|
To get detailed information for running the tests:
|
||||||
@ -499,12 +499,12 @@ Running the tests:
|
|||||||
$ perl run_make_tests.pl
|
$ perl run_make_tests.pl
|
||||||
|
|
||||||
|
|
||||||
Acknowlegements:
|
Acknowledgments:
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
See NEWS. for details of past changes.
|
See NEWS. for details of past changes.
|
||||||
|
|
||||||
These are the currently known contributers to this port.
|
These are the currently known contributors to this port.
|
||||||
|
|
||||||
Hartmut Becker
|
Hartmut Becker
|
||||||
John Malmberg
|
John Malmberg
|
||||||
|
@ -508,7 +508,7 @@ fatal_error_signal (int sig)
|
|||||||
#ifdef WINDOWS32
|
#ifdef WINDOWS32
|
||||||
extern HANDLE main_thread;
|
extern HANDLE main_thread;
|
||||||
|
|
||||||
/* Windows creates a sperate thread for handling Ctrl+C, so we need
|
/* Windows creates a separate thread for handling Ctrl+C, so we need
|
||||||
to suspend the main thread, or else we will have race conditions
|
to suspend the main thread, or else we will have race conditions
|
||||||
when both threads call reap_children. */
|
when both threads call reap_children. */
|
||||||
if (main_thread)
|
if (main_thread)
|
||||||
|
@ -324,10 +324,10 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
|
|||||||
/* Define if you have the sun library (-lsun). */
|
/* Define if you have the sun library (-lsun). */
|
||||||
/* #undef HAVE_LIBSUN */
|
/* #undef HAVE_LIBSUN */
|
||||||
|
|
||||||
/* Output sync sypport */
|
/* Output sync support */
|
||||||
#define NO_OUTPUT_SYNC
|
#define NO_OUTPUT_SYNC
|
||||||
|
|
||||||
/* Define for Case Insensitve behavior */
|
/* Define for Case Insensitive behavior */
|
||||||
#define HAVE_CASE_INSENSITIVE_FS
|
#define HAVE_CASE_INSENSITIVE_FS
|
||||||
|
|
||||||
/* Build host information. */
|
/* Build host information. */
|
||||||
|
@ -100,7 +100,7 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
|
|||||||
/* Define to the version of this package. */
|
/* Define to the version of this package. */
|
||||||
#define PACKAGE_VERSION "%VERSION%"
|
#define PACKAGE_VERSION "%VERSION%"
|
||||||
|
|
||||||
/* Output sync sypport */
|
/* Output sync support */
|
||||||
#define NO_OUTPUT_SYNC
|
#define NO_OUTPUT_SYNC
|
||||||
|
|
||||||
/* Version number of package */
|
/* Version number of package */
|
||||||
|
@ -2754,7 +2754,7 @@ construct_command_argv_internal (char *line, char **restp, const char *shell,
|
|||||||
/* We used to have a double quote (") in sh_chars_dos[] below, but
|
/* We used to have a double quote (") in sh_chars_dos[] below, but
|
||||||
that caused any command line with quoted file names be run
|
that caused any command line with quoted file names be run
|
||||||
through a temporary batch file, which introduces command-line
|
through a temporary batch file, which introduces command-line
|
||||||
limit of 4K charcaters imposed by cmd.exe. Since CreateProcess
|
limit of 4K characters imposed by cmd.exe. Since CreateProcess
|
||||||
can handle quoted file names just fine, removing the quote lifts
|
can handle quoted file names just fine, removing the quote lifts
|
||||||
the limit from a very frequent use case, because using quoted
|
the limit from a very frequent use case, because using quoted
|
||||||
file names is commonplace on MS-Windows. */
|
file names is commonplace on MS-Windows. */
|
||||||
|
@ -29,7 +29,7 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define CHILDBASE \
|
#define CHILDBASE \
|
||||||
char *cmd_name; /* Alloced copy of command run. */ \
|
char *cmd_name; /* Allocated copy of command run. */ \
|
||||||
char **environment; /* Environment for commands. */ \
|
char **environment; /* Environment for commands. */ \
|
||||||
VMSCHILD \
|
VMSCHILD \
|
||||||
struct output output /* Output for this child. */
|
struct output output /* Output for this child. */
|
||||||
|
@ -3215,10 +3215,10 @@ parse_file_seq (char **stringp, size_t size, int stopmap,
|
|||||||
/* Strip leading "this directory" references. */
|
/* Strip leading "this directory" references. */
|
||||||
if (NONE_SET (flags, PARSEFS_NOSTRIP))
|
if (NONE_SET (flags, PARSEFS_NOSTRIP))
|
||||||
#ifdef VMS
|
#ifdef VMS
|
||||||
/* Skip leading '[]'s. should only be one set or bug somwhere else */
|
/* Skip leading '[]'s. should only be one set or bug somewhere else */
|
||||||
if (p - s > 2 && s[0] == '[' && s[1] == ']')
|
if (p - s > 2 && s[0] == '[' && s[1] == ']')
|
||||||
s += 2;
|
s += 2;
|
||||||
/* Skip leading '<>'s. should only be one set or bug somwhere else */
|
/* Skip leading '<>'s. should only be one set or bug somewhere else */
|
||||||
if (p - s > 2 && s[0] == '<' && s[1] == '>')
|
if (p - s > 2 && s[0] == '<' && s[1] == '>')
|
||||||
s += 2;
|
s += 2;
|
||||||
#endif
|
#endif
|
||||||
|
@ -212,9 +212,9 @@ define_variable_in_set (const char *name, size_t length,
|
|||||||
|
|
||||||
#ifdef VMS
|
#ifdef VMS
|
||||||
/* VMS does not populate envp[] with DCL symbols and logical names which
|
/* VMS does not populate envp[] with DCL symbols and logical names which
|
||||||
historically are mapped to environent variables.
|
historically are mapped to environment variables.
|
||||||
If the variable is not yet defined, then we need to check if getenv()
|
If the variable is not yet defined, then we need to check if getenv()
|
||||||
can find it. Do not do this for origin == o_env to avoid infinte
|
can find it. Do not do this for origin == o_env to avoid infinite
|
||||||
recursion */
|
recursion */
|
||||||
if (HASH_VACANT (v) && (origin != o_env))
|
if (HASH_VACANT (v) && (origin != o_env))
|
||||||
{
|
{
|
||||||
@ -475,8 +475,9 @@ lookup_variable (const char *name, size_t length)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef VMS
|
#ifdef VMS
|
||||||
/* VMS does not populate envp[] with DCL symbols and logical names which
|
/* VMS doesn't populate envp[] with DCL symbols and logical names, which
|
||||||
historically are mapped to enviroment varables and returned by getenv() */
|
historically are mapped to environment variables and returned by
|
||||||
|
getenv(). */
|
||||||
{
|
{
|
||||||
char *vname = alloca (length + 1);
|
char *vname = alloca (length + 1);
|
||||||
char *value;
|
char *value;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/* vms_exit.c
|
/* vms_exit.c
|
||||||
*
|
*
|
||||||
* Wrapper for the VMS exit() command to tranlate UNIX codes to be
|
* Wrapper for the VMS exit() command to translate UNIX codes to be
|
||||||
* encoded for POSIX, but also have VMS severity levels.
|
* encoded for POSIX, but also have VMS severity levels.
|
||||||
* The posix_exit() variant only sets a severity level for status code 1.
|
* The posix_exit() variant only sets a severity level for status code 1.
|
||||||
*
|
*
|
||||||
|
@ -77,7 +77,7 @@ struct dcl_symbol
|
|||||||
struct dsc$descriptor_s value_desc;
|
struct dsc$descriptor_s value_desc;
|
||||||
char name[MAX_DCL_SYMBOL_LEN + 1]; /* + 1 byte for null terminator */
|
char name[MAX_DCL_SYMBOL_LEN + 1]; /* + 1 byte for null terminator */
|
||||||
char value[MAX_DCL_SYMBOL_VALUE +1]; /* + 1 byte for null terminator */
|
char value[MAX_DCL_SYMBOL_VALUE +1]; /* + 1 byte for null terminator */
|
||||||
char pad[3]; /* Pad structure to longword allignment */
|
char pad[3]; /* Pad structure to longword alignment */
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct dcl_symbol * vms_dcl_symbol_head = NULL;
|
static struct dcl_symbol * vms_dcl_symbol_head = NULL;
|
||||||
@ -108,7 +108,7 @@ clear_exported_symbols (void)
|
|||||||
|
|
||||||
symbol = vms_dcl_symbol_head;
|
symbol = vms_dcl_symbol_head;
|
||||||
|
|
||||||
/* Walk the list of symbols. This is done durring exit,
|
/* Walk the list of symbols. This is done during exit,
|
||||||
* so no need to free memory.
|
* so no need to free memory.
|
||||||
*/
|
*/
|
||||||
while (symbol != NULL)
|
while (symbol != NULL)
|
||||||
|
@ -417,7 +417,7 @@ set_program_name (const char *argv0)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Find the .exe on the name (case insenstive) and toss it */
|
/* Find the .exe on the name (case insensitive) and toss it */
|
||||||
dotexe = strrchr (vms_new_nam, '.');
|
dotexe = strrchr (vms_new_nam, '.');
|
||||||
if (dotexe != NULL) {
|
if (dotexe != NULL) {
|
||||||
if ((dotexe[1] == 'e' || dotexe[1] == 'E') &&
|
if ((dotexe[1] == 'e' || dotexe[1] == 'E') &&
|
||||||
|
@ -149,7 +149,7 @@ vms_command(const char* argv0)
|
|||||||
If something goes wrong in sys$parse (unlikely, this is a VMS/CRTL supplied
|
If something goes wrong in sys$parse (unlikely, this is a VMS/CRTL supplied
|
||||||
file specification) or if there is an empty name part (not easy to produce,
|
file specification) or if there is an empty name part (not easy to produce,
|
||||||
but it is possible) just return "make".
|
but it is possible) just return "make".
|
||||||
Somes notes ...
|
Some notes ...
|
||||||
NAM[L]$M_SYNCHK requests a syntax check, only.
|
NAM[L]$M_SYNCHK requests a syntax check, only.
|
||||||
NAM is for ODS2 names (shorter parts, output usually converted to UPPERCASE).
|
NAM is for ODS2 names (shorter parts, output usually converted to UPPERCASE).
|
||||||
NAML is for ODS2/ODS5 names (longer parts, output unchanged).
|
NAML is for ODS2/ODS5 names (longer parts, output unchanged).
|
||||||
|
@ -331,7 +331,7 @@ posix_parse_sq (struct token_info *token)
|
|||||||
static char *
|
static char *
|
||||||
posix_parse_dq (struct token_info *token)
|
posix_parse_dq (struct token_info *token)
|
||||||
{
|
{
|
||||||
/* Unix mode: Any imbedded \" becomes doubled.
|
/* Unix mode: Any embedded \" becomes doubled.
|
||||||
\t is tab, \\, \$ leading character stripped.
|
\t is tab, \\, \$ leading character stripped.
|
||||||
$ character replaced with \' unless escaped.
|
$ character replaced with \' unless escaped.
|
||||||
*/
|
*/
|
||||||
@ -463,7 +463,7 @@ vms_parse_quotes (struct token_info *token)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case '\'':
|
case '\'':
|
||||||
/* Symbol substitution ony in double quotes */
|
/* Symbol substitution only in double quotes */
|
||||||
if ((p[1] == '\'') && (parse_level[nest] == '"'))
|
if ((p[1] == '\'') && (parse_level[nest] == '"'))
|
||||||
{
|
{
|
||||||
nest++;
|
nest++;
|
||||||
|
@ -177,7 +177,7 @@ convert_path_to_nutc(char *path)
|
|||||||
*pathp = '\0';
|
*pathp = '\0';
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Loop through PATH and convert one elemnt of the path at at
|
* Loop through PATH and convert one element of the path at at
|
||||||
* a time. Single file pathnames will fail this and fall
|
* a time. Single file pathnames will fail this and fall
|
||||||
* to the logic below loop.
|
* to the logic below loop.
|
||||||
*/
|
*/
|
||||||
|
@ -107,7 +107,7 @@ bar: ;',
|
|||||||
|
|
||||||
unlink('foo');
|
unlink('foo');
|
||||||
|
|
||||||
# TEST #4: ensure prereq ordering is correct when the commmand target has none
|
# TEST #4: ensure prereq ordering is correct when the command target has none
|
||||||
# See Savannah bug #21198
|
# See Savannah bug #21198
|
||||||
|
|
||||||
run_make_test('
|
run_make_test('
|
||||||
|
@ -266,7 +266,7 @@ sub toplevel
|
|||||||
foreach my $dir (@dirs) {
|
foreach my $dir (@dirs) {
|
||||||
next if ($dir =~ /^(\..*|CVS|RCS)$/ || ! -d "$scriptpath/$dir");
|
next if ($dir =~ /^(\..*|CVS|RCS)$/ || ! -d "$scriptpath/$dir");
|
||||||
push (@rmdirs, $dir);
|
push (@rmdirs, $dir);
|
||||||
# VMS can have overlayed file systems, so directories may repeat.
|
# VMS can have overlaid file systems, so directories may repeat.
|
||||||
next if -d "$workpath/$dir";
|
next if -d "$workpath/$dir";
|
||||||
mkdir ("$workpath/$dir", 0777)
|
mkdir ("$workpath/$dir", 0777)
|
||||||
or &error ("Couldn't mkdir $workpath/$dir: $!\n");
|
or &error ("Couldn't mkdir $workpath/$dir: $!\n");
|
||||||
|
Loading…
Reference in New Issue
Block a user