FIN — Fix Incorrect Names

Здесь можно обсудить ваш любимый плагин.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Re: FIN — Fix Incorrect Names

Post by DrKnS »

Latest post of the previous page:

Так, проясняем.

StructSize всегда ставит тот, кто аллоцирует структуру, ибо только он знает её размер.

Соответственно, для DM ставит плагин, для DN - фар.

Везде, где надо - поправлено.
User avatar
Тигрёнок
Posts: 391
Joined: Wed 03 May, 2006 06:07
Location: Россия
Contact:

Re: FIN — Fix Incorrect Names

Post by Тигрёнок »

DrKnS wrote:StructSize всегда ставит тот, кто аллоцирует структуру, ибо только он знает её размер.
Соответственно, для DM ставит плагин, для DN - фар.
Во! Теперь я всё понял. Спасибо!
DrKnS wrote:StructSize Везде, где надо - поправлено.
Радует и обнадёживает...
Съешь мыша – стань настоящим клавишником!
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Re: FIN — Fix Incorrect Names

Post by NightRoman »

Соответственно, для DM ставит плагин, для DN - фар.
Хорошо, что разобрались.

Не совсем понятно, зачем это делает Фар в DN, какой практический смысл?
User avatar
chupakabra
Posts: 1023
Joined: Wed 27 Jul, 2005 19:36
Contact:

Re: FIN — Fix Incorrect Names

Post by chupakabra »

NightRoman wrote:Не совсем понятно, зачем это делает Фар в DN, какой практический смысл?
Чтобы плагин знал версию структуры?
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Re: FIN — Fix Incorrect Names

Post by NightRoman »

chupakabra
Чтобы плагин мог быть совместим со старыми версиями Фара? Если да, то это не очень хороший дизайн. Во-первых, в принципе не хорошо, что плагин поставлен в такую ситуацию, в нормальном АПИ этого желательно избегать. Во-вторых, это решается обновлением Фара, что всегда возможно в отличие от обновления плагина, автор которого пропал или забил на плагин.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Re: FIN — Fix Incorrect Names

Post by DrKnS »

Для единообразия.
Размер там без надобности, но структура используется одна и та же для ввода и для вывода, так что пусть уж лучше там будет что-то осмысленное.
Если применения ему не видишь - просто игнорируй его.
Shmuel
Posts: 6834
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Re: FIN — Fix Incorrect Names

Post by Shmuel »

Тигрёнок
Не могу понять по исходникам, почему плагин правильно работает с путём .. (две точки) при копировании и переносе, вроде как он эти точки удаляет? Просвети, пожалуйста.
User avatar
John Doe
Бюрократ
Posts: 13851
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

Re: FIN — Fix Incorrect Names

Post by John Doe »

Может исходники не самые свежие?
User avatar
Тигрёнок
Posts: 391
Joined: Wed 03 May, 2006 06:07
Location: Россия
Contact:

Re: FIN — Fix Incorrect Names

Post by Тигрёнок »

Shmuel wrote:Не могу понять по исходникам, почему плагин правильно работает с путём .. (две точки) при копировании и переносе, вроде как он эти точки удаляет? Просвети, пожалуйста.
Сам не знаю...
Там очевидная ошибка (мерси!), но если по DM_SETDLGITEM подаётся пустая строка, то оно просто не отрабатывается FAR'ом... Более того, если сделать несколько изменений, то в ответ на передачу после них пустой строки, они откатятся.
Съешь мыша – стань настоящим клавишником!
Shmuel
Posts: 6834
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Re: FIN — Fix Incorrect Names

Post by Shmuel »

Исходники - свежие. Поигрался сам, вот что заметил:

1. Если использовать DM_SETDLGITEM, как делает плагин, то почти всегда файл копируется/переносится в родительскую папку, несмотря на удаление точек. Но был один случай, когда поведение было ожидаемым - варнинг "Incorrect target list".

2. Если же использовать DM_SETTEXT - ничего не переносится/не копируется, выдаётся варнинг.

Так что похоже, что это Фар чудит (хотя в плагине ситуация с .. в конце имени тоже должна была бы особо обрабатываться).
Shmuel
Posts: 6834
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Re: FIN — Fix Incorrect Names

Post by Shmuel »

Ещё заметил, что это странное поведение DM_SETDLGITEM имеет место в диалогах CopyFilesId, HardSymLinkId, но не наблюдается в FileOpenCreateId, FileSaveAsId, MakeFolderId. Хотя возможно, что это просто игра случая.
User avatar
Тигрёнок
Posts: 391
Joined: Wed 03 May, 2006 06:07
Location: Россия
Contact:

Re: FIN — Fix Incorrect Names

Post by Тигрёнок »

Shmuel wrote:в плагине ситуация с .. в конце имени тоже должна была бы особо обрабатываться
Это понятно. Тем более, что Path\.. сейчас превращается в просто Path, что вообще никуда не годится...
Однако непонятно, что делать. Во что уместно превращать, скажем, путь из трёх точек или две точки с пробелом в конце? Или просто выдавать предупреждение, ничего не делая?
Съешь мыша – стань настоящим клавишником!
User avatar
John Doe
Бюрократ
Posts: 13851
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

Re: FIN — Fix Incorrect Names

Post by John Doe »

Не стоит мудрить. Надо молча обрезать пока не останется ".."
Path\.. это кому вообще понадобиться такое?

Опционально можно сделать запрос на изменение.
User avatar
Тигрёнок
Posts: 391
Joined: Wed 03 May, 2006 06:07
Location: Россия
Contact:

Re: FIN — Fix Incorrect Names

Post by Тигрёнок »

Ну, я пофиксил, как мог.
Варианты .. и Path\.. для диалогов копирования, перемещения с создания ссылки должны отрабатываться правильно.
Плагин по-прежнему партизанит - не задаёт вопросов, не выдаёт предупреждений.
Если, отъедая по одному символу с конца от имени, его так и не удаётся сделать корректным, то плагин его и не меняет.
Съешь мыша – стань настоящим клавишником!
Shmuel
Posts: 6834
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Re: FIN — Fix Incorrect Names

Post by Shmuel »

Тигрёнок
У меня подозрение, что странное поведение DM_SETDLGITEM объясняется модификацией плагином блока памяти, на которую указывает PtrData. PtrData - это указатель типа const wchar_t*, видимо так делать нельзя. Поэтому лучше было бы воспользоваться DM_SETTEXT.
Shmuel
Posts: 6834
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Re: FIN — Fix Incorrect Names

Post by Shmuel »

John Doe wrote:Path\.. это кому вообще понадобиться такое?
Ну например ..\.. вполне может понадобиться.
Post Reply

Return to “Обсуждение плагинов”