4627c107f20b2ff3969114bcb619a0d02c0258a6
braney
  Fri Jul 9 12:58:00 2021 -0700
replace a couple of calls to popen() with pipeline()

diff --git src/hg/hgGene/rnaStructure.c src/hg/hgGene/rnaStructure.c
index 24c9684..59ee699 100644
--- src/hg/hgGene/rnaStructure.c
+++ src/hg/hgGene/rnaStructure.c
@@ -80,38 +80,40 @@
 	safef(psName, sizeof(psName), "../trash/%s/%s_%s.ps", table, table, geneId);
         bool plotDone = FALSE;
 	if (fileExists(psName))
             plotDone = TRUE;
         else
 	    {
 	    FILE *f;
 
             if (!fileExists(rnaPlotPath))
                 {
                 plotDone = FALSE;
                 fprintf(stderr, "Could not find %s", rnaPlotPath);
                 }
             else
                 {
-                f = popen(rnaPlotPath, "w");
+                char *plotCmd[] = {rnaPlotPath, NULL};
+                struct pipeline *plStruct = pipelineOpen1(plotCmd, pipelineWrite | pipelineNoAbort, "/dev/null", NULL);
+                f = pipelineFile(plStruct);
                 if (f != NULL)
                     {
                     fprintf(f, ">%s\n", psName);	/* This tells where to put file. */
                     fprintf(f, "%s\n%s\n", fold.seq, fold.fold);
-                    pclose(f);
                     plotDone = TRUE;
                     }
+                pipelineClose(&plStruct);
                 }
             }
 
         // newer versions of RNAplot add _ss.ps to the file name
         if (!fileExists(psName))
             safef(psName, sizeof(psName), "../trash/%s/%s_%s.ps_ss.ps", table, table, geneId);
             
 	/* Print row of table, starting with energy terms . */
 	hPrintf("</TR><TR>");
 	bases = strlen(fold.seq);
 	webPrintLinkCell(names[side]);
 	webPrintLinkCellStart();
 	hPrintf("%1.2f", fold.energy);
 	webPrintLinkCellEnd();
 	webPrintLinkCellStart();