linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Adam Borowski <kilobyte@angband.pl>
To: Andrey Utkin <andrey_utkin@fastmail.com>
Cc: "Manuel Schölling" <manuel.schoelling@gmx.de>,
	plagnioj@jcrosoft.com, tomi.valkeinen@ti.com, jslaby@suse.cz,
	gregkh@linuxfoundation.org, linux-fbdev@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v7 0/3] console: Add persistent scrollback buffers for all VGA consoles
Date: Mon, 28 Nov 2016 00:15:48 +0100	[thread overview]
Message-ID: <20161127231548.GA29376@angband.pl> (raw)
In-Reply-To: <20161127213730.GO11418@dell-m4800.home>

On Sun, Nov 27, 2016 at 09:37:30PM +0000, Andrey Utkin wrote:
> I've just patched next-20161125 with this set and given it a run.
> 
> Scrollback persistence works fine, just as in earlier versions.
> 
> This time I didn't forget to test clear operation.
> 
> The only important concern is that after logout, the scrollback is not
> wiped by /bin/login or /sbin/agetty (not sure who of them is responsible
> for that). What do you see on your workstations in this case?

If you're on Debian or a derivative, that's clear_console.  It uses a
switch-vt-then-back hack which obviously doesn't work with scrollback
persistence.  Reported as https://bugs.debian.org/845177 -- I'll molest the
maintainer if the patch doesn't get applied soon, so we can have the fix in
time for stretch (then Ubuntu zesty).

Because of a sad lack of a time machine, old systems will use clear_console
with that hack until they die, that's why
CONFIG_VGACON_SOFT_SCROLLBACK_PERSISTENT defaults to n; in a few years it'll
be ok to flip it.

> I guess we need to do something of the following:
>  - catch some control character sequences to wipe the scrollback

\e[3J

>  - indicate (by some flag) some feature capability for this

Terminfo calls this flag "E3".

>  - request update in terminfo database or whatever, to let ncurses know
>    that it is capable of scrollback wiping by some control charater
>    sequences

Already there for quite a while.

> clear(1) doesn't wipe the scrollback at all, it is still reachable, all
> of it.

It does for me on the console.  The man page says:

# clear clears your screen if this is possible, including its scrollback
# buffer (if the extended "E3" capability is defined).  clear looks in the
# environment for the terminal type and then in the terminfo database to
# determine how to clear the screen.

Because of its reliance on terminfo, you need to have TERM=linux in your
environment; also, screen/tmux obviously breaks this.

> echo -e "\e[3J" seems to wipe the scrollback, but if you do it several
> times in a row, every time you (or at last I do) get your prompt a bit
> lower, so after many times you end up with blank screen and the prompt
> at the bottom of the screen.

Yeah, none of \e[J subcommands move the cursor at all.  As you use echo
without -n, you move two lines lower, and even with -n the command you typed
takes a line.  You want to move the cursor explicitly, add "\e[H".


Meow!
-- 
The bill declaring Jesus as the King of Poland fails to specify whether
the addition is at the top or end of the list of kings.  What should the
historians do?

  reply	other threads:[~2016-11-27 23:16 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20161118005309.GC26324@dell-m4800.home>
2016-11-20 21:58 ` [PATCH v5 0/2] console: Add persistent scrollback buffers for all VGA console Manuel Schölling
2016-11-20 21:58   ` [PATCH v5 1/2] console: Move scrollback data into its own struct Manuel Schölling
2016-11-20 21:58   ` [PATCH v5 2/2] console: Add persistent scrollback buffers for all VGA consoles Manuel Schölling
2016-11-20 22:23     ` kbuild test robot
2016-11-21 20:17     ` Adam Borowski
2016-11-22 16:56       ` Manuel Schölling
2016-11-23 17:33         ` Adam Borowski
2016-11-27 16:51           ` [PATCH v7 0/3] " Manuel Schölling
2016-11-27 16:51             ` [PATCH v7 1/3] console: Move scrollback data into its own struct Manuel Schölling
2016-11-27 16:51             ` [PATCH v7 2/3] console: Add callback to flush scrollback buffer to consw struct Manuel Schölling
2016-11-27 16:51             ` [PATCH v7 3/3] console: Add persistent scrollback buffers for all VGA consoles Manuel Schölling
2016-11-27 21:37             ` [PATCH v7 0/3] " Andrey Utkin
2016-11-27 23:15               ` Adam Borowski [this message]
2016-11-27 23:30                 ` Jakub Wilk
2016-11-28  0:02                 ` Andrey Utkin
2016-11-28 21:28               ` Manuel Schölling
2016-11-29 10:01                 ` Andrey Utkin
2016-11-29 10:44                   ` Adam Borowski
2016-11-29 16:35                   ` Manuel Schölling
2016-12-01 21:03                   ` Manuel Schölling
2016-12-01 21:31                     ` Andrey Utkin
2016-11-27 23:53             ` Adam Borowski
2016-11-28 21:23               ` Manuel Schölling
2016-11-23 17:33       ` [PATCH v5 2/2] " Manuel Schölling
2016-12-04 10:53 [PATCH v7 0/3] " Manuel Schölling
2016-12-06 10:02 ` Greg KH
2016-12-06 16:32   ` Manuel Schölling

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20161127231548.GA29376@angband.pl \
    --to=kilobyte@angband.pl \
    --cc=andrey_utkin@fastmail.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=jslaby@suse.cz \
    --cc=linux-fbdev@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=manuel.schoelling@gmx.de \
    --cc=plagnioj@jcrosoft.com \
    --cc=tomi.valkeinen@ti.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).