]> git.donarmstrong.com Git - mothur.git/blobdiff - engine.cpp
fixed bug with trim.flows that was adding flow files names to the .flow.files file...
[mothur.git] / engine.cpp
index 54197174e1fa3da14861614734b1dc58314a466a..a80eba4292f8ca32abb9a612cd7ef3cb7f8226a4 100644 (file)
@@ -95,14 +95,13 @@ string Engine::findMothursPath(){
 
 InteractEngine::InteractEngine(string path){
 
-       globaldata = GlobalData::getInstance();
        
        string temppath = path.substr(0, (path.find_last_of("othur")-5));
        
        //this will happen if you set the path variable to contain mothur's exe location
        if (temppath == "") { path = findMothursPath(); }
        
-       globaldata->argv = path;
+       mout->argv = path;
 }
 
 /***********************************************************************/
@@ -180,6 +179,16 @@ bool InteractEngine::getInput(){
                                        //cout << pid << " is in execute " << commandName << endl;
                                        #endif
                                        //executes valid command
+                                       mout->runParse = true;
+                                       mout->clearGroups();
+                                       mout->clearAllGroups();
+                                       mout->Treenames.clear();
+                                       mout->names.clear();
+                                       mout->saveNextLabel = "";
+                                       mout->printedHeaders = false;
+                                       mout->currentBinLabels.clear();
+                                       mout->binLabelsInFile.clear();
+                                                       
                                        Command* command = cFactory->getCommand(commandName, options);
                                        quitCommandCalled = command->execute();
                                                        
@@ -215,7 +224,7 @@ string Engine::getCommand()  {
                                
                                if(nextCommand != NULL) {  add_history(nextCommand);  } 
                                else{ //^D causes null string and we want it to quit mothur
-                                       strcpy(nextCommand, "quit"); 
+                                       nextCommand = strdup("quit");
                                        mout->mothurOut(nextCommand);
                                }       
                                
@@ -250,7 +259,6 @@ string Engine::getCommand()  {
 //This function opens the batchfile to be used by BatchEngine::getInput.
 BatchEngine::BatchEngine(string path, string batchFileName){
        try {
-               globaldata = GlobalData::getInstance();
        
                openedBatch = mout->openInputFile(batchFileName, inputBatchFile);
                
@@ -259,7 +267,7 @@ BatchEngine::BatchEngine(string path, string batchFileName){
                //this will happen if you set the path variable to contain mothur's exe location
                if (temppath == "") { path = findMothursPath(); }
                
-               globaldata->argv = path;
+               mout->argv = path;
                                
        }
        catch(exception& e) {
@@ -355,6 +363,17 @@ bool BatchEngine::getInput(){
                                                if ((cFactory->MPIEnabled(commandName)) || (pid == 0)) {
                                        #endif
                                        //executes valid command
+                                       mout->runParse = true;
+                                       mout->clearGroups();
+                                       mout->clearAllGroups();
+                                       mout->Treenames.clear();
+                                       mout->names.clear();
+                                       mout->saveNextLabel = "";
+                                       mout->printedHeaders = false;
+                                       mout->currentBinLabels.clear();
+                                       mout->binLabelsInFile.clear();
+
+                                                       
                                        Command* command = cFactory->getCommand(commandName, options);
                                        quitCommandCalled = command->execute();
                                                        
@@ -406,7 +425,6 @@ string BatchEngine::getNextCommand(ifstream& inputBatchFile) {
 //This function opens the batchfile to be used by BatchEngine::getInput.
 ScriptEngine::ScriptEngine(string path, string commandString){
        try {
-               globaldata = GlobalData::getInstance();
                
                //remove quotes
                listOfCommands = commandString.substr(1, (commandString.length()-1));
@@ -416,7 +434,7 @@ ScriptEngine::ScriptEngine(string path, string commandString){
                //this will happen if you set the path variable to contain mothur's exe location
                if (temppath == "") { path = findMothursPath(); }
                
-               globaldata->argv = path;
+               mout->argv = path;
                                
        }
        catch(exception& e) {
@@ -458,9 +476,13 @@ bool ScriptEngine::getInput(){
                        
                        if (input == "") { input = "quit()"; }
                        
-                       mout->mothurOutEndLine();
-                       mout->mothurOut("mothur > " + input);
-                       mout->mothurOutEndLine();
+                       if (mout->gui) {
+                               if ((input.find("quit") != string::npos) || (input.find("set.logfile") != string::npos)) {}
+                               else if ((input.find("get.current") != string::npos) && (!mout->hasCurrentFiles())) {}
+                               else { mout->mothurOutEndLine(); mout->mothurOut("mothur > " + input); mout->mothurOutEndLine(); }
+                       }else{
+                               mout->mothurOutEndLine(); mout->mothurOut("mothur > " + input); mout->mothurOutEndLine();
+                       }
                        
                        #ifdef USE_MPI
                                //send commandName
@@ -508,6 +530,17 @@ bool ScriptEngine::getInput(){
                                                        //cout << pid << " is in execute" << endl;      
                                        #endif
                                        //executes valid command
+                                       mout->runParse = true;
+                                       mout->clearGroups();
+                                       mout->clearAllGroups();
+                                       mout->Treenames.clear();
+                                       mout->names.clear();
+                                       mout->saveNextLabel = "";
+                                       mout->printedHeaders = false;
+                                       mout->currentBinLabels.clear();
+                                       mout->binLabelsInFile.clear();
+
+                                                       
                                        Command* command = cFactory->getCommand(commandName, options);
                                        quitCommandCalled = command->execute();