open and close output file in one place
authorceriel <none@none>
Mon, 29 Jan 1990 12:40:43 +0000 (12:40 +0000)
committerceriel <none@none>
Mon, 29 Jan 1990 12:40:43 +0000 (12:40 +0000)
util/led/memory.c
util/led/output.c
util/led/write.c

index b852520..df5c2c2 100644 (file)
@@ -581,9 +581,6 @@ write_bytes()
                        offchar + NLChars
                );
        }
-       if (! wr_open(outputname)) {
-               fatal("can't create %s", outputname);
-       }
        /*
         * These pieces must always be written.
         */
@@ -608,7 +605,6 @@ write_bytes()
                wr_dbug(mems[ALLODBUG].mem_base, mems[ALLODBUG].mem_full);
 #endif SYMDBUG
        }
-       wr_close();
 }
 
 namecpy(name, nname, offchar)
index 3a41140..e21fcdc 100644 (file)
@@ -26,7 +26,11 @@ beginoutput()
 {
        extern ushort   NLocals, NGlobals;
        extern long     NLChars, NGChars;
+       extern char     *outputname;
 
+       if (! wr_open(outputname)) {
+               fatal("can't create %s", outputname);
+       }
        if (incore)
                generate_section_names();
 
@@ -82,4 +86,5 @@ endoutput()
        } else {
                write_bytes();
        }
+       wr_close();
 }
index 08ae549..b65fdd1 100644 (file)
@@ -30,13 +30,9 @@ static long          off_char;
  */
 begin_write()
 {
-       extern char *outputname;
        register struct outhead *hd = &outhead;
 
        assert(! incore);
-       if (! wr_open(outputname)) {
-               fatal("cannot write %s", outputname);
-       }
        wr_ohead(hd);
        wr_sect(outsect, hd->oh_nsect);
        off_char = OFF_CHAR(*hd);