[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!