mc-dev
mc-dev@conference.jabber.ru
[05:22:47] BanderOS зашёл в конференцию
[05:30:32] BanderOS вышел из конференции
[05:34:33] BanderOS зашёл в конференцию
[05:35:06] BanderOS вышел из конференции
[05:38:51] BanderOS зашёл в конференцию
[05:39:22] BanderOS вышел из конференции
[06:05:04] BanderOS зашёл в конференцию
[06:05:42] BanderOS вышел из конференции
[06:17:00] andrew_b зашёл в конференцию
[06:27:09] BanderOS зашёл в конференцию
[06:29:01] BanderOS вышел из конференции
[07:12:24] iliamaslakov зашёл в конференцию
[07:50:55] ASM зашёл в конференцию
[08:12:30] <andrew_b> iliamaslakov: как крыша? На месте?
[08:17:44] slavazanko/w вышел из конференции
[08:20:47] iliamaslakov вышел из конференции
[08:37:52] crick.ru зашёл в конференцию
[08:38:19] <crick.ru> Доброе утро
[08:38:20] slavazanko/h вышел из конференции: Этого участника выгнали из комнаты за то, что он послал сообщение об ошибке другому участнику: service-unavailable
[08:38:52] <andrew_b> Привет.
[08:38:57] <crick.ru> andrew_b, извини за навязчивость, удалось посмотреть статическую линковку?
[08:39:13] <andrew_b> Вчера нет. Вот сейчас смотрю.
[08:39:39] <crick.ru> сенкью вери мени
[08:39:55] <crick.ru> с нетерпением жду результата
[08:40:16] <crick.ru> если все получится, то планирую оформить пакет с mc для проекта openwrt
[08:40:49] <crick.ru> я приглядываю за обновлением mc в openwrt
[08:41:02] <crick.ru> пару раз обновлял версии до актуальных
[08:41:22] <crick.ru> так что пользуются этим ...дцать тыс. человек
[08:58:40] slavazanko/w зашёл в конференцию
[09:02:34] <andrew_b> crick.ru: можешь глянуть, у тебя есть статическая библиотека gmodule?
[09:03:19] <crick.ru> смотреть могу только по вечерам, но с вероятностью 80% нет
[09:04:05] <andrew_b> А динамическая?
[09:05:07] <andrew_b> Solaris doesn't allow dynamic loading from a statically linked executable
[09:05:41] <andrew_b> Похоже, при статической сборке gmodule надо выключать.
[09:07:31] <crick.ru> так он раньше и не включался
[09:09:06] <andrew_b> Теперь немного иначе.
[09:09:26] <andrew_b> gmodule используется для загрузки aspell в редакторе.
[09:20:47] <crick.ru> фигово
[09:21:03] slavazanko/w вышел из конференции: Этого участника выгнали из комнаты за то, что он послал сообщение об ошибке другому участнику: remote-server-not-found
[09:21:12] slavazanko/w зашёл в конференцию
[09:21:19] <crick.ru> в openwrt aspell нафиг не нужен
[09:21:27] slavazanko/w вышел из конференции: Этого участника выгнали из комнаты за то, что он послал присутствие с ошибкой: remote-server-not-found
[09:21:41] <andrew_b> Вот его и не будет.
[09:21:57] <crick.ru> вот и чудненько
[09:22:42] <crick.ru> честно говоря, странноватая идея проверять орфографию в консольном редакторе
[09:26:07] slavazanko/w зашёл в конференцию
[09:28:36] <andrew_b> https://www.midnight-commander.org/changeset/232dc2dd0787949c4874e615a1aa2910550471d8
[09:30:09] <andrew_b> Это в первом приближении.
[09:30:58] <andrew_b> Для статической линковки надо бы ещё добавить pcre.
[10:58:07] slavazanko/w вышел из конференции
[10:58:11] slavazanko/w зашёл в конференцию
[11:00:50] <crick.ru> А до кучи бы еще и ncursesw статически слинковать, но это уже факультативно. Терроризировать вас этим не буду :)
[11:03:49] <andrew_b> Это https://www.midnight-commander.org/ticket/2148
[11:17:56] <slavazanko/w> andrew_b: по 2250_mcext_case_insense: слух, а что если и type сделать type/i ?
а то есть такое:
type/^([Zz][Ii][Pp])\ archive
[11:18:18] <slavazanko/w> я могу сделать
[11:18:55] <andrew_b> То есть, ткбя устраивает модификатор /i ?
[11:19:08] <slavazanko/w> да, вполне
[11:20:04] <slavazanko/w> я уже начал делать
[11:20:45] <andrew_b> type/^([Zz][Ii][Pp])\ archive это единственный случай.
[11:21:00] <andrew_b> Все остальные type зависимые от регистра.
[11:21:20] <andrew_b> Ладно, делай.
[11:21:22] <slavazanko/w> я бы добавил. Чтобы наравне с остальными вариантами
[11:21:24] <slavazanko/w> ок
[11:23:08] <andrew_b> Посмотри 2129_glib_static. Может, тебе повезёт и всё слинкуется.
[11:23:25] <slavazanko/w> ок, после 2250 гляну
[11:39:45] <slavazanko/w> подпушил 2250
[11:40:58] <andrew_b> + // && mc_search (ptr, content_string + content_shift, MC_SEARCH_T_REGEX))
[11:41:06] <slavazanko/w> бля
[11:41:10] <andrew_b> + mc_search_t *search;
+ search = mc_search_new (ptr, -1);
[11:41:17] <andrew_b> Нет пустой строки.
[11:41:41] <andrew_b> + strlen (content_string + content_shift), NULL);
[11:41:51] <andrew_b> Почему не -1 ?
[11:42:50] <andrew_b> + found =
+ mc_search_run (search, content_string + content_shift, 0,
[11:43:37] <andrew_b> А, ладно.
[11:51:40] <slavazanko/w> я gboolean сделаю
[11:52:22] <andrew_b> Там же вроде ещё -1 используется.
[11:54:29] <slavazanko/w> mc_search_run всё равно gboolean.
вместо -1 добавлю параметр GError
[12:09:48] <slavazanko/w> зафиксил 2250
[12:13:39] <andrew_b> + found = regex_check_type (filename_vpath, p, &have_type, case_insense, &error);
+ if (error != NULL)
+ {
+ g_error_free (error);
error_flag = TRUE; /* leave it if file cannot be opened */
[12:13:55] <andrew_b> А...
[12:14:13] <slavazanko/w> оно может не найти, но при этом это не ошибка
[12:14:51] <andrew_b> Я имел в виду, что при error != NULL надо сбрасывать found, но он не выставляется.
[12:16:48] slavazanko/w вышел из конференции: Этого участника выгнали из комнаты за то, что он послал сообщение об ошибке другому участнику: service-unavailable
[12:17:01] <andrew_b> В regex_check_type есть пара мест, где возвращается -1.
[12:17:12] <andrew_b> И 0.
[12:17:25] <andrew_b> 608 if (!use_file_to_check_type)
609 return 0;
[12:17:30] <andrew_b> 624 if (localfile_vpath == NULL)
625 return -1;
[12:17:39] slavazanko/w зашёл в конференцию
[12:17:39] <andrew_b> 687 if (got_data == -1)
688 return -1;
[12:23:11] <andrew_b> И ещё
591 * Return 1 for match, 0 for no match, -1 errors.
[12:45:56] slavazanko/w вышел из конференции
[12:46:12] slavazanko/w зашёл в конференцию
[12:46:30] <slavazanko/w> /usr/bin/ld: /usr/lib64/libglib-2.0.a(garray.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
/usr/lib64/libglib-2.0.a: could not read symbols: Bad value
collect2: error: ld returned 1 exit status
make[3]: *** [libmc.la] Ошибка 1
[12:47:26] <andrew_b> Хреново.
[12:47:47] crick.ru вышел из конференции: Я счастливый пользователь Miranda IM. Возьми её тут http://miranda-im.org/.
[13:00:11] <slavazanko/w> поправил 2250
[14:10:05] <andrew_b> http://rjaka.com/sites/rjaka.com/files/styles/large/public/3b16ec92e5.jpg
[15:04:28] <andrew_b> slavazanko/w: 2856?
[15:06:18] <slavazanko/w> попробую воспроизвести
[15:08:10] <slavazanko/w> о, кажись знаю в чём трабла
[15:08:41] <slavazanko/w> --- a/src/editor/spell.c
+++ b/src/editor/spell.c
@@ -312,6 +312,7 @@ aspell_init (void)
edit_error_dialog (_("Error"), mc_aspell_error_message (error));
mc_delete_aspell_can_have_error (error);
g_free (global_speller);
+ global_speller = NULL;
}
}
[15:10:17] <andrew_b> У тебя воспроизводится?
[15:10:40] <slavazanko/w> я пока просмотром кода выяснил место.
[15:10:49] <slavazanko/w> сейчас поукашиваю словари и скажу
[15:14:55] <andrew_b> Похоже, ещё утечка есть.
[15:15:04] <slavazanko/w> ?
[15:15:15] <andrew_b> Надо global_speller->config удалять.
[15:15:39] <slavazanko/w> проблему воспроизвёл, мой фикс решает
[15:16:33] <andrew_b> Надо добавить delete_aspell_config.
[15:17:08] <slavazanko/w> угу, понял
[15:17:15] <andrew_b> Погоди.
[15:17:25] <slavazanko/w> ?
[15:17:27] <andrew_b> 227 if (!g_module_symbol
228 (spell_module, "delete_aspell_speller", (void *) &mc_delete_aspell_speller))
229 goto error_ret;
230
231 if (!g_module_symbol (spell_module, "delete_aspell_config", (void *) &mc_delete_aspell_speller))
232 goto error_ret;
[15:17:57] <andrew_b> Что-то тут не то.
[15:18:27] <slavazanko/w> памяти нигде не выделяется тут
[15:18:41] <slavazanko/w> просто вычисляется адрес функции по её имени
[15:18:52] <andrew_b> Да.
[15:19:09] <slavazanko/w> а что не так тогда?
[15:19:18] <andrew_b> Но в обоих случаях mc_delete_aspell_speller.
[15:19:42] <slavazanko/w> гм.. точно
[15:19:55] <andrew_b> Аффтара нужно.
[15:20:05] <slavazanko/w> афтара на мыло
[15:20:16] <slavazanko/w> врочем, я знаю что он скажет: "понавотали"
[15:22:14] <andrew_b> Наверное, так:
diff --git a/src/editor/spell.c b/src/editor/spell.c
index 73aa9d5..59c9aad 100644
--- a/src/editor/spell.c
+++ b/src/editor/spell.c
@@ -71,9 +71,7 @@ static struct AspellStringEnumeration *(*mc_aspell_word_list_elements) (const st
* ths);
static const char *(*mc_aspell_config_retrieve) (struct AspellConfig * ths, const char *key);
static void (*mc_delete_aspell_speller) (struct AspellSpeller * ths);
-/*
- static void (*mc_delete_aspell_config) (struct AspellConfig * ths);
- */
+static void (*mc_delete_aspell_config) (struct AspellConfig * ths);
static void (*mc_delete_aspell_can_have_error) (struct AspellCanHaveError * ths);
static const char *(*mc_aspell_error_message) (const struct AspellCanHaveError * ths);
static void (*mc_delete_aspell_string_enumeration) (struct AspellStringEnumeration * ths);
@@ -228,7 +226,7 @@ spell_available (void)
(spell_module, "delete_aspell_speller", (void *) &mc_delete_aspell_speller))
goto error_ret;
- if (!g_module_symbol (spell_module, "delete_aspell_config", (void *) &mc_delete_aspell_speller))
+ if (!g_module_symbol (spell_module, "delete_aspell_config", (void *) &mc_delete_aspell_config))
goto error_ret;
if (!g_module_symbol (spell_module, "delete_aspell_string_enumeration",
@@ -311,7 +309,7 @@ aspell_init (void)
{
edit_error_dialog (_("Error"), mc_aspell_error_message (error));
mc_delete_aspell_can_have_error (error);
- g_free (global_speller);
+ aspell_clean ();
}
}
@@ -327,6 +325,7 @@ aspell_clean (void)
return;
mc_delete_aspell_speller (global_speller->speller);
+ mc_delete_aspell_config (global_speller->config);
g_free (global_speller);
global_speller = NULL;
[15:24:49] <andrew_b> Хотя не знаю. Вот тут ещё какая-то странная фраза:
444 /* the returned pointer should _not_ need to be deleted */
445 if (global_speller->speller != NULL)
446 mc_delete_aspell_speller (global_speller->speller);
[15:25:17] <slavazanko/w> уже проверку вставил. И на конфиг тоже
[15:28:22] <andrew_b> Надо в код aspell посмотреть. Может, сами функции проверяют на NULL.
[15:28:35] <slavazanko/w> да ладно, сами проверим на всякий
[15:29:06] <andrew_b> Не, зачем два раза-то?
[15:30:10] <andrew_b> Всё, я домой.
[15:30:13] andrew_b вышел из конференции
[16:16:34] crick.ru зашёл в конференцию
[16:28:29] iliamaslakov зашёл в конференцию
[16:29:48] <iliamaslakov> andrew_b: Аффтара нужно.
понавотят
[16:30:22] <slavazanko/w> ты не спрыгивай
[16:30:34] <iliamaslakov> я вообще не виноват
[16:31:00] <slavazanko/w> да ладно, без разницы кто виновать
[16:31:07] <slavazanko/w> главное - исправить
[16:31:15] <iliamaslakov> это очень важно
[16:31:16] crick.ru вышел из конференции: Я счастливый пользователь Miranda IM. Возьми её тут http://miranda-im.org/.
[16:31:20] <slavazanko/w> https://www.midnight-commander.org/ticket/2856#comment:5
[16:31:36] <iliamaslakov> главное найти виноватых
[16:31:59] <slavazanko/w> у нас тут не там, виноватых искать бесполезно. разве что чтобы потом поворчать про себя
[16:34:15] <iliamaslakov> а как ты патч изобрёл?
[16:34:52] <slavazanko/w> ну.. прикинул, что оно там может ранее где освободилось, но при этом не обнулилось. и поискал места, где освобождается. нашёл
[16:35:30] <slavazanko/w> плюс выяснили с Андрюхой, что лажа была в одном месте с именем функции и переменной, в которую адрес записывался
[16:35:43] <slavazanko/w> плюс утечку памяти заметили... вот и получился патч
[16:43:22] <iliamaslakov> а теперь ваще всё классно будет?
[16:52:14] iliamaslakov вышел из конференции: Machine going to sleep
[17:18:11] iliamaslakov зашёл в конференцию
[17:20:47] iliamaslakov вышел из конференции: Machine going to sleep
[17:40:38] slavazanko/h зашёл в конференцию
[18:32:17] andrew_b зашёл в конференцию
[18:49:31] slavazanko/h вышел из конференции
[20:00:37] andrew_b вышел из конференции
[20:09:18] D-ion вышел из конференции: Replaced by new connection
[20:09:21] D-ion зашёл в конференцию
[20:56:06] iliamaslakov зашёл в конференцию
[21:03:27] <iliamaslakov> привет
[22:26:39] ASM вышел из конференции
[22:28:52] iliamaslakov вышел из конференции: Machine going to sleep