X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;ds=inline;f=src%2Flogger.c;h=5b43a3ac9767b0f3db448557eab60c1a3bcc448d;hb=3bf187fe037df34459f04bf4e625f38afb80fcf8;hp=00d88b4b38d7cdc68493e15017be88a73233a64a;hpb=b0088adf036a53139f67ebf96f1bbb55abf199f4;p=retroray
diff --git a/src/logger.c b/src/logger.c
index 00d88b4..5b43a3a 100644
--- a/src/logger.c
+++ b/src/logger.c
@@ -22,6 +22,10 @@ along with this program. If not, see .
#if defined(__MSDOS__) || defined(MSDOS)
static int setup_serial(int sdev);
+
+void ser_putchar(int c);
+void ser_puts(const char *s);
+void ser_printf(const char *fmt, ...);
#else
#define USE_STD
#endif
@@ -149,36 +153,19 @@ int add_log_callback(void (*cbfunc)(const char*, void*), void *cls)
#endif
#endif
-static void logmsg(int type, const char *fmt, va_list ap)
+static int logmsg(int type, const char *fmt, va_list ap)
{
- static char *buf;
- static int bufsz;
- int i, ret, newsz;
- char *tmp;
-
- while((ret = vsnprintf(buf, bufsz, fmt, ap)) > bufsz || ret < 0) {
- if(ret > bufsz) {
- newsz = ret + 1;
- } else {
- newsz = bufsz ? bufsz * 2 : 256;
- }
- if(!(tmp = realloc(buf, newsz))) {
- if(buf) {
- buf[bufsz - 1] = 0;
- }
- break;
- }
- buf = tmp;
- bufsz = newsz;
- }
+ static char buf[2048];
+ int i, len;
- if(!buf) return;
+ len = vsnprintf(buf, sizeof buf, fmt, ap);
for(i=0; i
+
#define UART1_BASE 0x3f8
#define UART2_BASE 0x2f8