MCPcopy Create free account
hub / github.com/Tripwire/tripwire-open-source / ParseString

Method ParseString

src/fco/fconame.cpp:233–272  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

231}
232
233void cFCOName::ParseString(const TCHAR* pszin)
234{
235 ASSERT(mpPathName != 0);
236 ASSERT(pszin != 0);
237
238 mpPathName->ClearList();
239
240 const TCHAR* at = (pszin + 0);
241 const TCHAR* begin = at;
242 const TCHAR* end = at;
243 int components = 0;
244
245 while (*end)
246 ++end;
247
248 while (at < end)
249 {
250 while (*at && !(*at == mDelimiter) && (at < end))
251 at++;
252
253 TSTRING name(begin, at);
254
255//NOTE: To be truly standards compliant we ought to turn >2 slashes into 1, not 2.
256#if SUPPORTS_DOUBLE_SLASH_PATH
257 if (name.length() > 0 || components < 2)
258#else
259 if (name.length() > 0 || components == 0)
260#endif
261 {
262 cFCONameTblNode* pNode = cFCOName_i::msNameTbl.CreateNode(name);
263
264 mpPathName->mNames.push_back(pNode);
265 }
266
267 components++;
268 at++;
269 begin = at;
270 //begin = (at = tss::strinc(at));
271 }
272}
273
274
275///////////////////////////////////////////////////////////////////////////////

Callers

nothing calls this directly

Calls 3

CreateNodeMethod · 0.80
ClearListMethod · 0.45
lengthMethod · 0.45

Tested by

no test coverage detected