in src/com/intellij/vssSupport/commands/DirectoryCommandListener.java [44:98]
public void everythingFinishedImpl( final String output )
{
if( output.indexOf( NOT_EXISTING_MESSAGE ) != -1 )
{
myErrors.add( new VcsException( VssBundle.message( "message.text.path.is.not.existing.filename.or.project", startFolder )) );
return;
}
String localPath = startFolder;
String[] lines = LineTokenizer.tokenize( output, false );
int offset = 0;
while( offset < lines.length )
{
String line = lines[ offset ];
if( line.length() > 0 )
{
// First process lines that denote VSS project path like
// --- cut ---
// !$/vsstest/SRC/Dir5:
// --- end cut ---
// or (in the case of spanning to the next line:
// --- cut ---
// !$/vsstest/SRC/Dir5/SomeVeryLongPath/
// !withContinuation:
// --- end cut ---
LineType lineType = whatSubProjectLine( lines, offset );
if( lineType != LineType.NO_PROJECT )
{
localPath = constructLocalFromSubproject( lines, offset );
localPath = VssUtil.getLocalPath( localPath, project );
offset += (lineType == LineType.SIMPLE_FORMAT) ? 0 : 1;
}
else
{
// If the line starts with '$' and does not end with ':' then it
// denotes subfolder under the given VSS [sub]project (see above).
// --- cut ---
// $/vsstest/SRC/Dir5:
// ==>$foo
// --- cut ---
if( !( line.charAt( 0 ) == '$' && (line.charAt(line.length() - 1) != ':') ) &&
// Skip lines with no useful information.
line.indexOf( TOTAL_SIG ) == -1 &&
line.indexOf( NO_ITEMS_FOUND_SIG ) == -1 )
{
extractFileAndCheckoutInfo( localPath, line );
}
}
}
offset++;
}
}