SetDirectoryInfo::UserData

Разработка Far.
User avatar
NightRoman
Posts: 5849
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 8 times
Been thanked: 8 times
Contact:

Re: SetDirectoryInfo::UserData

Post by NightRoman » Thu 13 Dec, 2012 13:37

Latest post of the previous page:

Пока можно забить на диалог поиска. Пусть там пока передается 0. Если остальное будет работать, то это уже хороший шаг вперед.

User avatar
Skirda
Posts: 3474
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 1 time

Re: SetDirectoryInfo::UserData

Post by Skirda » Thu 13 Dec, 2012 13:42

NightRoman wrote:В принципе это безобидное изменение, плагины-то пока не пользуют эту фичу. Только не делать ее гласной, пока не отшлифуется (на Фарнете пока). Я протестирую, как следует.
Я "опасный" код в #if`ы оберну.
We are the Borg. You will be assimilated.
So Say We All!

User avatar
NightRoman
Posts: 5849
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 8 times
Been thanked: 8 times
Contact:

Re: SetDirectoryInfo::UserData

Post by NightRoman » Thu 13 Dec, 2012 13:54

То есть мне надо будет компилить? ОК, тебе видней. Мне неохота с компиляцией Фара возиться, но могу. Тогда скажи чего и где надо установить перед компиляцией.

А чего там опасного может быть, раз плагины еще не пользовали это поле? Кто пользовал (0 причем?) - сам виноват, имхо.

User avatar
Skirda
Posts: 3474
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 1 time

Re: SetDirectoryInfo::UserData

Post by Skirda » Thu 13 Dec, 2012 15:36

ты чем компилишь?
We are the Borg. You will be assimilated.
So Say We All!

User avatar
NightRoman
Posts: 5849
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 8 times
Been thanked: 8 times
Contact:

Re: SetDirectoryInfo::UserData

Post by NightRoman » Thu 13 Dec, 2012 16:08

Студией. Там только одно место вроде? Мне проще тогда будет в коде "раскомментировать". А что там опасного-то? Не могу пока понять. Ну ладно, разберусь. Начал уже Фарнет готовить. Это и без нового кода займет заметное время. Я тут буду отмечаться об успехах и проблемах.

User avatar
Skirda
Posts: 3474
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 1 time

Re: SetDirectoryInfo::UserData

Post by Skirda » Thu 13 Dec, 2012 18:41

добавь макроопределение MANTIS_0002207=1 для компиляции.
как в студии - ХЗ. в комстроке это /DMANTIS_0002207
We are the Borg. You will be assimilated.
So Say We All!

User avatar
NightRoman
Posts: 5849
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 8 times
Been thanked: 8 times
Contact:

Re: SetDirectoryInfo::UserData

Post by NightRoman » Mon 17 Dec, 2012 10:23

Начал внедрять новый механизм. Пока без кода, который отключен условной компиляцией. Что-то в целом работает, а что-то глючит.

Вопрос - какая именно функциональность там отключена условной компиляцией? Ее обязательно надо задествовать или что-то должно работать и без нее? (Ибо "что-то" явно работает, пока бы это "что-то" и потестил, и проблемы описал).

User avatar
Skirda
Posts: 3474
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 1 time

Re: SetDirectoryInfo::UserData

Post by Skirda » Mon 17 Dec, 2012 10:58

Условная компиляция. По умолчанию макрос MANTIS_0002207 не определен. Определить его и перекомпилить...
We are the Borg. You will be assimilated.
So Say We All!

User avatar
NightRoman
Posts: 5849
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 8 times
Been thanked: 8 times
Contact:

Re: SetDirectoryInfo::UserData

Post by NightRoman » Mon 17 Dec, 2012 11:07

Skirda wrote:Условная компиляция. По умолчанию макрос MANTIS_0002207 не определен. Определить его и перекомпилить...
Да я не это спросил. Словами скажи, пожалуйста, что именно отключено. Всё (это вроде не так) или какая-то определенная часть? Какая?

User avatar
NightRoman
Posts: 5849
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 8 times
Been thanked: 8 times
Contact:

Re: SetDirectoryInfo::UserData

Post by NightRoman » Mon 17 Dec, 2012 11:14

Я глянул на код GetUserDataFromPluginItem. Правильно я понимаю, что оно по имени файла ищет? Если да, то это не будет работать, кажется, если одинаковые имена есть. Все эти приседания с юзер дата и нужны, чтобы подобного рода ограничения Фара обходить, типа одинаковых имен или плохих имен (.., \).

User avatar
NightRoman
Posts: 5849
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 8 times
Been thanked: 8 times
Contact:

Re: SetDirectoryInfo::UserData

Post by NightRoman » Mon 17 Dec, 2012 11:22

Skirda
Если мое опасение верно, то код под условной компиляцией работать правильно не будет. Вот я и спрашиваю - без этого кода что-то уже можно тестировать? SetDirectory передает юзер дата в каких-то случаях сейчас? По моим наблюдениям в дебаггере - вроде да. Если это уже можно тестировать, то есть и глюки. Уже пытаться баг репорт составлять (это не просто, надо сузить до точной проблемы) или рано, посмотришь еще в Фаре?

User avatar
Skirda
Posts: 3474
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 1 time

Re: SetDirectoryInfo::UserData

Post by Skirda » Mon 17 Dec, 2012 13:42

NightRoman wrote:Правильно я понимаю, что оно по имени файла ищет?
типа того; а иначе - ХЗ как победить... текущий элемент панели?
а че делать когда сканирование идет в том же поиске? там как такового нет текущего элемента...
NightRoman wrote:Skirda
Если мое опасение верно, то код под условной компиляцией работать правильно не будет. Вот я и спрашиваю - без этого кода что-то уже можно тестировать? SetDirectory передает юзер дата в каких-то случаях сейчас? По моим наблюдениям в дебаггере - вроде да. Если это уже можно тестировать, то есть и глюки. Уже пытаться баг репорт составлять (это не просто, надо сузить до точной проблемы) или рано, посмотришь еще в Фаре?
Да я бы посмотрел, но то, на что я смотрел - это был тестовый плагин (из "уроков"). Если найдется что-нибудь не сильно тяжеловестное (тестовый плагин, естественно) - то...
We are the Borg. You will be assimilated.
So Say We All!

User avatar
NightRoman
Posts: 5849
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 8 times
Been thanked: 8 times
Contact:

Re: SetDirectoryInfo::UserData

Post by NightRoman » Mon 17 Dec, 2012 16:12

Хм, нет такой подход с поиском по имени не годится. Как уже сказано, не будет работать с дублированными именами. А во-вторых, будет тормозить при поиске. Чем больше элементов, тем хуже. Известный "принцип Шлемиэля" :)


Но и не ожидалось, что сразу все брутальными методами в лоб организуется. Мне трудно посоветовать.

User avatar
NightRoman
Posts: 5849
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 8 times
Been thanked: 8 times
Contact:

Re: SetDirectoryInfo::UserData

Post by NightRoman » Mon 17 Dec, 2012 16:17

а че делать когда сканирование идет в том же поиске? там как такового нет текущего элемента...
Хоть в обычной ситуации, хоть при поиске, плагин не имена Фару дает, а структуры файлов, где юзер дата заполнены. Фар не эти структуры сканирует, а что-то другое? Вот это и надо копать, почему теряются юзер дата в какой-то момент.

User avatar
Skirda
Posts: 3474
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 1 time

Re: SetDirectoryInfo::UserData

Post by Skirda » Tue 18 Dec, 2012 14:12

Проблема в том, что Far "юзает" SetDirectoryInfo в терминах "имени"...
Хмм... есть пара идей. Начнем вот с этого патча:
Attachments
!setdir.diff.7z
(796 Bytes) Downloaded 98 times
We are the Borg. You will be assimilated.
So Say We All!

User avatar
NightRoman
Posts: 5849
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 8 times
Been thanked: 8 times
Contact:

Re: SetDirectoryInfo::UserData

Post by NightRoman » Tue 18 Dec, 2012 14:30

А в базу его нельзя? Или он слишком экспериментальный?

User avatar
NightRoman
Posts: 5849
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 8 times
Been thanked: 8 times
Contact:

Re: SetDirectoryInfo::UserData

Post by NightRoman » Tue 18 Dec, 2012 16:12

Skirda
Я сейчас на машине, не готовой к сборке Фара из исходников. Но могу потестировать, если прикрепишь собранный экзешник Фара с минимальным набором файлов (лнг, вроде). Или в личку, чтоб тут не мусорить. Хотя, может, и еще кто соберется потестить.

Post Reply

Return to “Development”