diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2011-01-23 14:39:19 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2011-01-23 14:39:19 +0200 |
commit | 8027e319831f02538fe431b5870d90c0267b3b78 (patch) | |
tree | 3ffb2c9f47b188cc361febffb7a24f45cec5321b /cli/runtime-source.cxx | |
parent | 0267ede2d356abdef7b3e9af19d4725605a58947 (diff) | |
download | cli-8027e319831f02538fe431b5870d90c0267b3b78.tar.gz cli-8027e319831f02538fe431b5870d90c0267b3b78.tar.xz cli-8027e319831f02538fe431b5870d90c0267b3b78.zip |
Allow the options file search function to ignore the file
Diffstat (limited to 'cli/runtime-source.cxx')
-rw-r--r-- | cli/runtime-source.cxx | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/cli/runtime-source.cxx b/cli/runtime-source.cxx index 4c6b2a2..7f87d1f 100644 --- a/cli/runtime-source.cxx +++ b/cli/runtime-source.cxx @@ -264,8 +264,13 @@ generate_runtime_source (context& ctx) << "if (!base::more ())" << endl << "throw missing_value (oi->option);" << endl - << "if (oi->search_func != 0)" << endl - << "load (oi->search_func (base::next (), oi->arg));" + << "if (oi->search_func != 0)" + << "{" + << "std::string f (oi->search_func (base::next (), oi->arg));" + << endl + << "if (!f.empty ())" << endl + << "load (f);" + << "}" << "else" << endl << "load (base::next ());" << endl @@ -420,8 +425,13 @@ generate_runtime_source (context& ctx) << "if (s2.empty ())" << endl << "throw missing_value (oi->option);" << endl - << "if (oi->search_func != 0)" << endl - << "load (oi->search_func (s2.c_str (), oi->arg));" + << "if (oi->search_func != 0)" + << "{" + << "std::string f (oi->search_func (s2.c_str (), oi->arg));" + << endl + << "if (!f.empty ())" << endl + << "load (f);" + << "}" << "else" << endl << "load (s2);" << "}" |