JBoolean
SVNPropertiesList::SchedulePropertiesForRemove()
{
	JTableSelection& s = GetTableSelection();
	JTableSelectionIterator iter(&s);
	JPoint cell;
	JString cmd, prop, file = JPrepArgForExec(itsFullName);
	JSubstitute subst;
	while (iter.Next(&cell))
		{
		const JString* line = (GetStringList()).NthElement(cell.y);

		prop = JPrepArgForExec(*line);

		cmd = kPropRemoveCmd;
		subst.DefineVariable("prop_name", prop);
		subst.DefineVariable("file_name", file);
		subst.Substitute(&cmd);

		itsRemovePropertyCmdList->Append(cmd);
		}

	RemoveNextProperty();
	return kJTrue;
}
Exemple #2
0
JBoolean
SVNTabBase::Prepare
	(
	JString*			cmd,
	const JCharacter*	warnMsgID,
	const JBoolean		includeDeleted
	)
{
	JPtrArray<JString> list(JPtrArrayT::kDeleteAll);
	GetSelectedFiles(&list, includeDeleted);
	if (list.IsEmpty())
		{
		return kJFalse;
		}

	if (warnMsgID != NULL && !(JGetUserNotification())->AskUserNo(JGetString(warnMsgID)))
		{
		return kJFalse;
		}

	const JSize count = list.GetElementCount();
	JString fileList;
	for (JIndex i=1; i<=count; i++)
		{
		fileList += JPrepArgForExec(*(list.NthElement(i)));
		fileList += " ";
		}

	JSubstitute subst;
	subst.DefineVariable("file_name", fileList);
	subst.Substitute(cmd);

	return kJTrue;
}
JBoolean
SVNPropertiesList::CreateProperty1()
{
	assert( itsCreatePropertyDialog != NULL );

	const JString prop = JPrepArgForExec(itsCreatePropertyDialog->GetString());
	const JString file = JPrepArgForExec(itsFullName);

	JSubstitute subst;
	subst.DefineVariable("prop_name", prop);
	subst.DefineVariable("file_name", file);

	JString cmd = kPropEditCmd;
	subst.Substitute(&cmd);

	JSimpleProcess* p;
	const JError err = JSimpleProcess::Create(&p, cmd, kJTrue);
	if (err.OK())
		{
		itsProcessList->Append(p);
		ListenTo(p);
		return kJTrue;
		}
	else
		{
		err.ReportIfError();
		return kJFalse;
		}
}
Exemple #4
0
JBoolean
SVNTabBase::ExecuteDiff
	(
	const JCharacter*	origCmd,
	const JCharacter*	rev,
	const JBoolean		isPrev
	)
{
	JPtrArray<JString> fileList(JPtrArrayT::kDeleteAll);
	JArray<JIndex> revList;
	GetSelectedFilesForDiff(&fileList, &revList);
	if (fileList.IsEmpty())
		{
		return kJFalse;
		}

	(JXGetApplication())->DisplayBusyCursor();

	JSubstitute subst;
	subst.DefineVariable("rev_option", rev);
	const JBoolean customPrev = JI2B( isPrev && !revList.IsEmpty() );

	const JSize count = fileList.GetElementCount();
	JString cmd, fullName, r;
	for (JIndex i=1; i<=count; i++)
		{
		cmd      = origCmd;
		fullName = JPrepArgForExec(*(fileList.NthElement(i)));

		if (customPrev)
			{
			const JIndex j = revList.GetElement(i);
			r  = JString(j-1, JString::kBase10);
			r += ":";
			r += JString(j, JString::kBase10);
			subst.DefineVariable("rev_option", r);
			}

		subst.DefineVariable("file_name", fullName);
		subst.Substitute(&cmd);

		if (itsDirector->HasPath())
			{
			JSimpleProcess::Create(itsDirector->GetPath(), cmd, kJTrue);
			}
		else
			{
			JSimpleProcess::Create(cmd, kJTrue);
			}
		}

	return kJTrue;
}
void
JStringManager::Replace
	(
	JString*			str,
	const JCharacter*	map[],
	const JSize			size
	)
	const
{
	JSubstitute* r = GetReplaceEngine();

	const JSize count = size/(2*sizeof(JCharacter*));
	for (JIndex i=0; i<count; i++)
		{
		r->DefineVariable(map[2*i], map[2*i+1]);
		}

	r->Substitute(str);
}
void
SVNPropertiesList::OpenSelectedItems()
{
	JTableSelection& s = GetTableSelection();
	JTableSelectionIterator iter(&s);
	JPoint cell;
	JString cmd, prop, file = JPrepArgForExec(itsFullName);
	JSubstitute subst;
	while (iter.Next(&cell))
		{
		const JString* line = (GetStringList()).NthElement(cell.y);

		prop = JPrepArgForExec(*line);

		cmd = kPropEditCmd;
		subst.DefineVariable("prop_name", prop);
		subst.DefineVariable("file_name", file);
		subst.Substitute(&cmd);

		JSimpleProcess::Create(cmd, kJTrue);
		}
}
Exemple #7
0
JBoolean
SVNTabBase::ExecuteJCCDiff
	(
	const JString&	rev,
	const JBoolean	isPrev
	)
{
	JPtrArray<JString> fileList(JPtrArrayT::kDeleteAll);
	JArray<JIndex> revList;
	GetSelectedFilesForDiff(&fileList, &revList);
	if (fileList.IsEmpty())
		{
		return kJFalse;
		}

	const JBoolean customPrev = JI2B( isPrev && !revList.IsEmpty() );

	const JSize count = fileList.GetElementCount();
	JString cmd, s, fullName;
	JSubstitute subst;
	for (JIndex i=1; i<=count; i++)
		{
		if (customPrev)
			{
			const JIndex j = revList.GetElement(i);
			s  = JString(j-1, JString::kBase10);
			s += ":";
			s += JString(j, JString::kBase10);
			}
		else
			{
			s = rev;
			}
		s += " $file_name";

		fullName = JPrepArgForExec(*(fileList.NthElement(i)));
		subst.DefineVariable("file_name", fullName);
		subst.Substitute(&s);

		if (count == 1)
			{
			s.Prepend(" --svn-diff ");
			}
		else
			{
			s.Prepend(" --svn-diff-silent ");
			}

		cmd += s;
		}

	cmd.Prepend("jcc");

	if (itsDirector->HasPath())
		{
		JSimpleProcess::Create(itsDirector->GetPath(), cmd, kJTrue);
		}
	else
		{
		JSimpleProcess::Create(cmd, kJTrue);
		}

	return kJTrue;
}