本文整理汇总了C++中JString::Prepend方法的典型用法代码示例。如果您正苦于以下问题:C++ JString::Prepend方法的具体用法?C++ JString::Prepend怎么用?C++ JString::Prepend使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类JString
的用法示例。
在下文中一共展示了JString::Prepend方法的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: if
void
SVNTabBase::Compare
(
const JString& rev,
const JBoolean isPrev
)
{
SVNPrefsManager::Integration type;
JString cmd;
const JBoolean hasCmd =
(SVNGetPrefsManager())->GetCommand(SVNPrefsManager::kDiffCmd, &type, &cmd);
if (type == SVNPrefsManager::kCodeCrusader)
{
ExecuteJCCDiff(rev, isPrev);
}
else if (hasCmd)
{
JString r = rev;
if (!r.IsEmpty())
{
r.Prepend("-r ");
}
ExecuteDiff(cmd, r, isPrev);
}
}
示例2: if
JString
JVMVarNode::GetFullName
(
JBoolean* isPointer
)
const
{
JString str;
if (IsRoot())
{
return str;
}
const JVMVarNode* parent = dynamic_cast<const JVMVarNode*>(GetVarParent());
const JString& name = GetName();
if (parent->IsRoot())
{
str = "(" + name + ")";
}
else if (name.IsEmpty())
{
JIndex i;
const JBoolean found = parent->FindChild(this, &i);
assert( found );
str = parent->GetFullName(isPointer);
if (!str.BeginsWith("(") || !str.EndsWith(")"))
{
str.PrependCharacter('(');
str.AppendCharacter(')');
}
str += "[" + JString(i-1, JString::kBase10) + "]";
}
else if (name.BeginsWith("<"))
{
if (isPointer != NULL)
{
*isPointer = parent->IsPointer();
}
str = parent->GetFullName(isPointer);
}
else if (name.BeginsWith("["))
{
str = parent->GetFullName(isPointer) + name;
}
else if (name.BeginsWith("*"))
{
str = parent->GetPath() + "(" + name + ")";
}
else
{
str = name;
if (str.BeginsWith("static "))
{
str.RemoveSubstring(1,7);
}
str.Prepend(parent->GetPath());
}
return str;
}
示例3: if
void
JXFSBindingManager::Exec
(
const JCharacter* fullProgramName,
const JBoolean askForArgs
)
{
JXFSBindingManager* me = Instance();
JString cmd;
JSplitPathAndName(fullProgramName, &(me->itsScriptPath), &cmd);
#ifdef _J_UNIX
cmd.Prepend("./");
#endif
if (askForArgs && me->itsRunScriptDialog == NULL)
{
me->itsRunScriptDialog = new JXFSRunScriptDialog(cmd);
assert( me->itsRunScriptDialog != NULL );
me->ListenTo(me->itsRunScriptDialog);
me->itsRunScriptDialog->BeginDialog();
}
else if (!askForArgs)
{
(JXGetApplication())->DisplayBusyCursor();
Exec(me->itsScriptPath, cmd, JFSBinding::kRunPlain);
}
}
示例4: if
void
GMMIMEParser::ParseQuotedPrintable
(
JString* text
)
{
// read until '='
// if next two characters are hex, then decode and replace
// if next char is whitespace, then toss = --> '\n'
// if neither of the above, just toss the '=', this is an error
JIndex findex = 1;
while (text->LocateNextSubstring("=", &findex))
{
JSize size = text->GetLength();
if (findex < size)
{
JCharacter c = text->GetCharacter(findex + 1);
if (isspace(c) || (c == '\n'))
{
JIndex rIndex = findex;
if (text->LocateNextSubstring("\n", &rIndex))
{
text->RemoveSubstring(findex, rIndex);
}
else
{
text->RemoveSubstring(findex, text->GetLength());
}
}
else if (findex < size - 1)
{
JString hex = text->GetSubstring(findex + 1, findex + 2);
hex.Prepend("0x");
JInteger hexVal;
if (hex.ConvertToInteger(&hexVal))
{
text->RemoveSubstring(findex, findex + 2);
c = (JCharacter)hexVal;
text->InsertCharacter(c, findex);
findex++;
}
else
{
text->RemoveSubstring(findex, findex);
}
}
else
{
text->RemoveSubstring(findex, text->GetLength());
}
}
else
{
text->RemoveSubstring(findex, findex);
}
}
}
示例5:
JString
CMLineAddressTable::BuildAddress
(
const JString& addr
)
{
JString s = addr;
JIndex i;
if (s.LocateSubstring(" ", &i))
{
s.RemoveSubstring(i, s.GetLength());
}
s.Prepend("0x");
return s;
}
示例6: JGetString
void
JXDocktab::UpdateActionMenu()
{
JXDockManager* dockMgr;
if (!JXGetDockManager(&dockMgr))
{
itsActionMenu->RemoveAllItems();
return;
}
while (itsActionMenu->GetItemCount() >= kShowFirstDockCmd)
{
itsActionMenu->RemoveItem(itsActionMenu->GetItemCount());
}
JPtrArray<JXDockDirector>* dockList = dockMgr->GetDockList();
const JSize dockCount = dockList->GetElementCount();
for (JIndex i=1; i<=dockCount; i++)
{
JString itemText = ((dockList->NthElement(i))->GetWindow())->GetTitle();
itemText.Prepend(JGetString(kShowDockPrefixID));
itsActionMenu->AppendItem(itemText);
}
const JBoolean isDocked = (GetWindow())->IsDocked();
itsActionMenu->SetItemEnable(kUndockCmd, isDocked);
itsActionMenu->SetItemEnable(kUndockAllCompartmentCmd, isDocked);
itsActionMenu->SetItemEnable(kUndockAllDockCmd, isDocked);
itsActionMenu->SetItemEnable(kUndockAllCmd, JI2B(dockCount > 0));
itsActionMenu->SetItemEnable(kDockAllDefConfigCmd, dockMgr->CanDockAll());
itsActionMenu->SetItemEnable(kUpdateWindowTypeMapCmd, (GetWindow())->HasWindowType());
if (isDocked)
{
itsActionMenu->SetItemText(kUpdateWindowTypeMapCmd, JGetString(kAddToWindowTypeMapID));
}
else
{
itsActionMenu->SetItemText(kUpdateWindowTypeMapCmd, JGetString(kRemoveFromWindowTypeMapID));
}
}
示例7: if
void
XDLink::SetProgram
(
const JCharacter* fileName
)
{
Send("detach");
// StopDebugger(); // avoid broadcasting DebuggerRestarted
// StartDebugger();
itsProgramConfigFileName.Clear();
itsSourcePathList->DeleteAll();
JString fullName;
if (!JConvertToAbsolutePath(fileName, NULL, &fullName) ||
!JFileReadable(fullName))
{
const JString error = JGetString("ConfigFileUnreadable::XDLink");
Broadcast(UserOutput(error, kJTrue));
return;
}
else if (CMMDIServer::IsBinary(fullName))
{
const JString error = JGetString("ConfigFileIsBinary::XDLink");
Broadcast(UserOutput(error, kJTrue));
return;
}
JString line;
if (!CMMDIServer::GetLanguage(fullName, &line) ||
JStringCompare(line, "php", kJFalse) != 0)
{
const JString error = JGetString("ConfigFileWrongLanguage::XDLink");
Broadcast(UserOutput(error, kJTrue));
return;
}
JString path, name, suffix;
JSplitPathAndName(fullName, &path, &name);
JSplitRootAndSuffix(name, &itsProgramName, &suffix);
itsProgramConfigFileName = fullName;
ifstream input(fullName);
while (1)
{
line = JReadLine(input);
line.TrimWhitespace();
if (line.BeginsWith("source-path:"))
{
line.RemoveSubstring(1, 12);
line.TrimWhitespace();
name = JCombinePathAndName(path, line);
itsSourcePathList->Append(name);
}
else if (!line.IsEmpty() && !line.BeginsWith("code-medic:"))
{
line.Prepend("Unknown option: ");
line.AppendCharacter('\n');
Broadcast(UserOutput(line, kJTrue));
}
if (!input.good())
{
break;
}
}
XDSetProgramTask* task = new XDSetProgramTask();
assert( task != NULL );
task->Go();
}
示例8: JCalcMatchLength
JString
JConvertToRelativePath
(
const JCharacter* origPath,
const JCharacter* origBase
)
{
// Check that they are both absolute paths.
assert( origPath != NULL && origPath[0] == '/' &&
origBase != NULL && origBase[0] == '/' );
// Remove extra directory separators
// and make sure that base ends with one.
JString path = origPath;
JCleanPath(&path);
JString base = origBase;
JCleanPath(&base);
JAppendDirSeparator(&base);
// Find and remove the matching directories at the beginning.
// The while loop backs us up so we only consider complete directory names.
JBoolean hadTDS = kJTrue;
if (path.GetLastCharacter() != '/')
{
path.AppendCharacter('/');
hadTDS = kJFalse;
}
JSize matchLength = JCalcMatchLength(path, base);
if (!hadTDS)
{
path.RemoveSubstring(path.GetLength(), path.GetLength());
}
while (base.GetCharacter(matchLength) != '/')
{
matchLength--;
}
assert( matchLength >= 1 );
if (matchLength == 1)
{
return path;
}
if (matchLength > path.GetLength())
{
base.RemoveSubstring(matchLength, matchLength);
matchLength--;
}
path.RemoveSubstring(1, matchLength);
base.RemoveSubstring(1, matchLength);
if (base.IsEmpty())
{
path.Prepend("./");
return path;
}
// The number of remaining directory separators in base
// is the number of levels to go up.
JSize upCount = 0;
const JSize baseLength = base.GetLength();
for (JIndex i=1; i<=baseLength; i++)
{
if (base.GetCharacter(i) == '/')
{
upCount++;
path.Prepend("../");
}
}
assert( upCount > 0 );
return path;
}
示例9: if
JBoolean
JGetTrueName
(
const JCharacter* name,
JString* trueName
)
{
trueName->Clear();
if (!JNameUsed(name))
{
return kJFalse;
}
// check if it is a directory
else if (JDirectoryExists(name))
{
const JString currPath = JGetCurrentDirectory();
JError err = JChangeDirectory(name);
if (!err.OK())
{
return kJFalse;
}
*trueName = JGetCurrentDirectory();
err = JChangeDirectory(currPath);
assert_ok( err );
return kJTrue;
}
// it is a file, socket, fifo, etc.
else
{
JString origPath, fileName;
JSplitPathAndName(name, &origPath, &fileName);
// get true directory
JString truePath;
if (!JGetTrueName(origPath, &truePath))
{
return kJFalse;
}
// resolve symbolic link
JString target;
if ((JGetSymbolicLinkTarget(name, &target)).OK())
{
if (JIsRelativePath(target))
{
target.Prepend(truePath);
}
return JGetTrueName(target, trueName);
}
else
{
*trueName = JCombinePathAndName(truePath, fileName);
return kJTrue;
}
}
}
示例10: if
void
CBCompileDocument::AppendText
(
const JString& origText
)
{
const JString* text = &origText;
JBoolean deleteText = kJFalse;
if (strchr(*text, kMultibyteMarker) != NULL)
{
JString* s = jnew JString(origText);
assert( s != NULL );
text = s;
deleteText = kJTrue;
JSize length = s->GetLength();
for (JIndex i=1; i<=length; i++)
{
if (s->GetCharacter(i) == kMultibyteMarker && i <= length-2)
{
const unsigned char c1 = s->GetCharacter(i+1);
const unsigned char c2 = s->GetCharacter(i+2);
const JIndex u = (((unsigned int) (unsigned char) c1) << 8) |
((unsigned int) (unsigned char) c2);
if (u == 32920 || u == 32921)
{
s->ReplaceSubstring(i, i+2, "'");
}
else
{
std::cout << "jcc: AppendText: unicode: " << u << std::endl;
s->ReplaceSubstring(i, i+2, "\x80");
}
length -= 2;
}
}
}
const JBoolean isJavacError = javacOutputRegex.Match(*text);
JIndexRange gccPrevLineRange, gccRange;
const JBoolean isGCCError = JI2B(!isJavacError && gccErrorRegex.Match(*text, &gccRange));
JIndexRange flexRange;
const JBoolean isFlexError = flexErrorRegex.Match(*text, &flexRange);
JIndexRange bisonRange;
const JBoolean isBisonError = bisonErrorRegex.Match(*text, &bisonRange);
JIndexRange makeRange;
const JBoolean isMakeError = JI2B(
makeErrorRegex.Match(*text, &makeRange) && !text->EndsWith(makeIgnoreErrorStr) );
JArray<JIndexRange> absoftRangeList;
const JBoolean isAbsoftError = absoftErrorRegex.Match(*text, &absoftRangeList);
JArray<JIndexRange> maven2RangeList;
const JBoolean isMaven2Error = maven2ErrorRegex.Match(*text, &maven2RangeList);
JArray<JIndexRange> maven3RangeList;
const JBoolean isMaven3Error = maven3ErrorRegex.Match(*text, &maven3RangeList);
if (isGCCError &&
gccErrorRegex.Match(itsPrevLine, &gccPrevLineRange) &&
gccPrevLineRange == gccRange &&
JCompareMaxN(itsPrevLine, *text, gccRange.last, kJTrue))
{
JString s = *text;
s.RemoveSubstring(1, gccRange.last - 1);
s.Prepend(" /");
// in front of 1 or 2 trailing newlines
CBTextEditor* te = GetTextEditor();
te->SetCaretLocation(te->GetTextLength() - (theDoubleSpaceFlag ? 1 : 0));
te->Paste(s);
}
else if (!isJavacError && !isGCCError &&
gccErrorRegex.Match(itsPrevLine, &gccPrevLineRange) &&
text->BeginsWith(gccMultilinePrefix) &&
text->GetLength() > kGCCMultilinePrefixLength &&
!isspace(text->GetCharacter(kGCCMultilinePrefixLength+1)))
{
JString s = *text;
s.RemoveSubstring(1, strlen(gccMultilinePrefix));
CBTextEditor* te = GetTextEditor();
te->SetCaretLocation(te->GetTextLength() - (theDoubleSpaceFlag ? 1 : 0));
te->Paste(s);
}
else
{
CBTextEditor* te = GetTextEditor();
const JIndex startIndex = te->GetTextLength() + 1;
CBExecOutputDocument::AppendText(*text);
if (theDoubleSpaceFlag)
{
//.........这里部分代码省略.........
示例11: if
JString
GMessageHeader::DecodeMIMEWord
(
const JBoolean qType,
JString* header,
const JIndexRange range
)
{
JString temp;
JIndex findex = range.first;
// first ? '=?'
JBoolean ok = header->LocateNextSubstring("?", &findex);
if (!ok)
{
return temp;
}
findex++;
// second ? '?Q'
ok = header->LocateNextSubstring("?", &findex);
if (!ok)
{
return temp;
}
// third ? 'Q?'
findex++;
ok = header->LocateNextSubstring("?", &findex);
if (!ok || (findex > range.last))
{
return temp;
}
JIndex endIndex = findex + 1;
// final ? '?='
ok = header->LocateNextSubstring("?", &endIndex);
if (!ok || (endIndex > range.last))
{
return temp;
}
// so the encoded text is between findex and endIndex.
if (qType)
{
JIndex dIndex = findex + 1;
while (dIndex < endIndex)
{
JCharacter c = header->GetCharacter(dIndex);
if (c == '=')
{
JString hex = header->GetSubstring(dIndex + 1, dIndex + 2);
hex.Prepend("0x");
JInteger hexVal;
if (hex.ConvertToInteger(&hexVal))
{
c = (JCharacter)hexVal;
temp.AppendCharacter(c);
dIndex += 3;
}
}
else if (c == '_')
{
temp.AppendCharacter(' ');
dIndex++;
}
else
{
temp.AppendCharacter(c);
dIndex++;
}
}
}
else
{
if (findex + 1 > header->GetLength())
{
return temp;
}
if (endIndex - 1 < findex + 1)
{
return temp;
}
temp = header->GetSubstring(findex + 1, endIndex - 1);
const std::string s(temp.GetCString(), temp.GetLength());
std::istringstream is(s);
std::ostringstream os;
JDecodeBase64(is, os);
temp = os.str();
}
return temp;
}
示例12: names
void
SMTPMessage::HandleAddresses()
{
JPtrArray<JString> names(JPtrArrayT::kForgetAll);
GParseNameList(*itsTo, names);
ReplaceAliases(names);
while (!names.IsEmpty())
{
JString* str = names.GetFirstElement();
if (!str->BeginsWith("<"))
{
str->Prepend("<");
str->Append(">");
}
if (itsToNames->InsertSorted(str,kJFalse))
{
names.RemoveElement(1);
}
else
{
names.DeleteElement(1);
}
}
GParseNameList(*itsCC, names);
ReplaceAliases(names);
while (!names.IsEmpty())
{
JString* str = names.GetFirstElement();
if (!str->BeginsWith("<"))
{
str->Prepend("<");
str->Append(">");
}
JIndex findex;
if (itsToNames->SearchSorted(str, JOrderedSetT::kFirstMatch, &findex))
{
names.DeleteElement(1);
}
else
{
if (itsCcNames->InsertSorted(str,kJFalse))
{
names.RemoveElement(1);
}
else
{
names.DeleteElement(1);
}
}
}
GParseNameList(*itsBCC, names);
ReplaceAliases(names);
while (!names.IsEmpty())
{
JString* str = names.GetFirstElement();
if (!str->BeginsWith("<"))
{
str->Prepend("<");
str->Append(">");
}
JIndex findex;
if (itsToNames->SearchSorted(str, JOrderedSetT::kFirstMatch, &findex))
{
names.DeleteElement(1);
}
else
{
if (itsCcNames->SearchSorted(str, JOrderedSetT::kFirstMatch, &findex))
{
names.DeleteElement(1);
}
else
{
if (itsBccNames->InsertSorted(str,kJFalse))
{
names.RemoveElement(1);
}
else
{
names.DeleteElement(1);
}
}
}
}
}
示例13: JGetRootDirectory
JString
JGetClosestDirectory
(
const JCharacter* origDirName,
const JBoolean requireWrite,
const JCharacter* basePath
)
{
assert( !JStringEmpty(origDirName) );
JString workingDir;
if (!JStringEmpty(basePath))
{
workingDir = basePath;
JAppendDirSeparator(&workingDir);
}
else
{
workingDir = JGetCurrentDirectory();
}
JString dirName = origDirName;
JString homeDir;
JSize homeLength;
if (origDirName[0] == '~' &&
!JExpandHomeDirShortcut(origDirName, &dirName, &homeDir, &homeLength))
{
return JGetRootDirectory();
}
else if (JIsRelativePath(origDirName))
{
dirName.Prepend(workingDir);
}
assert( !JIsRelativePath(dirName) );
JString newDir, junkName;
while (!JDirectoryExists(dirName) ||
!JCanEnterDirectory(dirName) ||
!JDirectoryReadable(dirName) ||
(requireWrite && !JDirectoryWritable(dirName)))
{
JStripTrailingDirSeparator(&dirName);
if (JIsRootDirectory(dirName))
{
break;
}
JSplitPathAndName(dirName, &newDir, &junkName);
dirName = newDir;
}
// convert back to partial path, if possible
if (origDirName[0] == '~' &&
dirName.BeginsWith(homeDir))
{
dirName.ReplaceSubstring(1, homeDir.GetLength(), origDirName, homeLength);
}
else if (JIsRelativePath(origDirName) &&
dirName.GetLength() > workingDir.GetLength() &&
dirName.BeginsWith(workingDir))
{
dirName.RemoveSubstring(1, workingDir.GetLength());
}
return dirName;
}