]> git.donarmstrong.com Git - mothur.git/blobdiff - readcolumn.cpp
added checks for ^C to quit command instead of program
[mothur.git] / readcolumn.cpp
index 12a38c22b6ca045a2f5b1aa7e2ffdeb11cee4201..d58b0377cb48d1964b21479ca64278919dbf8cca 100644 (file)
@@ -20,7 +20,7 @@ ReadColumnMatrix::ReadColumnMatrix(string df) : distFile(df){
 \r
 /***********************************************************************/\r
 \r
-void ReadColumnMatrix::read(NameAssignment* nameMap){\r
+int ReadColumnMatrix::read(NameAssignment* nameMap){\r
        try {           \r
 \r
                string firstName, secondName;\r
@@ -38,8 +38,11 @@ void ReadColumnMatrix::read(NameAssignment* nameMap){
                //need to see if this is a square or a triangular matrix...\r
        \r
                while(fileHandle && lt == 1){  //let's assume it's a triangular matrix...\r
+\r
                \r
                        fileHandle >> firstName >> secondName >> distance;      // get the row and column names and distance\r
+                       \r
+                       if (m->control_pressed) {  fileHandle.close();  delete reading; return 0; }\r
        \r
                        map<string,int>::iterator itA = nameMap->find(firstName);\r
                        map<string,int>::iterator itB = nameMap->find(secondName);\r
@@ -97,6 +100,8 @@ void ReadColumnMatrix::read(NameAssignment* nameMap){
 \r
                        while(fileHandle){\r
                                fileHandle >> firstName >> secondName >> distance;\r
+                               \r
+                               if (m->control_pressed) {  fileHandle.close();  delete reading; return 0; }\r
                \r
                                map<string,int>::iterator itA = nameMap->find(firstName);\r
                                map<string,int>::iterator itB = nameMap->find(secondName);\r
@@ -119,11 +124,15 @@ void ReadColumnMatrix::read(NameAssignment* nameMap){
                                gobble(fileHandle);\r
                        }\r
                }\r
-\r
+               \r
+               if (m->control_pressed) {  fileHandle.close();  delete reading; return 0; }\r
+               \r
                reading->finish();\r
                fileHandle.close();\r
 \r
                list->setLabel("0");\r
+               \r
+               return 1;\r
 \r
        }\r
        catch(exception& e) {\r