diff options
Diffstat (limited to 'miscutils')
| -rw-r--r-- | miscutils/make.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/miscutils/make.c b/miscutils/make.c index 39c0081ab..a165274aa 100644 --- a/miscutils/make.c +++ b/miscutils/make.c | |||
| @@ -2171,6 +2171,20 @@ pragmas_from_env(void) | |||
| 2171 | #endif | 2171 | #endif |
| 2172 | 2172 | ||
| 2173 | /* | 2173 | /* |
| 2174 | * Determine if a line is a target rule with an inline command. | ||
| 2175 | * Return a pointer to the semicolon separator if it is, else NULL. | ||
| 2176 | */ | ||
| 2177 | static char * | ||
| 2178 | inline_command(char *line) | ||
| 2179 | { | ||
| 2180 | char *p = find_char(line, ':'); | ||
| 2181 | |||
| 2182 | if (p) | ||
| 2183 | p = strchr(p, ';'); | ||
| 2184 | return p; | ||
| 2185 | } | ||
| 2186 | |||
| 2187 | /* | ||
| 2174 | * Parse input from the makefile and construct a tree structure of it. | 2188 | * Parse input from the makefile and construct a tree structure of it. |
| 2175 | */ | 2189 | */ |
| 2176 | static void | 2190 | static void |
| @@ -2389,9 +2403,9 @@ input(FILE *fd, int ilevel) | |||
| 2389 | cp = NULL; | 2403 | cp = NULL; |
| 2390 | s = strchr(q, ';'); | 2404 | s = strchr(q, ';'); |
| 2391 | if (s) { | 2405 | if (s) { |
| 2392 | // Retrieve command from expanded copy of line | 2406 | // Retrieve command from original or expanded copy of line |
| 2393 | char *copy3 = expand_macros(copy, FALSE); | 2407 | char *copy3 = expand_macros(copy, FALSE); |
| 2394 | if ((p = find_colon(copy3)) && (p = strchr(p, ';'))) | 2408 | if ((p = inline_command(copy)) || (p = inline_command(copy3))) |
| 2395 | newcmd(&cp, process_command(p + 1)); | 2409 | newcmd(&cp, process_command(p + 1)); |
| 2396 | free(copy3); | 2410 | free(copy3); |
| 2397 | *s = '\0'; | 2411 | *s = '\0'; |
