Home
mc-dev
mc-dev@conference.jabber.ru
28.03.2011< ^ >

Тема: http://www.midnight-commander.org | Latest stable release: 4.7.5.1
[00:19:11] <Зося Синицкая> RSS: Новости для Midnight Commander
• Ticket #2517 (useless strlen()) created
http://www.midnight-commander.org/ticket/2517
• Ticket #2518 (useless strlen()) created
http://www.midnight-commander.org/ticket/2518
• useless_strlen.patch attached to Ticket #2518
http://www.midnight-commander.org/attachment/ticket/2518/useless_strlen.patch
[00:29:45] <Зося Синицкая> RSS: Новости для Midnight Commander
• Ticket #2517 (useless strlen()) closed
http://www.midnight-commander.org/ticket/2517#comment:1
• Ticket #2517 (useless strlen()) updated
http://www.midnight-commander.org/ticket/2517#comment:2
• Ticket #2518 (useless strlen()) updated
http://www.midnight-commander.org/ticket/2518#comment:1
• Ticket #2519 (Inline to #define) created
http://www.midnight-commander.org/ticket/2519
• inline_to_define.patch attached to Ticket #2519
http://www.midnight-commander.org/attachment/ticket/2519/inline_to_define.patch
[06:13:01] andrew_b зашёл в конференцию
[06:39:30] <Зося Синицкая> RSS: Новости для Midnight Commander
• Ticket #2519 (Inline to #define) closed
http://www.midnight-commander.org/ticket/2519#comment:1
[07:04:32] il.smind зашёл в конференцию
[07:07:37] <il.smind > Приветствую всех!
[07:08:58] <andrew_b> Шолом!
[07:10:31] <il.smind > andrew_b: поговорим?
[07:10:39] <andrew_b> Неа. :)
[07:23:13] <il.smind > а сейчас?
[07:37:55] gonzo111 зашёл в конференцию
[08:03:43] iNode вышел из конференции
[08:17:34] slavazanko/h вышел из конференции
[08:30:28] <il.smind > andrew_b: заметил странную вещь
[08:31:17] <il.smind > при открытии файла бывает так что выделяется весь файл
[08:31:23] <il.smind > это в редакторе
[08:31:54] <il.smind > имхо где то break потерялся и изза этого такая фигня происходит
[08:39:23] <andrew_b> Может быть.
[08:41:39] <il.smind > я к тому что это после тебя :)
[08:41:47] <andrew_b> Я понял.
[08:42:58] <il.smind > mc_log-ов напихал... ищу..
[08:48:02] iNode зашёл в конференцию
[08:49:31] <il.smind > #0 edit_mark_cmd (edit=0x81afbc8, unmark=1) at edit.c:3226
#1 0x080b0d4c in edit_execute_cmd (edit=0x81afbc8, command=2, char_for_insertion=-1) at edit.c:3609
#2 0x080b28b1 in edit_execute_key_command (edit=0x81afbc8, command=2, char_for_insertion=-1) at edit.c:3448
#3 0x080ba174 in edit_command_execute (w=0x81afbc8, msg=WIDGET_KEY, parm=402) at editwidget.c:225
#4 edit_callback (w=0x81afbc8, msg=WIDGET_KEY, parm=402) at editwidget.c:334
#5 0xb7fb75b1 in send_message (h=0x81a8808, key=402, event=0xbfffeff4) at ../../lib/widget/widget-common.h:132
#6 dlg_key_event (h=0x81a8808, key=402, event=0xbfffeff4) at dialog.c:478
#7 dlg_process_event (h=0x81a8808, key=402, event=0xbfffeff4) at dialog.c:1115
#8 0xb7fb7ad9 in frontend_run_dlg (h=0x81a8808) at dialog.c:531
#9 run_dlg (h=0x81a8808) at dialog.c:1147
#10 0x080b9b35 in edit_file (_file=0x8180500 "111", line=0) at editwidget.c:402
#11 0x080773dd in do_edit_at_line (what=0x8180500 "111", internal=1, start_line=0) at cmd.c:754
#12 0x080774aa in do_edit () at cmd.c:195
#13 edit_cmd () at cmd.c:786
#14 0x0808ec94 in midnight_execute_cmd (sender=0x81893f8, command=<value optimized out>) at midnight.c:1201
#15 0x0808f2a7 in midnight_callback (h=0x818ae58, sender=0x81893f8, msg=DLG_ACTION, parm=42, data=0x0) at midnight.c:1585
#16 0xb7fb5e80 in buttonbar_call (w=0x81893f8, msg=WIDGET_HOTKEY, parm=1004) at buttonbar.c:150
#17 buttonbar_callback (w=0x81893f8, msg=WIDGET_HOTKEY, parm=1004) at buttonbar.c:172
#18 0xb7fb76c4 in send_message (h=0x818ae58, key=1004, event=0xbffff1f4) at ../../lib/widget/widget-common.h:132
#19 dlg_try_hotkey (h=0x818ae58, key=1004, event=0xbffff1f4) at dialog.c:423
#20 dlg_key_event (h=0x818ae58, key=1004, event=0xbffff1f4) at dialog.c:472
#21 dlg_process_event (h=0x818ae58, key=1004, event=0xbffff1f4) at dialog.c:1115
#22 0xb7fb7ad9 in frontend_run_dlg (h=0x818ae58) at dialog.c:531
#23 run_dlg (h=0x818ae58) at dialog.c:1147
#24 0x0808fed7 in create_panels_and_run_mc () at midnight.c:986
#25 do_nc () at midnight.c:1730
#26 0x0805a709 in main (argc=Cannot access memory at address 0x0
) at main.c:499
(gdb)
[08:50:54] <il.smind > unmark=1 значит не оно вроде...
[08:52:35] <andrew_b> > при открытии файла бывает так что выделяется весь файл
Так вроде бы это можно только в одном месте.
[08:52:46] <andrew_b> И одной командой.
[08:53:37] <andrew_b> CK_MarkAll
[08:54:13] <il.smind > да
[08:54:15] <il.smind > но
[08:54:34] <il.smind > если включить highlight
[08:54:46] <andrew_b> ?
[08:54:47] <il.smind > и вводить символы
[08:54:58] <il.smind > то все они будут помечены
[08:55:16] <il.smind > и мне кажется что то подобное происходит
[08:55:40] <il.smind > т.к. edit_mark_cmd с unmark=0 не вызывается
[08:56:17] <il.smind > возможно highlight где то не обнулён
[08:58:53] <il.smind > и может ты не причём
[08:59:31] <il.smind > B---
[08:59:35] <il.smind > в статусе
[08:59:42] <il.smind > сразу и не заметил
[09:00:34] <andrew_b> Сразу после открытия?
[09:00:49] <il.smind > да сразу после открытия

включил постоянные блоки "B---" стало "----"
[09:01:23] <il.smind > т.е. в режиме непостоянных блоков сразу включается highlight
[09:01:39] <il.smind > или не инициализуруется
[09:14:18] <il.smind > кажись начинаю догадываться...
[09:14:38] <il.smind > сейчас я выведу эту сволочь на чистую воду...
[09:15:02] <il.smind > пока отмёл Славу и тебя...
[09:15:24] <il.smind > осталось 2 варианта...
[09:15:38] <il.smind > я и неизвестные инопланетяне...
[09:16:02] <il.smind > т.к. я вне подозрений скорее всего это инопланетяне...
[09:17:03] <il.smind > 2108 /* highlight inserted text then not persistent blocks */
2109 if (!option_persistent_selections)
2110 {
2111 edit_set_markers (edit, edit->curs1, current, 0, 0);
2112 if (edit->column_highlight)
2113 edit_push_undo_action (edit, COLUMN_ON);
2114 edit->column_highlight = 0;
2115 }
[09:18:11] <andrew_b> Ты вне подозрений?
[09:18:35] <il.smind > само собой :)
[09:18:41] <il.smind > говорю
[09:18:46] <il.smind > это инопланетяне
[09:18:58] <il.smind > я фильм один смотрел...
[09:21:48] <il.smind > надо что такое придумать чтобы оно различало вставки при открытии файла и вставку куска текста после манипуляций..
[09:21:48] <il.smind > т.е. сейчас у меня получается так что при открытии файла в режиме не "fast_load"
[09:26:12] <andrew_b> modified ?
[09:26:12] <il.smind > производится edit_insert_file
[09:26:12] <il.smind > попробую..
[09:26:12] <andrew_b> Когда открыли файл, он не изменён.
[09:26:12] <il.smind > по идее да, сейчас надо посмотреть этот флаг если файл сохранили
[09:26:12] <il.smind > и после этого вставляем
[09:34:43] <slavazanko/w> всем привет
[09:37:05] <il.smind > Привет!
[09:40:13] <andrew_b> !
[09:44:58] <andrew_b> il.smind : 2500
[09:45:17] <il.smind > я с работы не могу
[09:45:25] <andrew_b> Где отметка в NEWS?
[09:45:33] <il.smind > на месте
[09:46:14] <andrew_b> А...
[09:46:21] <andrew_b> Действительно...
[09:46:56] <slavazanko/w> он хитрый жук. Исправил ньюсы так, тчо в трекере не видно... опять инопланетяне помогли
[09:48:14] <il.smind > не, я когда 2500 влил поправил ньюсы но забыл в тикете черкнуть
[09:48:24] <il.smind > но я встал на пкть исправления
[09:48:55] <il.smind > прошу не применять ко мне административных мер воздействия
[09:49:17] <andrew_b> il.smind : уже.
[09:49:29] <andrew_b> Ты понижен в должности.
[09:49:31] <il.smind > уже чем кто?
[09:49:43] <slavazanko/w> и постановлен на учёт в местном ОВД
[09:50:11] <andrew_b> il.smind : ты не owner в этой комнате.
[09:50:30] <il.smind > хм..
[09:50:49] <slavazanko/w> я же делал овнером. чего ты опять скатился?
[09:51:14] il.smind зашёл в конференцию
[09:51:29] <il.smind > *** il.smind теперь владелец
[09:51:33] <slavazanko/w> ну вот
[09:51:34] il.smind вышел из конференции
[09:51:59] <andrew_b> [11:52]--- il.smind вышел(а) из комнаты
[09:52:09] <il.smind > без палева
[09:54:21] <il.smind > у меня в редакторе не осталось багов
[09:55:27] <il.smind > есть пара косячков первый это почки на стыках буферов в utf8
[09:55:39] <il.smind > *точки
[09:56:02] <il.smind > второй это эм.. тоже там что то непомню что
[09:56:16] <il.smind > так что и заняться особо нечем
[09:56:57] <slavazanko/w> О, вспомнил: у нас есть баг со строкой подсказок в панелях. После определённых операций с сетевыми VFS строка прыгает вверх
[09:57:13] <il.smind > slavazanko/w: да
[09:57:20] <il.smind > я андрею говорил
[09:57:42] <il.smind > но у меня почему то баг пропал и теперь не повторяется
[10:02:48] <slavazanko/w> Кстати, насчёт VDS: что-то 48 часов истекли как-то незаметно...
[10:23:45] <slavazanko/w> по №68. Я там не понимаю, что происходит. Копирую по ssh большой файл. Отменяю копирование. В строке подсказок вижу fish: (CTRL-G break) transfered: ...
жмакаю ctrl+g, но нуль по фазе. как шла передача, так и идёт. До полного конца
[10:25:24] <il.smind > еще жми
[10:25:29] <il.smind > несколько раз
[10:25:47] <andrew_b> Зачем несколько?
[10:26:05] <slavazanko/w> пипец. из mc вышло
[10:41:38] <slavazanko/w> il.smind : http://midnight-commander.org/ticket/2495
[10:54:54] <il.smind > andrew_b> Зачем несколько?
цикл очень шустро бежит
[10:55:09] <il.smind > не успевает обработать нажатие
[10:55:20] <andrew_b> И чо? Должно успевать.
[10:55:29] <andrew_b> Что значит не успевает?
[10:55:35] <il.smind > незнаю
[10:55:42] <andrew_b> Плохо.
[10:55:43] <il.smind > не отрабатывает и всё
[10:56:10] <il.smind > andrew_b: после нескольких нажатий пролезает прерывание
[10:56:18] <slavazanko/w> народ будет бояться прерывать, ибо из mc потом тихо и без подтверждения вылетает
[10:56:35] <il.smind > slavazanko/w: вот это надо запретить
[10:56:52] <il.smind > не понимаю почему в панелях по ctrl-g мц закрывается
[10:56:58] <andrew_b> Кстати да.
[10:57:01] <andrew_b> Странно.
[10:57:25] <il.smind > но сейчас значительно лучше чем снять задачу по kill
[10:57:47] <il.smind > и потом на сервере еще остается висящий процесс
[10:58:22] <slavazanko/w> #1876
[10:59:36] <il.smind > slavazanko/w: не...
[10:59:49] <slavazanko/w> ?
[10:59:50] <andrew_b> slavazanko/w: Ну... ctrl-g появилось, потому что кое-кто хочет использовать ctrl-c для копирования.
[11:00:00] <il.smind > не
[11:00:05] <andrew_b> Чо не?
[11:00:12] <andrew_b> Не на, а да.
[11:00:13] <slavazanko/w> тогда прерывание копирования не по ctrl-g надо
[11:00:21] <andrew_b> slavazanko/w: не.
[11:00:39] <il.smind > то что какая разница на чем
[11:00:49] <andrew_b> Сейчас корме как по SIGINT прервать нельзя.
[11:00:51] <il.smind > на C-c или C-g
[11:01:05] <il.smind > не должно онно в панелях завершаться
[11:01:09] <andrew_b> А SIGINT повешен на c-g при иниуиализации.
[11:01:33] <il.smind > да но если диалог открыт то оно не завершается
[11:01:43] <il.smind > так же и с панелями должно быть
[11:01:51] <il.smind > не должно завершаться
[11:02:18] <il.smind > а...
[11:02:20] <il.smind > стоп
[11:02:25] <il.smind > оно и не завершается
[11:02:34] <il.smind > slavazanko/w: запусти редактор
[11:02:44] <slavazanko/w> дело в том, что копирование потом идёт без диалога.
А нажимая хренадцать раз ctrl-g я забиваю буфер клавиатуры.. и потом оно отрабатывает
[11:03:14] <il.smind > введи пару букв и нажми C-g
[11:03:19] <slavazanko/w> вот если бя я нажал один раз ctrl-g и оно сразу бы прервалось (или написало бы мне в статусе. что нажатие обработано. ждите завершения текущего блока копирования)
[11:03:26] <slavazanko/w> то было бы другое дело
[11:04:00] <il.smind > slavazanko/w: в том то и дело что не обработано так как не поймалось
[11:04:21] <il.smind > slavazanko/w: я не думаю что есть более хороший способ
[11:04:42] <slavazanko/w> SIGHUP? типа, обрыв канала
[11:04:46] <slavazanko/w> должно тоже сработать
[11:04:55] <il.smind > slavazanko/w: так нельзя
[11:05:02] <slavazanko/w> почему?
[11:05:06] <il.smind > иначе на сервере останется процесс
[11:05:13] <il.smind > который ждет данный
[11:05:17] <il.smind > который ждет данных
[11:07:29] <il.smind > чтобы ctr-g не закрывал панели надо убрать его из хоткеев
[11:07:31] <slavazanko/w> ну... вешаешь по sighup обработчик. который дёрнет событие "core", "signal.SIGHUP"
перед началом копирования вешаешь на это событие свой обработчик. который не прерывает копирование текущей порции данных, а просто выставляет флаг о прерванном копировании. Перед чтением следующей порции данных проверяется этот флаг. Если он стоит - гуд бай. Сервак не ждёт. ибо он полностью докопировал предыдущую порцию.
После окончания копирования снимаешь обработчик с события
[11:08:05] <il.smind > это в теории а на практике?
[11:08:27] <andrew_b> Блин.
[11:08:44] <il.smind > slavazanko/w: там примерно так и делается
[11:08:46] <andrew_b> Я же говорю: все эти потуги зряшные.
[11:08:48] <il.smind > кстати
[11:08:59] <slavazanko/w> andrew_b: ?
[11:09:23] <il.smind > slavazanko/w: он думает что избавление от темпа что то изменит
[11:09:30] <il.smind > ничлена!
[11:09:31] <andrew_b> Изменит всё.
[11:09:44] <il.smind > не изменит
[11:09:51] <andrew_b> Не надо будет вошкаться с сигналом.
[11:10:04] <andrew_b> Всё будет прерываться естественным путём.
[11:10:05] <slavazanko/w> я думаю, что изменит. и в рамках переделки VFS можно поменять полностью нашу начинку на последнюю версию AVFS (какая она там?)
[11:10:32] <andrew_b> Я предлагаю на VFS не менять.
[11:10:55] <slavazanko/w> http://avf.sourceforge.net/
[11:10:59] <andrew_b> Там та же история с foo#bar
[11:11:21] <andrew_b> У нас всё началось именно с #bar.
[11:11:49] <andrew_b> Этот грёбаный суффикс.
[11:12:14] <il.smind > ))
[11:12:35] <il.smind > у нас проблема далеко не с суфиксом
[11:13:23] <andrew_b> Вот почему в панелях по ctrl-g выходит

1102 if (key == EV_NONE)
1103 {
1104 if (tty_got_interrupt ())
1105 dlg_execute_cmd (h, CK_DialogCancel);
1106
1107 return;
1108 }
[11:13:34] <il.smind > andrew_b: не правда
[11:13:43] <andrew_b> Что неправда?
[11:13:47] <il.smind > я опровергну вас
[11:15:06] <il.smind > я подтверждаю сказанное andrew_b
[11:15:11] <il.smind > всё правда
[11:15:41] <andrew_b> Ато. Ишьты.
[11:16:08] <il.smind > у нас еще в диалогах cancel прописан как ctrl-g
[11:16:52] <andrew_b> Это не страшно.
[11:17:24] <il.smind > я имею ввиду что если это убрать то по идее всё равно оно будет выходить (в теории)
[11:19:13] <il.smind > причём я заметил такую щещь
[11:19:27] iNode вышел из конференции
[11:19:45] <il.smind > чем больше размер буфера тем с большей вероятностью срабатывает ctrl-g
[11:20:11] <il.smind > при мегабайте у меня всегда срабатывало ctrl-g
[11:20:37] <il.smind > при 10к с 10-й попытке
[11:20:42] <il.smind > при 10к с 10-й попытки
[11:23:10] <andrew_b> Рассказываю.
Убираем темп.
Как будет копирование происходить? Считали порцию из файла. Педедали порцию на сервер. Считали порцию из файла. Передали порцию на сервер. На экране в это время висит диалог с прогрессом и кнопками. Одна из этих кнопок -- "Прервать". Нажимаем кнопку -- прерываем передачу. Всё. Никакие сигналы не нужны.
[11:24:49] <il.smind > andrew_b: всё так сейчас и есть
[11:25:01] <andrew_b> Нет.
[11:25:07] <il.smind > да!
[11:25:26] <il.smind > считали порцию - передали
[11:25:28] <andrew_b> Сейчас копируется на сервер из темпа весь файл.
[11:25:42] <il.smind > andrew_b> Сейчас копируется на сервер из темпа весь файл.
не в этом проблема
[11:25:48] <andrew_b> В этом.
[11:25:54] <il.smind > не спорь
[11:26:02] <il.smind > просто посмотри как сейчас
[11:26:06] <il.smind > в 68
[11:27:02] <il.smind > сигналы нужны чтобы прервать в процессе "Передали порцию на сервер."
[11:27:42] <andrew_b> Потому что другого способа нет.
[11:28:08] <andrew_b> А другой способ -- это диалог копирования.
[11:28:16] <il.smind > ээх
[11:28:37] <il.smind > с нормальным протоколом да
[11:28:41] <il.smind > но не с FISH
[11:31:11] <andrew_b> Почему?
[11:36:22] <Зося Синицкая> RSS: Новости для Midnight Commander
• Ticket #2514 (Skip localized hints files installation when built with --disable-nls) updated
http://www.midnight-commander.org/ticket/2514#comment:2
[11:39:36] <il.smind > andrew_b: пoтому что он такой
[11:39:49] <andrew_b> 823387a7937e3cfc570ae955a7f5cf445f71bae9
[11:42:54] BanderOS зашёл в конференцию
[11:49:39] <il.smind > andrew_b: во первых я буду всё отрицать
[11:50:50] <il.smind > твоя ссылка ничего не доказывает
[11:51:10] <slavazanko/w> началось отрицание
[11:51:40] <il.smind > slavazanko/w: у тебя по 68
[11:51:49] <il.smind > есть предложения и тп?
[11:52:34] <il.smind > ты подписывать будешь?
[11:52:39] <slavazanko/w> есть. Сделать так. чтобы прерывания процесса копирования не вызывали прерывания всего приложения
[11:53:03] <il.smind > это не связанные между собой вещи
[11:53:28] <il.smind > если хочешь я уберу слово ctrl-g
[11:53:35] <il.smind > bp cjj,otybz ddth[e
[11:53:38] <il.smind > из сообщения вверху
[11:54:57] <slavazanko/w> > это не связанные между собой вещи
а простого юзверя это не будет волновать. он видит подсказку: хошь прервать копирование? жмакай контрол-жо. Юзверь жмакает. Ничего не происходит. первая мысль: наебали. Юзверь начинает истерично жмакать как из АК-47. И тут mc в благодарность вываливается в голый шелл без всяких запросов на выход. Юзверь сидит и пытается понять что произошло...
[11:55:31] <il.smind > хочешь я уберу подсказку?
[11:56:11] <slavazanko/w> а смысл тогда всей возни с 68? Или сейчас kill не надо запускать снаружи - жмакай ctrl-g много раз - и поюзай встроенный kill?
[11:56:23] <il.smind > смысл там большой
[11:56:52] <il.smind > там не остается висящих процессов на сервере это во первых
[11:57:06] <il.smind > во вторых сделана порционная передача
[11:57:23] <il.smind > она всё равно нужна
[11:57:41] <il.smind > в третьих починена передача файла размером 0
[11:58:08] <slavazanko/w> Илья. там внутрях может быть хоть всё переделано. Снаружи. со стороны дёргания рычагов, поведение машины смотрится весьма странно.
[11:58:23] <il.smind > и сделана попытка прерывания
[11:58:32] <slavazanko/w> ещё раз: что там внутри переделано пользователя не волнует.
[11:58:35] <il.smind > сейчас только убивать килом
[11:58:42] <il.smind > а будет по c-g
[11:59:14] <il.smind > когда будет убран темп там надо будет просто 2 строки убрать
[11:59:33] <slavazanko/w> шило на мыло. С небольшим улучшением ситуации. Это как занозу из сраки вытащить наполовину - вроде ведь полегчало...
[11:59:51] <il.smind > не шило на мыло
[12:00:03] <slavazanko/w> то есть. упираемся в temp?
[12:00:09] <il.smind > да
[12:00:35] <il.smind > но я точно знаю что в ближайший год темп никуда не денется и ждать его смысла нет
[12:00:39] <il.smind > кроме того
[12:00:46] <slavazanko/w> значит, 68 блокедбай 2361
[12:00:54] <andrew_b> il.smind : не две строки.
[12:01:01] <il.smind > даже если убрать темп всё равно надо будет делать то что я там сделал
[12:01:06] <il.smind > 2 строки
[12:01:06] <andrew_b> А полоностью переделать функции копирования.
[12:01:28] <il.smind > просто убрать tty_enable_
[12:01:40] <andrew_b> il.smind : ты не шаришь в VFS.
[12:01:48] <il.smind > не шарю
[12:02:01] <il.smind > но я знаю как работает копирование через рыбу
[12:02:06] <andrew_b> Аот и не говори, что две строки.
[12:02:19] <il.smind > 2 строки в этой процедуре
[12:02:30] <il.smind > они будут не нухны
[12:02:34] <andrew_b> Этой процедуры не будет.
[12:02:42] <il.smind > остальное там просто поддержка протокола
[12:02:46] <andrew_b> Будет другая, проще.
[12:02:57] <il.smind > другая будет такая же
[12:03:19] <andrew_b> Мне надоело спорить.
[12:03:27] <il.smind > там увязанного на прерывание 2 строки остальное реализация протокола
[12:04:14] <slavazanko/w> скачал я исходники AVFS
wget 'http://downloads.sourceforge.net/project/avf/avfs/0.9.9/avfs-0.9.9.tar.bz2?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Favf%2F&ts=1301303553&use_mirror=switch'
смотрю, чего там вкусного...
[12:06:06] <andrew_b> Про ctrl-g в панелях.

Было:

dlg_process_event (Dlg_head * h, int key, Gpm_Event * event)
{
if (key == EV_NONE)
{
if (tty_got_interrupt ())
key = XCTRL ('g');
else
return;
}

if (key == EV_MOUSE)
h->mouse_status = dlg_mouse_event (h, event);
else
dlg_key_event (h, key);
}


Стало

dlg_process_event (Dlg_head * h, int key, Gpm_Event * event)
{
if (key == EV_NONE)
{
if (tty_got_interrupt ())
dlg_execute_cmd (h, CK_Cancel);

return;
}

if (key == EV_MOUSE)
h->mouse_status = dlg_mouse_event (h, event);
else
dlg_key_event (h, key);
}
[12:08:39] <andrew_b> Можно дополнить условие:

if (tty_got_interrupt () && h != midnight_dlg)
dlg_execute_cmd (h, CK_Cancel);


но мне это не нравится.
[12:09:16] <il.smind > надо этот кусок просто убрать
[12:09:32] <il.smind > сделать как с ctrl-z
[12:09:40] <andrew_b> Либо надо запрещать сигнал. Это карсивее. Но пока не понятно, где.
[12:09:43] <slavazanko/w> надо вспомнить. зачем его добавляли
[12:09:54] <andrew_b> Кого его?
[12:10:03] <slavazanko/w> > надо этот кусок просто убрать
[12:10:09] <il.smind > да
[12:10:24] <andrew_b> Его добавляли не мы. Так было.
[12:10:40] <il.smind > надо сделать событие CK_Abort
[12:11:00] <il.smind > по аналогии с CK_Suspend
[12:11:27] <andrew_b> Аборт чего?
[12:12:27] <il.smind > это уже зависит от того куда обработчик сунешь
[12:12:41] <il.smind > по идее аборт всего
[12:12:50] <andrew_b> Что по этому событию предполагается делать?
[12:12:50] <il.smind > есть Cancel
[12:13:02] <il.smind > можно не Аборт
[12:13:20] <il.smind > просто доработать панельный обработчик
[12:13:21] <andrew_b> Есть cancel, есть quit.
[12:13:30] <andrew_b> Ещё и abort?
[12:13:40] <il.smind > ну вот по сути это кэнцел
[12:14:00] <il.smind > не обязательно делать Abort
[12:14:05] <il.smind > но как вариант
[12:14:15] BanderOS вышел из конференции
[12:20:36] <il.smind > только вот зачем в панелях надо закрывать по ctrl-g...
[12:20:56] <il.smind > закрытие без вопросов это f20
[12:21:09] <il.smind > shift-f10
[12:21:40] <il.smind > вот я и говорю может просто убить те строки
[12:21:41] <andrew_b> Раньше в диалог по прерыванию посылалось c-g. В панелях c-g не обрабатывалось.
[12:22:58] <andrew_b> Не надо убивать.
[12:24:45] <il.smind > ну а зачем оно?
[12:24:51] BanderOS зашёл в конференцию
[12:25:27] <andrew_b> Затем, что это может понадобиться в другом диалоге.
[12:25:50] <il.smind > ?
[12:26:00] <il.smind > есть f10
[12:26:34] <andrew_b> f10 не генерирует SIGINT.
[12:26:59] <il.smind > ну вот знач надо аборт
[12:27:12] <il.smind > а назначать его как надо
[12:27:21] <il.smind > кому ctrl-c
[12:27:28] <andrew_b> Не надо аборт.
[12:27:57] <il.smind > сам же сказал что тебе надо SIGINT
[12:29:22] <il.smind > я просто не очень понимаю зачем именно SIGINT
[12:29:44] <il.smind > можно же в обработчике что то такое сделать
[12:31:57] <andrew_b> SIGINT в tty_get_event() прерывает select().
[12:33:00] <il.smind > ну а почему это нельзя сделать по аналогии с саспендом?
[12:33:08] <andrew_b> Как?
[12:34:09] <il.smind > пусть оно в обработчике dialogs.c генерирует SIGINT
[12:34:25] <il.smind > если нажали нужное сочетание
[12:34:27] <andrew_b> Кто оно?
[12:34:45] <il.smind > оно "эмцо"
[12:34:56] <andrew_b> Оно не может.
[12:35:40] <il.smind > а почему по ctrl-z может?
[12:35:50] <il.smind > может засыпать
[12:36:42] <andrew_b> Есть tty_get_event().
[12:37:07] <andrew_b> Это функция, в которой получают события.
[12:38:04] <andrew_b> В ней есть вызов select(). Большую часть времени эмцо ничего не делает, а сидит в селекте и ждёт, пока в stdin что-то появится.
[12:38:26] <andrew_b> SIGINT select прерывает.
[12:38:41] <il.smind > да я вижу
[12:39:45] <andrew_b> А сtrl-z обрабатывается как обычный шорткат.
[12:39:52] <andrew_b> Он не генерит сигнал.
[12:44:39] <andrew_b> Я так думаю, надо в Dlg_head добавить поле keymaps, чтобы обрабатывались сначала специфические для диалога события, а потом общие для всех диалогов. Тогда для midnight_dlg можно будет переопределить CK_Cancel, чтобы он не закрывался.
[12:45:26] <andrew_b> Или нет. Проще.
[12:45:34] <il.smind > ?
[12:46:04] <il.smind > нельзя ли там прямо проверить нажатый хоткей
[12:46:06] <il.smind > ?
[12:46:16] <andrew_b> Нет.
[12:46:33] <andrew_b> Нет уже нажатого хоткея.
[12:46:38] <andrew_b> Есть сигнал.
[12:47:07] <il.smind > dlg_process_event (Dlg_head * h, int key, Gpm_Event * event)
[12:47:12] <il.smind > key
[12:47:31] <il.smind > а...
[12:47:42] <il.smind > и он равен EV_NONE
[12:47:45] <andrew_b> Да.
[12:48:50] <il.smind > dlg_process_event только из одного места вызывается
[12:49:03] <andrew_b> Нет.
[12:49:18] <il.smind > frontend_run_dlg
[12:49:45] <il.smind > ага вижу
[12:52:34] <andrew_b> Примерно так:

--- a/lib/widget/dialog.c
+++ b/lib/widget/dialog.c
@@ -1102,7 +1102,8 @@ dlg_process_event (Dlg_head * h, int key, Gpm_Event * event)
if (key == EV_NONE)
{
if (tty_got_interrupt ())
- dlg_execute_cmd (h, CK_Cancel);
+ if (h->callback (h, NULL, DLG_ACTION, CK_Cancel, NULL) != MGS_HANDLED)
+ dlg_execute_cmd (h, CK_Cancel);

return;
}
diff --git a/src/filemanager/midnight.c b/src/filemanager/midnight.c
index b4197a4..ee65331 100644
--- a/src/filemanager/midnight.c
+++ b/src/filemanager/midnight.c
@@ -1133,6 +1133,9 @@ midnight_execute_cmd (Widget * sender, unsigned long command)

switch (command)
{
+ case CK_Cancel:
+ /* don't close file panels */
+ break;
case CK_HotListAdd:
add2hotlist_cmd ();
break;
[12:56:19] <andrew_b> Заодно и ни редактор, ни вьювер по ctrl-g не закрываются.
[12:56:51] <andrew_b> Вьювер вообще сегфолтится. :)
[12:57:06] <andrew_b> Ну чо, есть повод для тикета.
[13:03:28] <il.smind > andrew_b: не сегфолтится вроде
[13:04:22] <andrew_b> Сегфолтится. Там к нулевому указателю идёт обращение.
[13:04:45] <andrew_b> Рисуйте тикет.
[13:05:17] <andrew_b> Сегфолтится с моим патчем, я имею в виду.
[13:12:00] <il.smind > andrew_b: а...
[13:12:20] <il.smind > тикет о незакрытии панелей по ctrl-g ?
[13:12:25] <andrew_b> Да.
[13:15:42] BanderOS вышел из конференции
[13:18:02] <il.smind > http://midnight-commander.org/ticket/2520
[13:21:28] <Зося Синицкая> RSS: Новости для Midnight Commander
• Ticket #2361 (VFS URI reimplementation) updated
http://www.midnight-commander.org/ticket/2361#comment:18
• Ticket #2520 (panel should not be closed by SIGINT (CTRL-G/CTRL-C)) created
http://www.midnight-commander.org/ticket/2520
[13:32:09] <Зося Синицкая> RSS: Новости для Midnight Commander
• Ticket #2520 (File panels should not be closed by SIGINT (CTRL-G)) created
http://www.midnight-commander.org/ticket/2520
• Ticket #2520 (File panels should not be closed by SIGINT (CTRL-G)) updated
http://www.midnight-commander.org/ticket/2520#comment:1
[13:32:50] <andrew_b> http://www.rsdn.ru/forum/humour/4210811.all.aspx
[13:58:52] <il.smind > andrew_b: плохая, негодная картинка
[13:59:45] <andrew_b> Мопед не мой.
[14:02:55] <il.smind > славик про терористов лучше картинку постил
[14:05:36] <andrew_b> il.smind : хэлп!
[14:06:13] <il.smind > andrew_b: ?
[14:06:29] <andrew_b> Ход завалило.
[14:09:39] <il.smind > готово
[14:12:13] <andrew_b> Неа.
[14:13:56] <il.smind > а так?
[14:15:25] <andrew_b> Неа.
[14:17:06] <il.smind > сейчас уже самую сильную магию применил
[14:18:08] <andrew_b> Прорвало.
[14:18:08] <il.smind > пробуй через 32 секунды
[14:18:12] <il.smind > ок
[14:18:13] <andrew_b> Я уже.
[14:24:59] <il.smind > не наблюдаю бранчей
[14:25:18] <andrew_b> Так я пока ничего и не делаю.
[14:26:39] <il.smind > просто я подумал что после 2520 нично не встанет между мной и 68
[14:27:20] <slavazanko/w> 2361
[14:33:44] <il.smind > я могу поставить подпись
[14:34:12] <il.smind > но это же нечестно
[14:36:01] <slavazanko/w> где подпись?
[14:36:56] <il.smind > да где угодно
[14:37:03] <il.smind > но я не шарю
[14:37:20] <il.smind > даже территиски
[14:37:27] <slavazanko/w> аналогично
[14:37:37] <andrew_b> slavazanko/w: 2361?
[14:37:54] <slavazanko/w> ну.. 68 от него зависит же?
[14:38:04] <andrew_b> Ты же сам в rework его перевёл.
[14:38:22] <il.smind > slavazanko/w> ну.. 68 от него зависит же?
68 зависит от 2520
[14:38:25] <slavazanko/w> да. Чтобы убить последнюю надежду Ильи
[14:38:43] <il.smind > от 2361 68 не зависит
[14:39:00] <andrew_b> slavazanko/w: в самом общем смысле да, зависит. Но в смысле того, что там сделано, не зависит.
[14:39:10] <slavazanko/w> гм. ну ок
[14:39:32] <andrew_b> slavazanko/w: есть специальный тикет про темп.
[14:39:52] <slavazanko/w> ок. Я пока 2361 вдумчиво перелопачиваю
[14:40:11] <andrew_b> У тебя есть DEV_new_vfs.
[14:40:23] <il.smind > а городские уже ФАР 3.0 выпускают
[14:41:36] <andrew_b> slavazanko/w: я тебе вчерась один тиет подкинул.
[14:41:47] <andrew_b> 169
[14:42:37] <slavazanko/w> видел
[14:43:36] <andrew_b> slavazanko/w: 68 blocked by 77.
[14:44:19] <slavazanko/w> о! оно
[14:51:42] <il.smind > andrew_b: зачем?
[14:51:58] <andrew_b> ?
[14:51:59] <il.smind > смысл какой?
[14:52:13] <andrew_b> Жить проще будет.
[14:52:28] <andrew_b> Там не сложно должно быть.
[14:52:40] <il.smind > жить будет реально проще после 68
[14:53:04] <il.smind > т.к. сейчас приходится снимать задачу
[14:53:17] <il.smind > и еще и на сервер лезть чтобы там убить
[14:53:56] <il.smind > а 77 это даже не дефект а доработака
[14:54:21] <andrew_b> Я попробую на днях поработать с 77.
[15:00:56] <andrew_b> il.smind : скажи, зачем прерывать передачу порции данных? Почему нельзя передать всю?
[15:08:35] <il.smind > только в передаче порции нормально прерывается
[15:08:50] <il.smind > в других местах вообще не отрабытывает
[15:09:03] <il.smind > т.к. очень мало оно там находится
[15:09:07] <andrew_b> Ответь на вопрос.
[15:09:12] <il.smind > я ответил
[15:09:24] <andrew_b> зачем прерывать передачу порции данных? Почему нельзя передать всю?
[15:09:35] <il.smind > не отрабатывает прерывание в других местах
[15:10:00] <il.smind > но я и передаю всю порцию
[15:10:09] <il.smind > отлавливаю прерывание
[15:10:13] <andrew_b> Если не будет темпа, то нельзя будет прервать передачу в момент самой передачи. Только между.
[15:10:18] <il.smind > и доотправляю остаток
[15:10:37] <andrew_b> Нельзя -- не нужно.
[15:11:16] <il.smind > >Если не будет темпа, то нельзя будет прервать передачу в момент самой передачи. Только между.
но в любом случае надо досылать байтики иначе серверная часть в ступор впадёт
[15:11:24] <il.smind > если что то не так пойдёт
[15:12:44] <andrew_b> Как не так?
[15:12:49] <il.smind > чтобы реализовать "Если не будет темпа, то нельзя будет прервать передачу в момент самой передачи. Только между." достаточно 5 строк удалить
[15:13:25] <il.smind > останется только порционная отправка
[15:13:34] <il.smind > без возможности прерывать
[15:13:39] <il.smind > как не так...
[15:13:44] <il.smind > надо подумать
[15:14:33] <andrew_b> Порции к тебе уже будут приходить готовые. Сам ты ничего нарезать не будешь. Твоё дело оправить, что тебе дали, и дождаться ответа.
[15:14:44] <andrew_b> Всё.
[15:14:56] <il.smind > тут не совсем согласен
[15:15:07] <il.smind > я могу и присланное поделить
[15:15:30] <il.smind > это я видел примерно так
[15:15:33] <andrew_b> Это второй вопрос.
[15:15:38] <il.smind > есть настройки FISH
[15:15:53] <il.smind > они недолжны влиять на систему
[15:16:23] <il.smind > ты же не будешь специально под рыбу переделывать глобальную функцию копирования
[15:16:27] <andrew_b> Будет буфер и его длина. Как ты этот буфер будешь делить -- это второй вопрос. Но буфер большим не будет. Делить будет неччего.
[15:16:47] <il.smind > для кого то и мегабайт много
[15:17:04] <il.smind > нешто буфер будет меньше мега?
[15:17:05] <slavazanko/w> при стандартном копировании буфер вроде 8к
[15:17:20] <il.smind > 8 к маловато
[15:17:21] <andrew_b> Кстати, это идея. VFS может сообщать, какой буфер она хочет.
[15:17:31] <slavazanko/w> да
[15:18:10] <andrew_b> Только вместе с рыбой надо будет переделать и ftp. А в ней я не шарю.
[15:18:32] <il.smind > andrew_b: я думаю там несложно
[15:18:38] <andrew_b> Всё. Я ушёл. А то на паровоз опоздаю.
[15:18:47] andrew_b вышел из конференции
[16:01:43] <Зося Синицкая> RSS: Новости для Midnight Commander
• Ticket #2521 (incorrect panel size after panel split) created
http://www.midnight-commander.org/ticket/2521
• Ticket #2521 (incorrect panel size after panel split) updated
http://www.midnight-commander.org/ticket/2521#comment:1
[17:22:37] andrew_b зашёл в конференцию
[17:30:28] <andrew_b> il.smind : от ить выкрутился с размерами панелей..
[17:31:59] il.smind зашёл в конференцию
[17:32:20] <il.smind > andrew_b: я не выкручивался
[17:32:33] <il.smind > просто хочу это обдумать и сделать
[18:20:26] slavazanko/h зашёл в конференцию
[19:08:07] il.smind вышел из конференции
[19:10:40] il.smind зашёл в конференцию
[19:54:23] BanderOS зашёл в конференцию
[20:19:37] BanderOS вышел из конференции
[20:20:55] BanderOS зашёл в конференцию
[20:36:41] andrew_b вышел из конференции
[21:00:24] <Зося Синицкая> RSS: Новости для Midnight Commander
• Ticket #2522 (PanelSmartGotoParentDir action should not trigger while PanelStartSearch …) created
http://www.midnight-commander.org/ticket/2522
• Ticket #2522 (PanelSmartGotoParentDir action should not trigger while PanelStartSearch …) updated
http://www.midnight-commander.org/ticket/2522#comment:1
[21:41:35] il.smind вышел из конференции
[21:45:55] BanderOS вышел из конференции
[21:50:50] slavazanko/h вышел из конференции
[21:51:51] slavazanko/h зашёл в конференцию
[23:12:06] slavazanko/h вышел из конференции
[23:13:45] slavazanko/h зашёл в конференцию
[23:42:36] il.smind вышел из конференции
[23:55:27] slavazanko/h вышел из конференции
[23:55:40] slavazanko/h зашёл в конференцию
Powered by freQ Powered by Python Valid XHTML 1.0 Transitional Valid CSS!