Actually fix the segfault this time
authorDale Weiler <killfieldengine@gmail.com>
Sun, 23 Dec 2012 08:08:05 +0000 (08:08 +0000)
committerDale Weiler <killfieldengine@gmail.com>
Sun, 23 Dec 2012 08:08:05 +0000 (08:08 +0000)
conout.c
gmqcc.h
main.c

index eb57d68b69d048d8332d394d99f7de1739514538..a57881bb4a277c16ea36451c81140a292b65dc08 100644 (file)
--- a/conout.c
+++ b/conout.c
@@ -293,11 +293,11 @@ int con_change(const char *out, const char *err) {
  * Defaultizer because stdio.h shouldn't be used anywhere except here
  * and inside file.c To prevent mis-match of wrapper-interfaces.
  */ 
-void con_default_out() {
-    console.handle_out = stdout;
+FILE *con_default_out() {
+    return (console.handle_out = stdout);
 }
-void con_default_err() {
-    console.handle_err = stderr;
+FILE *con_default_err() {
+    return (console.handle_err = stderr);
 }
 
 int con_verr(const char *fmt, va_list va) {
diff --git a/gmqcc.h b/gmqcc.h
index cbb8cb3f549b33f1e27d935989a9b04f2d5b346d..8302d286fb76c7f6b1193a7b44b49eeade66f0dc 100644 (file)
--- a/gmqcc.h
+++ b/gmqcc.h
@@ -663,8 +663,8 @@ enum {
     LVL_ERROR
 };
 
-void con_default_out();
-void con_default_err();
+FILE *con_default_out();
+FILE *con_default_err();
 
 void con_vprintmsg (int level, const char *name, size_t line, const char *msgtype, const char *msg, va_list ap);
 void con_printmsg  (int level, const char *name, size_t line, const char *msgtype, const char *msg, ...);
diff --git a/main.c b/main.c
index 2e1acb5d1401d848f9b7fcfd57694a583f625430..838a26d3cc64301ae860966a68968906f1e36cb3 100644 (file)
--- a/main.c
+++ b/main.c
@@ -566,7 +566,7 @@ int main(int argc, char **argv) {
             }
         }
         else {
-            con_default_out();
+            outfile = con_default_out();
         }
     }