Rev 4377 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 4377 | Rev 4692 | ||
---|---|---|---|
Line 110... | Line 110... | ||
110 | } |
110 | } |
111 | 111 | ||
112 | unsigned int try_exec(char *cmd, char **argv) |
112 | unsigned int try_exec(char *cmd, char **argv) |
113 | { |
113 | { |
114 | task_id_t tid; |
114 | task_id_t tid; |
- | 115 | task_exit_t texit; |
|
115 | char *tmp; |
116 | char *tmp; |
- | 117 | int retval; |
|
116 | 118 | ||
117 | tmp = str_dup(find_command(cmd)); |
119 | tmp = str_dup(find_command(cmd)); |
118 | free(found); |
120 | free(found); |
119 | 121 | ||
120 | tid = task_spawn((const char *)tmp, argv); |
122 | tid = task_spawn((const char *)tmp, argv); |
121 | free(tmp); |
123 | free(tmp); |
122 | 124 | ||
123 | if (tid == 0) { |
125 | if (tid == 0) { |
124 | cli_error(CL_EEXEC, "Cannot spawn `%s'.", cmd); |
126 | cli_error(CL_EEXEC, "Cannot spawn `%s'.", cmd); |
125 | return 1; |
127 | return 1; |
126 | } else { |
- | |
127 | return 0; |
- | |
128 | } |
128 | } |
- | 129 | ||
- | 130 | task_wait(tid, &texit, &retval); |
|
- | 131 | if (texit != TASK_EXIT_NORMAL) { |
|
- | 132 | printf("Command failed (unexpectedly terminated).\n"); |
|
- | 133 | } else if (retval != 0) { |
|
- | 134 | printf("Command failed (return value %d).\n", retval); |
|
- | 135 | } |
|
- | 136 | ||
- | 137 | return 0; |
|
129 | } |
138 | } |