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

Тема: http://www.midnight-commander.org | Latest release (stable and current): 4.7.5
[00:04:02] slavazanko/h вышел из конференции
[00:04:28] slavazanko/h зашёл в конференцию
[01:03:02] BanderOS зашёл в конференцию
[02:14:27] il.smind вышел из конференции
[05:49:50] iNode вышел из конференции
[06:16:44] andrew_b зашёл в конференцию
[06:41:40] iNode зашёл в конференцию
[06:53:58] il.smind зашёл в конференцию
[07:16:17] <il.smind > С прошедшим Новым Годом всех!
[07:17:48] <andrew_b> Поборол падение?
[07:18:14] <andrew_b> + menu_entry_create (_("&Start/end record macro"), CK_Begin_End_Macro));
Тогда уж Start/stop
[07:21:50] <andrew_b> static name_keymap_t command_names[] = {
+ {"InsertChar", CK_Insert_Char},
#ifdef
{"EditNoCommand", CK_Ignore_Key},

А почему не в USE_INTERNAL_EDIT?
[07:27:05] <il.smind > он может быть использован в полях ввода
[07:27:42] <il.smind > andrew_b: падение поборол но еще осталось кой чего
[07:28:34] <andrew_b> И что было?
[07:28:58] <il.smind > незнаю
[07:29:09] <il.smind > я добавил удаление элемента
[07:29:16] <il.smind > падение пракратилосо
[07:29:59] <il.smind > падение прекращалось так же если убирал из кода edit_delete_macro
[07:30:43] <andrew_b> > я добавил удаление элемента
?
[07:32:05] <il.smind > of
[07:32:07] <il.smind > ща
[07:33:01] <il.smind > edit_get_macro (edit, hotkey, &indx);
if (macros != NULL)
{
if (macros->macro != NULL)
g_array_free (macros->macro, FALSE);
macros = NULL;
g_array_remove_index (edit->macros_list, indx);
}
[07:33:46] <il.smind > а чо это за говнокод...
[07:33:53] <il.smind > блин
[07:34:25] <il.smind > по идее должно было быть
macros = edit_get_macro (edit, hotkey, &indx);
[07:34:39] <il.smind > лана... ща...
[07:36:49] <il.smind > О!
[07:36:52] <il.smind > йоп
[07:36:57] <il.smind > всё
[07:37:02] <il.smind > нет глючка
[07:37:16] <il.smind > надо сортировку делать
[07:37:25] <il.smind > ща украду где нить...
[07:37:48] <il.smind > > я добавил удаление элемента
?
>> g_array_remove_index (edit->macros_list, indx);
[07:38:14] <il.smind > как только элемент удалил то и падения прекратились
[07:41:26] <il.smind > Андрей
[07:41:41] <il.smind > ты же умный
[07:42:08] <il.smind > там человек писал как повторить зависание
[07:42:15] <il.smind > ты не пробовал?
[07:42:26] <andrew_b> Где?
[07:42:49] <il.smind > там помнишь тему где еще осси бузил
[07:43:00] <andrew_b> Неа.
[07:43:07] <il.smind > и сказал что он нашел проблемное место за минуту
[07:43:13] <andrew_b> Оззи много где бузил.
[07:43:36] <il.smind > про зависание на нокии н90 у нас 1 тикет
[07:44:39] <il.smind > http://www.midnight-commander.org/ticket/2244
[07:45:00] <il.smind > Konsole у меня нет...
[07:45:11] <andrew_b> У меня тоже.
[07:46:10] <il.smind > поставлю тогда...
[07:46:52] <andrew_b> У Славы есть, он в кедах сидит.
[07:48:07] <andrew_b> Owned by: slyfox
[07:48:30] <il.smind > действительно...
[07:50:08] <Зося Синицкая> RSS: Новости для Midnight Commander
• Ticket #2244 (MC consumes 100% cpu after wake up from suspend) updated
http://www.midnight-commander.org/ticket/2244#comment:55
[07:57:43] ruslan telenkevich зашёл в конференцию
[08:04:46] <andrew_b> il.smind : typedef

struct macro
-{
- unsigned long command;
+struct macro_action_t
+{
+ unsigned long action;
int ch;
-};
+} macro_action_t;
+
+struct macros_t
+{
+ int hotkey;
+ GArray *macro;
+} macros_t;
[08:05:28] <andrew_b> Или убери macro_action_t и macros_t между };
[08:24:18] <il.smind > andrew_b> il.smind : typedef
вчера херово было так решил не трогать, только сделал чтоб не падало и спать лёг
[08:30:33] <il.smind > сделал
typedef struct macro_action_t
[08:33:45] <il.smind > andrew_b:
правильно я понял про
- const struct macros_t *macros;
+ macros_t *macros;
[08:34:12] <il.smind > -struct macro_action_t
+typedef struct macro_action_t

-struct macros_t
+typedef struct macros_t
[08:34:34] <andrew_b> Про typedef да.
[08:34:43] <andrew_b> А const где?
[08:36:52] theMIROn зашёл в конференцию
[08:37:23] <il.smind > const вернуть?
[08:37:27] <il.smind > сделаю
[08:37:34] <andrew_b> Где это?
[08:38:07] <il.smind > вот например
edit_get_macro (WEdit * edit, int hotkey, int *indx)
...
- const struct macros_t *macros = &g_array_index (edit->macros_list, struct macros_t, i);
+ macros_t *macros = &g_array_index (edit->macros_list, struct macros_t, i);
[08:39:58] <andrew_b> Почему бы не возвращать только индекс?
[08:40:26] <andrew_b> Без указателя на макрос.
[08:40:48] <andrew_b> По индексу потом получишь указатель.
[08:40:48] <il.smind > код короче
[08:41:04] <il.smind > но можно и только индекс
[08:41:15] <il.smind > принципиально ничено не изменится
[08:41:33] <il.smind > ну...
[08:41:40] <il.smind > давай уберу...
[08:41:54] <il.smind > хотел сейчас сортировку сделать
[08:42:05] <il.smind > вот еще какой вопрос
[08:42:17] <andrew_b> Мне надо перегрузиться.
[08:42:25] <andrew_b> Кой-чо обновил.
[08:42:29] <il.smind > я пока напишу
[08:42:33] andrew_b вышел из конференции
[08:42:35] <il.smind > грузись
[08:43:33] <il.smind > сейчас у меня макросы хранятся так
[editor]
код=действие;символ;действие;символ;действие;символ
[08:46:23] <il.smind > слава предлагает
[editor]
hotkey=код
[0]
act=действие
key=символ
[1]
act=действие
key=символ
[2]
act=действие
key=символ
[3]
act=действие
key=символ
[08:46:50] <il.smind > переделывать не много но лениво
[08:47:06] <il.smind > какие мысли на эту тему?
[08:47:35] <il.smind > и каждый макрос хранить в отдельном файле
[08:47:44] <il.smind > и сделать
macros.d
[08:49:16] andrew_b зашёл в конференцию
[08:51:05] <andrew_b> Нуууу...
[08:51:50] <andrew_b> А hotkey=код это что?
[08:51:51] <slavazanko/w> всем привет.
[08:51:52] <il.smind > мне эти macros.d ваще никуда
[08:52:03] <slavazanko/w> ага, предлагаю один макрос = один ини-файл
[08:52:05] <il.smind > hotkey=16434
[08:52:13] <slavazanko/w> нууу...
[08:52:15] <andrew_b> slavazanko/w: привет.
[08:52:21] <slavazanko/w> хоткей тоже по-человечески бы
[08:52:27] <slavazanko/w> hotkey=ctrl+a
[08:52:29] <il.smind > slavazanko/w: это не надо
[08:52:32] <slavazanko/w> а не кержы-перды
[08:52:56] <il.smind > я сначала хотел но потом понял оно не надо
[08:53:19] <andrew_b> slavazanko/w: давай не MC_LOG_ENABLED, а MC_LOG_ENABLE?
[08:53:40] <il.smind > можно в качестве описания выше нарисовать
#ctrl+a
hotkey=16434
[08:53:50] <andrew_b> il.smind : ненене.
[08:53:57] <il.smind > gjxtve&
[08:54:00] <il.smind > почему?
[08:54:06] <andrew_b> Некрасиво.
[08:54:12] <il.smind > чем не нравится?
[08:54:19] <andrew_b> У нас же есть парсер биндингов.
[08:54:30] <andrew_b> Зачем эти 53456363?
[08:54:43] <il.smind > затем что их никто не видит
[08:54:46] <slavazanko/w> > давай не MC_LOG_ENABLED, а MC_LOG_ENABLE?
ок, не вопрос. Ща переделаю
[08:55:09] <il.smind > а парсить при каждом назатии это реально тормозить систему
[08:55:20] <il.smind > поэтому и отказался
[08:55:22] <slavazanko/w> > затем что их никто не видит
Кто тебе сказал?
Вот скажи, как сделать внешний генератор макросов. не зная. что такое 53456363?
[08:55:30] <andrew_b> Почему при каждом нажатии?
[08:55:55] <andrew_b> slavazanko/w: внешний?
[08:56:01] <andrew_b> А на кой?
[08:56:07] <il.smind > да на кой?
[08:56:20] <slavazanko/w> кэширование можно сделать.
При каждом нажатии делать stat на файл макроса. если не изменилось время - выполняем хранящееся в памяти. Иначе перечитываем
[08:56:26] <il.smind > при том что время макросов примерно э... ну минуты 2
[08:56:35] <slavazanko/w> внешний? ну я для примера сказал.
[08:56:37] <il.smind > это в основном штука разовая
[08:56:52] <slavazanko/w> а вообще внешним генератором макросов вполне может быть человек. ручками
[08:57:30] <il.smind > ок тогда так
[08:57:46] <il.smind > хранится вот так
ctrl-a=
[08:57:54] <slavazanko/w> Илья. вот в любимом тобой Ёкселе есть возможность как записывать макрос, так и потом его просматривать в виде кода на бейсике. Представь что было бы. если бы там был не код на бейсике. а белибкрда?
[08:58:12] <il.smind > когда макрос загружен то оно превращается в 16324
[08:58:31] <slavazanko/w> когда загружен. то пох во что он превращается. Главное - как он хранится
[08:58:56] <il.smind > дальше при сохранении 16324 превращается в ctrl-a
[08:59:12] <il.smind > ок, только помогите 16324 превратить в ctrl-a
[08:59:21] <il.smind > там не всё так однозначно
[08:59:52] <slavazanko/w> то есть, обратной функции нету?
[09:00:02] <andrew_b> slavazanko/w: при один макрос = один ини-файл возникает вопрос об имени этого файла.
[09:00:15] <il.smind > нету
[09:00:25] <andrew_b> slavazanko/w: не нужно было.
[09:00:36] <slavazanko/w> andrew_b: да хоть sha1
[09:01:28] <andrew_b> Вариант.
[09:03:34] <il.smind > slavazanko/w: возникает вопрос как этот внешний
[09:03:46] <il.smind > хотябы даже пользователь
[09:04:30] <il.smind > а вообще как щам мне всё больше нравится
[09:04:41] <il.smind > свойе однозначностью
[09:05:08] <il.smind > сейчас нельзя разные макросы забиндить на 1 клавишу
[09:05:20] <il.smind > в случае с файлами
[09:05:27] <il.smind > это будет можно
[09:05:31] <slavazanko/w> ну и парси свои длиннющие портянки. А нормальным пацанам сделай барабан страдивари
[09:05:47] <il.smind > т.е. надо будет не просто ключ заменять но и искать файл и его удалять
[09:06:08] <il.smind > а если будет проблема с удалением файла то и того хуже
[09:06:09] <slavazanko/w> ну тогда имена файлов - это хоткеи
[09:06:29] <il.smind > slavazanko/w: это да
[09:06:31] <il.smind > но
[09:06:41] <slavazanko/w> путь и даже твои цифровые
[09:06:43] <il.smind > > а если будет проблема с удалением файла?
[09:06:46] <andrew_b> il.smind : Кстати, почему ты в действие;символ;действие;символ;действие;символ не разделишь пары другим занком? Тогда парсить будет проще.
[09:06:52] <slavazanko/w> какая проблема?
[09:06:58] <andrew_b> действие;символ:действие;символ:действие;символ
[09:07:10] <andrew_b> Будет примерно как с цветами.
[09:07:20] <il.smind > не против
[09:07:35] <il.smind > просто оно было под вопросом
[09:07:40] <il.smind > это же прототип
[09:07:54] <il.smind > слава предложил отдельные файлы
[09:08:09] <il.smind > я не стал сильно завязываться на
[09:09:04] <slavazanko/w> предлагаю так:
ctrl+a.macro:
[macros]
decription=...
[actions]
0=действие;клавиша
1=действие;клавиша
2=действие;клавиша
3=...
[09:09:50] <slavazanko/w> -действие;клавиша
+действие;символ
[09:11:11] <il.smind > предполагалось что макросы не только редакторные будут
[09:11:24] <andrew_b> slavazanko/w: не. От порядка ключей завсит.
[09:11:35] <andrew_b> Как оно сохранится?
[09:11:41] <andrew_b> А...
[09:11:47] <andrew_b> Неважно.
[09:11:51] <slavazanko/w> читается всегда в порядке объявления ключей.
[09:12:06] <andrew_b> Если по номерам, то не важно.
[09:12:20] <il.smind > важно знать сколько действий
[09:12:41] <andrew_b> Известно, сколько ключей в секции.
[09:13:01] <andrew_b> Но их номера могут не соответствовать.
[09:13:09] <il.smind > andrew_b: а если там будет
0=
3=
590=
[09:13:10] <slavazanko/w> > предполагалось что макросы не только редакторные будут
ну будут.. и что? Можно по подкаталогам разделить. Или к имени макроса добавлять filemanager- или editor-
[09:13:15] <andrew_b> il.smind : да.
[09:13:41] <il.smind > а 1,2 и 3..589 не будет
[09:14:35] <il.smind > slavazanko/w: тебя вот смущает что человеку сложно будт редактировать их руками
[09:15:00] <il.smind > но я за 10 лет ниразу не редактировал фаровские макросы
[09:15:10] <slavazanko/w> > а если там будет
http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#g-list-insert-sorted
[09:15:15] <il.smind > хотя активно ими пользуюсь вот в чём прикол
[09:15:43] <slavazanko/w> то есть. ты бьёшт пяткой в грудь. что у нас не появятся тикеты с просьбой сделать записанные макросы более человеческими?
[09:15:57] <il.smind > т.е если пользователь достаточно подкован то он сумеет
[09:16:43] <il.smind > на счёт
ctrl-a=
[09:17:38] <il.smind > надоть парсер, я начал писать но меня смутили промежуточные вычисления лишние, но в принципе это только в момент сохранения и загрузки
[09:17:58] <il.smind > точнее только в момент сохранения
[09:18:17] <il.smind > так что не будет сильно тормозить
[09:18:27] <slavazanko/w> гуд
[09:18:43] <il.smind > вопрос только написать правильный парсер
[09:19:18] <il.smind > там проблемки есть
[09:19:23] <slavazanko/w> где из хоткеев получаются цифры?
[09:19:38] <il.smind > hotkeys
[09:20:36] <il.smind > там парсер почти написан, я когда делал для Андрея формирование подписи в меню
[09:20:53] <il.smind > надо его (алгоритм) выдрать
[09:21:13] <andrew_b> il.smind : ты делал... Я его потом переделывал.
[09:21:56] <andrew_b> lookup_key()
[09:22:06] <andrew_b> Можно пользоваться прямщас.
[09:22:24] <slavazanko/w> ну и гуд.
[09:22:35] <slavazanko/w> всё готово, оказывается :)
[09:23:40] <slavazanko/w> по 1851_xdg_config: сделал MC_LOG_ENABLE. мощно перепушил
[09:24:51] <il.smind > andrew_b: да
[09:24:56] <il.smind > andrew_b: нельзя
[09:25:11] <andrew_b> Почему?
[09:25:28] <il.smind > оно не формирует ctrl-a на основе wbahs
[09:25:31] <il.smind > оно не формирует ctrl-a на основе цифры
[09:25:52] <andrew_b> Оно формирует цифру на основе ctrl-a.
[09:26:04] <andrew_b> А обратной задачи никто не ставил.
[09:26:10] <andrew_b> Надо делать.
[09:26:22] <il.smind > ну тяк я и говорю :)
[09:26:44] <il.smind > что делать надно но кусок можно выдрать
[09:27:37] <andrew_b> Вряд ли какой-нибудь кусок оттуда можно использовать.
[09:27:48] <andrew_b> Задача обратная же.
[09:28:17] <il.smind > можно
[09:28:19] <il.smind > ща
[09:29:32] <il.smind > начиная с if (label != NULL)
[09:30:47] <il.smind > предполагается что
use_meta
use_ctrl
use_shift
мы вычислили путем hotkey & KEY_M_ALT
[09:31:14] <il.smind > hotkey & KEY_M_CTRL
hotkey & KEY_M_SHIFT
[09:31:24] <il.smind > но там есть нюансы
[09:31:31] <il.smind > типа S-F1
[09:31:39] <il.smind > он же F11
[09:32:52] <il.smind > или ctrl-a и ctrl-А
[09:33:02] <il.smind > не различаются
[09:34:15] <andrew_b> С ctrl регистр не различается, понятно.
[09:35:27] <il.smind > andrew_b: ну там всякого еще есть
[09:36:03] <andrew_b> slavazanko/w:
- log-to-file = /path/to/file
+ logfile = /path/to/file
не?
[09:36:23] <slavazanko/w> ок
[09:37:11] <slavazanko/w> ещё раз мощно запушил
[09:37:58] <andrew_b> Спешишь.
[09:38:01] <andrew_b> Вот ещё что.
[09:38:11] <slavazanko/w> ?
[09:39:04] <andrew_b> get_log_filename() вызывается на каждую запись в лог. Зачем каждый раз генерировать имя файла?
[09:39:27] <andrew_b> Из конфига параметр всё равно один раз читатеся.
[09:39:51] <slavazanko/w> гм.
надо подумать.
Где-то в конце надо будет освободить память...
[09:40:17] <andrew_b> В конце сама освободится.
[09:40:26] <il.smind > andrew_b: ???
[09:40:29] <andrew_b> Имя файла -- это немного.
[09:40:34] <il.smind > ???
[09:40:43] <andrew_b> il.smind : что ??? ?
[09:40:58] BanderOS вышел из конференции
[09:41:00] <andrew_b> slavazanko/w: а, ещё.
[09:41:05] <il.smind > нельзя не освобождать память даже перед выходом
[09:41:26] <andrew_b> slavazanko/w:
135 #include <stdlib.h>
В середине файла.
[09:41:53] <slavazanko/w> абля. это отладка была. уберу
[09:42:03] <andrew_b> il.smind : я понимаю.
[09:42:14] <il.smind > что ты имел ввиду под "В конце сама освободится."
[09:42:28] <andrew_b> Но в данном случае красиво сделать трудно.
[09:42:33] <andrew_b> Если возможно.
[09:42:42] <il.smind > что там уже есть g_free ()
[09:42:55] <andrew_b> il.smind : ???
[09:42:59] <il.smind > ))
[09:43:25] <slavazanko/w> можно перед выходом из mc дёрнуть mc_log_deinit()
и в нём освободить. если нужно
[09:43:38] <andrew_b> il.smind : при завершении программы вся выделенная ею память возвращается операционной системе.
[09:43:58] <slavazanko/w> в линуксе - да.
[09:44:01] <andrew_b> slavazanko/w: вот я и говорю: это некрасиво.
[09:44:08] <andrew_b> slavazanko/w: везде.
[09:45:28] <andrew_b> slavazanko/w: можно зарезервировать место в статической переменной.
[09:45:44] <andrew_b> Хотя это тоже не то.
[09:46:04] <andrew_b> Вдруг оно не нужно будет.
[09:54:16] <slavazanko/w> запушил 1851_xdg_config
[09:54:55] <il.smind > andrew_b> il.smind : при завершении программы вся выделенная ею память возвращается операционной системе.
не всегда
[09:55:22] <il.smind > пример привести не смогу
[09:56:38] <il.smind > andrew_b> get_log_filename() вызывается на каждую запись в лог. Зачем каждый раз генерировать имя файла? il.smind
пусть генерируется
[09:56:56] <slavazanko/w> уже не генерируется
[09:56:57] <il.smind > лог это всегда отладка
[09:57:05] <il.smind > slavazanko/w: ну и зря
[09:57:19] <il.smind > мне не жалко погенерировать имя
[09:57:21] <slavazanko/w> откатуй предпоследний коммит в 1851_xdg_config
[09:57:46] <il.smind > оно же у пользователя не делается
[10:00:19] <slavazanko/w> Ситуация такая:
Андрей - надо убрать лишнее выделение
Илья: оставит
Я - похеру, как оно будет.

цейнот.
[10:01:59] <il.smind > нет
[10:02:04] <slavazanko/w> ?
[10:02:45] <il.smind > надо подходить оценивая уровень эм... плохости относительно текущего положения
[10:03:46] <slavazanko/w> это как?
[10:03:47] <il.smind > 1) патч улучшает ситуацию - да быстрее работает, если не перевыделять память
2) пат ухудшает - да
[10:06:24] <il.smind > можно обойтись без пача - да
[10:06:42] <il.smind > вывод?
[10:06:52] <slavazanko/w> нуевонах?
[10:07:29] <il.smind > если взвесить то что оно mc_log вызывается только тогда когда происходит отладка
[10:07:47] <slavazanko/w> Андрей?
[10:07:50] <il.smind > а дисковая запись на 2 порядка медленнее чем выделение памяти
[10:08:02] <il.smind > то вы этого ускорения не заметите
[10:08:58] <il.smind > а поиметь лишние отвлекающие сообщения от валгринда про утечки запросто
[10:09:51] <il.smind > я считаю аргументов достаточно
[10:10:37] <slavazanko/w> ты меня убедил. Убрал этот коммит
[10:10:45] <slavazanko/w> всё, смотри 1851_xdg_config
[10:10:49] <slavazanko/w> пора его закрывать
[10:23:28] <andrew_b> il.smind : тут постоянное выделение/уничтожение. Фрагментация хипа и всё такое.
[10:24:26] <andrew_b> il.smind : в валгринде и так полно сообщений об утечке. Из glib.
[10:24:45] <andrew_b> Плюс одно из mc погоды не сделает.
[10:24:59] <andrew_b> На самом деле эти утечки не утечки.
[10:30:30] <slavazanko/w> с ЛОРа http://www.linux.org.ru/forum/talks/5811977?lastmod=1295515529589:
> тишина...
Гых, Илья, я же говорил, что кроме наших комментов там никого не будет :) ЛОР давно перестал быть полезным ресурсом. Там даже вопросов интересных не стало - всё какое-то унылое, на уровне внимательного прочтения манов или пятиминутного гуглежа.
[10:31:09] <andrew_b> Всем пох.
[10:31:55] <slavazanko/w> угу.
[10:32:16] <il.smind > andrew_b: да я знаю :)
[10:32:21] <il.smind > но понимаешь
[10:32:43] <il.smind > вот как с тем переписыванием на перле
[10:32:52] <il.smind > вроде понятно что всем пох
[10:33:06] <il.smind > но по результату то мы поимели парсер
[10:33:30] <il.smind > а всего то просто нужно было опубликовать просьбу
[10:34:02] <slavazanko/w> а. та про man2hlp.pl ?
[10:34:12] <il.smind > да
[10:34:27] <il.smind > так что если вдруг тестер появится то это же хороша а нет так нет
[10:35:23] <slavazanko/w> а сейчас на что надеешься? Просьбу про парсер ты опубликовал на другом более серьёзном ресурсе. А на ЛОРе. кроме толпы самоотверждающихся школьников, никого и нету. Пару мастодонтов типа Lumi, sdio и т.д. не в счёт - они просто тонут в море говна
[10:35:25] <il.smind > так что если вдруг тестер появится то это же хорошО, а нет так нет
[10:35:46] <il.smind > >Просьбу про парсер ты опубликовал на другом более серьёзном ресурсе
ну-ну :)
[10:36:23] <slavazanko/w> нуачо? всяко получше ЛОРа :)
[10:36:33] <il.smind > да чем лучше то?
[10:36:46] <slavazanko/w> контингентом
[10:36:59] <il.smind > одинокого одинаковые ресурсы :)
[10:37:09] <il.smind > одинаково одинаковые ресурсы :)
[10:37:28] <il.smind > что то с моим спелчекером сегодня...
[10:37:36] <il.smind > херово парсит
[10:37:53] <il.smind > кстати Хер это не мат, исичо
[10:39:36] <andrew_b> Это бука старой азбуки. От неё произошло слово похерить, то есть перечекрнуть крест-накрест.
[10:39:51] <andrew_b> s/бука/буква
[10:40:21] <il.smind > а что буква значит?
[10:41:32] <andrew_b> http://www.slovomania.ru/dnevnik/2006/02/17/her/
[10:42:39] <il.smind > у него ноги хером
[10:42:53] <il.smind > интересно сейчас звучит
[10:44:57] <andrew_b> slavazanko/w: видал, что Оззи написал?
[10:45:01] <andrew_b> http://www.midnight-commander.org/ticket/2361#comment:16
[10:45:14] <slavazanko/w> видал. что ответить - не знаю пока
[10:46:45] <andrew_b> Ну я так и знал. Как попиздеть в своё удовольствие -- так время есть. Как до дела доходит -- "у меня нет времени."
[10:48:40] <slavazanko/w> ну примерно так :)
[10:55:17] <slavazanko/w> "Спасибо за ваше письмо, Ваше мнение очень ценно для команды разработчиков. мы желаем Вам удачи, успехов и счастья в личной жизни"
как бы такое по-английски написать? :)
[10:56:28] <andrew_b> Кое в чём он прав. Но это я и без него знаю.
[10:56:37] <andrew_b> Я про парсинг URL.
[10:57:07] <andrew_b> Например, в рыбу пароль из УРЛа не передаётся, надо вводить руками.
[10:59:35] <andrew_b> В vfs урл парсится уж очень замороченно.
[10:59:47] <andrew_b> С наскоку не получилось выпрямить.
[11:01:02] <slavazanko/w> кстати. если будем налегать на VFS, то давайте сместим акцент от URL в сторону внутренних структур. Я уже когда-то говорил об этом.
Предлагаю между функциями гонять не строку URL и каждый раз её героически парсить. а гонять массив из сруктур. описывающих каждый элемент пути.
На панели показывать только последний элемент пути. как в фаре.
[11:02:17] <slavazanko/w> а парсить строку url только в одном случае: в случае ручного ввода. Потом сформировать массив структур и забыть
[11:03:53] <andrew_b> Что показывать -- это не так уж и важно.
[11:04:07] <slavazanko/w> > На панели показывать только последний элемент пути. как в фаре.
имею ввидо, не последний элемент пути, а последний тип VFS+ путь внутри неё
[11:04:51] <andrew_b> Что ты имеешь в виду под элементом пути?
[11:05:04] <slavazanko/w> обшибся. ща разверну мыслю
[11:06:21] <slavazanko/w> массив структур по идее будет выглядеть как список типов VFS. у каждого типа будет свой путь внутри VFS>
например
{
'local_vfs'
'/home/user/download'
},
{
'tar_vfs'
'proga-1.0.0/src'
}
[11:07:09] <slavazanko/w> ну и некоторые типы VFS могут быть только впереди списка. и никак не в середине или в конце. например, это local_vfs
[11:08:17] <slavazanko/w> http://www.midnight-commander.org/browser/lib/vfs/vfs/VFS-draft.txt?rev=a4951d919582910f4e939330042cc968e5e9277a
[11:09:58] <andrew_b> Это всё логично и, наверное, правильно.
[11:10:48] <slavazanko/w> да. сейчас и определимся. нужно ли именно так.
Ибо потом будет поздно.
[11:17:29] <il.smind > andrew_b> Например, в рыбу пароль из УРЛа не передаётся, надо вводить руками.
даже если передашь это ничего не изменит
[11:17:45] <il.smind > его нельзя отдать ssh
[11:18:08] <slavazanko/w> угу. потрошить expect лениво. а так там можно подсмотреть. как он делат
[11:18:37] <il.smind > думаешь он умеет?
[11:19:28] <il.smind > slavazanko/w> кстати. если будем налегать на VFS, то давайте сместим акцент от URL в сторону внутренних структур. Я уже когда-то говорил об этом.
Предлагаю между функциями гонять не строку URL и каждый раз её героически парсить. а гонять массив из сруктур. описывающих каждый элемент пути.
вроде все ЗА были
[11:20:52] <slavazanko/w> значит. так и порешим
[11:22:11] <slavazanko/w> а с expect запросто
autoexpect ssh 127.0.0.1 'ls'
вводи парол
и потом запускай новосозданный скрипт
script.exp
[11:23:14] <il.smind > slavazanko/w: ну верю
[11:23:20] <il.smind > проверять лень
[11:23:57] <slavazanko/w> Зуп даю - работает. после твоего "думаешь он умеет?" проверил :)
[11:24:09] <il.smind > я же сказал верю
[11:24:19] <il.smind > накой мне твой зуп
[11:25:06] <il.smind > andrew_b: Скажи что у нас с редактором в окне, я предлагаю его добить до рабочего состояния и влить
[11:25:20] <il.smind > а не откладывать в долгий ящик
[11:25:57] <andrew_b> il.smind : в редакторе будет окно?
[11:26:02] <il.smind > я имею ввиду устранить шероховатости но не реализовывать пока дополнительные фичи
[11:26:24] <il.smind > andrew_b: в редакторе "на полный экран" не будет окна
[11:26:35] BanderOS зашёл в конференцию
[11:26:35] <andrew_b> А вливать смысла нет.
[11:26:44] <andrew_b> Там же нет никаких фич.
[11:27:01] <il.smind > andrew_b: почему, там сейчас есть очень важная вещь
[11:27:22] <il.smind > правильное отображения содержимого в заданную область
[11:27:42] <il.smind > вот это главное для меня в этом бранче
[11:27:51] <il.smind > жалко это терять
[11:28:26] <il.smind > а перемещение окон можно позже
[11:28:30] <andrew_b> Сама по себе она полезна, но сейчас не необходима.
[11:28:38] <andrew_b> И так всё работает.
[11:28:55] <slavazanko/w> да. надо просчитать, нужен ли этот патч...
[11:29:23] <andrew_b> Надо доделывать многооконный редактор.
[11:29:29] <andrew_b> Но неохота.
[11:29:40] <slavazanko/w> 1) патч улучшает ситуацию - ну вроде да
2) можно обойтись без пача - да
вывод?
[11:30:10] <il.smind > >2) можно обойтись без пача - да
он дает возможность двигаться дальше
[11:30:31] <il.smind > для редактора он очень нужен
[11:30:45] <il.smind > я его год пытаюсь сделать
[11:30:54] <andrew_b> Он _будет_ нужен.
[11:31:02] <il.smind > он нужен мне
[11:31:11] <andrew_b> Если у редактора нет окон, он не нужен.
[11:31:17] <andrew_b> il.smind : Зачем он тебе?
[11:31:43] <il.smind > я смогу сделать кое что
[11:31:45] <slavazanko/w> скажем так. в свете грядущей переделки виджетов этот патч сильно добавит работы?
[11:32:06] <andrew_b> Не добавит.
[11:32:25] <andrew_b> Скорее, убавит.
[11:32:40] <il.smind > значительно
[11:32:46] <andrew_b> Нет.
[11:32:53] <andrew_b> Не значительно.
[11:32:56] <slavazanko/w> гм. Ну тады хрен его знает.
В чём тогда может быть препятствие к его добавлению?
[11:33:27] <andrew_b> Да нет препятствий.
[11:33:30] <il.smind > вот скажи представь тебе бы надо было бы сейчас сделать и переключение между многими редакторами и вот эту оконность
[11:33:54] <il.smind > это было бы через чур много
[11:34:27] <il.smind > а вот ты это сделал год назад и оно работает, почему бы ещё один небольшой шаг не сделать
[11:34:37] <il.smind > вроде и не видно его будет
[11:34:39] <andrew_b> Тикет делай.
[11:34:47] <il.smind > но зато двигаться вперёд даст
[11:35:13] <slavazanko/w> с тикетом засада :)
надо придумать обоснование добавления этого патча.
[11:35:21] <il.smind > я придумаю
[11:35:22] <andrew_b> Вот-вот. :)
[11:37:19] <il.smind > я хочу в конце концов получить "Борлад Си"
[11:37:42] <il.smind > даже если это будет набор патчей
[11:37:58] <il.smind > в сторонке
[11:38:23] <il.smind > без отладчика оно не полноценно
[11:38:52] <il.smind > а чтобы вывод отладчика поместить надо уметь позиционировать окна
[11:39:13] <slavazanko/w> http://www.linux.org.ru/jump-message.jsp?msgid=5651795&cid=5651826 - нас обозвали простеньким редактором. Со всеми поддержками CTAGS, записью макросов, автодополнениями и т.д.
[11:39:35] <andrew_b> Если сделать виджеты на основе TurboVision, у нас скорее получится DosNavigator, а не TurboC. :)
[11:40:25] theMIROn вышел из конференции
[11:40:38] theMIROn зашёл в конференцию
[11:40:57] <andrew_b> slavazanko/w: если человек не в курсе всех фич.
[11:41:44] <andrew_b> Мне вот тоже немного надо от mcedit. Ибо рабочий код я пишу в vim.
[11:42:16] <il.smind > andrew_b: ты код в виме пишешь???
[11:42:27] <andrew_b> Да. А что?
[11:43:22] <il.smind > теперь всё стало на свои места
[11:43:31] <il.smind > теперь я всё понял...
[11:43:37] <slavazanko/w> Во!
Илья, лучше прикрути некое подобие командного режима в mcedit.
например, ctrl+b, набираем число, потом жмём клавишу
например
ctrl+b,12,Up - Перейти курсором 12 строк вверх.
ctrl+b,8,Del - Удалить справа 8 символов
[11:44:08] <il.smind > как люди то пользоваться то будут?
[11:44:34] <slavazanko/w> да как в виме. Только в виме командный режим по дефолту. А тут переход в командный режим по хоткею
[11:44:55] theMIROn вышел из конференции
[11:45:47] <il.smind > да я уже думал
[11:45:59] <il.smind > но вот писать второй вим как то глупо
[11:46:21] <il.smind > а так достаточно ввести коммандный режим
[11:46:25] <slavazanko/w> да ёпт. Не надо писать второй вим. просто добавить возможность повтора команд
[11:46:30] <il.smind > и переключаться на него
[11:46:43] <slavazanko/w> ну назови это не командным режимом, а режимом повтора
[11:46:55] <slavazanko/w> всего лишь. а жизня упростится на порядок
[11:47:04] <il.smind > ну это просто тяжко ctrl+b,12,Up
[11:47:23] <slavazanko/w> почему тяжко?
[11:47:26] <andrew_b> il.smind : про окна. Можно объявить это первым шагом в 2261. Сделать первый шаг и надолго замереть. :)
[11:47:32] <il.smind > вот если переключился в режим и там делай что хочешь
[11:47:50] <il.smind > Сделать первый шаг и НЕ надолго замереть. :)
[11:47:57] <il.smind > на полгодика
[11:48:17] <slavazanko/w> ну можно и так, добавить бранч. проголосовать, влить. тикет оставить открытым
[11:48:44] <andrew_b> slavazanko/w: вот ещё что хотел, пока не забыл. Про события.
[11:48:50] <slavazanko/w> ?
[11:48:57] <andrew_b> Почему ты хочешь строки гонять?
[11:49:22] <andrew_b> Это ж каждый раз хэш считать надо.
[11:49:38] <slavazanko/w> ну.. нагляднее. Когда-нибудь макросы Ильи будут тоже содержать строки. например
[11:49:46] <slavazanko/w> нет, хэш ене считается
[11:49:58] <andrew_b> Как нет?
[11:51:01] <andrew_b> А как ты ищешь все эти "filesystem", "mkdir", etc?
[11:51:40] <slavazanko/w> хранится один-в-один. там для сравнения используется функция g_strcasecmp()
по результатам этой функции строится B-tree - бинарное дерево. И элементы размещаются в определённом порядке (если надо. то и вложенно). Это происходит автоматом. потом, при поиске ключей, перебор происходит быстро и с минимальным числом доступа к элементам (по методу бинарной сортировки)
[11:52:08] <slavazanko/w> там не хэш-массив я заюзал. а B-tree
[11:52:26] <andrew_b> > там для сравнения используется функция g_strcasecmp()

Ооо, ещё и строки сравнивать.
[11:52:49] <slavazanko/w> да. какая разница, что сравнивать - набор байт (хэш) или строку?
[11:53:08] <andrew_b> Или числа.
[11:55:08] <slavazanko/w> или числа. Но у чисел есть существенный недостаток: нужно где-то их осмысливать. Для этого создаются портянки вида keymap.h, где дефайнами числам придаётся смысл. Строки позволяют иметь смысл "здесь и сейчас", в момент использования. Чем это хорошо: плагины. если захотят создать свои группы или названия событий. не войдут в конфликт с уже существующими "числами" (если бы использовались числовые значения).
[11:56:08] <slavazanko/w> keymap.h == lib/keybind.h
[11:56:28] <andrew_b> У них будет своё пространство имён.
[11:57:04] <andrew_b> Кстати, теперь про биндинги. :)
[11:57:17] <slavazanko/w> давай :)
[11:57:30] <il.smind > опять они поминают биндинги в суе
[11:59:46] <andrew_b> У меня есть большое желание немного прорядить их.
Например, есть: EditHelp, ViewHelp, CmdHelp, TreeHelp, HelpHelp, DialogHelp, DiffHelp. Из этого всего оставить Help. За счёт того, что у них разные пространства имён, конфликта не будет.
[12:00:07] <andrew_b> Аналогично с многими другими.
[12:00:25] <slavazanko/w> будет конфликтовать. Ибо оно у Ильи потом в одну кучу лепится
[12:00:40] <andrew_b> Чёйта?
[12:00:53] <andrew_b> Когда оно слепится?
[12:02:09] <andrew_b> Ничего не лепится.
[12:02:16] <slavazanko/w> сейчас нету пространства имён, оно всё в один массив потом лепится. Поэтому и было добавлено дублирование группы в имя параметра
[12:02:27] <andrew_b> Ничего никуда не лепится.
[12:02:31] <slavazanko/w> static name_keymap_t command_names[]
[12:03:05] <slavazanko/w> один плоский массив структур
[12:03:19] <andrew_b> slavazanko/w: нет. Ты не в курсе.
[12:03:25] <slavazanko/w> ?
[12:03:28] <andrew_b> Этих массивов много.
[12:03:35] <andrew_b> У редактора свой.
[12:03:39] <andrew_b> У вьювера свой.
[12:03:44] <andrew_b> У панелей свой.
[12:04:08] <il.smind > slavazanko/w: да кстати Андрюха тебя уделал
[12:04:14] <slavazanko/w> абажжи. Это массивы для связки "хоткей - действие"
[12:04:28] <slavazanko/w> а я сейчас про связку "действие - код функции"
[12:04:29] <andrew_b> Да. Я про них и говорю.
[12:04:54] <andrew_b> Про биндинги.
[12:05:18] <slavazanko/w> lib/keybind.c
45 static name_keymap_t command_names[] = {
[12:05:55] <slavazanko/w> там не убрать имя группы из имени параметра. там линейно всё
[12:06:10] <andrew_b> А.
[12:06:13] <andrew_b> Чорт.
[12:06:27] <slavazanko/w> il.smind : моё кунг-фу сильнее :p
[12:07:48] <il.smind > линейно потому что я подразумемал что будут одинаковые по смыслу биндинги
[12:07:58] <il.smind > ну такие как стрелка вверх
[12:08:07] <andrew_b> Да.
[12:08:14] <andrew_b> Так и должно быть.
[12:08:20] <il.smind > но есть но
[12:08:21] <slavazanko/w> это должно быть в секции [common] наверное
[12:08:34] <il.smind > нужна была привязка в контексту
[12:09:06] <il.smind > т.е. если вызвать просто акшен "КурсорВверх"
[12:09:20] <il.smind > то его обработать может любой
[12:09:43] <il.smind > а не редактор которому собственно и предназначался
[12:09:48] <il.smind > этот экшен
[12:10:02] <andrew_b> Секции-то разные.
[12:10:23] <andrew_b> Каждая секция -- отдельное пространство.
[12:10:33] <slavazanko/w> и. кстати, о событиях: всё перечисленное в lib/keybind.c можно смело делать событием. И переделать name_keymap_t
typedef struct name_keymap_t
{
const char *name;
const char *event_group;
const char *event_name;
} name_keymap_t;

и фсё
[12:11:06] <slavazanko/w> ну или, если уж такая пьянка:
typedef struct name_keymap_t
{
const char *group;
const char *name;
const char *event_group;
const char *event_name;
} name_keymap_t;
[12:12:38] <slavazanko/w> тогда туча switch (...) {case CK_...:} просто исчезнет.
Достаточно будет вызвать
mc_event_raise(name_keymap_t->event_group,name_keymap_t->event_name, NULL);
[12:13:03] <il.smind > вздыхая
[12:13:16] <il.smind > сейчас простой внятный код
[12:13:27] <slavazanko/w> а будет ещё проще
[12:22:03] <slavazanko/w> ты 1851 смотри.
2169... 2361...
[12:24:43] <il.smind > да собираю я 1851
[12:25:07] <andrew_b> il.smind : повежливей там!
[12:25:26] <il.smind > andrew_b: с 1851 ?
[12:25:56] <il.smind > да я с ним и так ласково
[12:26:22] <andrew_b> il.smind : вообще.
[12:26:30] <il.smind > а...
[12:26:54] <slavazanko/w> а шо случилось?
[12:27:08] <il.smind > извольте-с сударь, как вам будет угодно...
[12:27:37] <slavazanko/w> -с и так означает "сударь" :)
[12:27:54] <il.smind > [Development]
logging=true
[12:28:11] <andrew_b> il.smind : дай угадаю...
[12:28:17] <andrew_b> Лога нет?
[12:28:31] <il.smind > slavazanko/w: умников развелось, куда не плюнь в грамотея попадёшь...
[12:29:05] <slavazanko/w> сам ты умник. Рассказывай лучше, что не получается с бранчем?
[12:29:13] <il.smind > Bad request.
The sender has sent XML that is malformed or that cannot be processed.
[12:29:19] <il.smind > постоянно приходит
[12:29:26] <slavazanko/w> откуда?
[12:29:34] <il.smind > чо от кого непонятно
[12:29:45] <il.smind > просто сообщение об ошибке
[12:29:49] <il.smind > в джабере
[12:29:52] <slavazanko/w> mc выдаёт?
[12:29:54] <slavazanko/w> абля
[12:30:07] <slavazanko/w> странно. у меня всё в норме
[12:30:09] <il.smind > andrew_b> Лога нет?
нет на
[12:30:20] <slavazanko/w> что делаешь. чтобы лога не было?
[12:30:31] <il.smind > ща пропишу тупо имя файла
[12:30:44] <slavazanko/w> на каком этапе ты пытаешьсф вывести лог?
[12:31:05] <slavazanko/w> попробуй выводить где-нить при выводе диалога создания каталога, например
[12:31:19] <slavazanko/w> а не в момент запуска mc
[12:31:24] <il.smind > как сейчас получить отсутствие - ничего никуда не пишем -- лога нет!
[12:31:44] <il.smind > теперь попробую mc_log добавить
[12:31:52] <slavazanko/w> короче, выводи лог после вызова функции load_setup() в main()
[12:32:00] <il.smind > ща
[12:32:25] <il.smind > просто я сейчас запустил мц забыв mc_log добавить
[12:32:41] <slavazanko/w> lkz ^)
[12:33:11] <slavazanko/w> вот фак. Мало того, что раскладка не та, так ещё и опечатался.
[12:33:41] <slavazanko/w> вместо l должно быть <
[12:33:59] <slavazanko/w> ну чё там?
[12:34:10] <il.smind > ща
[12:34:43] <il.smind > mc.log
[12:35:09] <slavazanko/w> ну и вот. голосуй :)
[12:41:03] slavazanko/h вышел из конференции
[12:43:31] slavazanko/h зашёл в конференцию
[12:44:27] slavazanko/h вышел из конференции
[12:45:15] <il.smind > а...
[12:45:17] <il.smind > нет
[12:45:26] <il.smind > я еще мозки поипу
[12:46:03] <il.smind > slavazanko/w: ничего ты потом отыграешься :)
[12:46:36] <slavazanko/w> атто :)
[12:46:45] <slavazanko/w> говори что не так
[12:47:05] slavazanko/h зашёл в конференцию
[12:47:09] <il.smind > погодь
[12:52:29] <il.smind > load_setup
1. scr_filename: /home/admin/.local/share/mc/fish/127.0.0.1/ls
1. scr_filename: /home/admin/.local/share/mc/fish/127.0.0.1/fexists
1. scr_filename: /home/admin/.local/share/mc/fish/127.0.0.1/mkdir
1. scr_filename: /home/admin/.local/share/mc/fish/127.0.0.1/unlink
1. scr_filename: /home/admin/.local/share/mc/fish/127.0.0.1/chown
1. scr_filename: /home/admin/.local/share/mc/fish/127.0.0.1/chmod
1. scr_filename: /home/admin/.local/share/mc/fish/127.0.0.1/rmdir
1. scr_filename: /home/admin/.local/share/mc/fish/127.0.0.1/ln
1. scr_filename: /home/admin/.local/share/mc/fish/127.0.0.1/mv
1. scr_filename: /home/admin/.local/share/mc/fish/127.0.0.1/hardlink
1. scr_filename: /home/admin/.local/share/mc/fish/127.0.0.1/get
1. scr_filename: /home/admin/.local/share/mc/fish/127.0.0.1/send
1. scr_filename: /home/admin/.local/share/mc/fish/127.0.0.1/append
1. scr_filename: /home/admin/.local/share/mc/fish/127.0.0.1/info
[12:52:37] <il.smind > ыш ты
[12:52:47] <il.smind > всё ведь правильно
[12:53:10] <il.smind > а подсовывал на подпись
[12:53:28] <slavazanko/w> что не так?
[12:53:36] <il.smind > всё ведь правильно
[12:53:51] <il.smind > я только код еще гляну...
[12:53:55] <il.smind > ладно?
[12:53:57] <slavazanko/w> давай, не вопрос
[12:54:02] <slavazanko/w> нужно
[12:54:15] <il.smind > я знаю что там всё красиво
[12:54:23] <il.smind > но надо соблюсти протокол
[12:55:30] <slavazanko/w> откуда знаешь, что красиво? Вдруг там ужоснах?
проверяй
[12:55:51] <il.smind > il.smind > я только код еще гляну...
[12:55:59] <il.smind > il.smind > я знаю что там всё красиво
[12:56:05] <il.smind > il.smind > но надо соблюсти протокол
[12:57:06] <il.smind > просто у меня сейчас биатлон
[12:57:23] <slavazanko/w> а... ок
[12:57:57] <andrew_b> il.smind : чё?
[12:58:41] <il.smind > да не тот биатлон
[13:01:23] <il.smind > andrew_b: Случай я хотел из хоткеев код сортировки своровать
[13:01:39] <il.smind > а там сортируется массив а не garray
[13:02:38] <andrew_b> Да.
[13:02:46] <andrew_b> Хватит воровать. Думай сам.
[13:02:47] <il.smind > нашел
g_array_sort(a, (GCompareFunc)compare_ints);
[13:03:07] <il.smind > andrew_b> Хватит воровать. Думай сам.
ты скажешь тоже
[13:03:26] <il.smind > был бы я программистом если бы умел думать?
[13:03:44] <il.smind > бошкой своей
[13:13:26] <slavazanko/w> il.smind : ну чё там? биатлон закончился, не?
[13:13:43] <il.smind > да какой там
[13:13:55] <andrew_b> Да чё за биатлон-то???
[13:13:58] <slavazanko/w> Илья, тут умные люди подсказали, как твоя болезнь называется: "парадигма повторного использования кода. "
[13:14:04] <slavazanko/w> andrew_b: это мем :)
[13:14:15] <slavazanko/w> означает "отвалите от меня, есть более важные дела"
[13:14:27] <andrew_b> А почему биатлон?
[13:14:28] <slavazanko/w> без обид :)
[13:14:34] <slavazanko/w> ну.. ты первый начал
[13:14:55] <andrew_b> Ах вы...
[13:14:59] <slavazanko/w> :))
[13:15:35] <andrew_b> Ладно-ладно...
[13:16:26] <il.smind > :))
[13:16:48] <slavazanko/w> Илья просто как-то мне рассказал, что он к тебе всей душой, а ты сказал, что у тебя биатлон и растворился в ночи. Илья потом полночи плакал в подушку.
[13:17:14] <il.smind > >"парадигма повторного использования кода. "
надо же вумные какие буквы то...
[13:18:19] <andrew_b> Да, я люблю смотреть биатлон. А футбол нет. А ВЫ???
[13:18:37] <slavazanko/w> да и у нас у каждого свой биатлон в жизни бывает. когда как
[13:18:52] <slavazanko/w> я вот на OpenTTD плотно подсел. Вечерами гоняю
[13:18:58] <il.smind > а я люблю русский говно-футбол
[13:19:27] <il.smind > > я вот на OpenTTD плотно подсел
вооот оно чо, Петрович...
[13:20:14] <andrew_b> Михалыч
[13:20:58] <il.smind > ТНТ-фил детектед :)
[13:21:25] <il.smind > > я вот на OpenTTD плотно подсел
вооот оно чо, Михалыч...
[13:22:28] <il.smind > andrew_b: этава... а надо быстрый поиск прикручивать?
[13:23:02] <andrew_b> Да. Однозначно.
[13:23:19] <il.smind > оох...
[13:23:29] <andrew_b> Чо мы как лохи циклы ипользовать будем?
[13:23:48] <andrew_b> Давай двавай на. Расти над собой.
[13:24:35] <il.smind > andrew_b: я ведь не расту... я каждый новый день на этот код смотрю как баран на новые ворота...
[13:31:49] <il.smind > ну и что в итоге... в очередной раз я понят что я нешарю...
[13:32:11] <slavazanko/w> ты чем сейчас занимаешься?
[13:32:25] <il.smind > мне надо элемент найти
[13:32:34] <il.smind > в Garray
[13:33:21] <il.smind > но не только найти элемент но еще и узнать его индекс
[13:33:41] <il.smind > найти я допустим найду а как индекс узнать?
[13:33:56] <slavazanko/w> http://library.gnome.org/devel/glib/stable/glib-Arrays.html
Этот тип массивов?
[13:34:28] <il.smind > ага
[13:34:35] <andrew_b> il.smind : 1851_xdg_config
[13:36:41] <il.smind > slavazanko/w: и где в мане logfile ?
[13:37:22] <slavazanko/w> > andrew_b: Случай я хотел из хоткеев код сортировки своровать
> а там сортируется массив а не garray

дык этава... юзай http://library.gnome.org/devel/glib/stable/glib-Arrays.html#g-array-sort
[13:37:40] <slavazanko/w> в мане???
[13:37:43] <slavazanko/w> оно надо?
[13:38:04] <il.smind > slavazanko/w: сортировку я сделал
[13:38:14] <il.smind > slavazanko/w: щетаю нада
[13:38:32] <il.smind > опровергните меня
[13:39:15] <slavazanko/w> > сортировку я сделал
ну.. а потом методом бинарного поиска
сначала в середину прыгаем. смотрим. больше или меньше искомого.. потом на середину половинки.. потом ещё на середину. За пару итераций будет найдено что надо
[13:39:52] <andrew_b> slavazanko/w: чё?
[13:39:52] <il.smind > я хотел bsearch
[13:40:04] <il.smind > andrew_b: слава дело говорит
[13:40:18] <slavazanko/w> > опровергните меня
опровергаю: логгирование нужно нам и только НАМ. Разработчикам. простому смертному это нафиг не впилось. И читая маны, смертный нездорово так заинтересуется: а что это за логи такие? а где они? а черкану-ка я багрепорт...
[13:40:35] <il.smind > мне надо индекс менять и проверять значение
[13:41:11] <il.smind > slavazanko/w: тогда в вике черкани, а тож
[13:41:18] <il.smind > оно сейчас нигде
[13:41:23] <slavazanko/w> войдёт в мастер - черкану
[13:41:29] <il.smind > slavazanko/w: ок
[13:43:46] <il.smind > andrew_b: не подходит мне bsearch
[13:44:03] <andrew_b> Чёйта?
[13:44:31] <il.smind > а как я индекс узнаю по найденному элементу
[13:44:51] <slavazanko/w> ему нужен не указатель на найденное, а индекс в массиве
[13:45:22] <andrew_b> Ну дык отнять и поделить.
[13:45:30] <slavazanko/w> а.
[13:45:32] <slavazanko/w> точна
[13:45:36] <il.smind > ???
[13:45:39] <slavazanko/w> Илья, юзай bsearch :)
[13:45:40] <andrew_b> :)))
[13:45:52] <slavazanko/w> есть укзатаель на начало массива
[13:45:57] <il.smind > у кого отнять и между кем делить?
[13:45:58] <slavazanko/w> есть указатель на найденное
[13:46:12] <slavazanko/w> вычитаем найденное на начало массива
[13:46:21] <slavazanko/w> и полученное делим на размер одного элемента
[13:46:25] <slavazanko/w> получаем индекс
[13:47:03] <slavazanko/w> index=(founded - array_start)/ sizeof(one_element)
[13:47:10] <il.smind > это какая то нездоровая магия
[13:47:20] <il.smind > я же там удаляю
[13:48:00] <slavazanko/w> ну и? после каждого bsearch указатель быдет обновляться. Следовательно. и индекс каждый раз будет указывать на правильный элемент
[13:48:02] <il.smind > думаете там память последовательно выделена, не фрагментирована?
[13:48:09] <slavazanko/w> последовательно
[13:48:16] <slavazanko/w> зуп даю
[13:48:23] <il.smind > я не верю...
[13:49:09] <il.smind > как может она быть не фрагментированной быть после того как я сделал

if (macros->macro != NULL)
g_array_free (macros->macro, FALSE);
macros = NULL;
g_array_remove_index (edit->macros_list, indx);
[13:49:33] <slavazanko/w> очень просто: там тупо memove делается
[13:49:39] <andrew_b> Да.
[13:49:49] <andrew_b> il.smind : не боись.
[13:49:54] <slavazanko/w> на место удалённого копируется массив от следующего элемента и до конца
[13:50:25] <il.smind > может не нада а?
[13:50:42] <il.smind > я методом половинного деления найду а?
[13:50:51] <il.smind > можно?
[13:51:24] <slavazanko/w> индусокод будет
[13:51:48] <slavazanko/w> делай как старшие товарищи советуют. Больно не будет, обещаем
[13:52:12] <il.smind > а если что то не так будет оно будет глючить
[13:52:40] <il.smind > как то это не безопасно...
[13:52:43] <slavazanko/w> тогда ответственность берём на себя. С тебя только безошибочная реализация
[13:53:26] <il.smind > придется сознаться что я не понял как пользоваться bsearch
[13:53:39] <slavazanko/w> не вопрос. ща
[13:53:52] <slavazanko/w> даже ман есть
[13:54:03] <il.smind > там мне надо 2 параметра
[13:55:57] <il.smind > macros_t * result = bsearch (&lookup_command, edit->macros_list->data,
edit->macros_list->len, sizeof(macros_t), edit_macro_comparator);
[13:56:03] <slavazanko/w> int (*compar)(const void *, const void *)
создаёшь функцию, которая будет сравнивать по определённому алгоритму данные. Ну там из (void *) приведёт к типу структуры и сравнит значения нужных элементов структуры. Это будет самым сложным :)
[13:56:04] <il.smind > один параметр
[13:56:15] <slavazanko/w> а всё остальное есть в примере к man bsearch
[13:56:33] <slavazanko/w> там пример даже со структурой... как тебе надо
[13:56:34] <il.smind > static int
edit_macro_comparator (const gpointer *macro1, const gpointer *macro2)
{
const macros_t *m1 = (const macros_t *) macro1;
const macros_t *m2 = (const macros_t *) macro2;

return m1->hotkey > m2->hotkey ? 0 : 1;
}
[13:56:54] <andrew_b> return (m1->hotkey - m2->hotkey);
[13:56:58] <il.smind > я уже написал, она у меня в сортировке используется
[13:57:19] <slavazanko/w> нет
не так
там должно быть три значения
[13:57:23] <slavazanko/w> -1, 0 и 1
[13:57:30] <andrew_b> Нет.
[13:57:36] <il.smind > andrew_b: сделал
[13:57:40] <slavazanko/w> первое значение: меньше второго. равно или больше
[13:57:45] <andrew_b> < 0, 0, > 0
[13:57:51] <slavazanko/w> ну да
[13:57:52] <il.smind > я говорю не с сравнивалкой проблема
[13:57:55] <andrew_b> < 0 yt j,zpfntkmyj -1.
[13:58:06] <andrew_b> <0 не обязательно -1.
[13:58:10] <slavazanko/w> а с чем проблема?
[13:58:19] <il.smind > macros_t * result = bsearch (&lookup_command, edit->macros_list->data,
edit->macros_list->len, sizeof(macros_t), edit_macro_comparator);
[13:58:28] <il.smind > &lookup_command
[13:58:45] <il.smind > вместо этого надо что то подставить, но я не понял что
[13:59:21] <slavazanko/w> что именно будешь искать.
[13:59:23] <slavazanko/w> ща
[14:00:06] <slavazanko/w> macros_t condition;
condition->hotkey = ...;

bsearch (&condition, ...);
[14:00:20] <il.smind > macros_t *search_macros
search_macros->hotkey =
[14:00:28] <il.smind > а ну понял...
[14:00:43] <slavazanko/w> нет, не указатели. а сама структура. ну или играйся с выделением памяти
[14:00:52] <il.smind > понял
[14:01:24] <slavazanko/w> -condition->hotkey = ...;
+condition.hotkey = ...;

самофикс :)
[14:19:36] <il.smind > !!! indx : 534741491
!!! indx : 534741491
[14:20:35] <il.smind > 1421 macros_t search_macro;
1422 search_macro.hotkey = hotkey;
1423 result = bsearch (&search_macro, edit->macros_list->data, edit->macros_list->len,
1424 sizeof (macros_t), (GCompareFunc) edit_macro_comparator);
1425
1426 *indx = (result - array_start) / sizeof (macros_t);
1427 if (*indx > edit->macros_list->len || *indx < 0)
1428 mc_log ("!!! indx : %i\n", *indx);
1429
1430 return result;
1431
[14:20:59] <il.smind > 1404 const macros_t *array_start = &g_array_index (edit->macros_list, struct macros_t, 0);
[14:21:48] <slavazanko/w> проверь, что result != NULL
[14:23:30] <il.smind > понял
[14:55:56] <slavazanko/w> Илья, для тебя клиент созрел http://www.linux.org.ru/forum/talks/5811977?lastmod=1295531564461#comment-5814644
[15:04:23] ruslan telenkevich вышел из конференции
[15:17:36] <il.smind > ну вроде все чики пуки работает Бсёч
[15:19:11] <slavazanko/w> атто. Говорили тебе: верь нам. то-то же :)
[15:19:33] <il.smind > но я не понимаю как оно работает
[15:19:46] <slavazanko/w> это всё тот же бинарный поиск
[15:19:54] <il.smind > получается при добавлении нового элемента выделяется новый блок памяти?
[15:19:58] <slavazanko/w> только код сравнения вынесен в отдельную функцию
[15:20:05] <il.smind > slavazanko/w: я не про сёч
[15:20:09] <slavazanko/w> а.
[15:20:17] <il.smind > про поиск понятно
[15:20:17] <slavazanko/w> не выделяется. а довыделяется
[15:20:25] <slavazanko/w> realloc()
[15:20:28] <il.smind > а если довыделять некуда
[15:20:29] <andrew_b> realloc делается.
[15:20:45] <il.smind > т.е. если позади уже занято
[15:20:47] <slavazanko/w> если некуда. то ищется другой кусок памяти. где ещё есть куда
[15:20:55] <il.smind > и ?
[15:21:00] <slavazanko/w> и находится
[15:21:07] <il.smind > дальше что?
[15:21:16] <slavazanko/w> а если не находится, то out of memory - и досвидос
[15:21:20] <il.smind > slavazanko/w: ты понимаешь о чём я спрашиваю?
[15:21:27] <slavazanko/w> даже если есть свободная память во фрагментах
[15:21:38] <il.smind > slavazanko/w: смотри
[15:21:42] <slavazanko/w> понимаю. А ты понимаешь что я отвечаю? :)
[15:21:54] <slavazanko/w> давай пример
[15:22:00] <il.smind > есть массив на 5 элементов выделено под него 5 байт
[15:22:35] <il.smind > [qwert][Зонято][свободно 10 байт]
[15:22:48] <slavazanko/w> ну и?
[15:22:49] <il.smind > qwert это то что в массиве
[15:23:02] <il.smind > нам надо добавить элемент 6-й
[15:23:16] <il.smind > за буквой t уже занято
[15:23:27] <il.smind > что выделится?
[15:23:35] <il.smind > сколько байт?
[15:23:42] <il.smind > 6 байт?
[15:23:47] <andrew_b> Да.
[15:23:51] <slavazanko/w> не вопрос. после realloc , будет так:
[свободно 5 байт][Зонято][qwert0][свободно 4 байта]
[15:23:52] <andrew_b> В другом месте.
[15:23:58] <il.smind > в зоне [свободно 10 байт] ?
[15:24:02] <slavazanko/w> да
[15:24:10] <slavazanko/w> я тебе про это и толковал
[15:24:11] <andrew_b> Или в другом месте.
[15:24:29] <il.smind > и кусок выделенный всегда идет последовательно?
[15:24:33] <andrew_b> Да.
[15:24:38] <il.smind > ок
[15:24:48] <il.smind > осознал, запомнил
[15:25:10] <il.smind > я думал с памятью работает схема как ХДД
[15:25:23] <il.smind > есть 2 байта пишем туда
[15:25:26] <slavazanko/w> это на физическом уровне.
[15:25:43] <slavazanko/w> там могут страницы памяти не совпадать с линейной моделью.
[15:25:53] BanderOS вышел из конференции
[15:26:00] <slavazanko/w> а на уровне приложений мы видим тупо одну линейку памяти
[15:26:05] <il.smind > slavazanko/w: неважно как внутри
[15:26:28] <il.smind > важно что я на уровне приложения всегда уверен что кусок не сегментирован
[15:26:50] <slavazanko/w> да
[15:27:08] <il.smind > вопросов не имею более, просвятили
[15:27:13] <slavazanko/w> гуд :)
[15:28:49] <slavazanko/w> помучай чела с ЛОРа. осилившего компиляцию. Я ему задал базовое задание. которое ты мне давал.. теперь ты его :)
[15:30:24] <slavazanko/w> и да: ctrl+a - это вызвать макрос с определённым именем. Когда-то давно при ctrl-r записывался макрос (например, на букву y) а по нажатии на ctrl+a и потом на y вопсроизводился. Сейчас остался диалог вызова макроса по ctrl+a, но сами макросы начали действовать мимо этого диалога
[15:30:25] il.smind вышел из конференции
[15:30:28] il.smind зашёл в конференцию
[15:30:44] <slavazanko/w> понимашь про что я?
[15:31:29] <il.smind > slavazanko/w> и да: ctrl+a - это вызвать макрос с определённым именем. Когда-то давно при ctrl-r записывался макрос (например, на букву y) а по нажатии на ctrl+a и потом на y вопсроизводился. Сейчас остался диалог вызова макроса по ctrl+a, но сами макросы начали действовать мимо этого диалога
нет не понимаю что в этом страшного
[15:31:31] andrew_b вышел из конференции: конец рабочего дня
[15:31:59] <il.smind > вообще ходел его удалить
[15:32:04] <slavazanko/w> макросом можно переопределить простые клавиши
[15:32:09] <slavazanko/w> обана
[15:32:15] <slavazanko/w> то есть. макросы без префикса?
[15:32:21] <il.smind > slavazanko/w: конечно
[15:32:27] <il.smind > в этом и прикол
[15:32:36] <il.smind > теперь можно всё
[15:32:44] <slavazanko/w> ёпт.
Это и есть макросы в стиле фара?
[15:32:46] <il.smind > халява наступила
[15:32:50] <il.smind > да
[15:32:59] <slavazanko/w> бля... это баг ящитаю
[15:33:23] <slavazanko/w> я всё жду, когда же ты воостановишь старое поведение.. а тут оно вона как...
[15:33:24] <il.smind > чево?
[15:33:45] <slavazanko/w> ну хз.
[15:33:46] <il.smind > ты старыми макросами пользовался?
[15:34:04] <slavazanko/w> короче, ляпи, а там посмотрим. закидают нас после релиза какашками или нет
[15:34:18] <slavazanko/w> неа. Потому что они были сломаны. А когды-то пользовался.
[15:34:19] <il.smind > а я нет потому что что это за макрос который надо вызывать через 3 кизды
[15:34:26] <slavazanko/w> через две
[15:34:34] <slavazanko/w> ctrl+a,<лун>
[15:34:34] <il.smind > ага
[15:34:37] <slavazanko/w> key
[15:34:42] <slavazanko/w> ну и норма
[15:34:47] <il.smind > не
[15:34:57] <il.smind > щас расскажу
[15:35:04] <il.smind > смотри
[15:35:22] <il.smind > есть текст
eqwtuyerwq weuityiruwyei qweuyriuy weqyiuyr iweu uweqiyr iuwey weiuyr iwuey weyuq yweiur weuy riuwqey
[15:35:50] <il.smind > надо быстро сделать каждое слово с отдельной строки
[15:36:38] <il.smind > c-r
ctrl-left, enter
c-r
любая кнопка
[15:36:53] <il.smind > зажимаю "любая кнопка"
[15:36:58] <il.smind > готово
[15:37:01] <slavazanko/w> я понял.
[15:37:09] <slavazanko/w> не. вроде удобственно намечается
[15:37:17] <slavazanko/w> ты меня убеждаешь :)
[15:37:23] <il.smind > а тут
ctrl-a любая кнопка, ctrl-a любая кнопка
[15:37:28] <il.smind > и тп
[15:37:39] <slavazanko/w> лана, есть ли критические хоткеи. которые нельзя переопределять? исключения есть?
[15:37:51] <il.smind > потом я тут же снимаю макрос с этой кнопки
[15:37:58] <il.smind > есть
[15:38:10] <slavazanko/w> как снять?
[15:38:11] <il.smind > это запись макроса и esc
[15:38:21] <slavazanko/w> гм
[15:38:38] <il.smind > slavazanko/w> как снять?
c-r
c-r
"любая кнопка"
[15:38:46] <slavazanko/w> ага. понято
[15:38:51] <slavazanko/w> ну крута-крута...
[15:39:42] <slavazanko/w> короче. мне уже нравиццо. Тогда надо убрать диалог, который сейчас на ctrl+a
[15:39:56] <il.smind > уберу
[15:40:06] <slavazanko/w> гуд.
[15:40:20] <slavazanko/w> 1851
[15:40:21] <il.smind > у мне на него виды - Выделить всё
[15:40:22] <slavazanko/w> :)
[15:40:29] <slavazanko/w> во!
[15:40:34] <il.smind > 1851 я почти досмотрел
[15:40:46] <il.smind > я даже кое что нашел
[15:40:47] <slavazanko/w> наконец-то :)
Выделить все - это будет киллер-фича.
[15:40:55] <slavazanko/w> > я даже кое что нашел
???
[15:41:02] <il.smind > но оказалось что это я криво увидел
[15:41:08] <slavazanko/w> фак
[15:41:19] <il.smind > и всё пока глядко :)
[15:41:32] <slavazanko/w> у меня даже сердце чаще застучало, а тут...
[15:42:51] <il.smind > всё надо мне отчётом занятся
[15:43:02] <il.smind > он на контроле у генерала
[15:43:23] <slavazanko/w> ок, не вопрос
[15:59:42] <il.smind > вот живой пример
[16:00:07] <slavazanko/w> ?
[16:00:13] <il.smind > мне сейчас надо выбрать суммы по видам с кодоми присланными в служебке
[16:00:51] <il.smind > надо сделать из 123, 324, 892,
vidoplp = 123 or
vidoplp = 324 or
[16:01:02] <il.smind > чтобы в запрос подсунуть
[16:01:12] <il.smind > вот сейчас в фаре сдераю
[16:01:38] <slavazanko/w> vidoplp IN(123, 324, 892)
[16:01:45] <il.smind > не
[16:01:59] <il.smind > не канает такое в голактикэ
[16:02:17] <il.smind > только как я сказал
[16:02:29] iNode вышел из конференции
[16:02:47] <il.smind > вот для таких вещей я постоянно использую макросы
[16:02:55] <slavazanko/w> если голактеко выполняет SQL-запросы, то должно проканать
[16:03:07] <il.smind > нет там свои запросы
[16:03:12] <il.smind > свой скл
[16:03:56] <il.smind > ---------------------------
Ошибка
---------------------------
Ошибка: Не могу осуществить преобразование типов (стр.2058, поз.9 в INPUT)
vidoplp in (345, 347)
^
---------------------------
ОК
---------------------------
[16:06:14] <il.smind > я тебе просто пример привёл а ты меня лечишь :)
[16:07:59] <il.smind > запрос запустил можно дальше...
[16:13:27] <il.smind > lib/mcconfig.h

10 /*** structures declarations (and typedefs of structures)****
добавь пробел после скобки :)
[16:56:46] styx.mp зашёл в конференцию
[17:40:26] andrew_b зашёл в конференцию
[17:46:36] andrew_b вышел из конференции: Replaced by new connection
[17:46:53] andrew_b зашёл в конференцию
[18:22:39] il.smind вышел из конференции
[18:30:38] styx.mp вышел из конференции
[19:16:50] andrew_b вышел из конференции
[19:26:31] iNode зашёл в конференцию
[19:41:25] il.smind зашёл в конференцию
[20:50:47] theMIROn зашёл в конференцию
[21:14:20] theMIROn вышел из конференции: Miranda IM. Menshe. Pushche. Proshhe!
[21:20:50] theMIROn зашёл в конференцию
[21:35:35] theMIROn вышел из конференции: Miranda IM. Menshe. Pushche. Proshhe!
Powered by freQ Powered by Python Valid XHTML 1.0 Transitional Valid CSS!