disk8: Initial commit
[pdp8.git] / sw / disk8 / src / logging.c
diff --git a/sw/disk8/src/logging.c b/sw/disk8/src/logging.c
new file mode 100644 (file)
index 0000000..3d6ccfa
--- /dev/null
@@ -0,0 +1,37 @@
+/* Logging operations for our little program */
+
+#include "logging.h"
+#include <stdlib.h>
+
+/* Global variable containing the program's runtime verbosity level */
+int verbosity_level=1;
+
+/* Global variable containing the program's error count */
+int error_count=0;
+
+/* Global variable containing the program's warning count */
+int warn_count=0;
+
+/* Global variable containing the program's message count */
+int msg_count=0;
+
+void log_summary(){
+  if (verbosity_level>1){
+    fprintf(stderr,
+           "\n====================\n  Errors: %i\nWarnings: %i\nMessages: %i\n",
+           error_count,warn_count,msg_count);
+  } else if (verbosity_level){
+    if (warn_count || error_count){
+      fprintf(stderr,
+             "\n====================\n  Errors: %i\nWarnings: %i\n",
+             error_count,warn_count);
+    }
+  } 
+}
+
+void exit_program(int status){
+  log_summary();
+  if ((verbosity_level>1)||(verbosity_level && (status !=0))) 
+    fprintf(stderr,"\nExit status: %i\n",status);
+  exit(status);
+}