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

Тема: http://www.midnight-commander.org | Latest stable release: 4.7.5.2
[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> Типа такого:

--- a/lib/vfs/path.c
+++ b/lib/vfs/path.c
@@ -687,14 +687,20 @@ vfs_path_elements_count (const vfs_path_t * vpath)
vfs_path_element_t *
vfs_path_get_by_index (const vfs_path_t * vpath, int element_index)
{
+ vfs_path_element_t *ret;
+
if (vpath == NULL)
return NULL;

if (element_index < 0)
element_index = vfs_path_elements_count (vpath) + element_index;

- return g_list_nth_data (vpath->path, element_index);
+ ret = g_list_nth_data (vpath->path, element_index);
+
+ if (ret == NULL)
+ vfs_die ("vfs_path_get_by_index: incorrect index!");

+ return ret;
}

/* --------------------------------------------------------------------------------------------- */
[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 @@

#include <config.h>

+#include <inttypes.h> /* PRIdMAX */
+
#include "lib/global.h"
#include "lib/strutil.h"
#include "lib/util.h" /* concat_dir_and_file */
@@ -891,7 +893,7 @@ vfs_path_serialize (const vfs_path_t * vpath, GError ** error)
}
for (element_index = 0; element_index < vfs_path_elements_count (vpath); element_index++)
{
- char *groupname = g_strdup_printf ("path-element-%lu", element_index);
+ char *groupname = g_strdup_printf ("path-element-%" PRIdMAX, (intmax_t) element_index);
vfs_path_element_t *element = vfs_path_get_by_index (vpath, element_index);

/* 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 зашёл в конференцию
Powered by freQ Powered by Python Valid XHTML 1.0 Transitional Valid CSS!