aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/parse_execution.h
diff options
context:
space:
mode:
authorGravatar Andreas Nordal <andreas_nordal_4@hotmail.com>2016-02-08 19:49:26 +0100
committerGravatar ridiculousfish <corydoras@ridiculousfish.com>2016-02-15 13:13:28 -0800
commit62b76b26b4a8afc6987b65f0ad02a18dee093f2e (patch)
treee9b2d761f3cca768bdcfd9225dfca4643a4c6b0c /src/parse_execution.h
parentb72837a0f4678d34406bc98df00503d1ab8656cf (diff)
Reinstate failglob behaviour for most commands
Expand globs to zero arguments (nullglob) only for set, for and count. The warning about failing globs, and setting the accompanying $status, now happens regardless of mode, interactive or not. It is assumed that the above commands are the common cases where nullglob behaviour is desirable. More importantly, doing this with `set` is a real feature enabler, since the resulting empty array can be passed on to any command. The previous behaviour was actually all nullglob (since commit cab115c8b9933ae7db9412c66d452c0ccb2d7152), but this was undocumented; the failglob warning was still printed in interactive mode, and the documentation was bragging about failglob behaviour.
Diffstat (limited to 'src/parse_execution.h')
-rw-r--r--src/parse_execution.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/parse_execution.h b/src/parse_execution.h
index 7e1c1f46..a9ce32f5 100644
--- a/src/parse_execution.h
+++ b/src/parse_execution.h
@@ -102,7 +102,12 @@ private:
parse_execution_result_t run_function_statement(const parse_node_t &header, const parse_node_t &block_end_command);
parse_execution_result_t run_begin_statement(const parse_node_t &header, const parse_node_t &contents);
- parse_execution_result_t determine_arguments(const parse_node_t &parent, wcstring_list_t *out_arguments);
+ enum globspec_t
+ {
+ failglob,
+ nullglob
+ };
+ parse_execution_result_t determine_arguments(const parse_node_t &parent, wcstring_list_t *out_arguments, globspec_t glob_behavior);
/* Determines the IO chain. Returns true on success, false on error */
bool determine_io_chain(const parse_node_t &statement, io_chain_t *out_chain);