Index: options.c =================================================================== --- options.c (revision 5794) +++ options.c (working copy) @@ -356,7 +356,7 @@ if (( dat->opd[i].flags & ODPF_SIMPLEONLY ) && IsDlgButtonChecked( hdlg, IDC_EXPERT )) continue; if (( dat->opd[i].flags & ODPF_EXPERTONLY ) && !IsDlgButtonChecked( hdlg, IDC_EXPERT )) continue; tvis.hParent = NULL; - if(dat->opd[i].pszGroup != NULL && FilterInst==NULL) { + if(dat->opd[i].pszGroup != NULL ) { //&& FilterInst==NULL) { tvis.hParent = FindNamedTreeItemAtRoot(GetDlgItem(hdlg,IDC_PAGETREE),dat->opd[i].pszGroup); if(tvis.hParent == NULL) { tvis.item.lParam = -1; @@ -917,8 +917,11 @@ return 0; } +typedef PLUGININFO * (__cdecl * Miranda_Plugin_Info) ( DWORD mirandaVersion ); +typedef PLUGININFOEX * (__cdecl * Miranda_Plugin_InfoEx) ( DWORD mirandaVersion ); static void FillFilterCombo(HWND hDlg, struct OptionsPageData * opd, int PageCount) { + DWORD mirandaVersion = (DWORD)CallService(MS_SYSTEM_GETVERSION, 0, 0); int i; int index; HINSTANCE * KnownInstances=alloca(sizeof(HINSTANCE)*PageCount); @@ -933,6 +936,8 @@ for (i=0; ishortName != NULL && *pi->shortName != 0 ) { + int len = strlen( pi->shortName )+1; + dllName = (TCHAR*)alloca( sizeof(TCHAR) * len ); + MultiByteToWideChar( CP_ACP, 0, pi->shortName, len, dllName, len ); + } else { + GetModuleFileName(inst, tszModuleName, MAX_PATH*sizeof(TCHAR)); + dllName=_tcsrchr(tszModuleName,_T('\\')); + if (!dllName) dllName=tszModuleName; + else dllName++; + } + index=SendDlgItemMessage(hDlg, IDC_MODULES,(UINT) CB_ADDSTRING,(WPARAM)0, (LPARAM)dllName); + SendDlgItemMessage(hDlg, IDC_MODULES,(UINT) CB_SETITEMDATA,(WPARAM)index, (LPARAM)inst); } SendDlgItemMessage(hDlg, IDC_MODULES,(UINT) CB_SETCURSEL,(WPARAM)0, (LPARAM)0); }