[06:33:27] andrew_b зашёл в конференцию [06:46:40] il.smind зашёл в конференцию [06:47:24] <il.smind > repolainen: нет такого [07:00:55] repolainen зашёл в конференцию [08:12:03] theMIROn зашёл в конференцию [08:12:56] <theMIROn> видели? http://habrahabr.ru/company/selectel/blog/122027/ [08:14:00] <andrew_b> > MC, как самом старинном (и не зависящем от ncurses) приложении. Дальше можно не читать? [08:14:16] <theMIROn> это не единственное [08:14:24] <theMIROn> ага ) [08:14:40] <andrew_b> Всё же прочту. Чисто поржать. [08:16:36] repolainen вышел из конференции [08:19:00] theMIROn вышел из конференции [08:20:25] theMIROn зашёл в конференцию [08:22:51] <andrew_b> Нучо. Поржать не пришлось. [08:23:12] <andrew_b> Занятно написано. [08:24:22] <theMIROn> подключаюсь по ssh к девайсу в котором 100% нет ни video ни v* устройств, и консэйвер работает [08:24:26] <theMIROn> вай? [08:25:49] <andrew_b> В TERM что? [08:26:05] <theMIROn> xterm [08:26:13] <andrew_b> Ну вот. [08:26:27] <theMIROn> угу, уж сам уже... [08:27:21] <andrew_b> http://habrahabr.ru/company/selectel/blog/122027/#comment_4001775 [08:59:09] <slavazanko/w> всем привет [08:59:27] <andrew_b> Привет. [09:06:10] <slavazanko/w> andrew_b: посмотрел твой патч в 2361_vfs_uri намана :) У меня многое на допущениях было, у тебя более точно. ну что, пора бы энтот бранч того... в мастер. Пока я на свободе :) [09:06:52] <andrew_b> Оззи? [09:07:22] <slavazanko/w> Пусть ревьювает. Он только критиковать мастер. А так он не голосует [09:07:45] <andrew_b> Да, про мой патч. Там можно немного соптимизировать, чтобы не делать много раз канонизацию. А то долго всё это. [09:08:55] <slavazanko/w> не, я спецом сделал такое. потому что если будет mc_build_filename("file:/", "/path") то оно превратится в "file://path" и потом того... подумается. что это vfsprefix [09:09:11] <slavazanko/w> поэтому канонизировал как каждый элемент. так и потом в целом [09:09:43] <andrew_b> Например, в последней итерации не добавляьть / в конец. Тогда последняя канонизация вроде и не нужна. [09:11:09] <andrew_b> Да, и ещё. [09:11:11] <slavazanko/w> mc_build_filename("path1", "path2/..", "path3") превратится в "path1/./path3" желательно канонизировать [09:11:43] <andrew_b> Не. [09:11:47] <slavazanko/w> ? [09:12:19] <andrew_b> 1051 if (tmp_element[len - 1] != PATH_SEP) 1052 g_string_append_c (path, PATH_SEP);
Если element -- последний, то можно не делать. [09:13:42] <slavazanko/w> можно и так [09:14:06] il.smind вышел из конференции [09:14:10] <andrew_b> --- a/lib/utilunix.c +++ b/lib/utilunix.c @@ -1040,6 +1040,9 @@ mc_build_filename (const char *first_element, ...) char *tmp_element; size_t len; const char *start; + const char *next; + + next = va_arg (args, char *);
g_string_append (path, start); - if (tmp_element[len - 1] != PATH_SEP) + if (tmp_element[len - 1] != PATH_SEP && next != NULL) g_string_append_c (path, PATH_SEP);
g_free (tmp_element);
- element = va_arg (args, char *); + element = next; } while (element != NULL); [09:14:46] il.smind зашёл в конференцию [09:15:13] <slavazanko/w> вроде так проще:
g_string_append (path, start); - if (tmp_element[len - 1] != PATH_SEP) + element = va_arg (args, char *); + + if (tmp_element[len - 1] != PATH_SEP && element != NULL) g_string_append_c (path, PATH_SEP);
g_free (tmp_element);
- element = va_arg (args, char *); } while (element != NULL); [09:16:16] <andrew_b> Ну или так. [09:16:22] <andrew_b> Теперь такой вопрос. [09:17:22] <andrew_b> А как у нас урлы для сетевых систем выглядят? /ftp://host/foo [09:17:42] <andrew_b> В комстроке cd /ftp://host/foo [09:17:48] <slavazanko/w> ftp://user:pass@host/path [09:17:59] <slavazanko/w> первый слэш не обязательно [09:18:10] <andrew_b> Понял. [09:18:35] <slavazanko/w> он всего лишь показывает в куда выйти после выхода из vfs по нажатию на ".." [09:23:10] <andrew_b> slavazanko/w: раз ты на свободе, посмотри http://www.midnight-commander.org/ticket/2541. [09:23:30] <slavazanko/w> ок, ща [09:23:31] BanderOS зашёл в конференцию [09:24:34] <andrew_b> Обрати внимание на коммент #8. [09:27:50] <slavazanko/w> видел уже раньше. Его мнение - это его мнение. А кэш - это данные из памяти, сохранённые на диск. То есть, они воостанавливаются между запусками mc в памяти опять. Если стереть, то всё. Кирдык. Это как удалить файл hibernate.sys (или как там его в венде звать) и потом попробовать воостановиться из хибернейта. Получим простую загрузку. хотя это в чистом виде кэш. Пасан не прав. короче. А красиво и художественно расписать всё это по-английски мне лениво :) [09:29:01] <slavazanko/w> ну или второстепенные настройки там хранятся. [09:29:24] <slavazanko/w> короче, девушка (то бишь mc) наша, как хотим так и танцуем её [09:30:25] <andrew_b> ok [09:36:28] <andrew_b> А что у нас со стейблом? По идее, в июне надо было релизить. Два месяца прошло. [09:36:51] <slavazanko/w> в июле жахнем вместе с 4.8.0-pre1 [09:37:45] <andrew_b> В http://www.midnight-commander.org/wiki/NEWS-4.7.5.3 кот наплакал. [09:38:23] <slavazanko/w> потому что основные силы были на мастере [09:48:00] <andrew_b> Я подпушил оптимизацию. [09:48:08] <andrew_b> Ещё раз проверю и проголосую. [09:48:58] <slavazanko/w> ок [10:12:29] <slavazanko/w> по 2541 имеет смысл вынести static int max (int a, int b) в библиотеку и сделать публичной? [10:26:36] il.smind вышел из конференции: Компьютер вошёл в спящий режим [10:38:38] <slavazanko/w> /home/slavaz/work/mc-devel/git/lib/widget/input.c: In function 'input_load_history': /home/slavaz/work/mc-devel/git/lib/widget/input.c:777:18: error: assignment discards 'const' qualifier from pointer target type [-Werror] /home/slavaz/work/mc-devel/git/lib/widget/input.c:783:22: error: assignment discards 'const' qualifier from pointer target type [-Werror] /home/slavaz/work/mc-devel/git/lib/widget/input.c:793:20: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare] cc1: all warnings being treated as errors [10:39:38] <andrew_b> Ну у нас же нет шаблонов. :) Это будет функция только для int. Есть макрос max lib/global.h, он для всех типов. [10:39:52] <andrew_b> Варнинги поправлю. [10:40:37] <slavazanko/w> а какой смысл делать функции только для int в обход дефайна? [10:43:28] <andrew_b> Когда ты пишешь len = max (len, str_term_width (foo)); то с макросом полчаешь len = len > str_term_width (foo) ? len : str_term_width (foo);
str_term_width (foo) может вычислиться 2 раза. Конечно, компилятор может соптимизировать, но лучше перебдить. [10:44:20] <andrew_b> А с функцией max str_term_width будет вызвана один раз. [10:46:13] <andrew_b> slavazanko/w: что-то не понял. /home/slavaz/work/mc-devel/git/lib/widget/input.c: In function 'input_load_history': /home/slavaz/work/mc-devel/git/lib/widget/input.c:777:18
777 строка -- это не функция input_load_history. Это input_destroy. [10:46:56] <andrew_b> input_load_history вообще нет. [10:49:50] <slavazanko/w> $ git pull Already up-to-date. $ git describe 4.7.5-228-gde28e73 $autogen.sh ... CC libmcwidget_la-input.lo /home/slavaz/work/mc-devel/git/lib/widget/input.c: In function 'input_load_history': /home/slavaz/work/mc-devel/git/lib/widget/input.c:777:18: error: assignment discards 'const' qualifier from pointer target type [-Werror] /home/slavaz/work/mc-devel/git/lib/widget/input.c:783:22: error: assignment discards 'const' qualifier from pointer target type [-Werror] /home/slavaz/work/mc-devel/git/lib/widget/input.c:793:20: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare] cc1: all warnings being treated as errors [10:50:12] <slavazanko/w> $ git st # On branch 2541_save_setup [10:50:55] <andrew_b> 4.7.5-222-g27f72fa [10:50:59] <andrew_b> Ща. [10:55:01] <andrew_b> Исправил. [11:38:43] <andrew_b> slavazanko/w: тут? [11:38:50] <slavazanko/w> тут [11:40:22] <andrew_b> F9 -> Shell-соединение.
Пишу: /#sh:localhost/home/borodin Всё оk.
Пишу: sh://localhost/home/borodin Получаю: Невозможно перейти в "/#sh:sh://localhost/home/borodin" [11:40:39] <slavazanko/w> понял [11:40:51] <andrew_b> Где-то в районе nice_cd. [11:41:26] <slavazanko/w> то есть. ты ы строке ввода прямо лупишь с префиксом? [11:41:38] <andrew_b> Да. [11:41:42] <slavazanko/w> ок [11:42:04] <andrew_b> С ftp наверняка то же самое. Мне не на чем проверить. [11:42:15] <slavazanko/w> проверю [11:42:41] <slavazanko/w> вероятно, оно тупо добавляет /#sh [11:42:47] <slavazanko/w> после строки ввода [11:43:14] <andrew_b> Да. [11:43:36] <andrew_b> В nice_cd. [11:44:56] <slavazanko/w> option.c:75 if (sender != NULL && sender->id == 17) 17 - это что за константа? порядковый номер элемента в диалоге? [11:45:11] <slavazanko/w> src/filemanager/option.c [11:45:17] <andrew_b> id [11:45:33] <andrew_b> Да, по сути порядковый. [11:46:11] <slavazanko/w> ок [11:55:57] <slavazanko/w> может. в nice_cd два префикса передавать?... [11:58:09] <andrew_b> Зачем? [11:58:30] <slavazanko/w> чтобы или один. или второй сработал [12:00:58] <andrew_b> Была такая функция vfs_translate_url, которую ты изничтожил. Вот она и делала замену префиксов. [12:01:43] <slavazanko/w> ну значит появится рядом с nice_cd функция transform_prefix :) [12:02:44] <andrew_b> 34a4af18ed7c83845725a4f6584c7714773de226 [12:03:52] <slavazanko/w> не-не. оно топорное. Преобразовать #vfsprefix в vfsprefix:// и обратно - дело нехитрое [12:38:10] <slavazanko/w> запушил [12:38:16] <slavazanko/w> по 2361_vfs_uri [12:42:03] <andrew_b> strcpy (buffer + 1, prefix + 2); [12:42:08] <andrew_b> Почему 2? [12:42:17] <slavazanko/w> # и : [12:42:39] <slavazanko/w> в префиксе три лишних символа: /# и : / мы уже скопировали... [12:42:52] BanderOS вышел из конференции [12:43:07] <andrew_b> Не понял. [12:43:41] <slavazanko/w> prefix = "/:ftp:" buffer = prefix+2 = "ftp:" [12:43:43] <Зося Синицкая> slavazanko/w: Префикс команд: = "/:ftp:" buffer = prefix+2 = "ftp:" [12:43:59] <slavazanko/w> вот дура. ещё и что-то запомнила [12:44:09] <andrew_b> prefix [12:44:25] <andrew_b> help prefix [12:44:26] <mc_log> andrew_b: не найдено (prefix) [12:44:40] <slavazanko/w> чудеса [12:45:47] <andrew_b> Всё равно не понял. Откуда в /:ftp: первое двоеточие? [12:46:01] <slavazanko/w> не двоеточие. я ошибся. решётка. # [12:46:19] <slavazanko/w> решётку пропускаем [12:48:54] <slavazanko/w> неполный вариант, блин [12:51:17] <andrew_b> Напиши заодно комментарий про 2. [12:53:37] <slavazanko/w> там никаких проверок не надо. [12:53:40] <slavazanko/w> запушел [12:55:56] <andrew_b> http://kalinin.ru/programming/ [12:57:14] <andrew_b> Старые статьи. [12:57:21] <slavazanko/w> угу [12:57:22] <andrew_b> 10-летней давности. [13:10:51] <slavazanko/w> по мотивам 2541_save_setup и по ранне сделанному независимому разделению кода на lib и src: нужно где-то описывать названия событий, что они означают, какие параметры принимают... в Вике или в doc где-нить? [13:29:19] <slavazanko/w> http://midnight-commander.org/wiki/doc-devel [13:58:42] <andrew_b> slavazanko/w: недолечил. [13:58:54] <slavazanko/w> ? [13:59:21] <andrew_b> Захожу по sh://localhost/home/borodin. [13:59:27] <andrew_b> Удачно. [13:59:50] <andrew_b> В заголовке панели /sh:/sh://localhost/home/borodin [14:00:06] <slavazanko/w> понял [14:02:42] <slavazanko/w> 2541 апрувед. Вот только как оно будет стейбл-кандидатом я не знаю :) [14:03:50] <slavazanko/w> http://midnight-commander.org/wiki/doc-devel/events/reference уже так накопилось событий... [14:07:12] <andrew_b> Подожём пока. Там всё на стейбл перенести не получится из-за событий. [14:07:29] <slavazanko/w> да [14:11:11] <Зося Синицкая> RSS: Новости для Midnight Commander • Ticket #2541 (mc quits with excessive audible I/O loads) updated http://www.midnight-commander.org/ticket/2541#comment:9 [14:11:12] il.smind зашёл в конференцию [14:11:51] <il.smind > привет! [14:12:02] <andrew_b> ! [14:12:15] <slavazanko/w> привет [14:12:22] <il.smind > ездил арматутру привёз [14:12:35] <il.smind > арматуру [14:15:03] <slavazanko/w> andrew_b: запушил. Надеюсь. последний :) [14:35:38] <il.smind > чопочём? [14:36:22] <slavazanko/w> 2361_vfs_uri [14:41:48] <il.smind > slavazanko/w: главным ворчуном проверено? [14:42:12] <slavazanko/w> слай давно не появлялся [14:42:52] <il.smind > )) [14:43:01] <il.smind > не тот [14:43:36] <slavazanko/w> Андрюха ворчун штоле? Не :) он добрый. нежный и ласковый. [14:44:43] <slavazanko/w> проверка в процессе ещё. ты того... параллельно тоже. Выявляй недостатки, говори про них. от сегодня ещё один недостаток зафиксили... [15:03:19] <andrew_b> slavazanko/w: в манах осталось ~/.local/share/mc/bindings [15:03:36] <andrew_b> А надо ~/.local/share/mc/mc.ext [15:05:49] <andrew_b> Кстати, при переносе конфигурации из ~/.mc переименуется ли ~/.mc/bindings в ~/.local/share/mc/mc.ext? Чо-то кажется, что нет. [15:09:03] <slavazanko/w> нет. И не нужно [15:09:20] <andrew_b> Точно? [15:11:08] <slavazanko/w> точно. Нужна ручная обработка [15:13:07] <slavazanko/w> изменения по докам запушил [15:22:14] <andrew_b> slavazanko/w: а теперь перелечил. :) [15:22:35] <slavazanko/w> ? [15:22:37] <andrew_b> В заголовке панели ...c/mc/mc-2361_vfs_uri/sh://localhost/home/borodin [15:22:52] <andrew_b> Ты сам-то проверяешь? :)) [15:23:15] <slavazanko/w> ну да. После выхода попадаем в текущий каталог. Сейчас проверял. Мне текущий каталог больше нравится, чем вылет в корень [15:24:04] <andrew_b> Я захожу в sh://localhost/home/borodin. [15:24:17] <andrew_b> А на панели написано вон что. [15:24:29] <andrew_b> ...c/mc/mc-2361_vfs_uri причём тут? [15:26:39] <andrew_b> Из-за - buffer[0] = PATH_SEP; [15:27:04] <andrew_b> Корня нет, вот оно и слепливается. [15:27:47] <slavazanko/w> ща [15:27:49] <il.smind > я снова тут [15:28:04] <andrew_b> il.smind : а толку-то? [15:28:13] <andrew_b> Тут он... [15:28:24] <il.smind > andrew_b: да, согласен [15:28:39] <il.smind > тут еще 2-е сзади нудяят [15:28:40] <andrew_b> Когда отдыхать закончишь? [15:28:57] <il.smind > одному шарик надуть второй вообще непоми чо надо [15:29:01] <andrew_b> Народил -- терпи. [15:29:34] <andrew_b> Всё, пошёл я. [15:29:34] <slavazanko/w> запушил [15:29:45] <slavazanko/w> ну иди. Я пожалуй тоже домой рвану [15:29:47] <il.smind > andrew_b: куда? [15:29:49] <slavazanko/w> надоело работать [15:30:00] <il.smind > а... [15:30:06] <andrew_b> il.smind : домой. Рабочий день того, закончен. [15:30:11] andrew_b вышел из конференции: конец рабочего дня [15:30:15] <il.smind > что я могу сделать? [15:30:40] <slavazanko/w> если не сильно занят, то поревьювай. Хотя бы по одному коммиту [15:30:49] <slavazanko/w> между детьми :) [15:31:09] <il.smind > тяжко [15:31:19] <il.smind > а помельче есть работа? [15:31:21] <slavazanko/w> gjнимаю [15:31:28] <slavazanko/w> помельче.. гм. Есть [15:31:30] <il.smind > я пробовал ревьювить [15:31:31] <slavazanko/w> завоевать мир [15:31:36] <il.smind > вфс [15:31:41] <il.smind > но сложно [15:32:02] <slavazanko/w> Ладно, тогда такая просьба: скомпили и поставь в качестве рабочего [15:32:13] <slavazanko/w> обо всех недочётах сразу отписуйся [16:03:14] <il.smind > слав [16:03:22] <slavazanko/w> ? [16:03:55] <il.smind > как тебе нравится вот это [16:04:30] <il.smind > http://adoxa.110mb.com/tde/tde.png [16:04:53] <il.smind > пункты меню видишь как обозначены [16:05:05] <il.smind > a) b) c) [16:05:31] <slavazanko/w> типа, быстрого доступа? [16:05:47] <il.smind > да [16:05:53] <slavazanko/w> мне на этом вкриншоте больше тень нравиццо :) [16:06:08] <il.smind > я просто от этих русских хоткеев [16:06:20] <il.smind > незнаю как избавиться [16:06:27] <il.smind > жутко неудобно [16:06:28] <slavazanko/w> лечить надо tty/key [16:06:48] <slavazanko/w> это больше к Андрею. Он виджетных дел мастер [16:07:03] <il.smind > slavazanko/w: лечить чтобы что? [16:07:29] <il.smind > мне идея национальных хоткеев не нравится [16:07:48] <il.smind > надо все время язык переключать [16:07:56] <il.smind > потом возвращать [16:09:11] <il.smind > ты просто посмотри на них и всё... ну на скриншоте я имею ввиду [16:09:20] <il.smind > я не требую решения [16:09:31] <il.smind > просто мнение твоё интересно [16:11:07] <slavazanko/w> нормально выглядит [16:11:16] <il.smind > ок [16:59:56] <il.smind > slavazanko/w: CC ftpfs.lo ftpfs.c: In function 'ftpfs_open_socket': ftpfs.c:819:10: error: incompatible types when assigning to type 'char[8]' from type 'void *' [17:31:19] slyfox^w зашёл в конференцию [17:31:38] <slyfox^w> в ubuntu Ctrl+O в редакторе из mc до сих пор не работает, прально? [17:43:06] slyfox^w вышел из конференции [18:26:47] <il.smind > slyfox^w: Слай [18:26:59] <il.smind > Ты чего партизанишь чтоле? [18:35:28] andrew_b зашёл в конференцию [18:44:45] repolainen зашёл в конференцию [18:46:51] <repolainen> ы? [18:47:07] <repolainen> студик на работе попросил настроить Ctrl+o на убунте и я сфейлил [18:49:19] <andrew_b> http://habrahabr.ru/company/selectel/blog/122027/ [18:51:43] <andrew_b> Грят, надо cons.saver установит sgid для группы tty. [18:51:56] <andrew_b> Точнее, так в Дебиане. [18:52:22] <andrew_b> В Убунте тоже должно быть также по идее. [18:56:35] <repolainen> оно даже под рутом неработает [18:56:45] <repolainen> с правами баловался. не помогло [18:57:08] theMIROn вышел из конференции: Miranda IM. Menshe. Pushche. Proshhe! [18:57:17] <andrew_b> А сам cons.saver есть? [18:58:23] <andrew_b> У меня так:
$ ll /usr/lib/mc/cons.saver -rws--x--x 1 root root 9580 Янв 19 21:04 /usr/lib/mc/cons.saver [18:58:52] <repolainen> сам есть [18:59:43] <repolainen> у меня в gentoo sgid на tty, тоже работает [19:02:11] <repolainen> завтра утром еще поизучаю [19:07:09] repolainen вышел из конференции [19:07:53] slavazanko/h зашёл в конференцию [19:10:02] <il.smind > andrew_b: слушай [19:10:04] <slavazanko/h> > ftpfs.c:819:10: error: incompatible types when assigning to type 'char[8]' from type 'void *' какой бранч? в 2361_vfs_uri на этом номере пустая строка [19:10:30] <il.smind > что там надо чтобы панели уменьшать в консоли linux [19:10:31] theMIROn зашёл в конференцию [19:10:48] <il.smind > slavazanko/h: это древнее что то [19:10:55] <il.smind > я уже перепулил [19:11:00] <slavazanko/h> откуда? [19:11:06] <il.smind > с репа [19:11:11] <il.smind > так что всё ок [19:11:33] <slavazanko/h> а. Бранч проверял? [19:11:43] <slavazanko/h> ревьювать-то надо. Хоть немного [19:11:53] <slavazanko/h> и релизиться. А то уже до неприличия затянули [19:11:57] <andrew_b> il.smind : Настройки/Внешний вид/Консольный вывод [19:11:58] <il.smind > slavazanko/h: немного [19:12:02] <il.smind > andrew_b: да [19:12:12] <il.smind > недоступна настройка [19:12:13] <andrew_b> А чо спрашиваешь? [19:12:21] <il.smind > недоступна [19:12:23] <andrew_b> Потому что не консоль. [19:12:28] <il.smind > как узнать почему [19:12:29] <slavazanko/h> хочет доступную настройку в xterm [19:12:33] <il.smind > у меня консоль [19:12:36] <slavazanko/h> думаю, что не получится [19:12:48] <andrew_b> slavazanko/h: не xterm. [19:12:52] <slavazanko/h> потому что в xterm переключаемся на альтернативный буфер [19:12:54] <andrew_b> Только консоль. [19:13:01] <il.smind > только консоль [19:13:07] <il.smind > не xterm [19:13:23] <slavazanko/h> угу, только в консоли. Причём у меня в голой консоли не работает. Но это из-за федоркиного фреймбуфера по дефолту [19:13:43] <andrew_b> slavazanko/h: а вот такой неожиданный вопрос: 2361_vfs_uri под валгриндом запускал? [19:13:44] <il.smind > чего мне не хватает в консоли [19:13:53] <il.smind > что посмотреть [19:13:55] <il.smind > ? [19:14:05] <andrew_b> УМВР во фреймбуфере. [19:14:11] <slavazanko/h> andrew_b: на непредсказуемый вопрос предсказуемый ответ: нет :) ща погоняю [19:15:44] <andrew_b> il.smind : у тебя бубунта? [19:16:16] <slavazanko/h> andrew_b: УМНР, но мне монопениссуально. Я и так этой фичей не пользуюсь [19:18:28] <il.smind > andrew_b: слако [19:19:11] <il.smind > дело не в дистре [19:19:21] <il.smind > а в проверках в mc [19:19:54] <andrew_b> Ну код посмотри. Маленький, штоли? [19:20:14] <il.smind > да там тогось [19:20:18] <il.smind > я смотрел [19:20:25] <il.smind > мы не поняли-с [19:21:00] <il.smind > mc_global.tty.console_flag [19:21:11] <il.smind > как оно назначается? [19:22:00] theMIROn вышел из конференции: Miranda IM. Menshe. Pushche. Proshhe! [19:23:00] <il.smind > мож у меня конс сервер не запущен? [19:23:33] <il.smind > а должен? [19:25:56] <il.smind > andrew_b: Андрей! [19:26:31] theMIROn зашёл в конференцию [19:26:43] <il.smind > Вы тут?! [19:26:57] <slavazanko/h> кто? [19:27:04] <il.smind > Они [19:27:15] <andrew_b> il.smind : ХЗ [19:27:33] <il.smind > тебе нравится как в TDE [19:27:44] <il.smind > a) b) c) [19:27:59] <andrew_b> Это ужас-ужас. [19:28:58] <il.smind > да ну тя... [19:29:15] <il.smind > я то думал тебе понравится... [19:29:31] <andrew_b> Ни разу. [19:29:57] <il.smind > ну тогда незнаю [19:32:50] slavazanko/h вышел из конференции [19:34:12] <il.smind > тогда никуда не деться ок русских хоткеев [19:34:29] <andrew_b> LC_MESSAGES=C mc [19:34:43] <andrew_b> И не будет тебе русских хоткеев. [19:35:13] <il.smind > и русских пунктов меню [19:35:27] <il.smind > а вот в фаре всё ок [19:35:32] <il.smind > с этим [19:35:57] slavazanko/h зашёл в конференцию [19:37:07] <il.smind > там допустим если хоткей "в" [19:37:21] <il.smind > то работает и "в" и "d" [19:38:10] <andrew_b> Это не в Фаре, а в Венде, у которой полторы кодировки. [19:39:20] <il.smind > ну может быть... [19:39:29] <andrew_b> И тупая консоль. [19:39:34] <il.smind > )) [19:39:47] <il.smind > тупая но хорошая :) [19:39:58] <il.smind > но я согласен [19:42:00] <il.smind > как заспавить себя в этом вашем mc ковыряться... [19:42:09] <il.smind > тут прички поют [19:42:48] <il.smind > на улице... [19:43:04] <il.smind > можно воздухом подышать [19:43:16] <il.smind > на можно сходить... [19:43:39] <il.smind > я же ничего этого 10 месяцев в году не вижу [19:43:49] <il.smind > даже солнца не дают [19:45:12] <il.smind > сын сказал - Одна тебе минута! [19:49:02] <andrew_b> Да, я тоже пойду. Спать. [19:49:08] andrew_b вышел из конференции [19:58:15] slavazanko/h вышел из конференции [20:00:15] slavazanko/h зашёл в конференцию [20:00:24] <slavazanko/h> отдыхай, Илья. Если один раз за 10 месяцев, то это святое :) [20:19:54] BanderOS зашёл в конференцию [20:40:12] slavazanko/h вышел из конференции [20:56:49] slavazanko/h зашёл в конференцию [21:17:47] <il.smind > strcpy (buffer , prefix + 2); [21:18:00] <il.smind > поправь пробел перед запятой [21:18:07] <il.smind > slavazanko/h: Слав! [21:20:54] <il.smind > buffer + strlen (prefix) - 3 не может быть отрицательным? [21:21:39] <il.smind > prefix пустой и buffer < 3-х ? [21:22:43] <il.smind > не не меньше трёх [21:23:08] <il.smind > а раньше начала строки [21:24:35] <il.smind > имхо надо проверить длину prefix [21:34:40] <il.smind > lib/utilunix.c
568 while (*p) 569 { 570 if (p[0] == PATH_SEP && p[1] == PATH_SEP && (p == lpath || *(p - 1) != ':')) 571 { 572 s = p + 1; 573 while (*(++s) == PATH_SEP); 574 str_move (p + 1, s); 575 } 576 p++; 577 } [21:35:28] <il.smind > зачем в цикле проверять p[0] == PATH_SEP && p[1] == PATH_SEP [21:36:07] <slavazanko/h> 576 p++; [21:36:24] <il.smind > да... сижу вот думаю... [21:36:33] <il.smind > как [21:36:45] <slavazanko/h> меняется указатель при каждой итерации цикла. пэтому надо проверять [21:36:48] <il.smind > если за цикл вынести [21:36:58] <il.smind > а... [21:37:16] <il.smind > ну да [21:37:36] <il.smind > такие вещи *(p - 1) [21:37:46] <il.smind > меня всегда напрягают [21:38:17] <slavazanko/h> ну... это p[-1] [21:38:21] <slavazanko/h> другая запись [21:38:28] <il.smind > и? [21:38:34] <slavazanko/h> то же самое [21:38:44] <il.smind > а где гарантия валидности? [21:39:30] <il.smind > ну понятно что p указывает не на NULL [21:40:17] <slavazanko/h> (p == lpath || *(p - 1) != ':') если p равно lpath(он же - начало строки) ИЛИ предыдущий символ не равен двоеточию [21:40:54] <slavazanko/h> то есть. сравнение *(p - 1) != ':' никогда не будет проверяться. если p равно началу строки [21:41:02] <il.smind > я понимаю что или [21:41:05] <slavazanko/h> тут и есть гарантия валидности [21:41:34] <slavazanko/h> второе условие не выполняется. если первое условие валидно. Это стандарт Си [21:41:53] <il.smind > да [21:42:20] <il.smind > p != lpath [21:42:41] <il.smind > оно может быть меньше [21:42:50] <il.smind > не только больше [21:43:20] <slavazanko/h> в каких условиях оно может быть меньше? [21:43:58] <il.smind > при условии что перед циклом p = lpath [21:44:00] <il.smind > да? [21:44:10] <il.smind > наверное ни при каких [21:44:17] <slavazanko/h> угу [21:44:57] <il.smind > ок [21:45:13] <il.smind > пробел уберёшь? :) [21:45:23] <slavazanko/h> где? [21:45:40] <il.smind > [23:17:53] <il.smind > strcpy (buffer , prefix + 2); [23:18:05] <il.smind > поправь пробел перед запятой [21:46:02] <il.smind > cmd.c вроде [21:46:29] <slavazanko/h> номер строки какой? [21:46:54] <il.smind > 494 [21:46:56] <slavazanko/h> а. вижу [21:47:45] <slavazanko/h> поправил :) [21:49:14] <il.smind > про il.smind > имхо надо проверить длину prefix [21:49:26] <slavazanko/h> в каком файле? [21:49:32] <il.smind > можешь сказать? [21:49:34] <il.smind > ща [21:49:45] <il.smind > там же [21:49:55] <il.smind > где и пробел [21:51:52] <slavazanko/h> а. Не. там префик не может быть меньше 3-х символов. Все вызова функции nice_cd строго прописаны. В смысле. с захардкоденными префиксами. Префикс не вводится пользователем. а добавляется из функции. например. ввода FISH-строки для соединения. Самый короткий префикс /#sh: он пять символов [21:52:06] <il.smind > ну и что [21:52:24] <il.smind > а вдруг кто то будет писать новое [21:52:48] <il.smind > и сделает /#: [21:53:29] <slavazanko/h> между 4.8.0 и 4.9.0? сомневаюсь :) А после 4.9.0 поддержка старых путей будет убрана и эта функция перестанет существование. Это временный костыль на период существования двух форм строки пути [21:55:57] <il.smind > 1 проверочку, а? [21:56:22] theMIROn вышел из конференции [21:56:24] <il.smind > нет ничего более постоянного чем временное [21:56:28] theMIROn зашёл в конференцию [21:58:29] <slavazanko/h> запушел твоё пожелание [22:00:05] <il.smind > 10 коммитов отсмотрел [22:00:11] <il.smind > осталось 100500 [22:01:06] <il.smind > под рукой нет соляры [22:01:17] <il.smind > ты уверен в этом 118 return g_strdup_printf ("%c%" PRIuMAX SRLZ_DELIM_S "%s", prefix, strlen (data), data); 116 return g_strdup_printf ("%c%zd" SRLZ_DELIM_S "%s", prefix, strlen (data), data); [22:02:10] <il.smind > вроде как патчили мы по итогам компиляции под солярой %zd [22:02:52] <slavazanko/h> это мы с Андрюхой выстрадали. У меня гуд. у него нет. от он и предложил так [22:02:53] <il.smind > а нет [22:03:03] <il.smind > %zd есть [22:03:12] <il.smind > в 4-х местах [22:03:14] <slavazanko/h> угу [22:03:15] <il.smind > ну ок [22:03:25] <il.smind > мне просто не проверить пока [22:03:34] <il.smind > на солярке [22:03:39] <slavazanko/h> поверь на слово. что всё гуд :) [22:03:51] <il.smind > я верю [22:03:54] <slavazanko/h> я вот только пару мямликов пофикшу ещё... [22:04:04] <il.smind > просто как приеду проверю ) [22:04:21] <il.smind > под валгриндом погонял? [22:04:24] <slavazanko/h> угу. тогда переоткроешь 2361 :) [22:04:39] <il.smind > ах ты... [22:04:44] <slavazanko/h> гоняю. И фикшу memory leaks. показал сразу. зараза [22:05:05] <slavazanko/h> немного. но есть. в рёх местах пока что [22:05:05] <il.smind > Понаберут по объявлению... [22:05:25] <slavazanko/h> по объявлению про мопеды? [22:05:36] <il.smind > )) [22:06:07] <slavazanko/h> не. там настолько глубокие изменения были. что в принципе я доволен количеством мемликов. [22:06:14] <slavazanko/h> думал. что быдет больше [22:06:24] <il.smind > я понимаю [22:06:37] <il.smind > я думал вообще никогда не родится [22:06:54] <il.smind > это я еще только фиксы на фиксы смотрю [22:07:10] <il.smind > еще до настоящих коммитов не добрался ) [22:07:11] <slavazanko/h> не родится кто? [22:07:22] <slavazanko/h> а. ты сверху смотришь :) [22:07:25] <il.smind > новая vfs [22:07:37] <slavazanko/h> я обычно начинаю с первых коммитов по хронологии [22:07:39] <il.smind > я смотрю по разному [22:08:00] <slavazanko/h> а новой vfs ещё нету. Это первые шаги. Конечная цель: полноценные плагины с API [22:08:10] <il.smind > я смотрю патч а потом смотрю разницы между мастером и бранчем [22:08:17] <il.smind > по одному файлу [22:08:19] <slavazanko/h> а [22:08:24] <il.smind > в diffview [22:09:41] <il.smind > нашел когда приехал письмо из налоговой [22:09:49] <il.smind > отправленное моей маме [22:09:58] <il.smind > о том что она снята с учета [22:10:06] <il.smind > в связи со смертью [22:10:43] <slavazanko/h> то есть. письмо в никуда? [22:11:06] <il.smind > больные люди на голову [22:11:14] <slavazanko/h> угу [22:13:32] <il.smind > украл path_magic (const char *path) [22:13:39] <il.smind > из vfs.c [22:13:45] <il.smind > в свой [22:13:55] <il.smind > path.с [22:14:34] <il.smind > и цопирайты перебил Written by: Slava Zanko <slavazanko@gmail.com>, 2011 [22:14:46] <il.smind > оох.. [22:15:09] <il.smind > и сидит ровно [22:15:15] <slavazanko/h> ну не тебе одному код тырить... [22:16:45] <il.smind > ээх хорошая вещь diffview :) [22:19:48] <il.smind > #define PREFIX \ [22:19:57] <il.smind > тогось? [22:20:03] <il.smind > упразднил? [22:21:36] <slavazanko/h> угу [22:21:39] <slavazanko/h> он не нужен [22:21:46] <slavazanko/h> пофиксил мемлики [22:21:49] <il.smind > а уж квк я то рад [22:22:02] <slavazanko/h> уродство было какое-то [22:22:06] <il.smind > что ты снёс этот #define PREFIX \ [22:22:14] <il.smind > да ваще [22:23:07] <il.smind > т.е. у нас скоро будет релиз? [22:23:12] <il.smind > 4.8 ? [22:23:20] <slavazanko/h> да. Если ты отревьюваешь :) [22:23:26] <slavazanko/h> с Анлрюхой [22:23:39] <il.smind > а sftp ? [22:23:52] <il.smind > вы туда возьмёте? [22:23:56] <slavazanko/h> оно готово уже? С диалогом настроек? [22:24:28] <il.smind > да диалог настроек это для тренировки [22:25:23] <il.smind > а это... [22:25:49] <il.smind > помнишь про систему событий я говорил когда начинал делать sftp [22:26:15] <il.smind > там мне нехватало кое каких событий [22:26:30] <il.smind > и их мне приходитлось руками генерить [22:26:59] <il.smind > или пока с эим не приставать [22:27:16] <il.smind > ща скажу каких событий нехватало [22:27:33] <slavazanko/h> говори [22:31:23] <il.smind > open_archive [22:31:57] <slavazanko/h> напомни, что там за события нужны? [22:31:57] <il.smind > free_archive [22:32:14] <il.smind > ща буду вспоминать [22:32:16] <slavazanko/h> они откуда должны вызываться? кому посылаться? [22:32:21] <il.smind > ща [22:33:03] <il.smind > _open_archive [22:33:11] <il.smind > это инициализация [22:33:33] <il.smind > т.е. там я разбираю путь [22:33:59] <il.smind > делаю super->data = g_new0 (sftpfs_super_data_t, 1); [22:34:17] <il.smind > иициализирую супер [22:35:03] <il.smind > и запускаю процедуру установки соединения [22:36:06] <il.smind > сейчас мне приходится запускать ее руками через вызов vfs_s_get_path_mangle [22:36:25] <il.smind > внутри _chdir [22:37:33] <slavazanko/h> а как надо? [22:37:39] <il.smind > ytpyf. [22:37:42] <il.smind > незнаю [22:37:53] <il.smind > хотелось [22:38:06] <il.smind > бы чтобы само возбуждалось [22:38:26] <il.smind > в момент _chdir [22:38:49] <il.smind > или перед [22:39:37] <slavazanko/h> вроде есть вызов open_archive. Тот же FISH его поддерживает. по аналогии никак? [22:40:08] <il.smind > там везде понатыканы вызовы [22:40:18] <il.smind > vfs_s_get_path_mangle [22:40:59] <slavazanko/h> subclass->open_archive есть, да [22:41:03] <slavazanko/h> и что? [22:41:08] <slavazanko/h> не устраивает? [22:42:15] <il.smind > ну надо знать что надо впендюривать этот самый vfs_s_get_path_mangle [22:42:30] <slavazanko/h> дык оно автоматом вызывается [22:42:36] <il.smind > как то несколько неочевидно [22:42:39] <slavazanko/h> где надо [22:42:52] <il.smind > оно это кто? [22:43:04] <il.smind > open_archive? [22:43:16] <il.smind > да при вызове vfs_s_get_path_mangle [22:43:20] <slavazanko/h> vfs_s_get_path_mangle [22:43:26] <il.smind > нет [22:43:29] <slavazanko/h> vfs_s_open [22:43:34] <slavazanko/h> вызывает [22:43:34] <il.smind > его надо звать [22:43:39] <slavazanko/h> не надо [22:46:43] <il.smind > а кто позовёт vfs_s_open [22:46:48] <il.smind > ? [22:46:54] <il.smind > что то ниасилил [22:47:36] <slavazanko/h> vfs_s_init_class [22:48:00] <slavazanko/h> если после этого не переопределить vclass->open [22:48:07] <slavazanko/h> иначе вручную [22:48:30] <il.smind > дык [22:48:33] <slavazanko/h> а vclass->open будет вызван из mc_open... [22:48:52] <il.smind > а не вручную [22:50:19] <slavazanko/h> fish_open, например, потом вызывает vfs_s_open [22:50:31] <slavazanko/h> то есть, в конечном итоге всё работает как надо [22:50:41] <il.smind > я вот смотрю в рыбе этот vfs_s_open в fish_open [22:50:43] <slavazanko/h> и тебе надо в sftp_open вызывать её [22:50:51] <slavazanko/h> угу [22:50:53] <il.smind > возможно [22:51:06] <slavazanko/h> ну и всё. будет телемаркет [22:51:12] <il.smind > но меня же этому не учили... [22:51:22] <il.smind > будет то будет [22:51:34] <slavazanko/h> и меня тоже :) Я сейчас, пока с тобой общаюсь, по коду ищу и выясняю [22:51:41] <il.smind > но нельзя ли как то поочевиднее [22:51:51] <slavazanko/h> как? [22:52:13] <il.smind > незнаю [22:52:26] <il.smind > написать в доке [22:52:43] <il.smind > Вставьте вызов vfs_s_open [22:53:00] <il.smind > в sftp_open [22:53:08] <il.smind > в _open [22:53:18] <il.smind > или еще проще [22:53:22] <slavazanko/h> http://www.midnight-commander.org/wiki/doc-devel пиши там, если хошь [22:53:27] <il.smind > проверить не вызывался ли он [22:53:37] <il.smind > если не вызывался то вызвать [22:54:21] <il.smind > есть же место откуда можно позвать vfs_s_open [22:55:44] <slavazanko/h> если был переопределён вызов open, то vfs_s_open точно не вызывался ранее. потому что функция vfs_s_open вешается на вызов open как дефолтная. А тут ты перебиваешь её и вешаешь вместо неё свою sftp_open. Естественно, что надо потом вызвать из твоей функции оригинальную vfs_s_open [22:56:10] <il.smind > ок [22:56:58] <slavazanko/h> http://demotivators.ru/posters/572177/lezhachaya-politsejskaya-.htm [22:58:37] <il.smind > ) [22:59:50] <il.smind > ладно завтра сложный день... [23:00:01] <il.smind > пойду спать [23:00:08] <slavazanko/h> угу. Давай. Доревьювай - и спать :) [23:00:10] <il.smind > но я честно пытаюсь [23:00:17] BanderOS вышел из конференции: Этого участника выгнали из комнаты за то, что он послал сообщение об ошибке другому участнику: service-unavailable [23:04:06] BanderOS зашёл в конференцию [23:04:58] BanderOS вышел из конференции [23:56:36] il.smind вышел из конференции