summaryrefslogtreecommitdiff
path: root/distrib/special/more/more.c
diff options
context:
space:
mode:
Diffstat (limited to 'distrib/special/more/more.c')
-rw-r--r--distrib/special/more/more.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/distrib/special/more/more.c b/distrib/special/more/more.c
index 294707bff6d..23b236778b7 100644
--- a/distrib/special/more/more.c
+++ b/distrib/special/more/more.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: more.c,v 1.18 2003/06/04 00:24:16 millert Exp $ */
+/* $OpenBSD: more.c,v 1.19 2003/06/04 00:26:12 millert Exp $ */
/*-
* Copyright (c) 1980 The Regents of the University of California.
@@ -39,7 +39,7 @@ static const char copyright[] =
#if 0
static const char sccsid[] = "@(#)more.c 5.28 (Berkeley) 3/1/93";
#else
-static const char rcsid[] = "$OpenBSD: more.c,v 1.18 2003/06/04 00:24:16 millert Exp $";
+static const char rcsid[] = "$OpenBSD: more.c,v 1.19 2003/06/04 00:26:12 millert Exp $";
#endif
#endif /* not lint */
@@ -139,6 +139,7 @@ int Wrap = 1; /* set if automargins */
int soglitch; /* terminal has standout mode glitch */
int ulglitch; /* terminal has underline mode glitch */
int pstate = 0; /* current UL state */
+int altscr = 0; /* terminal supports an alternate screen */
volatile sig_atomic_t signo; /* signal received */
@@ -1058,7 +1059,9 @@ command(char *filename, FILE *f)
kill_line();
snprintf(cmdbuf, sizeof(cmdbuf), "+%d",
Currline);
- printf("%s %s %s", p, cmdbuf, fnames[fnum]);
+ if (!altscr)
+ printf("%s %s %s", p, cmdbuf,
+ fnames[fnum]);
execute(filename, editor, p, cmdbuf,
fnames[fnum]);
break;
@@ -1339,7 +1342,8 @@ execute(char *filename, char *cmd, char *av0, char *av1, char *av2)
} else
write(STDERR_FILENO, "can't fork\n", 11);
set_tty();
- fputs("------------------------\n", stdout);
+ if (!altscr)
+ fputs("------------------------\n", stdout);
prompt(filename);
}
@@ -1495,6 +1499,9 @@ retry:
EodClr = tgetstr("cd", &clearptr);
if ((chBS = tgetstr("bc", &clearptr)) == NULL)
chBS = "\b";
+ if (tgetstr("te", &clearptr) != NULL &&
+ tgetstr("ti", &clearptr) != NULL)
+ altscr = 1;
}
if ((shell = getenv("SHELL")) == NULL)
shell = _PATH_BSHELL;