File tree 1 file changed +14
-20
lines changed
1 file changed +14
-20
lines changed Original file line number Diff line number Diff line change @@ -338,26 +338,20 @@ void WINAPI ServiceMain(DWORD argc, LPSTR argv[])
338
338
339
339
void ParseArgs (std::vector<std::string>& vec, std::string str)
340
340
{
341
- std::string arg, rem;
342
- std::string::size_type i = str.find_first_of (' ' );
343
-
344
- if (i == std::string::npos)
345
- return ;
346
-
347
- if (i == 0 ){
348
- ParseArgs (vec,str.substr (1 ,-1 ));
349
- return ;
350
- }
351
-
352
- if (i < str.size ()){
353
- arg = str.substr (0 ,i);
354
- rem = str.substr (++i,str.size ());
355
- vec.push_back (arg);
356
- ParseArgs (vec,rem);
357
- }else {
358
- vec.push_back (str);
359
- return ;
360
- }
341
+ std::string::size_type i = str.find_first_of (' ' );
342
+
343
+ if ( str.empty () ){ /* done */
344
+ return ;
345
+ }else if (i == std::string::npos){ /* only 1 str */
346
+ vec.push_back (str);
347
+ return ;
348
+ }else if (i == 0 ){ /* trim initial space(s) */
349
+ ParseArgs (vec, str.substr (1 ,-1 ));
350
+ return ;
351
+ }else { /* atleast 2 strings */
352
+ vec.push_back (str.substr (0 ,i));
353
+ ParseArgs (vec, str.substr (i+1 ,str.size ()));
354
+ }
361
355
}
362
356
363
357
int WINAPI WinMain (HINSTANCE hInst,
You can’t perform that action at this time.
0 commit comments