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

Тема: http://www.midnight-commander.org | Latest stable: 4.7.0.10 | Latest development release: 4.7.4
[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 вышел из конференции
Powered by freQ Powered by Python Valid XHTML 1.0 Transitional Valid CSS!