diff --git a/wccl-apps/wccl-rules.cpp b/wccl-apps/wccl-rules.cpp index 63d33c48f74fd11ef4c7782da3c4177acd16d4cd..758f7d9ae1d4eb901b565c1646de35bb6d0170f9 100644 --- a/wccl-apps/wccl-rules.cpp +++ b/wccl-apps/wccl-rules.cpp @@ -191,8 +191,8 @@ int main(int argc, char** argv) "Files to load, looking at the extension to determine type\n") ("search-path,P", value(&search_path), "WCCL resources (lexicons) search path") - ("corpus-from-stdin,I", value(&corpus_stdin)->zero_tokens(), - "Read corpus from stdin (requires that no corpora filenames are passed)") + ("input-path,I", value(&corpora_files)->composing(), + "Corpus paths, use '-' for stdin") ("input-format,i", value(&input_format)->default_value("xces"), readers_help.c_str()) ("output-format,o", value(&output_format)->default_value("ccl"), @@ -236,7 +236,11 @@ int main(int argc, char** argv) ccl_files.push_back(f); } } - + corpus_stdin = corpus_stdin || (corpora_files.end() != std::find( + corpora_files.begin(), corpora_files.end(), std::string("-"))); + corpora_files.erase(std::remove( + corpora_files.begin(), corpora_files.end(), std::string("-")), + corpora_files.end()); // consider stdin only when no corpus files given corpus_stdin = corpus_stdin && corpora_files.empty(); diff --git a/wccl-apps/wccl-run.cpp b/wccl-apps/wccl-run.cpp index b1bd1463e2f7dda9d6c2b87fc827522d559ed0a6..723aa9c774045d84087750bb6d068c00b50a560a 100644 --- a/wccl-apps/wccl-run.cpp +++ b/wccl-apps/wccl-run.cpp @@ -357,8 +357,8 @@ int main(int argc, char** argv) "Files to load, looking at the extension to determine type") ("search-path,P", value(&search_path), "WCCL resources (lexicons) search path") - ("corpus-from-stdin,I", value(&corpus_stdin)->zero_tokens(), - "Read corpus from stdin") + ("input-path,I", value(&corpora_files)->composing(), + "Corpus paths, use '-' for stdin") ("quiet,q", value(&quiet)->zero_tokens(), "Suppress messages") ("input-format,i", value(&input_format)->default_value("xces"), @@ -421,6 +421,11 @@ int main(int argc, char** argv) operator_strings.push_back(f); } } + corpus_stdin = corpus_stdin || (corpora_files.end() != std::find( + corpora_files.begin(), corpora_files.end(), std::string("-"))); + corpora_files.erase(std::remove( + corpora_files.begin(), corpora_files.end(), std::string("-")), + corpora_files.end()); if ((corpora_files.empty() && !corpus_stdin) || (operator_strings.empty() && !output_orths)) { std::cerr << "Nothing to do, try " << argv[0] << " -h\n"; return 2;