src/hg/protein/kgXref/kgXref.c 1.8

1.8 2009/09/23 18:42:24 angie
Fixed compiler warnings from gcc 4.3.3, mostly about system calls whose return values weren't checked and non-literal format strings with no args.
Index: src/hg/protein/kgXref/kgXref.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/protein/kgXref/kgXref.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -b -B -U 1000000 -r1.7 -r1.8
--- src/hg/protein/kgXref/kgXref.c	3 Sep 2008 19:20:58 -0000	1.7
+++ src/hg/protein/kgXref/kgXref.c	23 Sep 2009 18:42:24 -0000	1.8
@@ -1,172 +1,172 @@
 /* kgXref - create Known Gene cross reference table kgXref.tab file */
 #include "common.h"
 #include "hCommon.h"
 #include "hdb.h"
 
 void usage()
 /* Explain usage and exit. */
 {
 errAbort(
   "kgXref - create Known Gene cross reference table kgXref.tab file."
   "usage:\n"
   "   kgXref <db> <proteinsYYMMDD> <ro_db>\n"
   "          <db> is known Genes database under construction\n"
   "          <proteinsYYMMDD> is protein database name \n"
   "          <ro_db> is target organism database\n"
   "example: kgXref kgDB proteins040115 hg16\n");
 }
 
 int main(int argc, char *argv[])
     {
     struct sqlConnection *conn, *conn2, *conn3;
     char query2[256];
     struct sqlResult *sr2;
     char **row2;
     char cond_str[256];  
   
     char *kgID;
     
     char *seqType;	/* sequence type m=mRNA g=genomic u=undefined */
 
     FILE *o1;
     char *database;
     char *proteinDB;
     char *ro_DB;
     char *refSeqName;
     char *hugoID;
     char *protAcc;	/* protein Accession number from NCBI */
     char *answer;
 
     int leg;		/* marker for debugging */
     char *spID, *spDisplayID, *geneSymbol, *refseqID, *desc;
 
     if (argc != 4) usage();
     database  = cloneString(argv[1]);
     proteinDB = cloneString(argv[2]);
     ro_DB = cloneString(argv[3]);
 
     conn = hAllocConn(database);
     conn2= hAllocConn(database);
     conn3= hAllocConn(database);
 
     o1 = mustOpen("j.dat", "w");
 	
     sprintf(query2,"select name, proteinID from %s.knownGene;", database);
     sr2 = sqlMustGetResult(conn2, query2);
     row2 = sqlNextRow(sr2);
     while (row2 != NULL)
 	{
 	kgID 		= row2[0];
 	spDisplayID	= row2[1];
 	
 	refseqID 	= strdup("");
 	geneSymbol 	= strdup("");
 	desc		= strdup("");
 	protAcc		= strdup("");
 
         sprintf(cond_str, "displayID='%s'", spDisplayID);
         spID = sqlGetField(proteinDB, "spXref3", "accession", cond_str);
         
 	/* use description for the protein as default, replace it with HUGO desc if available. */
 	sprintf(cond_str, "displayID='%s'", spDisplayID);
         desc  = sqlGetField(proteinDB, "spXref3", "description", cond_str);
         
 	sprintf(cond_str, "name='%s' and seqType='g'", kgID);
         seqType = sqlGetField(database, "knownGeneLink", "seqType", cond_str);
 
         if (seqType != NULL)
             {
 	    leg = 1;
             /* special processing for RefSeq DNA based genes */
             sprintf(cond_str, "mrnaAcc = '%s'", kgID);
             refSeqName = sqlGetField(ro_DB, "refLink", "name", cond_str);
             if (refSeqName != NULL)
                 {
                 geneSymbol = cloneString(refSeqName);
 		refseqID   = kgID;
             	sprintf(cond_str, "mrnaAcc = '%s'", kgID);
             	desc = sqlGetField(ro_DB, "refLink", "product", cond_str);
 		
 		sprintf(cond_str, "mrnaAcc='%s'", refseqID);
         	answer = sqlGetField(ro_DB, "refLink", "protAcc", cond_str);
         	if (answer != NULL)
             	    {
 	    	    protAcc = strdup(answer);
 	    	    }
                 }
             }
         else
             {
             sprintf(cond_str, "displayID = '%s'", spDisplayID);
             hugoID = sqlGetField(proteinDB, "spXref3", "hugoSymbol", cond_str);
             if (!((hugoID == NULL) || (*hugoID == '\0')) )
                 {
 		leg = 21;
                 geneSymbol = cloneString(hugoID);
 
             	sprintf(cond_str, "displayID = '%s'", spDisplayID);
             	desc = sqlGetField(proteinDB, "spXref3", "hugoDesc", cond_str);
 		}
 
             sprintf(cond_str, "mrna = '%s'", kgID);
             answer = sqlGetField(database, "mrnaRefseq", "refseq", cond_str);
 	    if (answer != NULL) 
 		{
 		leg = 22;
 		refseqID = strdup(answer);
 		
 		sprintf(cond_str, "mrnaAcc='%s'", refseqID);
         	answer = sqlGetField(ro_DB, "refLink", "protAcc", cond_str);
         	if (answer != NULL)
             	    {
 	    	    protAcc = strdup(answer);
 	    	    }
 		}
             	
 	    if (strlen(geneSymbol) == 0)
 		{ 
 		leg = 23;
 		if (strlen(refseqID) != 0)
 			{
 			sprintf(cond_str, "mrnaAcc = '%s'", refseqID);
 			answer = sqlGetField(ro_DB, "refLink", "name", cond_str);
 			if (answer != NULL) 
 				{
 				leg = 24;
 				geneSymbol = strdup(answer);
 				}
 			}
                 }
             }
 
 	/* fix missing fields */
 	if (strlen(refseqID) == 0)
 		{
 		/* printf("%3d %s reseqID is empty.\n", leg, kgID);*/
 		}
 
 	if (strlen(geneSymbol) == 0)
 		{
 		/* printf("%3d %s geneSymbol is empty.\n", leg, kgID);fflush(stdout);*/
 		geneSymbol = strdup(kgID);
 		}
 
 	if (strlen(desc) == 0)
 		{
 		/* printf("%3d %s desc is empty.\n", leg, kgID);fflush(stdout);*/
 		desc = strdup("N/A");
 		}
 	
 	fprintf(o1, "%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n", 
 		kgID, kgID, spID, spDisplayID, geneSymbol, refseqID, protAcc, desc);
 	row2 = sqlNextRow(sr2);
 	}
 
     fclose(o1);
     hFreeConn(&conn);
     hFreeConn(&conn2);
     hFreeConn(&conn3);
-    system("cat j.dat|sort|uniq  >kgXref.tab");
-    system("rm j.dat");
+    mustSystem("cat j.dat|sort|uniq  >kgXref.tab");
+    mustSystem("rm j.dat");
     return(0);
     }