Introduction
Introduction Statistics Contact Development Disclaimer Help
Integrate clear screen detection into isaltscreen - scroll - scrollbackbuffer p…
git clone git://git.suckless.org/scroll
Log
Files
Refs
README
LICENSE
---
commit 63f16494898a219a41fe5538a86af21b827bdb11
parent 54ac69d9a563d71dc9fba77c1b231e015842908a
Author: Jochen Sprickerhof <[email protected]>
Date: Tue, 14 Apr 2020 23:32:48 +0200
Integrate clear screen detection into isaltscreen
Diffstat:
M scroll.c | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
---
diff --git a/scroll.c b/scroll.c
@@ -197,9 +197,9 @@ strelen(const char *buf, size_t size)
return len;
}
-/* detect alternative screen switching */
+/* detect alternative screen switching and clear screen */
bool
-isaltscreen(char c)
+scipesc(char c)
{
static enum {CHAR, BREK, ESC} state = CHAR;
static char buf[BUFSIZ];
@@ -238,6 +238,10 @@ isaltscreen(char c)
strcmp(buf, "?1047l") == 0 ||
strcmp(buf, "?47l" ) == 0)
altscreen = false;
+
+ /* don't save clear screen esc sequences in log */
+ if (strcmp(buf, "H\033[2J") == 0)
+ return true;
}
break;
}
@@ -518,15 +522,11 @@ main(int argc, char *argv[])
if (write(STDOUT_FILENO, input, n) == -1)
die("write:");
- /* don't save clear screen esc sequences in log */
- /* TODO: may need to check if it wasn't read in one st…
- if (strcmp("\033[H\033[2J", input) == 0)
- continue;
-
/* iterate over the input buffer */
for (char *c = input; n-- > 0; c++) {
- /* don't save lines from alternative screen */
- if (isaltscreen(*c))
+ /* don't save alternative screen and */
+ /* clear screen esc sequences to scrollback */
+ if (scipesc(*c))
continue;
if (*c == '\n') {
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.