Re: BUG #11986: psql uses pager inside Emacs shell buffer (not a terminal) - Mailing list pgsql-bugs

From Bruce Momjian
Subject Re: BUG #11986: psql uses pager inside Emacs shell buffer (not a terminal)
Date
Msg-id 20141209202406.GC24487@momjian.us
Whole thread Raw
In response to Re: BUG #11986: psql uses pager inside Emacs shell buffer (not a terminal)  (Ed Avis <eda@waniasset.com>)
Responses Re: BUG #11986: psql uses pager inside Emacs shell buffer (not a terminal)
Re: BUG #11986: psql uses pager inside Emacs shell buffer (not a terminal)
List pgsql-bugs
On Mon, Dec  8, 2014 at 11:39:12AM +0000, Ed Avis wrote:
> Tom Lane <tgl <at> sss.pgh.pa.us> writes:
>
> >A quick check here shows a couple of different possibilities in the
> >environment seen in a shell buffer:
> >
> >EMACS=t
> >INSIDE_EMACS=23.1.1,comint
>
> Apparently EMACS=t is deprecated and INSIDE_EMACS is the one to use.
> However, Emacs being Emacs, it has more than one way to run interactive
> subprocesses.  This bug report was about 'shell' mode, where a text editing
> buffer provides a simple dumb terminal without cursor movement escape
> sequences (and sets TERM=dumb).  But there is also 'term', providing a
> reasonably good terminal emulator inside Emacs.  Inside that, a pager does
> work (even sophisticated ones such as 'less') and it makes sense to use a
> pager since you don't have a scrollable text buffer with all output, but
> just a fixed-size terminal window.
>
> 'term' mode sets the environment variables to something like
>
> TERM=eterm-color
> INSIDE_EMACS=24.4.1,term:0.96
>
> So if INSIDE_EMACS is to be used (rather than checking for TERM=dumb) then
> perhaps it should look for the 'comint' string.
>
> I appreciate the concern that this could open a Pandora's box of special
> case checks for all sorts of terminal types, but this is only the psql
> interactive shell we are talking about here, not the core database code.
> And all that is being controlled is the relatively minor choice of whether
> to run a pager program, not anything that affects database operations.
> psql already contains lots of features which exist to make interactive use
> more comfortable even at the expense of some complexity.

Based on your report, I think checking for INSIDE_EMACS being set _and_
TERM=dumb would be the best bet.  Do you want me to write a patch for
you to test?

--
  Bruce Momjian  <bruce@momjian.us>        http://momjian.us
  EnterpriseDB                             http://enterprisedb.com

  + Everyone has their own god. +

pgsql-bugs by date:

Previous
From: Kevin Grittner
Date:
Subject: Re: Infinite waitOnLock
Next
From: Christopher Browne
Date:
Subject: Re: BUG #11986: psql uses pager inside Emacs shell buffer (not a terminal)