[04:58:32] iNode вышел из конференции [05:20:34] iNode зашёл в конференцию [06:01:37] andrew_b зашёл в конференцию [06:59:18] ruslan telenkevich зашёл в конференцию [07:20:56] slavazanko/h вышел из конференции [07:27:53] slavazanko/h зашёл в конференцию [07:35:18] <andrew_b> slavazanko: в какой кодировке внутри поискового движка хранится строка? [07:36:25] <andrew_b> Если может в любой, то надо как-то унифицировать, либо предоставить возможность узнать это снаружи. [07:37:36] ruslan telenkevich вышел из конференции [07:38:20] <andrew_b> Я про http://www.midnight-commander.org/ticket/2417. [07:45:40] <andrew_b> Либо сделать поиск в редакторе по аналогии с вьювером. [08:04:03] <slavazanko> > в какой кодировке внутри поискового движка хранится строка? в оригинальной кажись. И регекспы потом строятся в той же [08:05:12] <andrew_b> Ясно. [08:06:30] <andrew_b> Получается, когда мы в редакторе переключаем кодировку, мы конвертируем строку из неизвестной кодировки. [08:06:54] <andrew_b> Мы же не знаем, что у нас было до того. [08:07:06] <slavazanko> ну типа того. [08:07:31] <slavazanko> где-то надо хранить предыдущую кодировку? [08:08:04] <andrew_b> Пока не знаю, как лучше. Думаю вот. [08:16:04] <andrew_b> Вот это, например, в editcmd.c 1936 #ifdef HAVE_CHARSET 1937 GString *tmp; 1938 1939 if (search_string && *search_string) 1940 { 1941 tmp = str_convert_to_display (search_string); 1942 if (tmp != NULL) 1943 { 1944 if (tmp->len == 0) 1945 g_string_free (tmp, TRUE); 1946 else 1947 { 1948 g_free (search_string); 1949 search_string = search_string_dup = g_string_free (tmp, FALSE); 1950 } 1951 } 1952 }
Если мы достали search_string из истории, то она уже в экранной кодировке. Получается лишняя конвертация. А если search_string из edit->search, то её кодировка вообще неизвестна. [08:16:46] <andrew_b> В любом случае, этот куслк кода надо выкинуть. [08:17:06] <slavazanko> ну если там на перекодировку больше то да. [08:17:40] <andrew_b> А в диалог надо передать строку в экранной кодировке. editcmd_dialog_search_show (edit, &search_string); [08:19:03] <andrew_b> Надо перекодировать тут, но неизвестно, из какой кодировки.
1915 if (edit->search != NULL) 1916 { 1917 search_string = g_strndup (edit->search->original, edit->search->original_len); 1918 search_string_dup = search_string; 1919 } [08:19:46] <slavazanko> можно было бы хранить кодировку в истории... [08:20:09] <andrew_b> Не. [08:20:32] <andrew_b> В основнов в строках ввода проблем нет. [08:20:43] <andrew_b> В редакторе особый случай. [08:23:15] <andrew_b> Я считаю, что надо сделать, как во вьювере. Там такого бага нет. [08:24:34] <slavazanko> ок. Я пока что с сертификатами на сайте вожусь [08:32:44] <slavazanko> всё. в следующий раз сертификат устареет в 2020-м году [08:33:02] <andrew_b> :)) [08:33:15] <slavazanko> а чё? с запасом... ;) [08:43:21] <Зося Синицкая> RSS: Новости для Midnight Commander • Ticket #2417 (String in the editor's search field turns into garbage after reopening …) updated http://www.midnight-commander.org/ticket/2417#comment:3 • Ticket #2417 (String in the editor's search field turns into garbage after reopening …) updated http://www.midnight-commander.org/ticket/2417#comment:4 [10:13:23] smind зашёл в конференцию [10:13:41] <smind> привет [10:13:45] <smind> я не надолго пока станция [10:13:53] <slavazanko> привет [10:15:13] <smind> имхо если вы про поля ввода то надо при записи в историю записывать кодировку в которой мы вводили текст [10:15:59] <smind> иначе никак не определить [10:16:16] <smind> просто предыдущая не поможет [10:17:16] <smind> т.к. может быть несколько разных [10:17:33] <slavazanko> это только для редактора специфично [10:17:44] <slavazanko> во вьювере всё нормально [10:17:47] <smind> не полько [10:18:02] <smind> еще в глобальном поиске [10:21:31] <smind> завтра дома буду [10:21:46] <slavazanko> на выходные или уже насовсем? [10:21:56] <smind> вопрос когда планируем 4.7.5 ? [10:22:01] <smind> на совсем [10:22:47] <slavazanko> > вопрос когда планируем 4.7.5 ? когда ты сможешь посмотреть бранч put_ConnectorProperty [10:22:51] <slavazanko> тьфу [10:22:56] <slavazanko> 2409_prepare_to_4.7.5 [10:23:05] <andrew_b> slavazanko: не только. [10:23:10] <slavazanko> работаю тут.. гуглю. С буфер обмана лишнее капнуло :) [10:23:14] <andrew_b> Есть ещё другие бранчи. [10:23:17] <slavazanko> угу [10:23:35] <andrew_b> Не надо хранить в истории кодировку. [10:23:45] <andrew_b> Она там utf-8. [10:24:04] <andrew_b> Надо правильно перекодировать в редакторе. [10:24:59] <andrew_b> smind: сколько ехать? Сутки? [10:25:14] smind вышел из конференции [10:26:22] <andrew_b> slavazanko: ты сам-то 2409_prepare_to_4.7.5 смотришь? А то я там накоммитил немало. [10:26:38] <slavazanko> смотрю. Некисло ты там [10:27:14] <andrew_b> Ещё что будем переносить? Надо бы. [10:28:09] <slavazanko> main.c надо разделить на main.c и main-widgets.c [10:28:54] <andrew_b> Не. main-widgets мне изначально не нравилось. [10:29:11] <slavazanko> src/filemanager [10:29:14] <slavazanko> ещё [10:31:38] <andrew_b> Вот ещё что. Может, переменные, которые считываются из конфига, сосредоточить в одном месте? Например, в options.[ch]. А то они размазаны тонким слоем по коду. Тогда проще будет файлы переносить. [10:32:06] <andrew_b> s/options/setup [10:33:12] <slavazanko> Вообще-то, эти опции не имеют смысла. почему бы не оперировать функциями mc_config_get_...() mc_config_set_...() ? [10:34:53] <andrew_b> Если какая-то переменная чекается много раз подряд, например, при сортировке файлов, то доставать из конфига её долго. [10:35:10] <slavazanko> тут она может быть и статиком тогда [10:35:52] <andrew_b> А если она изменится в рантайме? [10:36:03] <andrew_b> Как её обновлять? [10:36:22] <slavazanko> как только надо изменить - mc_config_set_...() [10:36:57] <slavazanko> в цикле меняться-то не будет... один раз - и всё [10:37:44] <andrew_b> static? [10:38:23] <andrew_b> Если она static, то ей надо как-то сообщить, что она изменилась. [10:38:32] <slavazanko> не, я имею ввиду. что у нас нет таких алгоритмов. что какая-либо опция меняется в цикле. [10:39:16] <andrew_b> Ну и? [10:39:36] <slavazanko> ну и можно вызывать mc_config_set...() [10:39:58] <andrew_b> А когда? [10:40:17] <slavazanko> как только возникает необходимость поменять параметр. После диалогов. например [10:41:22] <andrew_b> static -- это область видимости функция или файл. То есть изменить её из другого места нельзя. Изменяется параметр в конфиге. Этот параметр надо перенести в переменную. [10:42:59] <andrew_b> Каждый раз считывать конциг? Мы вернулись в начало. [10:43:13] <andrew_b> s/конциг/конфиг [10:47:43] <slavazanko> статик или переменная в функции необходим для того. чтобы в цикле не читать конфиг в цикле. void some_func(void) gboolean is_some_value_checked = mc_config_get_bool(cfg_handle, "group", "some_value"); for (i=0; i<BIG_NUMBER; i++){ if (is_some_value_checked) { ..... } }
Вот тут и нужна переменная. Ну а если одна какая-нибудь проверка в коде - пусть будет просто вызов функции. И да - каждый раз считывать. Всё равно глибовый объект конфига и так висит в памяти в виде групп хэш-массивов... [10:49:01] <andrew_b> Вот я и спрашиваю: как обновить is_some_value_checked, если изменился в конфиге это параметр? [10:49:23] <andrew_b> gboolean is_some_value_checked = mc_config_get_bool(cfg_handle, "group", "some_value"); выполняется всего один раз. [10:50:01] <slavazanko> ну.. как бы да. Вернее. при каждом вызове функции. У нас ведь гарантируется, что функция не будет прервана. так ведь? [10:50:27] <andrew_b> > Вернее. при каждом вызове функции. Вызывающе неверная информация. [10:50:37] <andrew_b> Один раз. Первый. [10:50:42] <slavazanko> если где-то в другом месте будет сделано mc_config_set_bool(), то при очередном заходе в функцию будет прочитано новое значение [10:50:43] <andrew_b> Это же static. [10:50:58] <andrew_b> Тогда надо не статик. [10:51:06] <slavazanko> нет. я привёл пример просто переменной в области видимости фукнции [10:51:15] <slavazanko> да. статики не очень [10:51:17] <andrew_b> А... [10:51:21] <andrew_b> Увидел. [10:53:40] <slavazanko> со статиком можно просто обеспечивать некую транзакционность - некая функция, которая является "точкой входа". обновляет статик. а остальные функции юзают неизменное значение.. даже если поменялось значение в конфиге. Потом опять дёргаем функцию (точку входа) и обновляем переменную (новая типа транзакция) [10:55:52] <andrew_b> Понятно. [10:57:15] <andrew_b> Предлагаю charsets.[ch] в lib/ перенести. [10:57:33] <slavazanko> согласен [10:58:17] <andrew_b> keybind? [10:58:40] <slavazanko> его разрывать надо. на функции и дефолты [10:58:51] <andrew_b> Да. [11:01:28] <slavazanko> тебе мощно пушить не надо? [11:01:39] <andrew_b> Нет. [11:01:45] <slavazanko> мне так. по мелочи... косметика. [11:02:03] <andrew_b> Я ничего с бранчем не делаю. [11:02:40] <slavazanko> ага, ок. Тогда я и charset, и keybind займусь. если не будет возражений [11:02:52] <andrew_b> А что такое src/mfmt.c? [11:03:23] <andrew_b> И бинарь mfmt собирается. [11:03:31] <andrew_b> Для чего оно? [11:03:37] <slavazanko> это фактически хелпер для просмотра файлов формата mail[box] [11:03:52] <slavazanko> для раскраски, наподобие nroff [11:04:14] <slavazanko> хелпер для вьювера [11:04:42] <andrew_b> А где он вызывается? [11:04:49] <andrew_b> Что-то я не нахожу. [11:05:53] <slavazanko> интересный вопрос :) [11:08:38] <slavazanko> sh.syntax - как название элемента подсветки; mc.spec - понятно. включение файла contrib/dist/mc.qpg - хз для чего. Контрольные суммы? Кстати, тоже файл под вопросом - нахрена он? [11:08:41] <slavazanko> и всё. [11:08:44] <slavazanko> убираем? [11:08:53] <andrew_b> Угу. [11:08:56] <slavazanko> понято [11:11:52] <andrew_b> Из cmddef.h можно всё перенести в lib/keybind.h [11:12:02] <slavazanko> да [11:16:28] <andrew_b> Ты всё-таки настаиваешь на двойном подчёркивании? [11:16:48] <slavazanko> угу. Отделение nameSpace от названия [11:16:50] <andrew_b> MC__WIDGET_RADIO_H [11:17:32] <slavazanko> так красивее :) [11:17:42] <andrew_b> Ну ладно. [14:45:23] <Зося Синицкая> RSS: Новости для Midnight Commander • Ticket #1856 (Bug, search in files with different encodings.) updated http://www.midnight-commander.org/ticket/1856#comment:6 • Ticket #1856 (Bug, search in files with different encodings.) updated http://www.midnight-commander.org/ticket/1856#comment:7 • Ticket #1856 (Bug, search in files with different encodings.) updated http://www.midnight-commander.org/ticket/1856#comment:8 [15:02:24] iNode вышел из конференции [15:11:24] andrew_b вышел из конференции: конец рабочего дня [15:14:51] ASM зашёл в конференцию [16:00:48] <Зося Синицкая> RSS: Новости для Midnight Commander • Ticket #2421 (Patch which adds support to highlight occurences of pattern.) created http://www.midnight-commander.org/ticket/2421 • mc_ho.patch attached to Ticket #2421 http://www.midnight-commander.org/attachment/ticket/2421/mc_ho.patch [17:33:14] andrew_b зашёл в конференцию [19:07:53] andrew_b вышел из конференции: Replaced by new connection [19:07:57] andrew_b зашёл в конференцию [19:42:26] andrew_b вышел из конференции