-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathStringUtils.cpp
More file actions
79 lines (71 loc) · 1.77 KB
/
StringUtils.cpp
File metadata and controls
79 lines (71 loc) · 1.77 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#include "Stringutils.h"
#include <Windows.h>
std::string& StringUtils::insertEscapeSequence( std::string& input )
{
for( std::string::iterator iter = input.begin(); iter != input.end(); iter++ )
{
if( *iter == '\"' )
{
input.insert( iter, '\\' );
iter++;
}
}
return input;
}
std::string& StringUtils::toCliParameter( std::string& input )
{
if( std::string::npos != input.find( ' ' ) )
{
input = "\"" + input + "\"";
}
return input;
}
std::string StringUtils::argcArgvToCmdString( int argc, char** argv )
{
std::string commandstring;
bool firstRun = true;
for( int i = 0; i < argc; i++ )
{
std::string subcommandstring = argv[i];
insertEscapeSequence( subcommandstring );
toCliParameter( subcommandstring );
if( firstRun )
{
firstRun = false;
}
else
{
commandstring += " ";
}
commandstring += subcommandstring;
}
return commandstring;
}
std::string & StringUtils::shortenPgmName( std::string & input )
{
std::string::iterator cutFromHere = input.begin();
for( std::string::iterator iter1 = input.begin(); iter1 != input.end(); iter1++ )
{
if( *iter1 == '/' || *iter1 == '\\' )
{
cutFromHere = iter1;
}
}
if( cutFromHere != input.begin() )
{
input.erase( input.begin(), ++cutFromHere );
}
std::string::iterator cutToHere = input.end();
for( std::string::iterator iter2 = input.begin(); iter2 != input.end(); iter2++ )
{
if( *iter2 == '.' )
{
cutToHere = iter2;
}
}
if( cutToHere != input.end() )
{
input.erase( cutToHere, input.end() );
}
return input;
}