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) {
-- 
1.5.5.6

_______________________________________________
Spice-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/spice-devel

Reply via email to