diff options
-rw-r--r-- | more.c | 18 |
1 files changed, 17 insertions, 1 deletions
@@ -102,10 +102,21 @@ static void more_echo(int on) static void more_status(const char *fmt, ...) { + static char smso[64] = ""; + static char rmso[64] = ""; + if (smso[0] == '\0') { + more_tput(sizeof(smso), smso, "smso"); + more_tput(sizeof(rmso), rmso, "rmso"); + } + + fprintf(stderr, "%s", smso); + va_list ap; va_start(ap, fmt); - vprintf(fmt, ap); + vfprintf(stderr, fmt, ap); va_end(ap); + + fprintf(stderr, "%s", rmso); } static void more_clear(more_clear_action action) @@ -569,9 +580,14 @@ static int more(struct more_file *mf) return 0; } more_status("%s <EOF>", mf->path); + } else { + more_status("%s", mf->path); } + int c = fgetc(more_in); + fprintf(stderr, "\r%*s\r", 80, " "); + switch (c) { case EOF: perror("fgetc"); |