[07:00:34] andrew_b зашёл в конференцию [07:16:55] <andrew_b> Есть, по сути, два типа типа vfs: удалённые (ftp, fish, ..., включая local), и остальные -- архивы. У ремотных вфс установлен флаг VFS_S_REMOTE или VFSF_LOCAL. Вот они должны идти первыми в УРЛе. При таком условии всякие урлы типа tar://ftp:// становятся невалидными. [07:27:26] slavazanko/h вышел из конференции [08:17:25] slavazanko/h зашёл в конференцию [08:48:01] <slavazanko/w> а. ну у нас так и есть [08:48:12] <slavazanko/w> всем привет [09:08:27] <slavazanko/w> по поводу 2361_vfs_uri: я оттуда в DEV_new_vfs ранее перенёс почти все коммиты. За исключением непосредственно изменений по парсингу строки. так что DEV_new_vfs - это фактически 2361_vfs_uri но со своим path-парсером [09:44:17] <andrew_b> А как начсёт
1045 * Dissect the path and create corresponding superblock. Note that inname 1046 * can be changed and the result may point inside the original string. 1047 */ 1048 const char * 1049 vfs_s_get_path_mangle (const vfs_path_t * vpath, struct vfs_s_super **archive, int flags) [09:45:28] ASM вышел из конференции [09:50:14] <andrew_b> Более 50 коммитов в бранче. Ревьюить не переревьюить. [09:51:13] <slavazanko/w> а, переименовать... переименую. Я маны правлю. Ща закончу и коммитну. Потом переименую функцию. Ревьювать да, многовато. А что делать, жизнь такая... [10:23:58] il.smind зашёл в конференцию [10:33:24] <slavazanko/w> Привет. Илья [10:34:03] <slavazanko/w> я кончел маны и переименовал функцию. Немного подребазировал - спрятал один fixfor. ну что, переименовываю в 2361_vfs_uri? [10:34:26] <andrew_b> А два клинапа не сольёшь? [10:34:33] <slavazanko/w> ок, ща [10:34:51] <slavazanko/w> готово [10:35:26] <andrew_b> il.smind : Привет, Илья! [10:35:39] <slavazanko/w> опять доча его шалит? [10:38:39] <andrew_b> 1032 * Dissect the path and create corresponding superblock. Note that inname 1033 * can be changed and the result may point inside the original string. [10:39:37] <slavazanko/w> ща поменяю описание [10:41:29] <andrew_b> 312 if (colon != NULL) 313 {
317 } 318 else 319 { 320 colon = NULL; 321 }
Масло масляное. [10:41:46] <andrew_b> path.c [10:41:56] <slavazanko/w> понято [10:42:11] <slavazanko/w> это в клинап пойдёт, чтобы не резайзать много [10:47:32] <andrew_b> В vfs_path_url_split кажись, утечка. [10:48:14] <andrew_b> pcopy не удаляется. [10:48:45] <slavazanko/w> понято [10:51:21] <andrew_b> Интересно, а на тех платформах, где собирается mc, есть 16-разрядный int? [10:51:34] <slavazanko/w> эм... не знаю :) [10:52:07] <andrew_b> А то
329 if (path_element->port <= 0 || path_element->port >= 65536) 330 path_element->port = 0; [10:52:36] <slavazanko/w> думаю что нету уже таких. [10:52:57] <slavazanko/w> А если есть. то пусть шлют патчи. Ибо кто сумеет поставить mc на 16 бит, тот сумеет и пропатчить [10:53:09] <andrew_b> А всякая эмбеддерщина? [10:53:24] <slavazanko/w> она 32-хбитка в подавляющем большинстве. [10:53:31] <slavazanko/w> даже 64-хбитки уже встречаются [10:53:47] <slavazanko/w> а на PIC-контроллерах mc не работает :) [10:54:34] <slavazanko/w> подпушил немного без ребайзов [10:54:41] <slavazanko/w> потом засквошу [10:57:02] <andrew_b> А может ли vfs_path_get_by_index вернуть NULL? [10:57:14] <slavazanko/w> да [10:57:21] <slavazanko/w> если vpath==NULL [10:57:31] <andrew_b> Тогда будет падать. [10:57:36] <andrew_b> Проверок нет. [10:57:56] <andrew_b> 696 return g_list_nth_data (vpath->path, element_index); [10:58:10] <andrew_b> Не только если vpath==NULL. [10:58:30] <andrew_b> Может, assert сюда добавить? [10:58:45] <andrew_b> Или вообще vfs_die? [10:58:51] <slavazanko/w> я не умею ими пользоваться. Влупи. если не сложно. заодно гляну [10:59:40] <andrew_b> assert не поможет, если g_list_nth_data вернёт NULL. [10:59:58] <andrew_b> Надо падать с внятной диагностикой. [11:00:47] <slavazanko/w> ну как бы вернуть NULL оно не может по идее... У меня в массив добавляются всегда данные (vfs_path_element_t). Выход за пределы массива тоже неврозможен [11:01:00] <slavazanko/w> а не. можно выйти [11:01:04] <slavazanko/w> если больше влупить [11:02:27] <slavazanko/w> il.smind : тык [11:02:56] <andrew_b> Типа такого:
/* --------------------------------------------------------------------------------------------- */ [11:03:09] <slavazanko/w> ага. ща [11:03:17] <slavazanko/w> пусть будет клинапом [11:04:35] <slavazanko/w> переводить сообщение надо? [11:05:19] <andrew_b> Нигде не переводится. [11:05:24] <andrew_b> И это правильно. [11:05:26] <slavazanko/w> ок [11:05:33] <andrew_b> Английский понятен всем. [11:05:54] <slavazanko/w> запушил [11:10:28] <andrew_b> +++ b/lib/vfs/interface.c @@ -229,13 +229,7 @@ int mc_##name inarg \ return -1; \ \ path_element = vfs_path_get_by_index (vpath, -1); \ - if (path_element == NULL) \ - { \ - vfs_path_free(vpath); \ - return -1; \ - } \ -\ - if (path_element->class == NULL) \ + if (path_element == NULL || path_element->class == NULL) \ { \ vfs_path_free(vpath); \ return -1; \ [11:11:31] <slavazanko/w> готово [11:15:55] <andrew_b> Вот, скажем, в mc_lstat
587 if (path_element != NULL && path_element->class != NULL)
а в mc_getlocalcopy
650 if (path_element != NULL)
mc_ungetlocalcopy
675 if (path_element != NULL)
В mc_chdir и mc_lseek вообще таких проверок нет. [11:16:34] <andrew_b> А не, mc_lseek тут ни при чём. [11:17:41] <andrew_b> mc_open 199 if (path_element != NULL && path_element->class->open != NULL) [11:18:31] <andrew_b> path_element == NULL || path_element->class == NULL вынести в отдельную функцию или в дефайн. [11:19:17] <andrew_b> Вернее,
if (path_element != NULL && path_element->class != NULL) [11:20:24] <slavazanko/w> и как обозвать? VALID_PATH_ELEMENT(element) ? [11:20:46] <slavazanko/w> может. пусть пока так будет? [11:21:09] <andrew_b> Надо бы унифицировать проверки. [11:23:01] <slavazanko/w> не особо они унифицируются. пару есть похожих но больше разношёрстных [11:23:53] <andrew_b> Я имею в виду path_element и path_element->class [11:24:05] <andrew_b> if (path_element != NULL && path_element->class != NULL) [11:24:20] <andrew_b> direntry.c 1161 // struct vfs_class *me, const char *file, int flags, mode_t mode) [11:31:37] <il.smind > привет всем [11:31:43] <slavazanko/w> оппа [11:32:24] <il.smind > это я с ноута залез [11:32:36] <slavazanko/w> ну как тебе там? [11:32:39] <il.smind > я еще отдыхаю [11:32:53] <il.smind > тут ваще рай [11:33:38] theMIROn вышел из конференции: Этого участника выгнали из комнаты за то, что он послал присутствие с ошибкой: remote-server-not-found [11:47:54] <andrew_b> slavazanko/w: check_hardlinks() поправь. Чтобы gboolean воззвращала. [11:48:02] <slavazanko/w> jr [11:48:03] <slavazanko/w> ок [11:52:42] slavazanko/h вышел из конференции [11:54:24] slavazanko/h зашёл в конференцию [11:54:59] BanderOS зашёл в конференцию [11:55:52] BanderOS вышел из конференции [11:56:21] <andrew_b> mc-DEV_new_vfs/lib/vfs/path.c: In function 'vfs_path_serialize': mc-DEV_new_vfs/lib/vfs/path.c:894: warning: format '%lu' expects type 'long unsigned int', but argument 2 has type 'ssize_t' mc-DEV_new_vfs/lib/vfs/path.c: In function 'vfs_path_deserialize': mc-DEV_new_vfs/lib/vfs/path.c:947: warning: format '%lu' expects type 'long unsigned int', but argument 2 has type 'size_t' [11:56:42] <slavazanko/w> понял [11:56:52] <andrew_b> mc-DEV_new_vfs/lib/serialize.c: In function 'mc_serialize_str': mc-DEV_new_vfs/lib/serialize.c:116: warning: format '%lu' expects type 'long unsigned int', but argument 3 has type 'size_t' mc-DEV_new_vfs/lib/serialize.c: In function 'mc_deserialize_str': mc-DEV_new_vfs/lib/serialize.c:177: warning: format '%lu' expects type 'long unsigned int', but argument 5 has type 'size_t' mc-DEV_new_vfs/lib/serialize.c:177: warning: format '%lu' expects type 'long unsigned int', but argument 6 has type 'size_t' [11:57:23] <slavazanko/w> гм. Надо это дело как-то решить. на 64-хбитах норма всё [11:57:49] <andrew_b> Making all in ru man2hlp: Stale link "п╓п╟п╧п╩ яп╟яп╦яп╣п╫п╦п╧" in file "../../../doc/man/ru/mc.1" on line 3743 [11:58:17] <andrew_b> slavazanko/w: Для size_t есть %z. [11:58:39] <slavazanko/w> а ssize_t? [11:58:50] <andrew_b> ХЗ. :) [11:58:58] <andrew_b> Можно попробовать. [11:59:05] <slavazanko/w> ок [12:01:34] <andrew_b> Не прокатило. [12:01:41] <andrew_b> Ругается на знак. [12:01:46] <andrew_b> Ща по-другому. [12:04:42] <andrew_b> diff --git a/lib/vfs/path.c b/lib/vfs/path.c index 5b32312..b7c486d 100644 --- a/lib/vfs/path.c +++ b/lib/vfs/path.c @@ -32,6 +32,8 @@
/* convert one element to config group */ [12:08:04] <andrew_b> В vfs при переходе в ..,не всегда подсвечивается каталог, из которого вышли, а прыгает на .. [12:08:26] <slavazanko/w> в каких случаях? [12:09:21] <andrew_b> Запакуй каталог в tar. [12:09:39] <andrew_b> Зайди в тар, потом в каталог. Перейди в .. [12:10:00] <andrew_b> Кстати, из тара нельзя скопировать по F5. [12:10:24] <andrew_b> Невозможно получить свойства исходного каталога "/home/borodin/w~utar:/testcase" Это не каталог (20) [12:10:55] <andrew_b> utar:/testcase подсказывает, что кто-то скушал один слэш. [12:11:10] <slavazanko/w> ок [12:11:38] <andrew_b> С zip'ом такая же песня. [12:12:34] <andrew_b> il.smind : эта, мож хватит отдыхать-то? Релиз в опасности. [12:12:43] <il.smind > ??? [12:12:51] <il.smind > чо делат то? [12:13:50] <andrew_b> http://www.midnight-commander.org/report/10 [12:14:12] <il.smind > сам то свою ссылку смотрел? [12:14:23] <andrew_b> Да. [12:14:28] <andrew_b> И что? [12:14:34] <il.smind > там часть тикетов ждут тебя [12:15:07] <andrew_b> 2534 и 2465? Эти что-ль? [12:15:25] <andrew_b> Они же не доделаны. [12:15:40] <il.smind > у меня интернеты медленные [12:15:42] <il.smind > ща [12:22:29] <il.smind > slavazanko/w: тут? [12:22:37] <slavazanko/w> тут [12:23:20] <il.smind > скажи как по http забрать [12:23:26] <il.smind > что не того... [12:23:55] <slavazanko/w> шоп я помнил как... [12:23:59] <il.smind > прописано [remote "origin"] #<----->url = ssh://angel_il@midnight-commander.org:22/git/mc.git <------>url = https://angel_il@midnight-commander.org/git/mc.git <------>fetch = +refs/heads/*:refs/remotes/origin/* [12:24:03] <slavazanko/w> надо историю комнаты смотреть [12:24:08] <slavazanko/w> а [12:24:50] <il.smind > может порт надо [12:24:55] <slavazanko/w> пробуй [12:25:17] <andrew_b> il.smind : урл неправильный url = http://angel_il@midnight-commander.org/repo/mc.git [12:45:17] theMIROn зашёл в конференцию [12:45:26] <theMIROn> hi there [12:45:35] <slavazanko/w> hi [12:46:00] <theMIROn> у меня есть апдейт на patchfs [12:46:04] <theMIROn> куда слать? [12:46:24] <slavazanko/w> что за апдейт? [12:46:31] il.smind вышел из конференции: Этого участника выгнали из комнаты за то, что он послал сообщение об ошибке другому участнику: service-unavailable [12:46:51] <theMIROn> объединение ханков из разных диффов к одному файлу в один [12:46:55] <theMIROn> от автора [12:47:16] il.smind зашёл в конференцию [12:49:21] <slavazanko/w> гм.. тикета вроде нету. Создай тикет, плиз [12:49:33] <slavazanko/w> в любом случае надо оформлять [12:50:28] <theMIROn> да, тикет я не создавал [13:07:58] <il.smind > admin@darkstar:/home/projects/mc.old$ git pull Password: error: inflate: data stream error (invalid distance too far back) error: Packfile index for .git/objects/pack/pack-588a4df4506d7bf5b4d55ee2c41a9022a7de6735.pack SHA1 mismatch error: Packfile index for .git/objects/pack/pack-d08a4eafda8b36bad820eaed8f215da733c4f308.pack SHA1 mismatch error: Packfile index for .git/objects/pack/pack-e92ebec5bc0b56cffc36378157837f2f82699be5.pack SHA1 mismatch error: Packfile index for .git/objects/pack/pack-09d65b038f10e85b5b597145c6f3a78548718ef7.pack SHA1 mismatch [13:10:58] <andrew_b> slavazanko/w: ещё такой момент. Не собирается с --with-vfs=no. [13:11:11] <andrew_b> --enable-vfs=no [13:11:12] <slavazanko/w> О, это не проверял [13:11:34] <andrew_b> mc-DEV_new_vfs/lib/vfs/direntry.c: In function 'vfs_s_free_super': mc-DEV_new_vfs/lib/vfs/direntry.c:387: error: 'struct vfs_s_super' has no member named 'path_element' [13:11:45] <slavazanko/w> гляну [13:12:41] <slavazanko/w> http://belaruspartisan.org/bp-forte/?page=100&backPage=13&news=90311&newsPage=0 от бля, мало того. что жопа возможна, так ещё и не дадут от этой жопы убежать... пора уже думать сейчас :( [13:14:41] <andrew_b> Мда. [14:08:21] slavazanko/h вышел из конференции [14:14:37] andrew_b вышел из конференции: конец рабочего дня [14:24:04] slavazanko/h зашёл в конференцию [14:43:53] slavazanko/h вышел из конференции [14:49:39] slavazanko/h зашёл в конференцию [16:08:13] il.smind вышел из конференции [16:47:19] andrew_b зашёл в конференцию [16:48:44] slavazanko/h вышел из конференции [16:51:34] slavazanko/h зашёл в конференцию [17:00:27] slavazanko/h вышел из конференции [17:50:03] andrew_b вышел из конференции [19:40:55] BanderOS зашёл в конференцию [20:30:48] il.smind зашёл в конференцию [20:32:44] <il.smind > уф... [20:34:50] BanderOS вышел из конференции [20:39:18] slavazanko/h зашёл в конференцию [20:47:25] <slavazanko/h> поправил DEV_new_vfs, облагородил немного. Велкам в тестинг [20:58:22] <il.smind > я тут присел за комп [20:58:41] <il.smind > пытаюсь победить гит через http [20:59:03] <slavazanko/h> а через ssh не идёт? [20:59:12] <il.smind > нет [20:59:20] <il.smind > ну может поможешь [20:59:32] <il.smind > есть время? [21:26:19] <slavazanko/h> http://www.youtube.com/watch?v=AnV1irG5kI0 [23:29:08] BanderOS зашёл в конференцию [23:55:18] il.smind вышел из конференции [23:56:25] il.smind зашёл в конференцию