From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Mon, 12 Oct 2009 12:05:38 +0400 From: Vladislav Zavjalov To: ALT Linux Sisyphus discussions Message-ID: <20091012080537.GA22384@imap.altlinux.org> References: <20091003151208.GG6196@wrars-comp.wrarsdomain> <20091004141207.GA22459@imap.altlinux.org> <20091004142138.GO6196@wrars-comp.wrarsdomain> Mime-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20091004142138.GO6196@wrars-comp.wrarsdomain> User-Agent: Mutt/1.4.2.3i Subject: Re: [sisyphus] I: mc 4.7.0-pre3 X-BeenThere: sisyphus@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux Sisyphus discussions List-Id: ALT Linux Sisyphus discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Oct 2009 08:05:38 -0000 Archived-At: List-Archive: List-Post: On Sun, Oct 04, 2009 at 08:21:38PM +0600, Andrey Rahmatullin wrote: > On Sun, Oct 04, 2009 at 06:12:07PM +0400, Vladislav Zavjalov wrote: > > У меня при копировании мышью (и в linux-консоли и в xterm) исчезают > > все символы перевода строк > Копировании откуда куда? > > >, а вставленная строчка не показывается, пока не нажмешь любую кнопку. > А это всю жизнь так было :( Покопался на эту тему (иначе жить совсем плохо :)) Похоже, дело в том, что при копировании с шифтом, символы перевода строки приходят как shift-enter (можно смотреть, например, в src/tty/key.c/tty_getch()). Причем иногда (при каких-то настройках терминала?) и shift-enter и control-enter ловятся как просто enter -- и тогда все работает. У меня это происходит, например, если из-под mc вызвать mcedit (не через f3, а просто как команду). В остальных же случаях этот shift-enter куда-то проваливается, не вызывая никакого действия... То же происходит не только при копировании мышью, но и если просто нажимать shift/control-enter. Определить shift-enter через mc.keymap у меня почему-то не выходит. Далее, в src/widget.c/input_callback() обнаружена такая совершенно недвусмысленная штука: /* When pasting multiline text, insert literal Enter */ if ((parm & ~KEY_M_MASK) == '\n') { quote = 1; v = handle_char (in, '\n'); quote = 0; return v; } Только вот в editor'e-то используется вовсе не input_callback(), а edit/editwidget.c/edit_callback(). И там аналогичной штуки нет... Ну и при добавлении туда аналогичной штуки все начинает работать (и переводы строк появляются, и вставленное сразу показывается)... Как-то так: http://git.altlinux.org/people/slazav/packages/mc.git?p=mc.git;a=commit;h=1269cfe65698ff0293a698849e9dcb1a6b12687d Слава