[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: behavior of '@' in complex defs
From: |
Paul D. Smith |
Subject: |
Re: behavior of '@' in complex defs |
Date: |
Wed, 6 Mar 2002 09:51:39 -0500 |
This is a known bug; please apply this patch.
--- make-3.79.1/job.c Fri Jun 23 11:54:56 2000
+++ make/job.c Wed May 2 01:17:08 2001
@@ -895,8 +895,14 @@
++p;
}
- /* Update the file's command flags with any new ones we found. */
- child->file->cmds->lines_flags[child->command_line - 1] |= flags;
+ /* Update the file's command flags with any new ones we found. We only
+ keep the COMMANDS_RECURSE setting. Even this isn't 100% correct; we are
+ now marking more commands recursive than should be in the case of
+ multiline define/endef scripts where only one line is marked "+". In
+ order to really fix this, we'll have to keep a lines_flags for every
+ actual line, after expansion. */
+ child->file->cmds->lines_flags[child->command_line - 1]
+ |= flags & COMMANDS_RECURSE;
/* Figure out an argument list from this command line. */
@@ -1580,6 +1586,8 @@
}
user_access ();
+ DB (DB_JOBS, ("Current system load = %f (max requested = %f)\n",
+ load, max_load_average));
return load >= max_load_average;
#endif
}
@@ -2421,7 +2429,7 @@
char* sh_chars;
char** sh_cmds;
#else /* WINDOWS32 */
- static char sh_chars[] = "#;\"*?[]&|<>(){}$`^";
+ static char sh_chars[] = "#;\"*?[]&|<>(){}$`^~";
static char *sh_cmds[] = { "cd", "eval", "exec", "exit", "login",
"logout", "set", "umask", "wait", "while", "for",
"case", "if", ":", ".", "break", "continue",
--
-------------------------------------------------------------------------------
Paul D. Smith <address@hidden> Find some GNU make tips at:
http://www.gnu.org http://www.paulandlesley.org/gmake/
"Please remain calm...I may be mad, but I am a professional." --Mad Scientist