]> git.donarmstrong.com Git - mothur.git/blobdiff - mothurout.cpp
added group option to trim.seqs so you can provide your own groupfile instead of...
[mothur.git] / mothurout.cpp
index bd1a098c8d5662044552071c7c44a273214018ce..b30ee3ca630c91fea01343c9d873e709e027a4fb 100644 (file)
@@ -9,6 +9,7 @@
 
 #include "mothurout.h"
 
+
 /******************************************************/
 MothurOut* MothurOut::getInstance() {
        if( _uniqueInstance == 0) {
@@ -359,18 +360,21 @@ string MothurOut::getline(ifstream& fileHandle) {
 }
 /***********************************************************************/
 
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
 #ifdef USE_COMPRESSION
 inline bool endsWith(string s, const char * suffix){
   size_t suffixLength = strlen(suffix);
   return s.size() >= suffixLength && s.substr(s.size() - suffixLength, suffixLength).compare(suffix) == 0;
 }
 #endif
+#endif
 
 string MothurOut::getRootName(string longName){
        try {
        
                string rootName = longName;
 
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
 #ifdef USE_COMPRESSION
     if (endsWith(rootName, ".gz") || endsWith(rootName, ".bz2")) {
       int pos = rootName.find_last_of('.');
@@ -378,7 +382,7 @@ string MothurOut::getRootName(string longName){
       cerr << "shortening " << longName << " to " << rootName << "\n";
     }
 #endif
-
+#endif
                if(rootName.find_last_of(".") != rootName.npos){
                        int pos = rootName.find_last_of('.')+1;
                        rootName = rootName.substr(0, pos);
@@ -632,7 +636,7 @@ int MothurOut::openInputFile(string fileName, ifstream& fileHandle, string m){
        try {
                        //get full path name
                        string completeFileName = getFullPathName(fileName);
-
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
 #ifdef USE_COMPRESSION
       // check for gzipped or bzipped file
       if (endsWith(completeFileName, ".gz") || endsWith(completeFileName, ".bz2")) {
@@ -655,7 +659,7 @@ int MothurOut::openInputFile(string fileName, ifstream& fileHandle, string m){
         }
       }
 #endif
-
+#endif
                        fileHandle.open(completeFileName.c_str());
                        if(!fileHandle) {
                                //mothurOut("[ERROR]: Could not open " + completeFileName); mothurOutEndLine();
@@ -678,7 +682,7 @@ int MothurOut::openInputFile(string fileName, ifstream& fileHandle){
 
                //get full path name
                string completeFileName = getFullPathName(fileName);
-
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
 #ifdef USE_COMPRESSION
   // check for gzipped or bzipped file
   if (endsWith(completeFileName, ".gz") || endsWith(completeFileName, ".bz2")) {
@@ -701,7 +705,7 @@ int MothurOut::openInputFile(string fileName, ifstream& fileHandle){
     }
   }
 #endif
-
+#endif
 
                fileHandle.open(completeFileName.c_str());
                if(!fileHandle) {
@@ -756,7 +760,7 @@ int MothurOut::openOutputFile(string fileName, ofstream& fileHandle){
        try { 
        
                string completeFileName = getFullPathName(fileName);
-
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
 #ifdef USE_COMPRESSION
     // check for gzipped file
     if (endsWith(completeFileName, ".gz") || endsWith(completeFileName, ".bz2")) {
@@ -776,7 +780,7 @@ int MothurOut::openOutputFile(string fileName, ofstream& fileHandle){
       }
     }
 #endif
-
+#endif
                fileHandle.open(completeFileName.c_str(), ios::trunc);
                if(!fileHandle) {
                        mothurOut("[ERROR]: Could not open " + completeFileName); mothurOutEndLine();
@@ -1462,20 +1466,21 @@ bool MothurOut::anyLabelsToProcess(string label, set<string>& userLabels, string
                }
                
                //go through users set and make them floats
-               for(it = userLabels.begin(); it != userLabels.end(); ++it) {
+               for(it = userLabels.begin(); it != userLabels.end();) {
                        
                        float temp;
                        if ((*it != "unique") && (convertTestFloat(*it, temp) == true)){
                                convert(*it, temp);
                                orderFloat.push_back(temp);
                                userMap[*it] = temp;
+                               it++;
                        }else if (*it == "unique") { 
                                orderFloat.push_back(-1.0);
                                userMap["unique"] = -1.0;
+                               it++;
                        }else {
-                               if (errorOff == "") {  cout << *it << " is not a valid label." << endl;  }
-                               userLabels.erase(*it); 
-                               it--;
+                               if (errorOff == "") {  mothurOut(*it + " is not a valid label."); mothurOutEndLine();  }
+                               userLabels.erase(it++); 
                        }
                }
                
@@ -1491,11 +1496,11 @@ bool MothurOut::anyLabelsToProcess(string label, set<string>& userLabels, string
                        if (orderFloat[i] < labelFloat) {
                                smaller = true;
                                if (orderFloat[i] == -1) { 
-                                       if (errorOff == "") { cout << "Your file does not include the label unique." << endl; }
+                                       if (errorOff == "") { mothurOut("Your file does not include the label unique."); mothurOutEndLine(); }
                                        userLabels.erase("unique");
                                }
                                else {  
-                                       if (errorOff == "") { cout << "Your file does not include the label " << endl; }
+                                       if (errorOff == "") { mothurOut("Your file does not include the label "); mothurOutEndLine(); }
                                        string s = "";
                                        for (it2 = userMap.begin(); it2!= userMap.end(); it2++) {  
                                                if (it2->second == orderFloat[i]) {  
@@ -1505,7 +1510,7 @@ bool MothurOut::anyLabelsToProcess(string label, set<string>& userLabels, string
                                                        break;
                                                }
                                        }
-                                       if (errorOff == "") {cout << s <<  ". I will use the next smallest distance. " << endl; }
+                                       if (errorOff == "") {mothurOut( s +  ". I will use the next smallest distance. "); mothurOutEndLine(); }
                                }
                        //since they are sorted once you find a bigger one stop looking
                        }else { break; }