@@ -72,7 +72,7 @@ $(function() {
7272 // assumed that the values are integers starting at zero and thus they can
7373 // be used as an index in regular arrays.
7474 var Rev_c = { DIFF : 0 , FIRST : 1 , C89 : 1 , C99 : 2 , C11 : 3 , LAST : 4 } ;
75- var Rev_cxx = { DIFF : 0 , FIRST : 1 , CXX98 : 1 , CXX11 : 2 , CXX14 : 3 , CXX17 : 4 , LAST : 5 } ;
75+ var Rev_cxx = { DIFF : 0 , FIRST : 1 , CXX98 : 1 , CXX11 : 2 , CXX14 : 3 , CXX17 : 4 , CXX20 : 5 , LAST : 6 } ;
7676
7777 var Rev ;
7878
@@ -96,6 +96,7 @@ $(function() {
9696 { rev : Rev . CXX11 , title : 'C++11' } ,
9797 { rev : Rev . CXX14 , title : 'C++14' } ,
9898 { rev : Rev . CXX17 , title : 'C++17' } ,
99+ { rev : Rev . CXX20 , title : 'C++20' } ,
99100 ] ;
100101
101102 var desc ;
@@ -140,6 +141,9 @@ $(function() {
140141 if ( el . hasClass ( 't-since-cxx17' ) ) {
141142 return { since : true , rev : Rev . CXX17 } ;
142143 }
144+ if ( el . hasClass ( 't-since-cxx20' ) ) {
145+ return { since : true , rev : Rev . CXX20 } ;
146+ }
143147 if ( el . hasClass ( 't-until-cxx11' ) ) {
144148 return { since : false , rev : Rev . CXX11 } ;
145149 }
@@ -149,6 +153,9 @@ $(function() {
149153 if ( el . hasClass ( 't-until-cxx17' ) ) {
150154 return { since : false , rev : Rev . CXX17 } ;
151155 }
156+ if ( el . hasClass ( 't-until-cxx20' ) ) {
157+ return { since : false , rev : Rev . CXX20 } ;
158+ }
152159 return { since : true , rev : Rev . CXX98 } ;
153160 }
154161
@@ -217,6 +224,11 @@ $(function() {
217224 this . map [ rev ] = true ;
218225 }
219226
227+ // Sets the visibility on the given revision to true.
228+ VisibilityMap . prototype . remove = function ( rev ) {
229+ this . map [ rev ] = false ;
230+ }
231+
220232
221233 /* Fills the visibility map with the given value. After the operation
222234 map.is_visible_on(rev) == value for all valid revisions.
@@ -282,31 +294,31 @@ $(function() {
282294 visibility map corresponding to these css classes. Rev.DIFF is not
283295 included into the returned visibility map.
284296 */
285- // FIXME: this function handles only certain cases of fully closed ranges
286297 function get_visibility_map_cxx ( el ) {
287- // DIFF: 0, CXX98: 1, CXX11: 2, CXX14: 3, CXX17: 4
288- if ( el . hasClass ( 't-since-cxx17' ) ) {
289- return new VisibilityMap ( [ Rev . CXX17 ] ) ;
290- }
291- if ( el . hasClass ( 't-since-cxx14' ) ) {
292- return new VisibilityMap ( [ Rev . CXX14 , Rev . CXX17 ] ) ;
293- }
294- if ( el . hasClass ( 't-since-cxx11' ) ) {
295- if ( el . hasClass ( 't-until-cxx14' ) ) {
296- return new VisibilityMap ( [ Rev . CXX11 ] ) ;
298+ // DIFF: 0, CXX98: 1, CXX11: 2, CXX14: 3, CXX17: 4, CXX20: 5
299+ var classes_cxx = [
300+ { rev : Rev . CXX11 , since : 't-since-cxx11' , until : 't-until-cxx11' } ,
301+ { rev : Rev . CXX14 , since : 't-since-cxx14' , until : 't-until-cxx14' } ,
302+ { rev : Rev . CXX17 , since : 't-since-cxx17' , until : 't-until-cxx17' } ,
303+ { rev : Rev . CXX20 , since : 't-since-cxx20' , until : 't-until-cxx20' } ,
304+ ] ;
305+ var map = new VisibilityMap ( ) ;
306+ for ( var i = 0 ; i < classes_cxx . length ; i ++ ) {
307+ if ( el . hasClass ( classes_cxx [ i ] . since ) ) {
308+ break ;
297309 }
298- return new VisibilityMap ( [ Rev . CXX11 , Rev . CXX14 , Rev . CXX17 ] ) ;
299- }
300- if ( el . hasClass ( 't-until-cxx11' ) ) {
301- return new VisibilityMap ( [ Rev . CXX98 ] ) ;
302310 }
303- if ( el . hasClass ( 't-until-cxx14' ) ) {
304- return new VisibilityMap ( [ Rev . CXX98 , Rev . CXX11 ] ) ;
311+ if ( i === classes_cxx . length ) {
312+ map . add ( Rev . CXX98 ) ;
313+ i = 0 ;
305314 }
306- if ( el . hasClass ( 't-until-cxx17' ) ) {
307- return new VisibilityMap ( [ Rev . CXX98 , Rev . CXX11 , Rev . CXX14 ] ) ;
315+ for ( ; i < classes_cxx . length ; i ++ ) {
316+ if ( el . hasClass ( classes_cxx [ i ] . until ) ) {
317+ break ;
318+ }
319+ map . add ( classes_cxx [ i ] . rev ) ;
308320 }
309- return new VisibilityMap ( [ Rev . CXX98 , Rev . CXX11 , Rev . CXX14 , Rev . CXX17 ] ) ;
321+ return map ;
310322 }
311323
312324 function get_visibility_map_c ( el ) {
@@ -1150,7 +1162,7 @@ $(function() {
11501162 // process the member dcls
11511163 el . children ( '.t-dcl' ) . each ( function ( ) {
11521164 var new_id = process_tr ( $ ( this ) , has_num , has_revs ,
1153- new_def . revs . slice ( ) ) ;
1165+ new_def . revs . clone ( ) ) ;
11541166 new_def . children . push ( new_id ) ;
11551167 } ) ;
11561168
0 commit comments