12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- diff --git a/src/build/toolset.jam b/src/build/toolset.jam
- index b5defd5..a942cd9 100644
- --- a/src/build/toolset.jam
- +++ b/src/build/toolset.jam
- @@ -17,6 +17,8 @@ import regex ;
- import sequence ;
- import set ;
- import property-set ;
- +import order ;
- +import "class" : new ;
-
-
- .flag-no = 1 ;
- @@ -237,6 +239,7 @@ rule handle-flag-value ( value * : properties * )
- if $(value:G)
- {
- local matches = [ property.select $(value) : $(properties) ] ;
- + local order ;
- for local p in $(matches)
- {
- local att = [ feature.attributes $(p:G) ] ;
- @@ -263,11 +266,24 @@ rule handle-flag-value ( value * : properties * )
- }
- if path in $(att)
- {
- - result += [ sequence.transform path.native : $(values) ] ;
- + values = [ sequence.transform path.native : $(values) ] ;
- }
- - else
- + result += $(values) ;
- + if $(values[2])
- {
- - result += $(values) ;
- + if ! $(order)
- + {
- + order = [ new order ] ;
- + }
- + local prev ;
- + for local v in $(values)
- + {
- + if $(prev)
- + {
- + $(order).add-pair $(prev) $(v) ;
- + }
- + prev = $(v) ;
- + }
- }
- }
- else
- @@ -275,6 +291,11 @@ rule handle-flag-value ( value * : properties * )
- result += $(p:G=) ;
- }
- }
- + if $(order)
- + {
- + result = [ $(order).order [ sequence.unique $(result) : stable ] ] ;
- + DELETE_MODULE $(order) ;
- + }
- }
- else
- {
|