40 register size_type cCount = 0;
42 for (const_iterator iter = begin(); iter != end(); ++iter)
62 size_type newStart = start;
64 if ((newStart = find(oldStr, newStart)) != npos)
66 std::string::replace(newStart, oldStr.size(), newStr);
83 size_type newStart = start;
85 while ((newStart = find(oldStr, newStart)) != npos)
87 std::string::replace(newStart, oldStr.size(), newStr);
88 newStart += newStr.size();
99 size_type startEnvar = 0;
105 (startEnvar = find(
'$', startEnvar)) != npos
106 && startEnvar < size()-1
109 if (startEnvar == 0 ||
operator[](startEnvar-1) !=
'\\')
112 size_type endEnvar = startEnvar;
115 if (
operator[](startEnvar+1) ==
'{')
117 endEnvar = find(
'}', startEnvar);
122 iterator iter = begin() + startEnvar + 1;
124 while (iter != end() && (isalnum(*iter) || *iter ==
'_'))
131 if (endEnvar != npos && endEnvar != startEnvar)
133 string enVar = substr
136 endEnvar - startEnvar - 2*nd
139 string enVarString =
getEnv(enVar);
141 if (enVarString.size())
146 endEnvar - startEnvar + 1,
149 startEnvar += enVarString.size();
156 <<
"Unknown variable name " << enVar <<
'.'
173 if (
operator[](0) ==
'~')
184 if ((startEnvar = find(
'/')) != npos)
186 user = substr(1, startEnvar - 1);
187 file = substr(startEnvar + 1);
197 if (user ==
"FreeFOAM" || user ==
"OpenFOAM")
203 *
this =
home(user)/file;
206 else if (
operator[](0) ==
'.')
213 else if (
operator[](1) ==
'/')
215 std::string::replace(0, 1,
cwd());
227 bool changed =
false;
229 if (character && find(character) != npos)
231 register string::size_type nChar=0;
232 iterator iter2 = begin();
234 register char prev = 0;
238 string::const_iterator iter1 = iter2;
243 register char c = *iter1;
245 if (prev == c && c == character)
275 bool changed =
false;
277 string::size_type nChar = size();
278 if (character && nChar > 1 &&
operator[](nChar-1) == character)