#3780: Ctrl-Y causes mutt to suspend on OSX
-----------------------------+----------------------
Reporter: balderdash | Owner: mutt-dev
Type: defect | Status: closed
Priority: major | Milestone:
Component: user interface | Version:
Resolution: invalid | Keywords:
-----------------------------+----------------------
Comment (by balderdash):
> It has no choice.
But it does have a choice, as you yourself admitted when you argued thus
(in paraphrase): we should not alter mutt so that it starts making that
choice, because it's bad when software makes that choice.
So the issue is whether mutt should be patched so that it ignores DSUSP,
not whether it is possible to make such a patch.
Here is a list of at least some of the reasons in favor of making such a
change:
1. It is very easy, on a US keyboard, to accidentally hit Ctrl-Y when one
means to hit something else nearby (e.g., Ctrl-T for untag-message). This
means it's *very* easy to accidentally suspend mutt. This is a bad thing.
In contrast, it's very difficult to accidentally hit Ctrl-Z, owing to the
awkward location of "Z" on a US keyboard (plus the user *expects* Ctrl-Z
cause suspension, since that's what it does everywhere else).
2. It is desirable to be able to map Ctrl-Y to a function or macro, which
is currently impossible.
And here is why the reasons that have been given *against* such a change
aren't compelling:
A. "By disabling DSUSP in the terminal driver, these programs prevent
users from having an option that your OS tried to provide them. The change
you propose takes choice and capabilities away." Huh? The point of this
bug report is that the user WANTS that capability taken away, that it's a
bad capability to have. Taking the capability away from mutt doesn't mean
it's gone wrt other programs.
B. (paraphrased) "You should just use stty locally". Unless it's really
difficult to change mutt in the relevant way, or would require some kind
of architectural overhaul, or would break things for another big clump of
users, it's incumbent on mutt to workaround the silly foibles of various
OSes. From "the user can easily work around the problem", it obviously
doesn't follow that "mutt should not work around the problem". And the
mutt devs can't honestly believe that it follows. If they did, we
wouldn't have a configure script full of OS-specific workarounds that
users could easily do themselves. Some things a user shouldn't have to do
things themselves even though they could.
C. "Moreover, the old setting could not be restored if Mutt crashes or is
killed". I really doubt this is true of all ways of getting Mutt to
ignore Ctrl-Y. Vim doesn't suspend on Ctrl-Y, but if I kill Vim and then
immediately type 'mutt' and then Ctrl-Y mutt will suspend (I just tried
it). Perhaps this means that Vim is using some other mechanism to ignore
DSUSP than the one mentioned, but then the question is: why couldn't mutt
do that?
D. One the one hand I'm being told "you can make a simple one-line fix in
your .profile", and on the other hand I'm being told that it's super
-duper important that I have the freedom to send DSUSP to other programs.
But the suggested fix blocks me from sending DSUSP to other programs. To
actually exercise this precious freedom while concurrently self-fixing
mutt, I would have to start writing wrappers that would invoke stty before
and after program invocations, which means we're not dealing with such a
trivial and simple fix after all.
E. "I suppose that some users may want to use it, just like one may want
to use SUSP (Ctrl-Z)". So everyone using BSD-ish systems, apart from a
couple of people who might want to send DSUSP to mutt, should deal with
accidental suspensions? "No", someone will say, "the many should tweak
their .profiles so that the few can send DSUSP". But (see D) this fix is
not as simple as you propose, unless you simultaneously admit that the
ability to send DSUSP isn't really that important.
None of these are remotely compelling. What would be compelling? If it
is difficult to patch mutt in the relevant way, that would be compelling.
If there were a horde of DSUSP fans, that would be compelling, but only if
the horde is huge and only if the docs gain a section about how OSX and
BSD users who don't want unexpected suspensions should put "stty dsusp
[X]" in their .profiles, where [X] is some key not easy to hit by mistake.
I doubt such a horde exists.
--
Ticket URL: <http://dev.mutt.org/trac/ticket/3780#comment:8>
Mutt <http://www.mutt.org/>
The Mutt mail user agent