#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

Reply via email to