EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  <20192020  2021  2022  2023  2024  Index 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  <20192020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: [Merge] ~freddie-akeroyd/epics-base:msi_close_file into epics-base:3.15
From: Freddie Akeroyd via Core-talk <[email protected]>
To: [email protected]
Date: Fri, 05 Jul 2019 11:55:35 -0000
Freddie Akeroyd has proposed merging ~freddie-akeroyd/epics-base:msi_close_file into epics-base:3.15.

Commit message:
Fix for truncation of MSI output on WIN32 as described in LP: #1835525

Requested reviews:
  EPICS Core Developers (epics-core)

For more details, see:
https://code.launchpad.net/~freddie-akeroyd/epics-base/+git/epics-base/+merge/369763

On WIN32 the reopened stdout file stream needs to be closed on program exit otherwise the output file is occasionally truncated.
-- 
Your team EPICS Core Developers is requested to review the proposed merge of ~freddie-akeroyd/epics-base:msi_close_file into epics-base:3.15.
diff --git a/src/ioc/dbtemplate/msi.cpp b/src/ioc/dbtemplate/msi.cpp
index 49d8611..11570d2 100644
--- a/src/ioc/dbtemplate/msi.cpp
+++ b/src/ioc/dbtemplate/msi.cpp
@@ -99,6 +99,7 @@ int main(int argc,char **argv)
     std::string substitutionName;
     char *templateName = 0;
     bool localScope = true;
+    FILE* outFP = NULL;
 
     inputConstruct(&inputPvt);
     macCreateHandle(&macPvt, 0);
@@ -158,7 +159,7 @@ int main(int argc,char **argv)
         }
         printf("%s:", outFile);
     }
-    else if (outFile && freopen(outFile, "w", stdout) == NULL) {
+    else if (outFile && (outFP = freopen(outFile, "w", stdout)) == NULL) {
         fprintf(stderr, "msi: Can't open %s for writing: %s\n",
             outFile, strerror(errno));
         exit(1);
@@ -215,6 +216,9 @@ int main(int argc,char **argv)
     if (opt_D) {
         printf("\n");
     }
+    if (outFP != NULL) {
+        fclose(outFP);
+    }
     free(templateName);
     return opt_V & 2;
 }

Replies:
Re: [Merge] ~freddie-akeroyd/epics-base:msi_close_file into epics-base:3.15 mdavidsaver via Core-talk
Re: [Merge] ~freddie-akeroyd/epics-base:msi_close_file into epics-base:3.15 Martin Konrad via Core-talk
Re: [Merge] ~freddie-akeroyd/epics-base:msi_close_file into epics-base:3.15 Freddie Akeroyd via Core-talk
Re: [Merge] ~freddie-akeroyd/epics-base:msi_close_file into epics-base:3.15 mdavidsaver via Core-talk
Re: [Merge] ~freddie-akeroyd/epics-base:msi_close_file into epics-base:3.15 Freddie Akeroyd via Core-talk
Re: [Merge] ~freddie-akeroyd/epics-base:msi_close_file into epics-base:3.15 Andrew Johnson via Core-talk
Re: [Merge] ~freddie-akeroyd/epics-base:msi_close_file into epics-base:3.15 Freddie Akeroyd via Core-talk
Re: [Merge] ~freddie-akeroyd/epics-base:msi_close_file into epics-base:3.15 Freddie Akeroyd via Core-talk
Re: [Merge] ~freddie-akeroyd/epics-base:msi_close_file into epics-base:3.15 Freddie Akeroyd via Core-talk
Re: [Merge] ~freddie-akeroyd/epics-base:msi_close_file into epics-base:3.15 Freddie Akeroyd via Core-talk
Re: [Merge] ~freddie-akeroyd/epics-base:msi_close_file into epics-base:3.15 Andrew Johnson via Core-talk
Re: [Merge] ~freddie-akeroyd/epics-base:msi_close_file into epics-base:3.15 Freddie Akeroyd via Core-talk

Navigate by Date:
Prev: [Bug 1835525] [NEW] Output truncated with MSI on WIN32 Freddie Akeroyd via Core-talk
Next: [Bug 1835525] Re: Output truncated with MSI on WIN32 Freddie Akeroyd via Core-talk
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  <20192020  2021  2022  2023  2024 
Navigate by Thread:
Prev: [Bug 1835525] Re: Output truncated with MSI on WIN32 Andrew Johnson via Core-talk
Next: Re: [Merge] ~freddie-akeroyd/epics-base:msi_close_file into epics-base:3.15 mdavidsaver via Core-talk
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  <20192020  2021  2022  2023  2024 
ANJ, 31 Oct 2019 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·