| 62 | } |
| 63 | |
| 64 | void PluginList::init(NppData *nppData) |
| 65 | { |
| 66 | _nppData = nppData; |
| 67 | TCHAR configDir[MAX_PATH]; |
| 68 | TCHAR nppDir[MAX_PATH]; |
| 69 | TCHAR allUsersPluginDir[MAX_PATH]; |
| 70 | |
| 71 | ::SendMessage(nppData->_nppHandle, NPPM_GETPLUGINSCONFIGDIR, MAX_PATH, reinterpret_cast<LPARAM>(configDir)); |
| 72 | ::SendMessage(nppData->_nppHandle, NPPM_GETNPPDIRECTORY, MAX_PATH, reinterpret_cast<LPARAM>(nppDir)); |
| 73 | LPARAM nppVersion = ::SendMessage(nppData->_nppHandle, NPPM_GETNPPVERSION, 0, 0); |
| 74 | |
| 75 | int majorVersion = HIWORD(nppVersion); |
| 76 | int minorVersion = LOWORD(nppVersion); |
| 77 | TCHAR tmp[10]; |
| 78 | _itot_s(majorVersion, tmp, 10, 10); |
| 79 | tstring versionString(tmp); |
| 80 | |
| 81 | _itot_s(minorVersion, tmp, 10, 10); |
| 82 | |
| 83 | |
| 84 | for(int i = 0; tmp[i]; i++) |
| 85 | { |
| 86 | versionString.push_back(_T('.')); |
| 87 | versionString.push_back(tmp[i]); |
| 88 | } |
| 89 | |
| 90 | _nppVersion = versionString; |
| 91 | |
| 92 | _tcscpy_s(allUsersPluginDir, MAX_PATH, nppDir); |
| 93 | ::PathAppend(allUsersPluginDir, _T("plugins")); |
| 94 | |
| 95 | _variableHandler = new VariableHandler(); |
| 96 | _variableHandler->setVariable(_T("NPPDIR"), nppDir); |
| 97 | _variableHandler->setVariable(_T("ALLUSERSPLUGINDIR"), allUsersPluginDir); |
| 98 | _variableHandler->setVariable(VALIDATE_BASE_URL_VAR, getValidateUrl()); |
| 99 | |
| 100 | ITEMIDLIST *pidl; |
| 101 | HRESULT result = SHGetSpecialFolderLocation(NULL, CSIDL_APPDATA, &pidl); |
| 102 | if (result == S_OK) |
| 103 | { |
| 104 | TCHAR appDataPluginDir[MAX_PATH]; |
| 105 | |
| 106 | if (SHGetPathFromIDList(pidl, appDataPluginDir)) |
| 107 | { |
| 108 | PathAppend(appDataPluginDir, _T("Notepad++\\plugins")); |
| 109 | _variableHandler->setVariable(_T("USERPLUGINDIR"), appDataPluginDir); |
| 110 | } |
| 111 | else |
| 112 | { |
| 113 | _variableHandler->setVariable(_T("USERPLUGINDIR"), allUsersPluginDir); |
| 114 | } |
| 115 | } |
| 116 | else |
| 117 | { |
| 118 | _variableHandler->setVariable(_T("USERPLUGINDIR"), allUsersPluginDir); |
| 119 | } |
| 120 | |
| 121 | if (g_options.installLocation == INSTALLLOC_APPDATA) |
no test coverage detected