294 mc_config_str = mc_config_init_one_config_path (u_config_dir, MC_USERCONF_DIR, error); 295 mc_cache_str = mc_config_init_one_config_path (u_cache_dir, MC_USERCONF_DIR, error); 296 mc_data_str = mc_config_init_one_config_path (u_data_dir, MC_USERCONF_DIR, error); [10:19:00] <andrew_b> Сдаётся мне, так делать неправильно. [10:19:25] <andrew_b> Иначе происходит затирание предыдущей ошибки и мемлики. [10:19:26] <slavazanko/h> а как по-другому? [10:19:32] <slavazanko/h> а, error [10:19:48] <andrew_b> Надо анализировать каждую ошибку и выходить, если она есть. [10:20:01] <slavazanko/h> не, вроде там не будет затирания. Наоборот, последующие ошибки будут пропущены. потому что error!= NULL [10:20:13] <Зося Синицкая> RSS: Новости для Midnight Commander • Ticket #2695 (VFS reorganization: the vfs_path_t expansion to 'src/' subdirectory) updated http://www.midnight-commander.org/ticket/2695#comment:10 • Ticket #2454 (Make reloading extfs contents possible) updated http://www.midnight-commander.org/ticket/2454 • Ticket #62 (savannah: MC fail to notice when archive is replaced) updated http://www.midnight-commander.org/ticket/62 [10:20:23] <slavazanko/h> и в последствии error не заполняется. Только в первый раз [10:20:31] <andrew_b> Ща. [10:21:29] <andrew_b> Гм. Да, действительно. [10:21:39] <andrew_b> 284 if (*dest != NULL) 285 g_warning (ERROR_OVERWRITTEN_WARNING, src->message); 286 else 287 *dest = src; [10:22:09] <andrew_b> Ну тогда ладно. [10:23:04] <andrew_b> Тогда вот ещё. Там же:
163 fprintf (stderr, "%s %s\n", _("FATAL: not a directory:"), full_path); 164 exit (EXIT_FAILURE); [10:23:27] <andrew_b> Лучше бы вынести наверх, а не файлурить из библиотеки. [10:24:40] <andrew_b> Кстати, в это месте на фалй .config почему-то не ругается. [10:24:51] <andrew_b> Хотя по идее должен. [10:27:08] <slavazanko/h> да, надо вынести из библиотеки. Не ругается - это и есть косяк. Должно [10:28:31] <andrew_b> В tty есть пара мест с exit(EXIT_FAILURE). [10:30:44] <andrew_b> В 2738_handle_startup_errors добавил коммит. [10:33:39] <andrew_b> Блин, я там неправильно сделал. [10:34:07] <iliamaslakov> mc не должен отваливаться [10:34:11] <iliamaslakov> так? [10:35:06] <andrew_b> Я перенёс mc_args_handle до инициализации vfs, а в mc_args_handle вызывается mc_setctl [10:35:30] <andrew_b> Но сама идея обработки ошибок, считаю, правильная. [10:36:07] <slavazanko/h> > mc_args_handle вызывается mc_setctl а оно там надо? может, просто setctl? [10:36:15] <andrew_b> Не. [10:36:32] <andrew_b> 430 if (mc_args__netfs_logfile != NULL) 431 { 432 #ifdef ENABLE_VFS_FTP 433 mc_setctl ("ftp://", VFS_SETCTL_LOGFILE, (void *) mc_args__netfs_logfile); 434 #endif /* ENABLE_VFS_FTP */ 435 #ifdef ENABLE_VFS_SMB 436 mc_setctl ("smb://", VFS_SETCTL_LOGFILE, (void *) mc_args__netfs_logfile); 437 #endif /* ENABLE_VFS_SMB */ 438 } [10:37:37] <andrew_b> А что такое просто setctl? [10:37:47] <andrew_b> $ man setctl No manual entry for setctl [10:37:47] <slavazanko/h> да, там надо [10:38:21] <andrew_b> Ща поправлю. [10:42:45] <andrew_b> Поправил. [10:42:51] iliamaslakov вышел из конференции: Replaced by new connection [10:42:53] iliamaslakov зашёл в конференцию [10:44:20] <andrew_b> slavazanko/h: А чёй-та в таймлайне не видно мержа 2695? Не доехало с гитхаба ещё? [10:45:12] <slavazanko/h> нет, это я, растяпа, забыл git push origin master [10:45:47] <slavazanko/h> всё [10:49:25] <slavazanko/h> Мужики, вот рассудите: (многофото) bigpicture.ru/?p=233208
и кусок внутреннего корпоративного чата: [12:42:06 FET] Slava Zanko: Идиот фотограф. Ничем не лучше тех, кто на месте аварии вместо помощи начинает снимать видео для ютьюба. Бабушка, бьюсь об заклад, не понимает смысла плакатов, которые она держит. А внучок рад стараться ради красивой и прекольной картинки [12:43:09 FET] Aliaksandr Vitkouski: Слава, ты не прав. [12:43:24 FET] Slava Zanko: буду только рад, если окажусь неправ [10:49:34] <slavazanko/h> я не прав? [10:52:21] <andrew_b> Ну, бабаушка, может, и не понимает. Мне не понятно сравнение этого с аварией. [11:01:33] <slavazanko/h> ну это всё те же фотографы, которые ради красивой картинки готовы накласть на других, лишь бы первыми в бложик выложить. В данном случае "накладено" на уважение к возрасту, к старости [11:02:12] <andrew_b> Ну там вроде нет ничего оскорбительного для бабаушки. [11:04:23] <slavazanko/h> ну хз. Меня это почему-то покоробило. Я представил на месте бабушки свою маму и себя за фотоаппаратом. Как-то это.. не по людски. Если бы мама стояла с плакатом, на котором был бы рецепт приготовления блюда - это понятно, шаг осознанный. А использовать человека, да ещё и преклонных готов, в качестве подставки под свои креативные плакаты... [11:04:41] <slavazanko/h> готов == годов [11:11:43] <slavazanko/h> + g_error_free (*error); + *error = error2; Гм... обычное глибовское поведение при возникновении ошибки: проинициализировать GError в первый раз и потом игнорировать инициализацию, если ранее уже была заполнена GError. Это помогает, если ошибки нарастают лавинообразно и часто самая первая ошибка является наиболее правильной для обработки. g_propagate_error() для этого и служит [11:12:07] <slavazanko/h> а тут получается, что предыдущая ошибка грохается и вместо неё пишется следующая [11:12:36] <andrew_b> Ща. [11:13:31] <slavazanko/h> g_propagate_error (error, g_error_new (MC_ERROR, 0, _("SOME ERROR MESSAGE"))); [11:13:42] <andrew_b> Там у ошибки сообщение меняется. [11:13:50] <andrew_b> Перекодируется. [11:14:31] <andrew_b> Я твой нод немного изменил. [11:15:03] <andrew_b> Раньше было сообщение в stderr, и ошибка грохалась. [11:15:22] <slavazanko/h> а.. ну тогда пользуясь случаем g_free((*error)->message); (*error)->message = full_help_str; [11:15:28] <slavazanko/h> кажись так будет правильнее [11:16:04] <andrew_b> Вот не хотелось бы так лезть в поля стуктуры. Вдруг её завтра сделают закрытой? [11:16:24] <slavazanko/h> тоже верно. Ладно, пусть будет [11:22:23] <slavazanko/h> src/main.c
startup_exit_falure startup_exit_ok
может, это функциями сделать? типа
return startup_exit_falure(exit_code, error); и return startup_exit_ok();
А то как-то немного запутанный код получается, как по мне [11:22:45] <slavazanko/h> а хотя... [11:22:49] <slavazanko/h> что так, что этак [11:23:02] <slavazanko/h> разве что сразу будет виден return, а не goro [11:33:03] <slavazanko/h> оформляй 2738 [11:34:27] <andrew_b> Так не доделано же ещё. [11:35:18] <slavazanko/h> ну вроде работает :) [11:35:23] <slavazanko/h> заявленно в тикете работает [11:35:49] <andrew_b> Я хотел exit (EXIT_FAILURE) из либ убрать. [11:36:04] <slavazanko/h> а.. ок, тогда ждём [11:36:33] <andrew_b> А ты посмотри, почему fprintf (stderr, "%s %s\n", _("FATAL: not a directory:"), full_path); не срабатывает. [11:42:27] <slavazanko/h> у меня срабатывает [11:42:30] <slavazanko/h> с переводом даже [11:42:50] <slavazanko/h> КРИТИЧЕСКАЯ ОШИБКА: не является каталогом: /home/slavaz/.config/.mc2 [11:43:17] <andrew_b> А... [11:44:22] <iliamaslakov> >КРИТИЧЕСКАЯ ОШИБКА: не является каталогом: /home/slavaz/.config/.mc2 почему критическая? [11:44:36] <slavazanko/h> а какая? [11:44:49] <slavazanko/h> ошибка, несовместимая с продолжением работы. [11:45:18] <slavazanko/h> просто ошибка - это "невозможно удалить .." [11:45:26] <slavazanko/h> можно продолжать работу. хоть и ошибка [11:45:32] <slavazanko/h> или ты к переводу цепляешься? [11:48:05] <iliamaslakov> slavazanko/h: ошибка, несовместимая с продолжением работы. да с какого перепугу то? [11:48:43] <iliamaslakov> я говорю о том что эта ошибка не критичная и позволяет дальше работать [11:48:47] <iliamaslakov> так? [11:48:57] <andrew_b> Не так. [11:52:39] <iliamaslakov> поясни свою позицию [11:54:48] <iliamaslakov> у нас дефолты для чего в коде забиты, именно для таких ситуаций [11:55:00] <andrew_b> Он не может созать каталог при запуске. Он также не сможет создать каталог при завершении, чтобы записать туда конфиги, историю, и т. д. [11:55:13] <iliamaslakov> ну и чего [11:55:36] <iliamaslakov> ну не может, что такого страшного? [11:55:51] <andrew_b> Точнее, историю он пишет при закрытии любого диалога. [12:04:24] <iliamaslakov> чего притихли то? [12:06:01] <andrew_b> Ваши предложения? [12:18:05] <slavazanko/h> чего притих то? [12:18:12] <slavazanko/h> iliamaslakov: тык [12:21:13] <iliamaslakov> да [12:21:27] <slavazanko/h> ваши предложения? [12:21:29] <iliamaslakov> мои такие работаем дальше [12:21:51] <iliamaslakov> пофигу что не создаётся [12:21:58] <slavazanko/h> не, техосмотр не пройдёт. Это как с отвалившимися тормозами ехать [12:22:11] <iliamaslakov> slavazanko/h, враньё [12:22:28] <iliamaslakov> это как ехать без работающего бардачка [12:22:38] <slavazanko/h> то есть, ты предлагаешь работать на R/O файловых системах? [12:22:44] <iliamaslakov> да [12:22:54] <iliamaslakov> что такого: [12:22:55] <iliamaslakov> ? [12:23:06] <slavazanko/h> всё гуд. переделывать везде надо [12:23:17] <iliamaslakov> поясни [12:24:01] <slavazanko/h> ну искать места, где может быть потенциальный сегфолт или нарушение нормального хода выполнения из-за невозможности записать конфиги [12:24:17] <slavazanko/h> или прочитать конфигиъ [12:24:30] <iliamaslakov> скажите [12:24:37] <slavazanko/h> ? [12:24:45] <iliamaslakov> вы со мной принципиально не согласны что надо работать [12:25:01] <iliamaslakov> или только от того что переделывать не охота? [12:25:10] <slavazanko/h> второе. [12:25:18] <slavazanko/h> не то, чтобы переделывать - это легко [12:25:25] <slavazanko/h> искать, гед надо переделать... [12:25:34] <slavazanko/h> это уже сложнее и муторнее [12:25:40] <iliamaslakov> это понятно [12:25:59] <slavazanko/h> проще выплюнуть критическую ошибку [12:26:51] <andrew_b> iliamaslakov: тебя не будет доставать, что при закрытии каждого каталога будет вылезать сообщение: "Не согу сохранить историю"? [12:27:03] <andrew_b> закрытии каждого диалога [12:27:32] <iliamaslakov> нене [12:27:40] <iliamaslakov> пусть в консоль спамит [12:27:46] <slavazanko/h> нене [12:27:48] <slavazanko/h> в лог [12:27:58] <slavazanko/h> mc --fatal-errors-to-log [12:28:09] <slavazanko/h> но [12:28:12] <slavazanko/h> это же надо сделать [12:28:21] <slavazanko/h> а у нас и так релиз на месяц просран [12:32:46] <andrew_b> slavazanko/h: кто эти логи читает? [12:33:46] <slavazanko/h> никто. Даже более того: на R/O системе логи вестись не будут. но всё же --fatal-errors-to-log мне показалось более правильным, чем --ignore-fatal-errors [12:34:04] <slavazanko/h> короче. лично я пока что против таких переделок под работу на R/O [12:34:40] <slavazanko/h> если есть желание, то можно создать новый тематический тикет по этому поводу и задвинуть его на future releases полку. [12:35:04] <slavazanko/h> и тикет будет task, а не bug [12:43:06] <slavazanko/h> в библиотеке exit остался в utilunix.c:254 widget/input.c:871 tty/key.c: 1949 tty/tty.c:98 tty-slang.c:292,471 mcconfig/paths.c:164 vfs/utilvfs.c:340 Андрей добивает эти exit [12:43:11] <slavazanko/h> и голосуем [12:43:16] <slavazanko/h> без выебонов с r/o [12:44:08] <andrew_b> widget/input.c:871 убрать. Он там как не пришей рукав. В других виджетах такого нет. [12:44:33] <andrew_b> tty/key.c: 1949 слишком глубоко. Думаю, можно оставить. [12:44:40] <andrew_b> vfs/utilvfs.c:340 хз [12:44:54] <slavazanko/h> ну если что-то и останется. то не страшно [12:45:04] <slavazanko/h> мать его ети, жили с этим - и ещё проживём [13:20:58] iliamaslakov вышел из конференции [14:28:09] andrew_b вышел из конференции [14:29:31] iliamaslakov зашёл в конференцию [14:32:33] <iliamaslakov> кстати чот не слышу поздравлений нифуя [14:36:01] <iliamaslakov> ДР как ни как [16:43:27] andrew_b зашёл в конференцию [17:32:45] andrew_b вышел из конференции [18:43:17] theMIROn вышел из конференции: Miranda IM. Menshe. Pushche. Proshhe! [18:43:38] theMIROn зашёл в конференцию [20:54:16] monkey зашёл в конференцию [21:51:16] monkey вышел из конференции [23:09:26] <Зося Синицкая> RSS: Новости для Midnight Commander • Ticket #2736 (MC deletes the wrong file) updated http://www.midnight-commander.org/ticket/2736#comment:5 [23:24:28] <Зося Синицкая> RSS: Новости для Midnight Commander • Ticket #2736 (MC deletes the wrong file) updated http://www.midnight-commander.org/ticket/2736#comment:6