90
91 /* Strip spaces from head of command string */
92 while (iswspace(*p)) {
93 p++, length--;
94 }
95 if (*p == (int) nul_char) {
96 return build_failed;
97 }
98 /* If we are faking it we just return */
99 if (do_not_exec_rule &&
100 working_on_targets &&
101 !call_make &&
102 !always_exec) {
103 return build_ok;
104 }
105 /* no_action_was_taken is used to print special message */
106 no_action_was_taken = false;
107
108 /* Copy string to make it OK to write it. */
109 q = ALLOC_WC(length + 1);
110 (void) wscpy(q, p);
111 /* Write the state file iff this command uses make. */
112 if (call_make && command_changed) {
113 write_state_file(0, false);
114 }
115 make_state->stat.time = file_no_time;
116 (void)exists(make_state);
117 before = make_state->stat.time;
118 /*
119 * Run command directly if it contains no shell meta chars,
120 * else run it using the shell.
121 */
122 if (await(ignore_error,
123 silent_error,
124 target,
125 wcb.get_string(),
126 command->meta ?
127 doshell(q, ignore_error,
128 stdout_file, stderr_file, 0) :
129 doexec(q, ignore_error,
130 stdout_file, stderr_file,
|
90
91 /* Strip spaces from head of command string */
92 while (iswspace(*p)) {
93 p++, length--;
94 }
95 if (*p == (int) nul_char) {
96 return build_failed;
97 }
98 /* If we are faking it we just return */
99 if (do_not_exec_rule &&
100 working_on_targets &&
101 !call_make &&
102 !always_exec) {
103 return build_ok;
104 }
105 /* no_action_was_taken is used to print special message */
106 no_action_was_taken = false;
107
108 /* Copy string to make it OK to write it. */
109 q = ALLOC_WC(length + 1);
110 (void) wcscpy(q, p);
111 /* Write the state file iff this command uses make. */
112 if (call_make && command_changed) {
113 write_state_file(0, false);
114 }
115 make_state->stat.time = file_no_time;
116 (void)exists(make_state);
117 before = make_state->stat.time;
118 /*
119 * Run command directly if it contains no shell meta chars,
120 * else run it using the shell.
121 */
122 if (await(ignore_error,
123 silent_error,
124 target,
125 wcb.get_string(),
126 command->meta ?
127 doshell(q, ignore_error,
128 stdout_file, stderr_file, 0) :
129 doexec(q, ignore_error,
130 stdout_file, stderr_file,
|