[csw-maintainers] Fwd: [bug-notifications] [mutt 0003648]: mutt does not work with screen's altscreen because it is compiled with slang instead of ncurses
Dagobert Michelsen
dam at opencsw.org
Wed Apr 29 09:13:43 CEST 2009
Hi,
I picked up this discussion between ncurses and slang and I guess
it is a good idea to discuss the ncurses/slang matter publicly
on the list.
Best regards
-- Dago
Anfang der weitergeleiteten E-Mail:
> Von: Mantis Bug Tracker <noreply at opencsw.org>
> Datum: 29. April 2009 07:59:07 MESZ
> An: bug-notifications at lists.opencsw.org
> Betreff: [bug-notifications] [mutt 0003648]: mutt does not work with
> screen's altscreen because it is compiled with slang instead of
> ncurses
> Antwort an: users at lists.opencsw.org
>
>
> The following issue has been SUBMITTED.
> ======================================================================
> http://www.opencsw.org/bugtrack/view.php?id=3648
> ======================================================================
> Reported By: meunier
> Assigned To:
> ======================================================================
> Project: mutt
> Issue ID: 3648
> Category: regular use
> Reproducibility: always
> Severity: block
> Priority: normal
> Status: new
> ======================================================================
> Date Submitted: 2009-04-29 07:59 CEST
> Last Modified: 2009-04-29 07:59 CEST
> ======================================================================
> Summary: mutt does not work with screen's
> altscreen because
> it is compiled with slang instead of ncurses
> Description:
> /opt/csw/bin/mutt is compiled with slang, not ncurses, while
> /opt/csw/bin/screen is compiled with ncurses, not slang. So if you
> use
> /opt/csw/bin/screen and start /opt/csw/bin/mutt inside it, it looks
> like
> the ncurses library used by screen and the slang library used by
> mutt fight
> each other in a bad way when screen's altscreen feature is enabled.
>
> Here is a way to reproduce the problem:
>
> [after ssh-ing into a Solaris machine from an xterm]
> $ export $TERMINFO=/opt/csw/share/terminfo/
> $ /opt/csw/bin/infocmp
> # Reconstructed via infocmp from file:
> /opt/csw/share/terminfo/x/xterm
> [blablabla ... so the correct terminfo database is being used]
> $ ls
> [blablabla]
> $ /opt/csw/bin/emacs
> [exit emacs, the screen returns to its previous content, including
> showing
> the output of the previous 'ls' command. Note: this will not work
> and the
> ouput of the previous 'ls' command will be invisible if your TERMINFO
> environment variable is not set correctly]
> $ ls
> [blablabla]
> $ /opt/csw/bin/mutt
> [exit mutt, the screen returns to its previous content, including
> showing
> the output of the previous 'ls' command]
> $ /opt/csw/bin/screen
> [screen is cleared]
> $ ls
> [blablabla]
> $ /opt/csw/bin/emacs
> [exit from emacs, the cursor is at the bottom of the xterm and the
> output
> of the previous 'ls' is not visible anymore]
> $ ls
> [blablabla]
> $ /opt/csw/bin/mutt
> [exit from mutt, the cursor is at the bottom of the xterm and the
> output
> of the previous 'ls' is not visible anymore]
>
> So far so good. Emacs and mutt normally use xterm's "alternate
> screen"
> feature which is why the output of the previous 'ls' command is
> visible in
> the xterm once emacs or mutt has exited. Screen, on the other hand,
> does
> not provide an alternate screen by default, so emacs and mutt just
> use the
> "regular screen" and the output of the previous 'ls' command is then
> lost
> when emacs or mutt exits.
>
> Now type:
>
> Control-A :
>
> to get the interactive prompt from 'screen', then type:
>
> altscreen on
>
> then you should get a 'Will do alternate screen switching' from
> 'screen'.
> This tells 'screen' that it should provide an alternate screen to
> applications like emacs or mutt that normally use xterm's alternate
> screen
> feature.
>
> Now let's try emacs and mutt again:
>
> $ ls
> [blablabla]
> $ /opt/csw/bin/emacs
> [exit emacs, the screen returns to its previous content, including
> showing
> the output of the previous 'ls' command, just as if emacs were run
> from a
> normal shell instead of being run from within 'screen'. Great,
> that's what
> I want.]
> $ ls
> [blablabla]
> $ /opt/csw/bin/mutt
> [oops, watch screen and mutt fight for control of the alternate
> screen...
> You can try to type a quick random combination of
>
> x
>
> and
>
> Control-A "
>
> to tell mutt to exit and screen to give you a list of virtual screens
> (rather than fighting with mutt) but good luck with regaining
> control of
> your window...]
>
> Now, the fact that emacs works fine in combination with screen's
> altscreen
> feature but that mutt does not tells me that the problem is with
> mutt, not
> screen. After investigating a little, I've come to the conclusion
> that the
> problem is not with the code of mutt itself, but with the fact that
> /opt/csw/bin/mutt uses slang while /opt/csw/bin/screen uses ncurses.
> In
> fact I have compiled (with gcc) a version of mutt 1.5.19 with
> ncurses 5.7
> which works perfectly well in the examples above. On the other hand
> the
> same version of mutt 1.5.19 compiled with slang 2.1.4 fails just like
> /opt/csw/bin/mutt, flashing the screen and all. My /opt/csw/bin/
> mutt uses
> slang 1.4.8, not slang 2.1.4, but that doesn't seem to make any
> difference,
> both fail in the same way.
>
> So is there a way to get /opt/csw/bin/screen to be compiled with
> ncurses
> rather than slang, by any chance?
>
> Thanks,
>
>
> ======================================================================
>
> Issue History
> Date Modified Username Field Change
> ======================================================================
> 2009-04-29 07:59 meunier New Issue
> ======================================================================
>
> _______________________________________________
> bug-notifications mailing list
> bug-notifications at lists.opencsw.org
> https://lists.opencsw.org/mailman/listinfo/bug-notifications
More information about the maintainers
mailing list