[00:00:05] theMIROn вышел из конференции [06:26:29] andrew_b зашёл в конференцию [07:33:14] il.smind зашёл в конференцию [07:34:05] <il.smind > привет всем [07:34:23] <andrew_b> il.smind : да. [07:34:27] <andrew_b> Как море? [07:34:28] <il.smind > посмотрел как там у меня пометка с шифтом [07:35:05] <il.smind > ну в приципе tab-tab без перемещения курсора меня устраивают [07:35:27] <andrew_b> А просто таб? [07:35:49] <andrew_b> А если мы переключились в quick view и обратно? [07:35:51] <il.smind > а с просто табом всё ок [07:37:25] <il.smind > andrew_b: да тоже нормально [07:37:45] <il.smind > никакого криминала я не вижу [07:40:15] <il.smind > slavazanko/h> гуглю, как решить. Если не решимо, то скучно. Псевдофункции нельзя будет делать :( пусть лучше скучно но чтобы собиралось не только на твоём компиляторе [08:01:59] <andrew_b> slavazanko/w: тесты прошли. Но не является ли это решение gcc-специфичным? [08:03:53] <il.smind > andrew_b: тебе моя пометка с шифтом как? [08:24:02] <andrew_b> В каком смысле? [08:28:44] il.smind вышел из конференции: Компьютер вошёл в спящий режим [09:04:44] <slavazanko/w> всем привет. [09:05:02] <slavazanko/w> > тесты прошли. Но не является ли это решение gcc-специфичным? хз. Нам хватит. Это в первую очередь для нас [09:05:41] <slavazanko/w> для юзеров make && make install и нам ещё и make check надо будет. чтобы убедиться, что ничего не поломано. и чем больше тестов, тем больше уверенность в коде [09:40:10] <andrew_b> + if (path->str[path->len - 1] == PATH_SEP) + path->str[path->len - 1] = '\0'; + canonicalize_pathname (path->str); + + + return g_string_free (path, FALSE);
Вообще говоря, так делать нехорошо. В GString хранится длина и размер буфера. А ты изменяешь строку, а длину не корректируешь. [09:40:17] slavazanko/w вышел из конференции: Этого участника выгнали из комнаты за то, что он послал сообщение об ошибке другому участнику: service-unavailable [09:40:17] slavazanko/h вышел из конференции: Этого участника выгнали из комнаты за то, что он послал сообщение об ошибке другому участнику: service-unavailable [09:40:27] <andrew_b> В данном случае это не важно, но код плохой. [09:40:32] slavazanko/w зашёл в конференцию [09:43:08] <slavazanko/w> Думаю. что в данном случае это не важно. g_string_free (path, FALSE); не будет освобождать память под строку. просто из функции возвратится строка. strlen() которой меньше sizeof. Но первый же g_free() исправит ситуацию. Оверхеад небольшой [09:43:54] slavazanko/h зашёл в конференцию [09:43:55] <andrew_b> Но код всё равно кривой. :) [09:44:12] <slavazanko/w> ну... лишний g_strdup() лепить? [09:44:54] <andrew_b> Нет. [09:45:07] <andrew_b> Я попозже исправлю. [09:45:13] <andrew_b> Сейчас мне надо уйти. [09:45:17] <slavazanko/w> ок [09:47:57] il.smind зашёл в конференцию [09:48:14] <il.smind > andrew_b> В каком смысле? в прямом [09:49:34] <il.smind > <slavazanko/w> > тесты прошли. Но не является ли это решение gcc-специфичным? хз. Нам хватит. Это в первую очередь для нас Чойта > и чем больше тестов, тем больше уверенность в коде это всё сказки [09:50:20] <slavazanko/w> чойта? Мне. например, тесты некисло помогли в DEV_new_vfs. [09:50:48] <il.smind > новый код писать конечно помогает [09:50:53] <il.smind > это же тесты [09:51:45] <slavazanko/w> не-не-не. В первую очередь мне это помогало править старый код. Сначала пишу фо существующей функции тесты, потом правлю функцию как хочу, но так, чтобы тесты отрабатывали правильно [09:52:01] <il.smind > но я не очень верю что они както сильно влияют на качество внесения изменений [09:52:40] <il.smind > slavazanko/w: я парсеры пишу только с тестами [09:52:57] <il.smind > иначе непонятно как можно вообще написать [09:54:19] <slavazanko/w> угу. а после написания персера тесты грохаешь. А вот оставил бы рядом с парсером - и в будущем можно без страха править парсер вдоль и поперёк. ну или заонво тесты писать не надо на каждый чих [09:54:45] <slavazanko/w> в будущем - это когда уже и забыл. что парсер писал какой-то... [09:57:17] <il.smind > slavazanko/w: ну это да [09:57:39] <il.smind > я к тому что тесты не панацея [09:57:55] <il.smind > но в некоторых случаях без них никак [09:58:43] <slavazanko/w> нет. совсем не панацея. Тесты не гарантируют, что ошибок нет. тпесты гарантируют, что некий конкретный случай при определённых устовиях даст ожидаемый результат. [10:00:09] <slavazanko/w> короче, тесты - это как автомат. Сквозь них "проходят" функции. на выходе либо валидно. либо нет. Но внутри автомата могут проверяться не все условия, поэтом невалидная ситуация может выйти из автомата с валидной проверкой [10:03:13] Yury V. Zaytsev зашёл в конференцию [10:03:36] <Yury V. Zaytsev> лол, ну всё, в ближайшие дни все причастные к вфс получат [10:03:43] <slavazanko/w> ? [10:03:54] <slavazanko/w> привет [10:04:03] <Yury V. Zaytsev> смотри камент к #2361 [10:04:20] <slavazanko/w> угу, вижу. Оззи выходит на тропу войны [10:04:45] <Yury V. Zaytsev> повадились тут делать тут волюнтаристские изменения без всякой необходимости и обоснования [10:05:43] <slavazanko/w> да пусть Оззи хоть усрётся. ёпт. Поддержка старой строки осталась. наравне с новой. От пусть старпёры юзают свои старые строки [10:05:48] <Yury V. Zaytsev> ничего, в ближайшие несколько дней вам будет дан соответствующий отпор =) [10:06:32] <Yury V. Zaytsev> я кстати на самом деле не понимаю зачем это нужно, вроде говорили вы что по новой схеме парсинг будет однозначный, так? [10:06:32] <slavazanko/w> Оззи ещё не знает всей масштабности изменений по VFS... :) Я имею ввиду не то, что сделано. а что ещё предстоит сделать [10:06:38] <slavazanko/w> да. [10:07:01] <Yury V. Zaytsev> ну если оно действительно так, то я чего, я ничего :-) [10:07:02] <slavazanko/w> однозначнее некуда. Потому что :// никогда и ни на одной из файловых систем присутствовать не может [10:07:09] <slavazanko/w> ну разве что на вендах кажись... [10:07:22] <Yury V. Zaytsev> киллер-фича [10:07:55] <Yury V. Zaytsev> мне вот больше интересно илью совратить заняться колорером. я тут с игорем русских недавно переписывался... [10:08:22] <slavazanko/w> ну типа того. да и выглядит такая строка намного приятнее. Но это всё херня. Следующий этап: в панели путь будет показываться не полностью. а только последний элемент пути. [10:08:31] <slavazanko/w> колорер на С++ [10:08:32] <Yury V. Zaytsev> а то он тут жаловался что mc уже достиг совершенства [10:09:24] <Yury V. Zaytsev> вот в этом неприятность. вызывать его можно через ffi обертку это не проблема, проблема в том, что нужен будет не только компилятор c чтобы собрать mc, но и с++ [10:09:29] <Yury V. Zaytsev> или как ты думаешь --- э [10:09:35] <Yury V. Zaytsev> то проблема или не проблема? [10:09:59] <Yury V. Zaytsev> но он тут вроде говорил, что он хочет переписать библиотеку как генератор парсеров, в т.ч. на си [10:10:15] <slavazanko/w> лично для меня это не проблема. У меня стоит g++ а вот проблема ли это для пользователей... [10:10:23] <slavazanko/w> я не знаю :) [10:10:44] <Yury V. Zaytsev> ну вот и я не знаю ) навернео у осси есть на этот счет мнение =) [10:10:56] <slavazanko/w> > хочет переписать библиотеку как генератор парсеров, в т.ч. на си вот это будет айс. А потом через swing куды хошь сможет запхать [10:11:44] <Yury V. Zaytsev> вот и я тоже говорю ему что айс =) [10:25:31] <Yury V. Zaytsev> slavazanko/w: кстати по поводу колорера мне ещё один вопрос есть [10:25:40] <slavazanko/w> ? [10:25:42] <Yury V. Zaytsev> как там с плагинами то у тебя, пока это он холд? [10:26:03] <Yury V. Zaytsev> просто мне игорь говорил, что тогда когда-то давно он его привинчивал через dlopen [10:26:33] <slavazanko/w> нет самого главного: API. Возможность клепать плагины уже есть. но если это делать сейчас. то будет сумбурно [10:27:29] <Yury V. Zaytsev> мне в решении компилить его опционально или выносить в so только одно не нравится =) старый раскрасчик вообще хотелось бы убить, а тогда получается что юзеры без c++ вообще не будут иметь расскраски... а ты как относишься к со-существованию двух раскрасчиков? [10:28:26] <slavazanko/w> крайне положительно. Новое должно заменять старое. только если ничего не ломается и не меняется среда сборки или работы [10:28:54] <slavazanko/w> если новое не может такого обеспечить (как тут - меняется среда сборки. нужен С++), то это новое должно быть опциональным [10:30:40] <slavazanko/w> у меня в новом VFS ломается один единственный файл bindings всё остальное сохраняется. Но это вынужденная мера, которая покрывается профитами от того, что существует 100% поддержка старых путей и новх, а также что с новыми путями на порядок проще парсить [10:31:13] <Yury V. Zaytsev> а я отрицательно, но аргументы такие же как у тебя :-/ эххх [10:33:07] <slavazanko/w> ну почему отрицательно? Выносим существующий раскрасчик в плагин, (чтобы обеспечить единое API для всех вероятных раскрасчиков) в конфигуру добавляем параметр --with-external-colorer=yes у кого есть С++. тот скомпилит с более мощным колорером [10:34:38] <slavazanko/w> при этом в конфиге будет иметь возможность ывбирать между колорерами. типа [Editor] colorer=mccolorer ;colorer=c++colorer [10:34:49] <Yury V. Zaytsev> ну просто старый раскрасщик сам же всё знаешь, хочется убить его поэтому. вот и отрицательно. но я согласен, с твоими аргументами, сам думаю также [10:35:08] <slavazanko/w> дык вот так вот и получится убить. Плавно [10:35:27] <Yury V. Zaytsev> эээ тут главное сделать так, чтобы плагины на системах где не будет dlopen прямо в бинарник в компилялись [10:36:52] <slavazanko/w> вот тогда-то и будет "убогий" встроенный колорер нужен :) А для систем без dlopen уже сейчас есть у нам решение, ./configure --with-mclib уже сейчас создаёт libmc.so и линкует исполняемый файл с ним. [10:37:22] <slavazanko/w> по дефолту компилит монолит [10:48:52] <andrew_b> slavazanko/w: давай всех пошлём и сделаем форк? :) Пусть старпёры сами латают старую vfs, а у нас будет новая. [10:49:34] <slavazanko/w> революционненько :) [10:50:24] <andrew_b> Наачона? Старый синтаксисдаёт кучу багов. [10:50:32] <andrew_b> Новый нет. [10:50:59] <slavazanko/w> тогда и на С++ начать [10:51:21] <slavazanko/w> с объектами, полиморфизмом. наследованием и прочими плюшками [10:52:04] <andrew_b> Это переписать всё чуть более чем полностью? [10:52:11] <slavazanko/w> угу [10:52:22] <andrew_b> Илья будет против си++. [10:53:06] <slavazanko/w> а подводная лодка поплывёт дальше [10:54:53] <andrew_b> Может, Фар спортировать? :)) [10:55:17] <andrew_b> Там этого Си++ ну просто завались. [10:55:53] <slavazanko/w> можно попробовать. начать и кончеть - мелочи-то какие... [11:18:19] <andrew_b> slavazanko/w:
Вообще говоря, первые две строки не нужны. canonicalize_pathname() сама должна убрать завершающий слэш. [11:18:48] <slavazanko/w> ну как бы да [11:19:12] <slavazanko/w> согласен, лишнее. Убери. плиз. Я в другом бранче. лень прыгать :) [11:19:21] <slavazanko/w> потом спрячу [11:19:55] <andrew_b> Понял. [11:22:52] <andrew_b> Тут лажа.
После canonicalize_pathname (tmp_element->str) на месте tmp_element->str[tmp_element->len - 1] уже ХЗ что. [11:23:14] <andrew_b> Блин, стоку потерял. [11:23:32] <andrew_b> 1043 canonicalize_pathname (tmp_element->str); 1044 tmp_element_start = 1045 (*(tmp_element->str) == PATH_SEP) ? tmp_element->str + 1 : tmp_element->str; 1046 if (tmp_element->str[tmp_element->len - 1] != PATH_SEP) 1047 g_string_append_c (tmp_element, PATH_SEP); [11:23:59] <andrew_b> Ща переделаю. [11:24:26] <slavazanko/w> там первый символ строки берётся. почему лажа? [11:25:00] <andrew_b> Потому что canonicalize_pathname (tmp_element->str) изменяет строку. [11:25:02] <slavazanko/w> а, tmp_element->str[tmp_element->len - 1] тыт len не меняется... [11:25:08] <andrew_b> Длина может измениться. [11:25:13] <slavazanko/w> угу [11:25:36] <andrew_b> А tmp_element->len осталась от неканонизированной строки. [11:25:46] <slavazanko/w> да, уже понял [11:31:56] <andrew_b> Взял бы из glib функцию g_build_filename и добавил бы канонизацию. [11:32:17] <slavazanko/w> она коряжит :// [11:33:09] <andrew_b> Я и говорю: добавил бы канонизацию. [11:33:58] <andrew_b> Гм, чё-то здорова она больно. [11:34:22] <slavazanko/w> g_build_filename("/test","path","vfsprefix://", "file", NULL) = "/test/path/vfsprefix:/file" [11:34:39] <andrew_b> Да ты не понял. [11:34:56] <slavazanko/w> взять тело функции? [11:35:00] <andrew_b> Да. [11:35:07] <andrew_b> Код ейный. [11:35:10] <slavazanko/w> я думал. там чегой-то много :) [11:35:20] <andrew_b> Да, я сам увидел. [11:35:24] <slavazanko/w> плюнул и сделал меньше на основе канонизации [11:35:30] <slavazanko/w> у них там своя канонизация [11:41:07] <andrew_b> И ещё.
Если ты сделаешь g_string_append_c (tmp_element, PATH_SEP), то tmp_element_start может стать невалидным. Потому что после переаллокации указатель tmp_element->str может стать другим. [11:41:45] <andrew_b> Да шо ж такое. Куды строки пропадают? [11:41:58] <andrew_b> tmp_element_start = (*(tmp_element->str) == PATH_SEP) ? tmp_element->str + 1 : tmp_element->str; if (tmp_element->str[tmp_element->len - 1] != PATH_SEP) g_string_append_c (tmp_element, PATH_SEP); g_string_append (path, tmp_element_start); [11:42:42] <slavazanko/w> тогда остаётся strdup'ать, блин [11:43:34] <andrew_b> Нет, если изменить порядок действий. [11:44:16] <andrew_b> Короче, я сейчас переделаю и запушу. [11:46:29] <andrew_b> У тебя есть тест для mc_build_filename& [11:46:31] <andrew_b> ? [11:46:40] <slavazanko/w> угу [11:46:47] <slavazanko/w> если что - можешь дополнить [11:47:01] <andrew_b> Я не шарю. [11:47:21] <slavazanko/w> lib/tests/mc_build_filename.c [11:47:41] <slavazanko/w> там просто вызываешь функцию. потом получаешь результат и сравниваешь с эталоном [11:47:48] <slavazanko/w> совпало или нет [11:51:51] <slavazanko/w> cd lib/tests/vfs make -C../.. && make mc_build_filename && ./mc_build_filename [11:52:39] <andrew_b> Тест прошёл. [11:52:42] <Зося Синицкая> andrew_b: Две полоски! [11:52:48] <slavazanko/w> jrfr [11:52:49] <slavazanko/w> окак [11:53:09] <andrew_b> Запушил. [12:19:17] Yury V. Zaytsev вышел из конференции [13:15:57] <il.smind > [12:08:00] <Yury V. Zaytsev> мне вот больше интересно илью совратить заняться колорером. я тут с игорем русских недавно переписывался... я тоже переписывался, он умный а я червь земляной передним [13:32:21] <andrew_b> Международная корпорация имен и адресов в Интернете (ICANN) одобрила ввод новых доменных имен верхнего уровня. Об этом сообщается в пресс-релизе ICANN.
Таким образом, крупные компании смогут подавать заявки на регистрацию названий доменных зон, совпадающих с названием компании или ее брендов, вместо использования уже привычных ".com", ".org", и ".net".
В результате во всемирной сети могут появиться такие доменные зоны, как ".apple", ".toyota" или ".bmw". Оформление собственной доменной зоны обойдется компании в 185 тыс. долларов. [13:32:24] <andrew_b> http://top.rbc.ru/society/20/06/2011/601404.shtml [13:33:14] <slavazanko/w> намекаешь на .midnight-commander? :) [13:33:53] <andrew_b> А деньги где? [13:34:32] <slavazanko/w> донайты попросим [13:35:36] Yury V. Zaytsev зашёл в конференцию [14:12:51] <Yury V. Zaytsev> зачем так длинно [14:12:53] <Yury V. Zaytsev> .mc [14:13:10] <Yury V. Zaytsev> будем продавать домены казырные [14:13:16] <Yury V. Zaytsev> станем богатыми и известными [14:13:38] <Yury V. Zaytsev> il.smind : он вообще очень умный, я тоже червь, но мы учились рядом ;) так что [14:32:16] <il.smind > andrew_b: и еще там MFC [14:32:29] <andrew_b> ГДЕ? [14:32:39] <il.smind > в фаре [14:32:50] <andrew_b> Да вроде нет. [14:35:55] slavazanko/h вышел из конференции [14:42:13] <il.smind > >Оформление собственной доменной зоны обойдется компании в 185 тыс. долларов. - Эй, мужик а чё так дорого? - Понимаешь, деньги очень нужны... [14:42:27] <il.smind > andrew_b: в фаре в фаре [14:42:44] <il.smind > ну и винапи [14:43:06] <il.smind > эта... [14:43:23] <il.smind > andrew_b: бранч будем подписывать? [14:43:44] <il.smind > про пометку [14:43:53] <andrew_b> Нет. [14:45:46] <andrew_b> Почему state_mark общая для обоих панелей и не сбрасывается при переключении в другую панель? [14:46:09] <andrew_b> s/обоих/обеих [14:47:42] slavazanko/h зашёл в конференцию [14:48:33] <il.smind > так удобно [14:48:44] slavazanko/h вышел из конференции [14:49:22] <il.smind > я хотел переделать, потом понял что не надо и так хорошо [14:52:43] <andrew_b> Непонятно... [14:56:06] <il.smind > andrew_b: тебе вот наверное поведение не нравится? [14:56:14] <il.smind > или я не понимаю [14:56:33] <il.smind > тебе не нравится поведение как сейчас у меня? [14:57:14] <andrew_b> Я не понимаю логики поведения. [14:57:47] <andrew_b> Напиши алгоритм подробно. [14:59:31] Yury V. Zaytsev вышел из конференции [15:11:00] Yury V. Zaytsev зашёл в конференцию [15:28:12] andrew_b вышел из конференции [15:39:36] <il.smind > andrew_b: ещё раз? [15:40:15] <il.smind > можешь собрать бранч? [15:55:56] Yury V. Zaytsev вышел из конференции [18:30:03] styx.mp зашёл в конференцию [18:30:07] styx.mp вышел из конференции: offline [18:32:42] il.smind вышел из конференции: Компьютер вошёл в спящий режим [18:43:33] andrew_b зашёл в конференцию [19:17:53] il.smind зашёл в конференцию [19:18:36] <il.smind > andrew_b: тык [19:19:51] <andrew_b> il.smind : чо? [19:20:00] <il.smind > il.smind > можешь собрать бранч? [19:20:10] <andrew_b> Давно. [19:20:51] <il.smind > готов? [19:21:01] <il.smind > вот смотри [19:21:12] <il.smind > попробуй по-помечать [19:21:23] <il.smind > с шифтом [19:21:32] <il.smind > в правой панели [19:22:52] <andrew_b> Ну? [19:23:27] <il.smind > всё логично? [19:23:37] <il.smind > всё устраивает? [19:23:56] <andrew_b> Нет. [19:24:08] <il.smind > говори [19:24:23] <andrew_b> Пометил вправо. [19:24:29] <il.smind > угу [19:24:44] <andrew_b> Сразу помечаю влево, и вижу, что ничего не происходит. [19:24:52] <il.smind > всё верно [19:24:54] <andrew_b> Снова вправо. Опять ничего не меняется. [19:25:02] <andrew_b> Это сбивает с толку. [19:25:08] <il.smind > так и должно быть [19:25:27] <andrew_b> Не знаю... [19:25:27] <il.smind > ты в режиме пометки [19:25:53] <andrew_b> Чёйта? [19:25:57] <andrew_b> А где это видно? [19:26:06] <andrew_b> Что ты в каком-то режиме. [19:26:25] <il.smind > ты мышью помечать пробовал? [19:27:18] <andrew_b> Да. [19:27:36] <il.smind > нужен показ режима пометки мышью? [19:28:10] <andrew_b> Там нет режима. [19:28:25] <andrew_b> Ты либо помечаешь, либо нет. [19:29:59] <il.smind > andrew_b: есть [19:30:00] <andrew_b> Точнее, помечаешь или снимаешь отметку, либо ничего не делаешь. [19:30:20] <il.smind > пока мышь не отпустил помечаешь [19:30:38] <il.smind > включен режим пометки [19:31:20] <il.smind > тоже самое с шифтом [19:32:04] <il.smind > абсолютно также работает [19:34:05] <andrew_b> Я не понимаю, почему режим, включенный на одной панели, действует на другой. [19:34:33] <il.smind > давай с одной пока панелью [19:35:10] <il.smind > я пояснил принцип работы? [19:36:13] <andrew_b> Допустим. [19:41:45] <il.smind > на одной понятно [19:41:49] <il.smind > ок. [19:42:33] <il.smind > вариант который не устраивает скажи [19:43:02] <il.smind > вот ты помечаешь справа [19:43:11] <il.smind > переключился [19:43:19] <il.smind > помечаешь [19:43:25] <il.smind > помечается [19:43:33] <il.smind > аты бы хотел? [19:43:59] <andrew_b> Сбрасывать при переключении. [19:44:42] <andrew_b> state_mark = -1; [19:44:53] <il.smind > это я понимаю [19:45:03] <andrew_b> Кстати, почему state_mark, а не mark_state? [19:45:03] <il.smind > но вот я нажал таб [19:45:21] <il.smind > незнаю, переименовать? [19:45:37] <il.smind > было state_of_mark [19:45:44] <il.smind > gjnjv cjrhfnbk [19:45:46] <andrew_b> Смотря что ты имеешь в виду. [19:45:48] <il.smind > потом сократил [19:46:07] <andrew_b> state of mark или mark state. [19:46:23] <andrew_b> Порядок слов наоборот. [19:47:13] <andrew_b> Или state_mark = 0; [19:47:22] <andrew_b> Не знаю, как правильнее. [19:49:52] <andrew_b> il.smind : хочешь, няшку покажу? [19:51:52] <il.smind > конечно [19:52:10] <andrew_b> http://adoxa.110mb.com/tde/ [19:52:27] <andrew_b> Попробуй собери и запусти. [19:54:28] <andrew_b> Правда, там надо кое-чего поправить, чтоб собралось. Я уже не помню что. [19:55:47] <andrew_b> Есно, уникод он не умеет, мышь не умеет. [19:56:14] <andrew_b> И почему-то жрёт проц. [20:01:17] andrew_b вышел из конференции [20:13:07] repolainen зашёл в конференцию [20:13:14] <repolainen> ай-яй-яй [20:13:26] <repolainen> в @en репортят баги в wiki :] [20:13:50] <repolainen> http://www.midnight-commander.org/wiki/doc/editor/hotkeys <- meta+i не работает справедливо говорят :] [20:38:04] <il.smind > repolainen: дак поправь вику [20:38:16] <il.smind > права то есть [20:39:01] <repolainen> бугога, и какой сейчас кейбинд на автоиндент? :] [20:52:47] il.smind вышел из конференции: Компьютер вошёл в спящий режим [22:15:37] repolainen вышел из конференции