$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
From: roland.schwarz_at_[hidden]
Date: 2007-11-02 03:42:50
Author: speedsnail
Date: 2007-11-02 03:42:49 EDT (Fri, 02 Nov 2007)
New Revision: 40676
URL: http://svn.boost.org/trac/boost/changeset/40676
Log:
changed translate-indirect to skip rules, that are already in indirect format. This allows e.g. to make use of the -<tag> to remove already set tag feature.
Text files modified: 
   trunk/tools/build/v2/build/property.jam |    32 +++++++++++++++++++++-----------        
   1 files changed, 21 insertions(+), 11 deletions(-)
Modified: trunk/tools/build/v2/build/property.jam
==============================================================================
--- trunk/tools/build/v2/build/property.jam	(original)
+++ trunk/tools/build/v2/build/property.jam	2007-11-02 03:42:49 EDT (Fri, 02 Nov 2007)
@@ -455,19 +455,29 @@
         local m = [ MATCH ^@(.+) : $(p:G=) ] ;
         if $(m)
         {
-            if ! [ MATCH ".*([.]).*" : $(m) ]
+            local v ;
+            if [ MATCH "^([^%]*)%([^%]+)$" : $(m) ]
             {
-                # This is unqualified rule name. The user might want
-                # to set flags on this rule name, and toolset.flag
-                # auto-qualifies the rule name. Need to do the same
-                # here so set flag setting work.
-                # We can arrange for toolset.flag to *not* auto-qualify
-                # the argument, but then two rules defined in two Jamfiles
-                # will conflict.
-                m = $(context-module).$(m) ;
+                # Rule is already in indirect format
+                v = $(m) ;
             }
-            
-            local v = [ indirect.make $(m) : $(context-module) ] ;
+            else
+            {
+                if ! [ MATCH ".*([.]).*" : $(m) ]
+                {
+                    # This is unqualified rule name. The user might want
+                    # to set flags on this rule name, and toolset.flag
+                    # auto-qualifies the rule name. Need to do the same
+                    # here so set flag setting work.
+                    # We can arrange for toolset.flag to *not* auto-qualify
+                    # the argument, but then two rules defined in two Jamfiles
+                    # will conflict.
+                    m = $(context-module).$(m) ;
+                }
+
+                v = [ indirect.make $(m) : $(context-module) ] ;
+            }
+
             v = @$(v) ;
             result += $(v:G=$(p:G)) ;
         }