Permalink
Browse files

Error out when filenames too long for uchime

  • Loading branch information...
1 parent c82ba51 commit 8c16ba61b92564b657aa3026eb142d30e83f0009 @mothur-westcott mothur-westcott committed Jul 14, 2016
Showing with 27 additions and 0 deletions.
  1. +8 −0 source/commands/chimerauchimecommand.cpp
  2. +19 −0 source/commands/chimerauchimecommand.h
@@ -1235,6 +1235,14 @@ int ChimeraUchimeCommand::driver(string outputFName, string filename, string acc
outputFName = "\"" + outputFName + "\"";
filename = "\"" + filename + "\"";
alns = "\"" + alns + "\"";
+
+ if (filename.length() > 257) {
+ m->mothurOut("[ERROR]: " + filename + " filename is " + toString(filename.length()) + " long. The uchime program can't handle files with a full path longer than 257 characters, please correct.\n"); m->control_pressed = true; return 0;
+ }else if ((alns.length() > 257) && (chimealns)) {
+ m->mothurOut("[ERROR]: " + alns + " filename is " + toString(alns.length()) + " long. The uchime program can't handle files with a full path longer than 257 characters, please correct.\n"); m->control_pressed = true; return 0;
+ }else if (outputFName.length() > 257) {
+ m->mothurOut("[ERROR]: " + outputFName + " filename is " + toString(outputFName.length()) + " long. The uchime program can't handle files with a full path longer than 257 characters, please correct input file name.\n"); m->control_pressed = true; return 0;
+ }
vector<char*> cPara;
@@ -201,6 +201,14 @@ static DWORD WINAPI MyUchimeThreadFunction(LPVOID lpParam){
string filename = "\"" + pDataArray->filename + "\"";
string alns = "\"" + pDataArray->alns+pDataArray->groups[i] + "\"";
string accnos = pDataArray->accnos+pDataArray->groups[i];
+
+ if (pDataArray->filename.length() > 257) {
+ m->mothurOut("[ERROR]: " + pDataArray->filename + " filename is " + toString(pDataArray->filename.length()) + " long. The uchime program can't handle files with a full path longer than 257 characters, please correct.\n"); m->control_pressed = true; return 0;
+ }else if ((pDataArray->alns.length() > 257) && (pDataArray->chimealns)) {
+ m->mothurOut("[ERROR]: " + pDataArray->alns + " filename is " + toString(pDataArray->alns.length()) + " long. The uchime program can't handle files with a full path longer than 257 characters, please correct.\n"); m->control_pressed = true; return 0;
+ }else if (pDataArray->outputFName.length() > 257) {
+ m->mothurOut("[ERROR]: " + pDataArray->outputFName + " filename is " + toString(pDataArray->outputFName.length()) + " long. The uchime program can't handle files with a full path longer than 257 characters, please correct input file name.\n"); m->control_pressed = true; return 0;
+ }
vector<char*> cPara;
@@ -543,6 +551,17 @@ static DWORD WINAPI MyUchimeSeqsThreadFunction(LPVOID lpParam){
string alns = "\"" + pDataArray->alns+ "\"";
string templatefile = "\"" + pDataArray->templatefile + "\"";
string accnos = pDataArray->accnos;
+
+ if (pDataArray->filename.length() > 257) {
+ m->mothurOut("[ERROR]: " + pDataArray->filename + " filename is " + toString(pDataArray->filename.length()) + " long. The uchime program can't handle files with a full path longer than 257 characters, please correct.\n"); m->control_pressed = true; return 0;
+ }else if ((pDataArray->alns.length() > 257) && (pDataArray->chimealns)) {
+ m->mothurOut("[ERROR]: " + pDataArray->alns + " filename is " + toString(pDataArray->alns.length()) + " long. The uchime program can't handle files with a full path longer than 257 characters, please correct.\n"); m->control_pressed = true; return 0;
+ }else if (pDataArray->outputFName.length() > 257) {
+ m->mothurOut("[ERROR]: " + pDataArray->outputFName + " filename is " + toString(pDataArray->outputFName.length()) + " long. The uchime program can't handle files with a full path longer than 257 characters, please correct input file name.\n"); m->control_pressed = true; return 0;
+ }else if (pDataArray->templatefile.length() > 257) {
+ m->mothurOut("[ERROR]: " + pDataArray->templatefile + " filename is " + toString(pDataArray->templatefile.length()) + " long. The uchime program can't handle files with a full path longer than 257 characters, please correct input file name.\n"); m->control_pressed = true; return 0;
+ }
+
vector<char*> cPara;

0 comments on commit 8c16ba6

Please sign in to comment.