summaryrefslogtreecommitdiff
path: root/cpp/src/IcePatch2/Calc.cpp
diff options
context:
space:
mode:
authorJose <jose@zeroc.com>2009-07-29 21:50:06 +0200
committerJose <jose@zeroc.com>2009-07-29 21:50:06 +0200
commitdb9adf0e14f01d0aa8eb288a172995847c006f57 (patch)
tree9690b02e0f0c85377c0feedb18b3a203d73928fb /cpp/src/IcePatch2/Calc.cpp
parentbug 4003 - update bindist READMEs for bzip2 (diff)
downloadice-db9adf0e14f01d0aa8eb288a172995847c006f57.tar.bz2
ice-db9adf0e14f01d0aa8eb288a172995847c006f57.tar.xz
ice-db9adf0e14f01d0aa8eb288a172995847c006f57.zip
Changes for bug 3962 and 4714
Diffstat (limited to 'cpp/src/IcePatch2/Calc.cpp')
-rw-r--r--cpp/src/IcePatch2/Calc.cpp48
1 files changed, 33 insertions, 15 deletions
diff --git a/cpp/src/IcePatch2/Calc.cpp b/cpp/src/IcePatch2/Calc.cpp
index 5c67f7445ee..525657e6f7a 100644
--- a/cpp/src/IcePatch2/Calc.cpp
+++ b/cpp/src/IcePatch2/Calc.cpp
@@ -101,7 +101,7 @@ public:
};
void
-usage(const char* appName)
+usage(const string& appName)
{
cerr << "Usage: " << appName << " [options] DIR [FILES...]\n";
cerr <<
@@ -116,8 +116,10 @@ usage(const char* appName)
}
int
-main(int argc, char* argv[])
+mainInternal(const Ice::StringSeq& args)
{
+ assert(args.size() > 0);
+ const string appName = args[0];
string dataDir;
StringSeq fileSeq;
int compress = 1;
@@ -132,24 +134,24 @@ main(int argc, char* argv[])
opts.addOpt("V", "verbose");
opts.addOpt("i", "case-insensitive");
- vector<string> args;
+ vector<string> noArgs;
try
{
#if defined(__BCPLUSPLUS__) && (__BCPLUSPLUS__ >= 0x0600)
IceUtil::DummyBCC dummy;
#endif
- args = opts.parse(argc, (const char**)argv);
+ noArgs = opts.parse(args);
}
catch(const IceUtilInternal::BadOptException& e)
{
cerr << e.reason << endl;
- usage(argv[0]);
+ usage(appName);
return EXIT_FAILURE;
}
if(opts.isSet("help"))
{
- usage(argv[0]);
+ usage(appName);
return EXIT_SUCCESS;
}
if(opts.isSet("version"))
@@ -161,8 +163,8 @@ main(int argc, char* argv[])
bool dontCompress = opts.isSet("no-compress");
if(doCompress && dontCompress)
{
- cerr << argv[0] << ": only one of -z and -Z are mutually exclusive" << endl;
- usage(argv[0]);
+ cerr << appName << ": only one of -z and -Z are mutually exclusive" << endl;
+ usage(appName);
return EXIT_FAILURE;
}
if(doCompress)
@@ -178,15 +180,15 @@ main(int argc, char* argv[])
if(args.empty())
{
- cerr << argv[0] << ": no data directory specified" << endl;
- usage(argv[0]);
+ cerr << appName << ": no data directory specified" << endl;
+ usage(appName);
return EXIT_FAILURE;
}
- dataDir = simplify(args[0]);
+ dataDir = simplify(noArgs[0]);
- for(vector<string>::size_type i = 1; i < args.size(); ++i)
+ for(vector<string>::size_type i = 1; i < noArgs.size(); ++i)
{
- fileSeq.push_back(simplify(args[i]));
+ fileSeq.push_back(simplify(noArgs[i]));
}
try
@@ -308,14 +310,30 @@ main(int argc, char* argv[])
}
catch(const string& ex)
{
- cerr << argv[0] << ": " << ex << endl;
+ cerr << appName << ": " << ex << endl;
return EXIT_FAILURE;
}
catch(const char* ex)
{
- cerr << argv[0] << ": " << ex << endl;
+ cerr << appName << ": " << ex << endl;
return EXIT_FAILURE;
}
return EXIT_SUCCESS;
}
+
+#ifdef _WIN32
+
+int
+wmain(int argc, wchar_t* argv[])
+
+#else
+
+int
+main(int argc, char* argv[])
+
+#endif
+{
+ int rc = mainInternal(Ice::argsToStringSeq(argc, argv));
+ return rc;
+}