70wxString
FormatRefDesRanges(
const std::vector<wxString>& aReferences,
const wxString& aRefDelimiter,
71 const wxString& aRefRangeDelimiter )
76 while( i < aReferences.size() )
78 const wxString& reference = aReferences[i];
80 wxString numberText = reference.Mid( prefix.length() );
82 bool hasNumber = numberText.ToLong( &number );
85 while( hasNumber && i + range < aReferences.size() )
87 const wxString& nextReference = aReferences[i + range];
89 wxString nextNumberText = nextReference.Mid( nextPrefix.length() );
92 if( nextPrefix != prefix || !nextNumberText.ToLong( &nextNumber )
93 || nextNumber != number +
static_cast<long>( range ) )
100 if( range == 2 && aRefRangeDelimiter.IsEmpty() )
104 if( !retVal.IsEmpty() )
105 retVal << aRefDelimiter;
111 else if( range == 2 || aRefRangeDelimiter.IsEmpty() )
114 retVal << aRefDelimiter;
115 retVal << aReferences[i + 1];
120 retVal << aRefRangeDelimiter;
121 retVal << aReferences[i + range - 1];