Что возвращать в GetMinFarVersion()
Posted: Thu 04 Feb, 2010 17:47
Подумалось тут... Давно стало классикой примерно такое:
int WINAPI EXP_NAME(GetMinFarVersion)(void) { return FARMANAGERVERSION; }
Но API для 1.75 уже давно не менялось и привязка к последней версии FAR, кроме стимуляции пользователей новых версий плагинов к обновлению FAR фактически ничего не даёт. То есть на самом деле плагин прекрасно заработает и под FAR 1.70, хотя требует 1.75 (build 2619)...
В результате автор плагина вместо FARMANAGERVERSION пишет примерно такое:
int WINAPI EXP_NAME(GetMinFarVersion)(void) { return MAKEFARVERSION(1,71,2232); }
...и при критичном изменении в API забывает изменить это значение. Ведь у него-то последняя версия FAR и plugin.hpp, он просто не наколется на этом... А "собиратели древностей" могут пострадать...
Может быть стоит ввести кроме FARMANAGERVERSION ещё и FARMANAGERCOMPATIBLEVERSION, которое будет возвращать последнюю версию FAR, в которой произошли изменения в API? Изменять её значение даже не нужно "врукопашную", достаточно интеллектуальным скриптом сравнить текущий plugin.hpp с неким эталоном...
int WINAPI EXP_NAME(GetMinFarVersion)(void) { return FARMANAGERVERSION; }
Но API для 1.75 уже давно не менялось и привязка к последней версии FAR, кроме стимуляции пользователей новых версий плагинов к обновлению FAR фактически ничего не даёт. То есть на самом деле плагин прекрасно заработает и под FAR 1.70, хотя требует 1.75 (build 2619)...
В результате автор плагина вместо FARMANAGERVERSION пишет примерно такое:
int WINAPI EXP_NAME(GetMinFarVersion)(void) { return MAKEFARVERSION(1,71,2232); }
...и при критичном изменении в API забывает изменить это значение. Ведь у него-то последняя версия FAR и plugin.hpp, он просто не наколется на этом... А "собиратели древностей" могут пострадать...
Может быть стоит ввести кроме FARMANAGERVERSION ещё и FARMANAGERCOMPATIBLEVERSION, которое будет возвращать последнюю версию FAR, в которой произошли изменения в API? Изменять её значение даже не нужно "врукопашную", достаточно интеллектуальным скриптом сравнить текущий plugin.hpp с неким эталоном...