From ceb07a7708e8d281b1bfb5c6928f05cd43208cd3 Mon Sep 17 00:00:00 2001 From: "SND\\kernelnet_cp" Date: Tue, 17 Jun 2014 15:02:14 +0000 Subject: [PATCH] [0.3.x] fixed : issue #13052 ( incorrect command line parsing ) git-svn-id: https://pykd.svn.codeplex.com/svn@88657 9b283d60-5439-405e-af05-b73fd8c4d996 --- pykd/windbgext.cpp | 63 +++++++++++++--------------------------------- 1 file changed, 18 insertions(+), 45 deletions(-) diff --git a/pykd/windbgext.cpp b/pykd/windbgext.cpp index 2863b98..45d82d3 100644 --- a/pykd/windbgext.cpp +++ b/pykd/windbgext.cpp @@ -102,52 +102,25 @@ KDLIB_EXT_COMMAND_METHOD_IMPL(PykdExt, py) ArgsList::iterator foundArg; - foundArg = std::find( args.begin(), args.end(), "-h" ); - if ( foundArg != args.end() ) + if ( !args.empty() ) { - printUsage(); - return; - } - - foundArg = std::find( args.begin(), args.end(), "--help" ); - if ( foundArg != args.end() ) - { - printUsage(); - return; - } - - foundArg = std::find( args.begin(), args.end(), "-g" ); - if ( foundArg != args.end() ) - { - global = true; - args.erase( foundArg ); - } - - foundArg = std::find( args.begin(), args.end(), "--global" ); - if ( foundArg != args.end() ) - { - global = true; - args.erase( foundArg ); - } - - foundArg = std::find( args.begin(), args.end(), "-l" ); - if ( foundArg != args.end() ) - { - local = true; - args.erase( foundArg ); - } - - foundArg = std::find( args.begin(), args.end(), "--local" ); - if ( foundArg != args.end() ) - { - local = true; - args.erase( foundArg ); - } - - if ( global && local ) - { - pykd::eprintln( L"-g(--global) and -l(--local) cannot be set together" ); - return; + if ( args[0] == "-h" || args[0] == "--help" ) + { + printUsage(); + return; + } + else + if ( args[0] == "-g" || args[0] == "--global" ) + { + global = true; + args.erase( args.begin() ); + } + else + if ( args[0] == "-l" || args[0] == "--local" ) + { + local = true; + args.erase( args.begin() ); + } } std::string scriptFileName;