aboutsummaryrefslogtreecommitdiff
path: root/tests/project-name/driver.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'tests/project-name/driver.cxx')
-rw-r--r--tests/project-name/driver.cxx9
1 files changed, 6 insertions, 3 deletions
diff --git a/tests/project-name/driver.cxx b/tests/project-name/driver.cxx
index 51c8782..3535ba2 100644
--- a/tests/project-name/driver.cxx
+++ b/tests/project-name/driver.cxx
@@ -45,7 +45,7 @@ name (const string& s)
return r;
}
-// Usage: argv[0] (string|base|extension|variable)
+// Usage: argv[0] (string|base [ext]|extension|variable)
//
// Create project names from stdin lines, and for each of them print the
// result of the specified member function to stdout, one per line.
@@ -54,21 +54,24 @@ int
main (int argc, char* argv[])
try
{
- assert (argc == 2);
+ assert (argc <= 3);
string m (argv[1]);
assert (m == "string" || m == "base" || m == "extension" || m == "variable");
+ assert (m == "base" ? argc <= 3 : argc == 2);
cin.exceptions (ios::badbit);
cout.exceptions (ios::failbit | ios::badbit);
+ const char* ext (argc == 3 ? argv[2] : nullptr);
+
string l;
while (!eof (getline (cin, l)))
{
project_name n (name (l));
const string& s (m == "string" ? n.string () :
- m == "base" ? n.base () :
+ m == "base" ? n.base (ext) :
m == "extension" ? n.extension () :
n.variable ());