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

Тема: http://www.midnight-commander.org | Latest release: 4.8.3 | Latest stable release: 4.8.1.3
[01:25:39] slavazanko/h вышел из конференции
[06:12:25] andrew_b зашёл в конференцию
[07:05:55] iliamaslakov вышел из конференции: Replaced by new connection
[07:05:56] iliamaslakov зашёл в конференцию
[07:11:32] <iliamaslakov> Привет всем!
[07:22:46] <andrew_b> Шолом!
[07:29:22] <iliamaslakov> спасибо я поел уже
[07:30:25] <andrew_b> Приятного переваривания!
[07:31:28] <iliamaslakov> спасибо
[07:31:47] <iliamaslakov> ты про проверку вчера так и не сказал
[07:31:55] <iliamaslakov> оно у тебя проверяет?
[07:32:27] <andrew_b> Что удивительно.
[08:16:09] <iliamaslakov> т.е. всё круто?
[08:16:29] <andrew_b> Ну... Почти.
[08:17:23] <iliamaslakov> ?
[08:17:36] <iliamaslakov> вечно ты чем то не доволен... :)
[08:17:54] <iliamaslakov> говори
[08:18:12] <iliamaslakov> Любой каприз, всё для Вас!
[08:18:14] <andrew_b> Код надо подрихтовать.
[08:18:26] <andrew_b> Диалоги надо подрихтовать.
[08:18:27] <iliamaslakov> а, да, много надо рихтовать
[08:18:35] <iliamaslakov> диалоги?
[08:18:46] <andrew_b> Кстати, а ты пробовал открывать несколько редакторов?
[08:18:57] <iliamaslakov> нет
[08:18:59] <iliamaslakov> ща
[08:19:16] <andrew_b> Что-то мне подсказывает, что там не всё будет хорошо.
[08:19:39] <andrew_b> Открой один, открой второй, закрой первый, закрой второй.
[08:21:20] <iliamaslakov> что будет?
[08:21:27] <iliamaslakov> дабл фри?
[08:21:45] <iliamaslakov> по идее не должно
[08:21:47] <andrew_b> Ну типа того.
[08:22:03] <iliamaslakov> у меня главный модуль прописан в мэйне
[08:22:24] <iliamaslakov> и создаётся при запуске
[08:22:35] <andrew_b> Убери его отттуда.
[08:22:41] <iliamaslakov> ща посмотрю чтобы на null проверка была
[08:23:30] <iliamaslakov> я наоборот думал над инициализацией аспела при запуске
[08:23:41] <andrew_b> Нет.
[08:23:43] <iliamaslakov> не редактора а
[08:23:54] <iliamaslakov> тогда меньше было бы проблем
[08:24:13] <iliamaslakov> andrew_b: Нет.
поясни
[08:24:29] <andrew_b> Во-первых, --without-edit.
Во-вторых, [ ] Встроенный редактор
[08:24:38] <iliamaslakov> смотри... проверяем есть ли встроенный редактор в опциях
[08:24:57] <iliamaslakov> если всё совпало то инитим при запуске
[08:25:06] <iliamaslakov> mc
[08:25:26] <iliamaslakov> если галка не стоит то вообще не инитим
[08:26:22] <iliamaslakov> иначе я не представляю как обойти "Открой один, открой второй, закрой первый, закрой второй."
[08:26:45] <andrew_b> refcount
[08:27:18] <iliamaslakov> гугль refcount
[08:27:28] <iliamaslakov> гугл refcount
[08:27:32] <Зося_Синицкая> iliamaslakov: Reference counting - Wikipedia, the free encyclopedia
OOPSLA 2001. pp. 367--380. doi:10.1145/504282.504309. http://www.cs. technion.ac.il/~erez/Papers/«refcount».ps. ^ Yossi Levanoni, Erez Petrank (2006).
http://en.wikipedia.org/wiki/Reference_counting
[08:27:35] <andrew_b> Заверни все указатели на функции в структуру и добавь туда reference counter
[08:28:16] <iliamaslakov> понимаешь, будет тогда N указателей
[08:28:20] <iliamaslakov> а зачем
[08:28:35] <iliamaslakov> одного экземпляра за глаза
[08:29:15] <andrew_b> Да нет.
[08:29:27] <iliamaslakov> зачем на каждый редактор по экземпляру спеллера?
[08:29:40] <andrew_b> Блин.
[08:29:43] <iliamaslakov> ??
[08:29:50] <andrew_b> Да он один будет.
[08:29:52] <iliamaslakov> а...
[08:30:03] <iliamaslakov> деинитить при счётчике 0
[08:30:06] <iliamaslakov> да?
[08:30:28] <andrew_b> Инитить при счётчике 0.
[08:30:44] <iliamaslakov> тогда достаточно завести счётчик
[08:31:14] <andrew_b> Не надо кучи несвязанных переменных. Сделай один объект.
[08:31:53] <andrew_b> Поля-указатели на функции и поле-счётчик.
[08:32:02] <andrew_b> Структура.
[08:32:10] <andrew_b> Одна переменная.
[08:32:29] <andrew_b> Можно туда же поле-спеллер.
[08:33:15] <iliamaslakov> это тебе просто
[08:33:27] <andrew_b> http://ru.wikipedia.org/wiki/Подсчёт_ссылок
[08:34:13] <iliamaslakov> а для меня это звучит как - наваяй побырику атомный реактор на быстрых протонах
[08:34:30] <iliamaslakov> нейтронах я имел ввиду
[08:34:41] <andrew_b> Сколько ты уже пишешь на Си? Пора бы уже научиться.
[08:35:07] <iliamaslakov> не помогает
[08:35:13] <iliamaslakov> я пробовал
[08:35:37] <iliamaslakov> кому то посчастливилось а кому то нет
[08:35:42] <iliamaslakov> так бывает
[08:36:09] <iliamaslakov> я сделаю
[08:47:15] <iliamaslakov> по дизайну
[08:47:25] <iliamaslakov> ты сказал там что то править
[08:47:33] <iliamaslakov> а что именно?
[08:48:39] <andrew_b> Ты сам понял, что спросил?
[08:49:03] <iliamaslakov> >[10:18:26] andrew_b: Диалоги надо подрихтовать.
уточни что именно
[08:49:13] <andrew_b> Внешний вид.
[08:49:16] <iliamaslakov> ??
[08:49:30] <iliamaslakov> я думал код тебя расстроил
[08:49:42] <andrew_b> Код я ещё не смотрел.
[08:49:47] <iliamaslakov> а что тебе во внешнем виде не понравилось?
[08:50:08] <andrew_b> Ну, например, кнопки сбоку.
[08:50:19] <iliamaslakov> а что с ними не та?
[08:50:20] <andrew_b> Везде кнопки внизу.
[08:50:28] <iliamaslakov> нет
[08:50:34] <andrew_b> Везде.
[08:51:18] <iliamaslakov> кнопки там где во всех программах, кнопки проверки синтаксиса
[08:51:28] <iliamaslakov> орфографии
[08:51:35] <iliamaslakov> не синтаксиса
[08:51:40] <andrew_b> Диалог выбора языка.
[08:51:51] <iliamaslakov> а с ним что не так?
[08:52:02] <andrew_b> Почему не сделать такой же, как и выбор кодировки, например.
[08:52:12] <iliamaslakov> именно такой у меня и есть
[08:52:25] <iliamaslakov> один в один
[08:58:11] <andrew_b> editor/.libs/libedit.a(libedit_la-editcmd.o): In function `edit_spellcheck_file':
src/editor/editcmd.c:3632: undefined reference to `edit_suggest_current_word'
collect2: ld returned 1 exit status
[08:58:20] <andrew_b> Подпушил?
[08:58:45] <andrew_b> Чуть выше:
src/editor/editcmd.c: In function 'edit_spellcheck_file':
src/editor/editcmd.c:3632: warning: implicit declaration of function 'edit_suggest_current_word'
[09:00:29] <iliamaslakov> хидер забыл поправить?
[09:00:33] <andrew_b> ХЗ.
[09:01:55] <iliamaslakov> andrew_b: Подпушил?
последнее это
commit 6df0a96eb3918dba3a90c5daf3b4537d8ad720ef
Author: Ilia Maslakov <il.smind@gmail.com>
Date: Fri May 4 20:26:04 2012 +0400

fix

Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
[09:02:45] <andrew_b> Вчера собиралось, сегодня нет.
[09:03:08] <iliamaslakov> у меня никаких
editor/.libs/libedit.a(libedit_la-editcmd.o): In function `edit_spellcheck_file':
src/editor/editcmd.c:3632: undefined reference to `edit_suggest_current_word'
collect2: ld returned 1 exit status
[09:03:11] <iliamaslakov> нету
[09:04:06] <iliamaslakov> #ifdef HAVE_ASPELL
[09:04:23] <iliamaslakov> ясно, ща поправлю чтоб не ругалось
[09:04:39] <andrew_b> Убери aspell из опций конфигуре.
[09:04:48] <andrew_b> И собери.
[09:04:51] <iliamaslakov> я что то не додумался проверить без HAVE_ASPELL
[09:04:56] <iliamaslakov> дада
[09:05:01] <iliamaslakov> я уже понял
[09:14:24] <andrew_b> SpellCheckCurrentWord = ctrl-p
[09:14:31] <andrew_b> В дефолтах не прописан.
[09:15:16] <andrew_b> И вроде в меню не отобразается.
[09:15:37] <andrew_b> Шорткат C-p в меню есть?
[09:18:06] <andrew_b> Нету.
[09:19:35] <andrew_b> [10:52]<iliamaslakov> именно такой у меня и есть
[10:52]<iliamaslakov> один в один
Наглая ложь. Диалог "Select language" ни разу не похож на "Choose codepage".
[09:21:05] <iliamaslakov> да как же так
[09:21:16] <iliamaslakov> я подпушил
[09:21:18] <andrew_b> И это, пихать проверяемо слово в заголовок плохая идея.
[09:21:22] <iliamaslakov> #ifdef HAVE_ASPELL
[09:22:02] <andrew_b> Скриншот прказать?
[09:22:14] <iliamaslakov> andrew_b: И это, пихать проверяемо слово в заголовок плохая идея.
это я могу
[09:24:54] <iliamaslakov> давай
[09:26:08] <andrew_b> Что?
[09:28:17] <iliamaslakov> andrew_b: Скриншот прказать?
iliamaslakov: давай
andrew_b: Что?
[09:28:27] <iliamaslakov> скриншот
[09:29:42] <andrew_b> Куда покласть?
[09:30:13] <iliamaslakov> funkimg или как его
[09:30:31] <iliamaslakov> http://funkyimg.com/
[09:31:39] <iliamaslakov> >"Select language" ни разу не похож на "Choose codepage".
чтобы похож стал надо "Choose language" ?
[09:31:52] <andrew_b> http://funkyimg.com/u2/1648/506/294200dlg1.png
http://funkyimg.com/u2/1648/505/929775dlg2.png
[09:32:35] <iliamaslakov> НИПОНЯЛ
[09:32:43] <iliamaslakov> а почему они такие разные?
[09:33:04] <andrew_b> Ты аффтар, тебе виднее.
[09:33:10] <iliamaslakov> нет
[09:33:17] <iliamaslakov> у меня то одинаковые
[09:33:28] <iliamaslakov> оба синие
[09:33:48] <iliamaslakov> ок, посмотрю что за параметры в диалогах
[09:34:32] <andrew_b> 738 lang_dlg = create_dlg (TRUE, ypos, xpos, lang_dlg_h, lang_dlg_w,
739 dialog_colors, NULL, "[ASpell]", _("Select language"), DLG_COMPACT);
[09:34:40] <andrew_b> Ничего странного.
[09:34:48] <andrew_b> Только зачем это всё?
[09:37:17] <andrew_b> Сделай как в exec_edit_syntax_dialog.
[09:37:35] <andrew_b> edit_syntax_dialog
[09:58:56] <iliamaslakov> ок
[10:05:18] <Зося_Синицкая> RSS: Новости для Midnight Commander
• Ticket #2802 (very slow uzip) created
http://www.midnight-commander.org/ticket/2802
[11:00:18] <iliamaslakov> ничо не понял на счёт 2802, почему ты его отправил в #2 ?
[11:00:54] <andrew_b> Ошибся.
[11:01:00] <andrew_b> 3
[11:05:25] <iliamaslakov> а...
[11:05:36] <Зося_Синицкая> RSS: Новости для Midnight Commander
• Ticket #2802 (very slow uzip) closed
http://www.midnight-commander.org/ticket/2802#comment:1
• Ticket #2802 (very slow uzip) updated
http://www.midnight-commander.org/ticket/2802#comment:2
[11:06:00] <iliamaslakov> andrew_b, скажи, а как функцию вызывать?
[11:06:21] <iliamaslakov> spell->aspel_init (); ?
[11:07:15] <andrew_b> eue
[11:07:19] <andrew_b> угу
[11:55:34] BanderOS зашёл в конференцию
[12:01:31] BanderOS вышел из конференции
[12:02:15] BanderOS зашёл в конференцию
[12:07:55] BanderOS вышел из конференции
[12:11:29] BanderOS зашёл в конференцию
[12:44:25] <iliamaslakov> andrew_b, а почему счётчик будет 0 при инициализации?
[12:44:50] <andrew_b> А сколько?
[12:44:58] <iliamaslakov> неопределён
[12:45:09] <iliamaslakov> допустим 437598347958743
[12:45:16] <andrew_b> Нельзя.
[12:45:24] <iliamaslakov> нет
[12:45:36] <iliamaslakov> я его еще не проинициализировал
[12:46:02] <iliamaslakov> он имеет право
[12:46:15] <iliamaslakov> а захочет будет -1
[12:46:37] <iliamaslakov> как я пойму что счетчик равен 0
[12:46:57] <andrew_b> Проинициализировать надо.
[12:55:04] <iliamaslakov> вот и спрашиваю как
[12:55:15] <iliamaslakov> у нас есть местечки
[12:55:50] <iliamaslakov> но они сами не могут инитить, т.к. в них неопределённость
[12:56:18] <iliamaslakov> т.е. счетчик должен быть проиничен при запуске mc, так?
[12:56:35] <andrew_b> Нет.
[12:57:23] <iliamaslakov> не понимаю
[12:58:37] <iliamaslakov> внутри mcedit счетчик является абсолютной величиной, и невозможно определить он уже проинициализирован или нет
[12:59:02] <andrew_b> Инициализация должра быть при первом запуске редактора.
[12:59:22] <iliamaslakov> мы не можем этого знать внутри редактора
[12:59:40] <iliamaslakov> сам редактор определить это может по счётчику
[12:59:50] <iliamaslakov> а счётчик не инициализирован
[13:01:51] <iliamaslakov> я какую то глупость говорю?
[13:09:22] <iliamaslakov> andrew_b, !
[13:09:29] <iliamaslakov> Вы где?
[13:11:50] <andrew_b> Ща.
[13:14:55] <iliamaslakov> неужели ты знаешь выход из безвыходной ситуации?
[13:16:03] <andrew_b> Запускаем мц. Глобально объекта, в котором собрано всё, что касается аспелл, ещё нет.
Запускаем редактор первый раз. Создаём этот объект. Инициализируем его. Увеличиваем счётчик.
Запускаем новый редактор. Если объект уже создан, поэтому просто увеличиваем счётчик.
Выходим из редактора. Уменьшаем счётчик. Если счётчик обнуляется, делаем деинициализацию. Можем деинициализировать объект, можем оставить его висеть в памяти.
[13:16:44] <andrew_b> Последнее предлодение: Можем удалить объект, можем оставить его висеть в памяти.
[13:17:22] <iliamaslakov> >Запускаем редактор первый раз.
это непонятно, остальное понятно
[13:17:31] <andrew_b> Чё непонятно-то?
[13:17:51] <iliamaslakov> конкрено словосочетание "первый раз"
[13:18:09] <iliamaslakov> где написано что первый раз?
[13:18:18] <andrew_b> == NULL
[13:18:26] <iliamaslakov> что именно NULL
[13:18:44] <andrew_b> Переменная mc_aspell_handler.
[13:18:59] <andrew_b> Или как она там у тебя называется.
[13:19:01] <iliamaslakov> она определена где?
[13:19:17] <andrew_b> Это глобальная переменная.
[13:19:33] <iliamaslakov> ты сказал её убрать надо в редактор
[13:20:49] <andrew_b> Я имел ввиду файлы редактора. Перенести из src/main.[ch] в куда-нибудь в src/editor/
[13:21:34] <andrew_b> Чтобы эту переменную было видно только в редакторе.
[13:29:24] <iliamaslakov> тогда если она видна только в редакторе
[13:29:42] <iliamaslakov> как же ее проинитить
[13:30:03] <iliamaslakov> я же должен сделать mc_aspell_handler = NULL
[13:31:25] <andrew_b> 111 #if HAVE_ASPELL
- 112 spell_t *main_spell;
+ 112 spell_t *main_spell = NULL;
113 #endif
[13:32:03] <iliamaslakov> ок
[14:00:36] andrew_b вышел из конференции
[14:27:04] slavazanko/w вышел из конференции
[14:43:54] BanderOS вышел из конференции
[14:55:36] BanderOS зашёл в конференцию
[15:11:12] BanderOS вышел из конференции
[16:03:32] andrew_b зашёл в конференцию
[16:08:06] <iliamaslakov> почему то у меня
refcounter [150991848]
[16:08:26] <iliamaslakov> ну и memory corruption (fast): 0x08fff3f1
[16:13:52] <iliamaslakov> andrew_b, ты в 2788 ничего не подпушивал?
[16:14:00] <andrew_b> Нет.
[16:14:01] <iliamaslakov> могу я мощно запушить?
[16:14:16] <iliamaslakov> ок
[16:14:21] <andrew_b> Да сколько угодно.
[16:50:54] <iliamaslakov> andrew_b, сделал я счестчик
[16:51:00] <iliamaslakov> счетчик
[16:52:37] <iliamaslakov> глянешь?
[17:11:10] <andrew_b> http://img13.nnm.ru/1/c/8/1/d/c7f8a2946210f209c65aa92e288.jpg
[17:16:26] <andrew_b> 3603 for (;;)
3604 {
3605 for (;;)
3606 {
3607 int c1, c2;
3608
3609 if (edit->curs1 >= edit->last_byte)
3610 return;
3611 c1 = edit_get_byte (edit, edit->curs1);
3612 edit_cursor_move (edit, 1);
3613 c2 = edit_get_byte (edit, edit->curs1);
3614
3615 if (is_break_char (c1) != is_break_char (c2))
3616 break;
3617 }
3618 if (edit_suggest_current_word (edit) == B_CANCEL)
3619 return;
3620 }
[17:16:36] <andrew_b> Это, конечно, гм...
[17:22:46] <iliamaslakov> ?
[17:23:39] <andrew_b> Зачем, интересно, есть такие вещи как
while() {}
do {} while
[17:24:07] <iliamaslakov> суть не изменится,
[17:24:14] <iliamaslakov> будет while() {}
[17:24:23] <iliamaslakov> мне всё равно
[17:25:17] <andrew_b> 3604 do
3605 {
3606 while (edit->curs1 < edit->last_byte)
3607 {
3608 int c1, c2;
3609
3610 c1 = edit_get_byte (edit, edit->curs1);
3611 edit_cursor_move (edit, 1);
3612 c2 = edit_get_byte (edit, edit->curs1);
3613
3614 if (is_break_char (c1) != is_break_char (c2))
3615 break;
3616 }
3617 }
3618 while (edit_suggest_current_word (edit) != B_CANCEL);
[17:25:37] <iliamaslakov> да так красивеее
[17:25:44] <iliamaslakov> согласен
[17:25:51] <andrew_b> Хотя...
[17:25:57] <andrew_b> 3609 if (edit->curs1 >= edit->last_byte)
3610 return;
[17:26:09] <iliamaslakov> кстати
[17:27:14] <andrew_b> 254 aspell->refcounter = 0;
255 mc_log ("!!!refcounter [%i]\n", aspell->refcounter);
256 if (aspell == NULL)
257 goto done;
[17:27:20] <andrew_b> Прально, чо.
[17:27:34] <iliamaslakov> andrew_b: Прально, чо.
[17:27:36] <iliamaslakov> да
[17:27:56] <iliamaslakov> /** return NULL on fail */
[17:28:11] <iliamaslakov> а...
[17:28:12] <andrew_b> 254 aspell->refcounter = 0;
256 if (aspell == NULL)
[17:28:15] <iliamaslakov> сорь
[17:28:19] <iliamaslakov> я понял
[17:28:37] <iliamaslakov> исправил
[17:28:39] <andrew_b> 287 aspell_clean (spell_t *aspell)

295 main_spell = NULL;
[17:28:45] <iliamaslakov> да
[17:28:49] <iliamaslakov> мне стыдно
[17:29:02] <iliamaslakov> но так меньше знаков *
[17:29:19] <andrew_b> 360 array = NULL;
[17:30:00] <andrew_b> 437 int
438 aspell_suggest (spell_t * aspell, GArray * suggest, const char *word, const int word_size)

451 unsigned int size;

465 return size;
[17:31:03] <iliamaslakov> предлагаешь так сделать
287 void
288 aspell_clean (spell_t **aspell)
289 {
290 spell_t *tmpspell = **aspell;
291 if (tmpspell != NULL && tmpspell->refcounter < 1)
292 {
293 mc_log ("aspell_clean!!\n");
294 mc_delete_aspell_speller (tmpspell->speller);
295 g_free (tmpspell);
296 tmpspell = NULL;
297 }
298 else
299 {
300 tmpspell->refcounter--;
301 mc_log ("tmpspell->refcounter-- [%i]\n", tmpspell->refcounter);
302 }
303 }
?
[17:31:09] <andrew_b> 127 spell_available (void)
Почему часть return FALSE; в скобках, а часть нет?
[17:31:48] <iliamaslakov> mc_log вычистил а скобок упустил
[17:33:26] <andrew_b> Зачем вообще аргумент в spell_t во всех этих функциях?
[17:33:55] <andrew_b> Ты собираешься использовать несколько хэндлеров одновременно?
[17:33:56] <iliamaslakov> потому что изначально хотел передавать
[17:34:18] <iliamaslakov> а потом понял достаточно одной main_spell
[17:35:03] <andrew_b> Если она одна, пусть функции с ней и работают.
[17:35:21] <andrew_b> А снаружи её видно не будет.
[17:35:30] <iliamaslakov> ок
[17:36:11] <andrew_b> 28 #include <stdio.h>

похоже, не нужно.
[17:36:51] <iliamaslakov> jr
[17:36:54] <iliamaslakov> ок
[17:38:41] <andrew_b> В edit_suggest_current_word память утекает.
[17:39:08] <iliamaslakov> валгринд стуканул?
[17:39:27] <andrew_b> Глаза.
[17:39:40] <andrew_b> 3550 suggest = g_array_new (TRUE, FALSE, sizeof (char *));
[17:40:09] <iliamaslakov> а...
[17:40:24] <andrew_b> А удаляется ХЗ где.
[17:40:51] <iliamaslakov> aspell_array_clean
[17:40:55] <iliamaslakov> но я понял
[17:42:36] <iliamaslakov> добавил
3586 else
3587 g_array_free (suggest, TRUE);
[17:42:50] <iliamaslakov> неправильно добавил...
[17:43:38] <iliamaslakov> сделаю правильнее
[18:52:57] andrew_b вышел из конференции
[19:07:02] BanderOS зашёл в конференцию
[19:11:20] BanderOS вышел из конференции
[22:15:34] slavazanko/h зашёл в конференцию
[23:20:43] ASM вышел из конференции
Powered by freQ Powered by Python Valid XHTML 1.0 Transitional Valid CSS!