Ack. On 10/17/2010 04:13 PM, Arnon Gilboa wrote:
Used by controller. One instance at a time, not thread-safe. Add basename() for win32. --- client/cmd_line_parser.cpp | 23 ++++++++++++++++++++++- 1 files changed, 22 insertions(+), 1 deletions(-)diff --git a/client/cmd_line_parser.cpp b/client/cmd_line_parser.cpp index 3f45551..a9c1857 100644 --- a/client/cmd_line_parser.cpp +++ b/client/cmd_line_parser.cpp @@ -53,6 +53,11 @@ CmdLineParser::CmdLineParser(std::string description, bool allow_positional_args , _positional_args (allow_positional_args) , _done (false) { + //Enables multiple instantiations. One at a time, not thread-safe. + optind = 1; + opterr = 1; + optopt = 0; + optarg = 0; } CmdLineParser::~CmdLineParser() @@ -428,13 +433,29 @@ char* CmdLineParser::next_argument() return _argv[optind++]; } +#ifdef WIN32 +char* basename(char *str) +{ + char *base; + if ((base = strrchr(str, '\\'))) { + return base; + } + + if ((base = strrchr(str, ':'))) { + return base; + } + return str; +} + +#endif + void CmdLineParser::show_help() { static const int HELP_START_POS = 30; static const int HELP_WIDTH = 80 - HELP_START_POS; std::ostringstream os; - os<< _argv[0]<< " - "<< _description.c_str()<< "\n\noptions:\n\n"; + os<< basename(_argv[0])<< " - "<< _description.c_str()<< "\n\noptions:\n\n"; Options::iterator iter = _options.begin(); for (; iter != _options.end(); ++iter) {
_______________________________________________ Spice-devel mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/spice-devel
