Fixed bug #830 (segv in do_dssp)
authorCarsten Kutzner <ckutzne@gwdg.de>
Mon, 31 Oct 2011 10:52:33 +0000 (11:52 +0100)
committerCarsten Kutzner <ckutzne@gwdg.de>
Mon, 31 Oct 2011 10:52:33 +0000 (11:52 +0100)
Change-Id: Ibaa2cf25586d879fce62e9086fee1b510e034e40

src/tools/do_dssp.c
src/tools/gmx_wheel.c

index 1a1b07f945ff8d6486960f11b91ed00d444fe539..561dc2fe05164e3e4ba03023dc05872f076fb76c 100644 (file)
@@ -55,8 +55,6 @@
 #include "tpxio.h"
 #include "viewit.h"
 
-/* defined in gmx_wheel.c*/
-extern gmx_bool *bPhobics(int ,char *);
 
 static int strip_dssp(char *dsspfile,int nres,
                       gmx_bool bPhobres[],real t,
@@ -171,6 +169,26 @@ static int strip_dssp(char *dsspfile,int nres,
   return nr;
 }
 
+static gmx_bool *bPhobics(t_atoms *atoms)
+{
+    int       i,nb;
+    char      **cb;
+    gmx_bool  *bb;
+
+
+    nb = get_strings("phbres.dat",&cb);
+    snew(bb,atoms->nres);
+
+    for (i=0; (i<atoms->nres); i++)
+    {
+        if ( -1 != search_str(nb,cb,*atoms->resinfo[i].name) )
+        {
+            bb[i]=TRUE;
+        }
+    }
+    return bb;
+}
+
 static void check_oo(t_atoms *atoms)
 {
   char *OOO;
@@ -462,7 +480,7 @@ int main(int argc,char *argv[])
   read_tps_conf(ftp2fn(efTPS,NFILE,fnm),title,&top,&ePBC,&xp,NULL,box,FALSE);
   atoms=&(top.atoms);
   check_oo(atoms);
-  bPhbres=bPhobics((int)atoms->nres,(char *)atoms->resinfo);
+  bPhbres = bPhobics(atoms);
   
   get_index(atoms,ftp2fn_null(efNDX,NFILE,fnm),1,&gnx,&index,&grpnm);
   nres=0;
index 2a3dbd1baa69da7f63b08733e423052801766ea9..513cc093aaf5fd78c1476e32c8522ffeee335c78 100644 (file)
@@ -60,7 +60,7 @@
 #include "strdb.h"
 #include "gmx_ana.h"
 
-gmx_bool *bPhobics(int nres,char *resnm[])
+static gmx_bool *bPhobics(int nres,char *resnm[])
 {
   int  i,nb;
   char **cb;