Handle FLTK arguments at any position
E.g. vncviewer server.example.com:2 -display :2
diff --git a/vncviewer/vncviewer.cxx b/vncviewer/vncviewer.cxx
index 6701302..53ff4b0 100644
--- a/vncviewer/vncviewer.cxx
+++ b/vncviewer/vncviewer.cxx
@@ -493,27 +493,32 @@
if (alertOnFatalError)
fl_alert("%s", e.str());
}
-
- int i = 1;
- if (!Fl::args(argc, argv, i) || i < argc)
- for (; i < argc; i++) {
- if (Configuration::setParam(argv[i]))
- continue;
- if (argv[i][0] == '-') {
- if (i+1 < argc) {
- if (Configuration::setParam(&argv[i][1], argv[i+1])) {
- i++;
- continue;
- }
+ for (int i = 1; i < argc;) {
+ if (Fl::arg(argc, argv, i))
+ continue;
+
+ if (Configuration::setParam(argv[i])) {
+ i++;
+ continue;
+ }
+
+ if (argv[i][0] == '-') {
+ if (i+1 < argc) {
+ if (Configuration::setParam(&argv[i][1], argv[i+1])) {
+ i += 2;
+ continue;
}
- usage(argv[0]);
}
- strncpy(vncServerName, argv[i], VNCSERVERNAMELEN);
- vncServerName[VNCSERVERNAMELEN - 1] = '\0';
+ usage(argv[0]);
}
+ strncpy(vncServerName, argv[i], VNCSERVERNAMELEN);
+ vncServerName[VNCSERVERNAMELEN - 1] = '\0';
+ i++;
+ }
+
mkvnchomedir();
#if !defined(WIN32) && !defined(__APPLE__)