From mboxrd@z Thu Jan  1 00:00:00 1970
Path: news.gmane.org!not-for-mail
From: Ted Zlatanov <tzz@lifelogs.com>
Newsgroups: gmane.emacs.devel
Subject: Re: Add function eshell/clear to clear current eshell buffer
Date: Sat, 18 Apr 2015 09:31:35 -0400
Organization: =?utf-8?B?0KLQtdC+0LTQvtGAINCX0LvQsNGC0LDQvdC+0LI=?= @ Cienfuegos
Message-ID: <87d231o954.fsf@lifelogs.com>
References: <874mpwhxml.fsf@gmail.com> <83lhj7lcgn.fsf@gnu.org>
	<87y4n7e1bn.fsf@gmail.com> <831tkz6yh1.fsf@gnu.org>
	<87oao23dbb.fsf@gmail.com> <20150309101126.GA11863@boo.workgroup>
	<83twxu5fh5.fsf@gnu.org> <87y4lpofl5.fsf@lifelogs.com>
	<83vbgt7gqw.fsf@gnu.org>
Reply-To: emacs-devel@gnu.org
NNTP-Posting-Host: plane.gmane.org
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Trace: ger.gmane.org 1429363926 22567 80.91.229.3 (18 Apr 2015 13:32:06 GMT)
X-Complaints-To: usenet@ger.gmane.org
NNTP-Posting-Date: Sat, 18 Apr 2015 13:32:06 +0000 (UTC)
To: emacs-devel@gnu.org
Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sat Apr 18 15:32:00 2015
Return-path: <emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org>
Envelope-to: ged-emacs-devel@m.gmane.org
Original-Received: from lists.gnu.org ([208.118.235.17])
	by plane.gmane.org with esmtp (Exim 4.69)
	(envelope-from <emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org>)
	id 1YjSql-0002eU-Lp
	for ged-emacs-devel@m.gmane.org; Sat, 18 Apr 2015 15:31:59 +0200
Original-Received: from localhost ([::1]:45725 helo=lists.gnu.org)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org>)
	id 1YjSqk-0007rK-NG
	for ged-emacs-devel@m.gmane.org; Sat, 18 Apr 2015 09:31:58 -0400
Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:41617)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <ged-emacs-devel@m.gmane.org>) id 1YjSqZ-0007oV-43
	for emacs-devel@gnu.org; Sat, 18 Apr 2015 09:31:48 -0400
Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <ged-emacs-devel@m.gmane.org>) id 1YjSqV-0001ac-2V
	for emacs-devel@gnu.org; Sat, 18 Apr 2015 09:31:47 -0400
Original-Received: from plane.gmane.org ([80.91.229.3]:34927)
	by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <ged-emacs-devel@m.gmane.org>) id 1YjSqU-0001aX-Sh
	for emacs-devel@gnu.org; Sat, 18 Apr 2015 09:31:43 -0400
Original-Received: from list by plane.gmane.org with local (Exim 4.69)
	(envelope-from <ged-emacs-devel@m.gmane.org>) id 1YjSqR-0002PH-Sv
	for emacs-devel@gnu.org; Sat, 18 Apr 2015 15:31:39 +0200
Original-Received: from c-98-229-61-72.hsd1.ma.comcast.net ([98.229.61.72])
	by main.gmane.org with esmtp (Gmexim 0.1 (Debian))
	id 1AlnuQ-0007hv-00
	for <emacs-devel@gnu.org>; Sat, 18 Apr 2015 15:31:39 +0200
Original-Received: from tzz by c-98-229-61-72.hsd1.ma.comcast.net with local (Gmexim
	0.1 (Debian)) id 1AlnuQ-0007hv-00
	for <emacs-devel@gnu.org>; Sat, 18 Apr 2015 15:31:39 +0200
X-Injected-Via-Gmane: http://gmane.org/
Mail-Followup-To: emacs-devel@gnu.org
Original-Lines: 53
Original-X-Complaints-To: usenet@ger.gmane.org
X-Gmane-NNTP-Posting-Host: c-98-229-61-72.hsd1.ma.comcast.net
X-Face: bd.DQ~'29fIs`T_%O%C\g%6jW)yi[zuz6;
	d4V0`@y-~$#3P_Ng{@m+e4o<4P'#(_GJQ%TT=
	D}[Ep*b!\e,fBZ'j_+#"Ps?s2!4H2-Y"sx"
Mail-Copies-To: never
User-Agent: Gnus/5.130012 (Ma Gnus v0.12) Emacs/25.0.50 (gnu/linux)
Cancel-Lock: sha1:47wQCy6ei25CzUtUYrrYmTVRnYU=
X-detected-operating-system: by eggs.gnu.org: Genre and OS details not
	recognized.
X-Received-From: 80.91.229.3
X-BeenThere: emacs-devel@gnu.org
X-Mailman-Version: 2.1.14
Precedence: list
List-Id: "Emacs development discussions." <emacs-devel.gnu.org>
List-Unsubscribe: <https://lists.gnu.org/mailman/options/emacs-devel>,
	<mailto:emacs-devel-request@gnu.org?subject=unsubscribe>
List-Archive: <http://lists.gnu.org/archive/html/emacs-devel>
List-Post: <mailto:emacs-devel@gnu.org>
List-Help: <mailto:emacs-devel-request@gnu.org?subject=help>
List-Subscribe: <https://lists.gnu.org/mailman/listinfo/emacs-devel>,
	<mailto:emacs-devel-request@gnu.org?subject=subscribe>
Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org
Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org
Xref: news.gmane.org gmane.emacs.devel:185581
Archived-At: <http://permalink.gmane.org/gmane.emacs.devel/185581>

On Sat, 18 Apr 2015 15:39:19 +0300 Eli Zaretskii <eliz@gnu.org> wrote: 

>> From: Ted Zlatanov <tzz@lifelogs.com>
>> Date: Sat, 18 Apr 2015 07:12:22 -0400
>> 
>> >> > +(defun eshell/clear ()
>> >> > +  "Clear the eshell-buffer"
>> >> 
>> >> Now this command does not clear the eshell buffer any more, but the
>> >> eshell window.  I think the doc string should say so because this has
>> >> security implications: The user may think some info is gone but actually
>> >> it’s only no longer visible.
>> 
EZ> The same happens with a few terminal emulators, so users should
EZ> already be expecting that possibility
>> 
>> But eshell is not a terminal emulator.  It's a shell.  Emacs provides
>> the text UI around it.

EZ> I don't see the significance of this observation for the issue at
EZ> hand.  Eshell is an implementation of a shell in Emacs Lisp, and as
EZ> such, Emacs is part of it.  Therefore, we should compare what Eshell's
EZ> command do with what shells+emulators do.

I think Emacs' concepts of windows and buffers should override the
typical terminal emulators' concepts of window and scrollback buffer.
Since Emacs typically doesn't clear just the window in normal usage,
it's strange to do it here (especially by inserting blank lines).

>> I would rename `eshell/clear' to `eshell/clear-view' and also provide
>> `eshell/clear-buffer', if that's OK with Vibhav and everyone else?

EZ> Eshell should have commands named like corresponding shell commands.
EZ> Having commands with no namesakes in popular shells makes very little
EZ> sense to me.

>From the man page:

      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.

So, unless we come up with some E3 equivalent, I think it should be two
commands or in some other way apparent that there's two operation modes
to the `clear' eshell command.

For simplicity, how about `eshell/clear' for the window and
`eshell/clear-scrollback' for the whole buffer (also invoked with
universal-prefix on `eshell/clear')? The scrollback clear should IMO
also make sure undo is enabled, but the text is not in any registers.

Ted