#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