]> git.lizzy.rs Git - rust.git/commitdiff
Show ellipsis sign when log line is truncated
authorArkaitz Jimenez <arkaitzj@gmail.com>
Sun, 3 Jun 2012 19:51:17 +0000 (20:51 +0100)
committerArkaitz Jimenez <arkaitzj@gmail.com>
Sun, 3 Jun 2012 20:06:42 +0000 (21:06 +0100)
src/rt/rust_sched_loop.cpp

index 697f460d3a64bf235ef535964b4d1bb05e6bb9dc..27883391ccede76768ebf1ed0965fd9a0a94939f 100644 (file)
@@ -54,7 +54,13 @@ rust_sched_loop::log(rust_task* task, uint32_t level, char const *fmt, ...) {
     char buf[BUF_BYTES];
     va_list args;
     va_start(args, fmt);
-    vsnprintf(buf, sizeof(buf), fmt, args);
+    int formattedbytes = vsnprintf(buf, sizeof(buf), fmt, args);
+    if( formattedbytes and (unsigned)formattedbytes > BUF_BYTES ){
+        const char truncatedstr[] = "[...]";
+        memcpy( &buf[BUF_BYTES-sizeof(truncatedstr)],
+                truncatedstr,
+                sizeof(truncatedstr));
+    }
     _log.trace_ln(task, level, buf);
     va_end(args);
 }