--- engine/src/builtins.c 2010-11-16 17:50:05.000000000 +0100
+++ engine/src/builtins.c 2010-11-16 17:52:18.000000000 +0100
@@ -202,7 +202,8 @@ void load_builtins()
{
char * args[] = { "targets", "*",
":", "log", "?",
- ":", "ignore-minus-n", "?", 0 };
+ ":", "ignore-minus-n", "?",
+ ":", "ignore-minus-q", "?", 0 };
bind_builtin( "UPDATE_NOW",
builtin_update_now, 0, args );
}
@@ -1319,6 +1320,7 @@ LIST * builtin_update_now( PARSE * parse
LIST * targets = lol_get( frame->args, 0 );
LIST * log = lol_get( frame->args, 1 );
LIST * force = lol_get (frame->args, 2);
+ LIST * continue_ = lol_get(frame->args, 3);
int status = 0;
int original_stdout;
int original_stderr;
@@ -1327,6 +1329,7 @@ LIST * builtin_update_now( PARSE * parse
const char** targets2;
int i;
int original_noexec;
+ int original_quitquick;
if (log)
@@ -1345,6 +1348,12 @@ LIST * builtin_update_now( PARSE * parse
globs.noexec = 0;
}
+ if (continue_)
+ {
+ original_quitquick = globs.quitquick;
+ globs.quitquick = 0;
+ }
+
targets_count = list_length( targets );
targets2 = (const char * *)BJAM_MALLOC( targets_count * sizeof( char * ) );
for (i = 0 ; targets; targets = list_next( targets ) )
@@ -1357,6 +1366,11 @@ LIST * builtin_update_now( PARSE * parse
globs.noexec = original_noexec;
}
+ if (continue_)
+ {
+ globs.quitquick = original_quitquick;
+ }
+
if (log)
{
/* Flush whatever stdio might have buffered, while descriptions
--- build/configure.jam 2010-11-16 17:52:43.000000000 +0100
+++ build/configure.jam 2010-11-16 17:53:21.000000000 +0100
@@ -141,7 +141,8 @@ rule builds-raw ( metatarget-reference :
else
{
local x = [ PAD " - $(what)" : $(.width) ] ;
- if [ UPDATE_NOW $(jam-targets) : $(.log-fd) : ignore-minus-n ]
+ if [ UPDATE_NOW $(jam-targets) :
+ $(.log-fd) : ignore-minus-n : ignore-minus-q ]
{
.$(what)-supported.$(ps) = yes ;
result = true ;