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; }
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; } }
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); } }
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; }