summaryrefslogtreecommitdiff
path: root/src/variable.h
diff options
context:
space:
mode:
authorPaul Smith <psmith@gnu.org>2023-01-28 11:03:54 -0500
committerPaul Smith <psmith@gnu.org>2023-01-28 13:04:47 -0500
commitfaedfdb0afd0f774bd58b5a30ca8117d70fa85c7 (patch)
tree654821120000d7cae7100584cfd70d85103e4a6c /src/variable.h
parent9709d273b299b3ced3ebd3cdce2cdca907846451 (diff)
downloadmake-git-faedfdb0afd0f774bd58b5a30ca8117d70fa85c7.tar.gz
[SV 63667] In .POSIX, use shell flags -c when ignoring errors
* src/variable.c (lookup_variable_for_file): New function to retrieve a variable assignment in a file context. * src/variable.h (lookup_variable_for_file): Declare it. * src/job.c (construct_command_argv): Look up .SHELLFLAGS. If .POSIX is set and we're using the default value, choose -c if we're ignoring errors else choose -ec. (construct_command_argv_internal): Ditto. * tests/scripts/targets/POSIX: Add tests.
Diffstat (limited to 'src/variable.h')
-rw-r--r--src/variable.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/variable.h b/src/variable.h
index c7bbe8f5..244da4f8 100644
--- a/src/variable.h
+++ b/src/variable.h
@@ -182,6 +182,8 @@ void define_new_function(const floc *flocp, const char *name,
unsigned int min, unsigned int max, unsigned int flags,
gmk_func_ptr func);
struct variable *lookup_variable (const char *name, size_t length);
+struct variable *lookup_variable_for_file (const char *name, size_t length,
+ struct file *file);
struct variable *lookup_variable_in_set (const char *name, size_t length,
const struct variable_set *set);