| 262 | } |
| 263 | |
| 264 | STDMETHODIMP |
| 265 | DIFF_EXT::InvokeCommand(LPCMINVOKECOMMANDINFO ici) |
| 266 | { |
| 267 | HRESULT ret = NOERROR; |
| 268 | |
| 269 | _hwnd = ici->hwnd; |
| 270 | |
| 271 | if(HIWORD(ici->lpVerb) == 0) |
| 272 | { |
| 273 | UINT id = m_id_FirstCmd + LOWORD(ici->lpVerb); |
| 274 | if(id == m_id_Diff) |
| 275 | { |
| 276 | LOG(); |
| 277 | diff(TEXT("\"") + _file_name1 + TEXT("\" \"") + _file_name2 + TEXT("\"")); |
| 278 | } |
| 279 | else if(id == m_id_Diff3) |
| 280 | { |
| 281 | LOG(); |
| 282 | diff(TEXT("\"") + _file_name1 + TEXT("\" \"") + _file_name2 + TEXT("\" \"") + _file_name3 + TEXT("\"")); |
| 283 | } |
| 284 | else if(id == m_id_Merge3) |
| 285 | { |
| 286 | LOG(); |
| 287 | std::list<tstring>::iterator iFrom = m_recentFiles.begin(); |
| 288 | std::list<tstring>::iterator iBase = iFrom; |
| 289 | ++iBase; |
| 290 | diff(TEXT("-m \"") + *iBase + TEXT("\" \"") + *iFrom + TEXT("\" \"") + _file_name1 + TEXT("\"")); |
| 291 | } |
| 292 | else if(id == m_id_DiffWith) |
| 293 | { |
| 294 | LOG(); |
| 295 | diff_with(0, false); |
| 296 | } |
| 297 | else if(id == m_id_MergeWith) |
| 298 | { |
| 299 | LOG(); |
| 300 | diff_with(0, true); |
| 301 | } |
| 302 | else if(id == m_id_ClearList) |
| 303 | { |
| 304 | LOG(); |
| 305 | m_recentFiles.clear(); |
| 306 | SERVER::instance()->save_history(); |
| 307 | } |
| 308 | else if(id == m_id_DiffLater) |
| 309 | { |
| 310 | MESSAGELOG(TEXT("Diff Later: ") + _file_name1); |
| 311 | m_recentFiles.remove(_file_name1); |
| 312 | m_recentFiles.push_front(_file_name1); |
| 313 | SERVER::instance()->save_history(); |
| 314 | } |
| 315 | else if(id >= m_id_DiffWith_Base && id < m_id_DiffWith_Base + m_recentFiles.size()) |
| 316 | { |
| 317 | LOG(); |
| 318 | diff_with(id - m_id_DiffWith_Base, false); |
| 319 | } |
| 320 | else if(id == m_id_About) |
| 321 | { |
nothing calls this directly
no test coverage detected