View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0002614 | Wishes | Plugins API.Dialog | public | 2014-03-06 10:12 | 2014-04-04 08:48 |
Reporter | JohnDoe | Assigned To | |||
Priority | normal | Severity | minor | Reproducibility | N/A |
Status | new | Resolution | open | ||
Product Version | 3.0 | ||||
Summary | 0002614: SendDlgMessage: не падать при невалидном hDlg | ||||
Description | http://forum.farmanager.com/viewtopic.php?p=117232#p117232 | ||||
Tags | No tags attached. | ||||
Build | |||||
|
Хоть это и возможно сделать в Фаре (и в форуме упомянут вариант реализации), навряд ли это будет сделано. Причина в том, что, в отличие от Lua-скриптов, где данная незащищённость является чуть ли не единственной, у "нативных" плагинов есть тысячи способов завалить Фар, и на каждый из них защиту не поставишь. |
|
3821. |
|
Теперь не падает. Но что должна возвращать функция far.SendDlgMessage, вызванная с невалидным хэндлом? Сейчас возвращает 1. local F = far.Flags local hDlg Macro { description=""; area="Menu Dialog"; key="F1"; action=function() hDlg = far.AdvControl(F.ACTL_GETWINDOWINFO).Id far.Show(hDlg) end; } Macro { description=""; area="Menu Dialog"; key="F2"; action=function() local id = far.SendDlgMessage (hDlg, F.DM_GETFOCUS) far.Show(id) end; } |
|
Фар возвращает 0, LuaFAR инкрементирует, так как отсчёт элементов диалога в LuaFAR производится от единицы. Возможно было бы Фару в этом случае возвращать отрицательное число (расширение API). |
|
3823. |
|
>для DM_GETFOCUS и DM_LISTADDSTR в случае отсутствия диалога возвращается -1. Не знаю почему только для этих сообщений, но вам виднее... |
|
Потому что для почти всех прочих сообщений возврат 0 означает неудачу, а для указанных сообщений 0 - это значимый результат. |
|
Вот именно что "почти" Беру первое попавшееся DM_EDITUNCHANGEDFLAG Return Предыдущее состояние "неизмененный текст" строки редактирования. |
|
привели бы сразу весь список, где по вашему мнению нужно возвращать что-то отличное от 0. |
|
Ok, будет список. |
|
Писание не забудьте изменить соответствующим образом по результатам решения этого бага |
|
энциклопедия была сразу изменена: https://code.google.com/p/farmanager/source/detail?r=11508 |
|
Закрываем? |
|
Нет, я должен список, но пока не могу этим заняться |
Date Modified | Username | Field | Change |
---|---|---|---|
2014-03-06 10:12 | JohnDoe | New Issue | |
2014-03-06 10:19 | shmuel | Note Added: 0011867 | |
2014-03-06 10:20 | shmuel | Note Edited: 0011867 | |
2014-03-07 00:15 | zg | Note Added: 0011871 | |
2014-03-08 11:17 | JohnDoe | Note Added: 0011873 | |
2014-03-08 11:32 | shmuel | Note Added: 0011874 | |
2014-03-08 16:54 | zg | Note Added: 0011876 | |
2014-03-09 10:44 | JohnDoe | Note Added: 0011877 | |
2014-03-09 10:44 | JohnDoe | Status | new => resolved |
2014-03-09 11:06 | shmuel | Note Added: 0011878 | |
2014-03-09 11:08 | JohnDoe | Note Added: 0011879 | |
2014-03-09 11:34 | zg | Note Added: 0011880 | |
2014-03-09 11:35 | JohnDoe | Note Added: 0011881 | |
2014-03-13 07:27 | vskirdin | Note Added: 0011903 | |
2014-03-13 08:27 | zg | Note Added: 0011909 | |
2014-04-04 06:14 | vskirdin | Note Added: 0012099 | |
2014-04-04 08:37 | JohnDoe | Note Added: 0012102 | |
2014-04-04 08:48 | vskirdin | Status | resolved => new |