]> git.donarmstrong.com Git - mothur.git/blobdiff - command.hpp
sffinfo bug with flow grams right index when clipQualRight=0
[mothur.git] / command.hpp
index 7ed03f161e18b9ea5bd8374606585ccefb41772e..37186529ab1f75e5747138d74f976c5df3c1bbe9 100644 (file)
@@ -3,7 +3,7 @@
 //test2
 /*
  *  command.h
- *  
+ *  nast
  *
  *  Created by Pat Schloss on 10/23/08.
  *  Copyright 2008 Patrick D. Schloss. All rights reserved.
@@ -50,14 +50,22 @@ class Command {
                         //find pattern to use based on number of variables passed in
                         string pattern = "";
                         bool foundPattern = false;
+                        vector<int> numVariablesPerPattern;
                         for (int i = 0; i < patterns.size(); i++) {
                             int numVariables = 0;
                             for (int j = 0; j < patterns[i].length(); j++) { if (patterns[i][j] == '[') { numVariables++; } }
+                            numVariablesPerPattern.push_back(numVariables);
                             
                             if (numVariables == variableParts.size()) { pattern = patterns[i]; foundPattern = true; break; }
                         }
                         
-                        if (!foundPattern) {  m->mothurOut("[ERROR]: Not enough variable pieces for " + type + ".\n"); m->control_pressed = true; }
+                        //if you didn't find an exact match do we have something that might work
+                        if (!foundPattern) {  
+                            for (int i = 0; i < numVariablesPerPattern.size(); i++) {
+                                if (numVariablesPerPattern[i] < variableParts.size()) { pattern = patterns[i]; foundPattern = true; break; }
+                            }
+                            if (!foundPattern) {  m->mothurOut("[ERROR]: Not enough variable pieces for " + type + ".\n"); m->control_pressed = true; }
+                        }
                         
                         if (pattern != "") {
                             int numVariables = 0;