FIN — Fix Incorrect Names

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

Re: FIN — Fix Incorrect Names

Post by DrKnS » Thu 26 Aug, 2010 19:10

Latest post of the previous page:

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

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

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

Везде, где надо - поправлено.

User avatar
Тигрёнок
Posts: 390
Joined: Wed 03 May, 2006 06:07
Location: Россия
Contact:

Re: FIN — Fix Incorrect Names

Post by Тигрёнок » Thu 26 Aug, 2010 19:18

DrKnS wrote:StructSize всегда ставит тот, кто аллоцирует структуру, ибо только он знает её размер.
Соответственно, для DM ставит плагин, для DN - фар.
Во! Теперь я всё понял. Спасибо!
DrKnS wrote:StructSize Везде, где надо - поправлено.
Радует и обнадёживает...
Съешь мыша – стань настоящим клавишником!

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

Re: FIN — Fix Incorrect Names

Post by NightRoman » Fri 27 Aug, 2010 02:40

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

Не совсем понятно, зачем это делает Фар в DN, какой практический смысл?

User avatar
chupakabra
Posts: 1024
Joined: Wed 27 Jul, 2005 19:36
Contact:

Re: FIN — Fix Incorrect Names

Post by chupakabra » Fri 27 Aug, 2010 08:22

NightRoman wrote:Не совсем понятно, зачем это делает Фар в DN, какой практический смысл?
Чтобы плагин знал версию структуры?

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

Re: FIN — Fix Incorrect Names

Post by NightRoman » Fri 27 Aug, 2010 08:46

chupakabra
Чтобы плагин мог быть совместим со старыми версиями Фара? Если да, то это не очень хороший дизайн. Во-первых, в принципе не хорошо, что плагин поставлен в такую ситуацию, в нормальном АПИ этого желательно избегать. Во-вторых, это решается обновлением Фара, что всегда возможно в отличие от обновления плагина, автор которого пропал или забил на плагин.

User avatar
DrKnS
Posts: 5430
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 6 times
Been thanked: 251 times

Re: FIN — Fix Incorrect Names

Post by DrKnS » Fri 27 Aug, 2010 08:54

Для единообразия.
Размер там без надобности, но структура используется одна и та же для ввода и для вывода, так что пусть уж лучше там будет что-то осмысленное.
Если применения ему не видишь - просто игнорируй его.

Shmuel
Posts: 5923
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 23 times
Been thanked: 233 times

Re: FIN — Fix Incorrect Names

Post by Shmuel » Sun 29 Aug, 2010 13:30

Тигрёнок
Не могу понять по исходникам, почему плагин правильно работает с путём .. (две точки) при копировании и переносе, вроде как он эти точки удаляет? Просвети, пожалуйста.

User avatar
John Doe
Бюрократ
Posts: 12534
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 237 times

Re: FIN — Fix Incorrect Names

Post by John Doe » Sun 29 Aug, 2010 14:03

Может исходники не самые свежие?

User avatar
Тигрёнок
Posts: 390
Joined: Wed 03 May, 2006 06:07
Location: Россия
Contact:

Re: FIN — Fix Incorrect Names

Post by Тигрёнок » Sun 29 Aug, 2010 14:11

Shmuel wrote:Не могу понять по исходникам, почему плагин правильно работает с путём .. (две точки) при копировании и переносе, вроде как он эти точки удаляет? Просвети, пожалуйста.
Сам не знаю...
Там очевидная ошибка (мерси!), но если по DM_SETDLGITEM подаётся пустая строка, то оно просто не отрабатывается FAR'ом... Более того, если сделать несколько изменений, то в ответ на передачу после них пустой строки, они откатятся.
Съешь мыша – стань настоящим клавишником!

Shmuel
Posts: 5923
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 23 times
Been thanked: 233 times

Re: FIN — Fix Incorrect Names

Post by Shmuel » Sun 29 Aug, 2010 14:14

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

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

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

Так что похоже, что это Фар чудит (хотя в плагине ситуация с .. в конце имени тоже должна была бы особо обрабатываться).

Shmuel
Posts: 5923
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 23 times
Been thanked: 233 times

Re: FIN — Fix Incorrect Names

Post by Shmuel » Sun 29 Aug, 2010 15:55

Ещё заметил, что это странное поведение DM_SETDLGITEM имеет место в диалогах CopyFilesId, HardSymLinkId, но не наблюдается в FileOpenCreateId, FileSaveAsId, MakeFolderId. Хотя возможно, что это просто игра случая.

User avatar
Тигрёнок
Posts: 390
Joined: Wed 03 May, 2006 06:07
Location: Россия
Contact:

Re: FIN — Fix Incorrect Names

Post by Тигрёнок » Sun 29 Aug, 2010 17:04

Shmuel wrote:в плагине ситуация с .. в конце имени тоже должна была бы особо обрабатываться
Это понятно. Тем более, что Path\.. сейчас превращается в просто Path, что вообще никуда не годится...
Однако непонятно, что делать. Во что уместно превращать, скажем, путь из трёх точек или две точки с пробелом в конце? Или просто выдавать предупреждение, ничего не делая?
Съешь мыша – стань настоящим клавишником!

User avatar
John Doe
Бюрократ
Posts: 12534
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 237 times

Re: FIN — Fix Incorrect Names

Post by John Doe » Sun 29 Aug, 2010 17:16

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

Опционально можно сделать запрос на изменение.

User avatar
Тигрёнок
Posts: 390
Joined: Wed 03 May, 2006 06:07
Location: Россия
Contact:

Re: FIN — Fix Incorrect Names

Post by Тигрёнок » Sun 29 Aug, 2010 19:43

Ну, я пофиксил, как мог.
Варианты .. и Path\.. для диалогов копирования, перемещения с создания ссылки должны отрабатываться правильно.
Плагин по-прежнему партизанит - не задаёт вопросов, не выдаёт предупреждений.
Если, отъедая по одному символу с конца от имени, его так и не удаётся сделать корректным, то плагин его и не меняет.
Съешь мыша – стань настоящим клавишником!

Shmuel
Posts: 5923
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 23 times
Been thanked: 233 times

Re: FIN — Fix Incorrect Names

Post by Shmuel » Sun 29 Aug, 2010 20:11

Тигрёнок
У меня подозрение, что странное поведение DM_SETDLGITEM объясняется модификацией плагином блока памяти, на которую указывает PtrData. PtrData - это указатель типа const wchar_t*, видимо так делать нельзя. Поэтому лучше было бы воспользоваться DM_SETTEXT.

Shmuel
Posts: 5923
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 23 times
Been thanked: 233 times

Re: FIN — Fix Incorrect Names

Post by Shmuel » Sun 29 Aug, 2010 20:27

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

User avatar
John Doe
Бюрократ
Posts: 12534
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 237 times

Re: FIN — Fix Incorrect Names

Post by John Doe » Mon 30 Aug, 2010 03:37

Действительно...

Post Reply

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