]> granicus.if.org Git - rtmpdump/commitdiff
Only flush LogPrintf() if output ends with \n
authorhyc <hyc@400ebc74-4327-4243-bc38-086b20814532>
Fri, 8 Jan 2010 03:48:37 +0000 (03:48 +0000)
committerhyc <hyc@400ebc74-4327-4243-bc38-086b20814532>
Fri, 8 Jan 2010 03:48:37 +0000 (03:48 +0000)
git-svn-id: svn://svn.mplayerhq.hu/rtmpdump/trunk@206 400ebc74-4327-4243-bc38-086b20814532

log.c

diff --git a/log.c b/log.c
index 9adbfc78d37fbc0f1105bfc363ffe62719853588..995882e713cbe3cbebc46f8e0d724da94cc8b562 100644 (file)
--- a/log.c
+++ b/log.c
@@ -48,9 +48,10 @@ void LogSetOutput(FILE *file)
 void LogPrintf(const char *format, ...)
 {
        char str[MAX_PRINT_LEN]="";
+        int len;
        va_list args;
        va_start(args, format);
-       vsnprintf(str, MAX_PRINT_LEN-1, format, args);
+       len = vsnprintf(str, MAX_PRINT_LEN-1, format, args);
        va_end(args);
 
        if ( debuglevel==LOGCRIT )
@@ -63,8 +64,11 @@ void LogPrintf(const char *format, ...)
                neednl = 0;
        }
 
+        if (len > MAX_PRINT_LEN-1)
+          len = MAX_PRINT_LEN-1;
        fprintf(fmsg, "%s", str);
-       fflush(fmsg);
+        if (str[len-1] == '\n')
+         fflush(fmsg);
 }
 
 void LogStatus(const char *format, ...)