Moved output to separate functions
authorLukas Krickl <lukas@krickl.dev>
Mon, 20 Nov 2023 18:46:22 +0000 (19:46 +0100)
committerLukas Krickl <lukas@krickl.dev>
Mon, 20 Nov 2023 18:46:22 +0000 (19:46 +0100)
src/ulas.c

index a8b259e3bb97823c6d62aa84b331a4594d5045b3..ad4e4a8e3e9b84f6fefee14c891ac388e6ed3862 100644 (file)
@@ -1355,6 +1355,17 @@ int ulas_asminstr(char *dst, unsigned long max, const char *line,
   return rc;
 }
 
+void ulas_asmlst(const char *line, char *outbuf, unsigned long n) {
+  if (ulaslstout) {
+    // TODO: verbose output <address> <bytes>\tline
+    fprintf(ulaslstout, "%08X\t%s", ulas.address, line);
+  }
+}
+
+void ulas_asmout(FILE *dst, const char *outbuf, unsigned long n) {
+  fwrite(outbuf, 1, n, dst);
+}
+
 int ulas_asmline(FILE *dst, FILE *src, const char *line, unsigned long n) {
   // this buffer is written both to dst and to verbose output
   char outbuf[ULAS_OUTBUFMAX];
@@ -1418,12 +1429,8 @@ int ulas_asmline(FILE *dst, FILE *src, const char *line, unsigned long n) {
     // can fix them later
   }
 
-  fwrite(outbuf, 1, towrite, dst);
-
-  if (ulaslstout) {
-    // TODO: verbose output <address> <bytes>\tline
-    fprintf(ulaslstout, "%08X\t%s", ulas.address, start);
-  }
+  ulas_asmout(dst, outbuf, towrite);
+  ulas_asmlst(start, outbuf, towrite);
 
 fail:
   return rc;