commit - 27909800761a0019372616370f509848b663d62c
commit + 5c57fb104f2643c961f006a4c736e14f696d1689
blob - 6040d3bad633ffc70266f8930e7479fbfa8c66e1
blob + 8cb7468d5dd547a2c6ed4125341f38cc40f479b4
--- kamirepl.c
+++ kamirepl.c
static void readcmd(int, short, void *);
static void handle_9p(const void *, size_t);
+static void clr(void);
static void prompt(void);
static void ATTR_DEAD
switch (sig) {
case SIGINT:
case SIGTERM:
- log_warnx("\rShutting down...");
+ clr();
+ log_warnx("Shutting down...");
event_loopbreak();
return;
default:
fatal("buffer event error");
if (err & EVBUFFER_EOF) {
- printf("\r");
+ clr();
log_info("EOF");
event_loopbreak();
return;
}
- printf("\r");
+ clr();
log_warnx("unknown event error");
event_loopbreak();
}
if ((linelen = getline(&line, &linesize, stdin)) != -1) {
line[linelen-1] = '\0';
- printf("\r");
+ clr();
log_info("TODO: parse `%s'", line);
prompt();
}
/* type is one byte long, no endianness issues */
hdr.tag = le16toh(hdr.tag);
- printf("\r");
+ clr();
log_info("[%d] type=%s len=%"PRIu32, hdr.tag, pp_msg_type(hdr.type),
hdr.len);
prompt();
}
static void
+clr(void)
+{
+ printf("\r");
+ fflush(stdout);
+}
+
+static void
prompt(void)
{
printf("%s", PROMPT);