Code

wrap around the window once the histogram grows too big
[liboping.git] / src / oping.c
index 7fcbb25aab20ea3c05b5e1df407232aa6a7baa38..14f5fd3711016b2269fb84186880f581160e4d0f 100644 (file)
@@ -610,6 +610,9 @@ static int update_stats_from_context (ping_context_t *ctx, pingobj_iter_t *iter)
 {
        double latency = -1.0;
        size_t buffer_len = sizeof (latency);
+        int maxx;
+        getmaxyx(ctx->window, maxx, maxx);
+
        ping_iterator_get_info (iter, PING_INFO_LATENCY,
                        &latency, &buffer_len);
 
@@ -645,7 +648,7 @@ static int update_stats_from_context (ping_context_t *ctx, pingobj_iter_t *iter)
                deviation = context_get_stddev (ctx);
                        
                mvwprintw (ctx->window, /* y = */ 2, /* x = */ 2,
-                               "rtt min/avg/max/sdev = %.3f/%.3f/%.3f/%.3f ms\n",
+                               "rtt min/avg/max/sdev = %.3f/%.3f/%.3f/%.3f ms",
                                ctx->latency_min,
                                average,
                                ctx->latency_max,
@@ -676,7 +679,8 @@ static int update_stats_from_context (ping_context_t *ctx, pingobj_iter_t *iter)
                         }
                         wattron (ctx->window, COLOR_PAIR(color));
                         mvwprintw (ctx->window,
-                                   /* y = */ 3, /* x = */ 1 + sequence, 
+                                   /* y = */ 3,
+                                   /* x = */ (1 + sequence) % maxx,
                                    bars[index]);
                        wattroff (ctx->window, COLOR_PAIR(color));
                }
@@ -687,7 +691,8 @@ static int update_stats_from_context (ping_context_t *ctx, pingobj_iter_t *iter)
         else {
                 wattron (ctx->window, COLOR_PAIR(OPING_RED) | A_BOLD);
                 mvwprintw (ctx->window,
-                           /* y = */ 3, /* x = */ 1 + sequence, 
+                           /* y = */ 3,
+                           /* x = */ (1 + sequence) % maxx,
                            "!");
                 wattroff (ctx->window, COLOR_PAIR(OPING_RED) | A_BOLD);
         }