summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2009-04-22 11:08:26 +0000
committerBram Moolenaar <Bram@vim.org>2009-04-22 11:08:26 +0000
commit99133038dce89cde028683e2ec3d86cfcb10e82f (patch)
tree575401b02218aa3e0991af4c139f727dfda86039 /src
parent798b30bdfd71546ae975df583020dd118936511a (diff)
downloadvim-99133038dce89cde028683e2ec3d86cfcb10e82f.zip
updated for version 7.2-150
Diffstat (limited to 'src')
-rw-r--r--src/VisVim/Commands.cpp325
-rw-r--r--src/VisVim/Resource.h1
-rw-r--r--src/VisVim/VisVim.rc3
-rw-r--r--src/version.c2
4 files changed, 177 insertions, 154 deletions
diff --git a/src/VisVim/Commands.cpp b/src/VisVim/Commands.cpp
index 95d7c0ee6..a346dea70 100644
--- a/src/VisVim/Commands.cpp
+++ b/src/VisVim/Commands.cpp
@@ -20,20 +20,21 @@ static char THIS_FILE[] = __FILE__;
static BOOL g_bEnableVim = TRUE; // Vim enabled
static BOOL g_bDevStudioEditor = FALSE; // Open file in Dev Studio editor simultaneously
+static BOOL g_bNewTabs = FALSE;
static int g_ChangeDir = CD_NONE; // CD after file open?
-static void VimSetEnableState (BOOL bEnableState);
-static BOOL VimOpenFile (BSTR& FileName, long LineNr);
-static DISPID VimGetDispatchId (COleAutomationControl& VimOle, char* Method);
-static void VimErrDiag (COleAutomationControl& VimOle);
-static void VimChangeDir (COleAutomationControl& VimOle, DISPID DispatchId, BSTR& FileName);
-static void DebugMsg (char* Msg, char* Arg = NULL);
+static void VimSetEnableState(BOOL bEnableState);
+static BOOL VimOpenFile(BSTR& FileName, long LineNr);
+static DISPID VimGetDispatchId(COleAutomationControl& VimOle, char* Method);
+static void VimErrDiag(COleAutomationControl& VimOle);
+static void VimChangeDir(COleAutomationControl& VimOle, DISPID DispatchId, BSTR& FileName);
+static void DebugMsg(char* Msg, char* Arg = NULL);
/////////////////////////////////////////////////////////////////////////////
// CCommands
-CCommands::CCommands ()
+CCommands::CCommands()
{
// m_pApplication == NULL; M$ Code generation bug!!!
m_pApplication = NULL;
@@ -41,17 +42,17 @@ CCommands::CCommands ()
m_pDebuggerEventsObj = NULL;
}
-CCommands::~CCommands ()
+CCommands::~CCommands()
{
- ASSERT (m_pApplication != NULL);
+ ASSERT(m_pApplication != NULL);
if (m_pApplication)
{
- m_pApplication->Release ();
+ m_pApplication->Release();
m_pApplication = NULL;
}
}
-void CCommands::SetApplicationObject (IApplication * pApplication)
+void CCommands::SetApplicationObject(IApplication * pApplication)
{
// This function assumes pApplication has already been AddRef'd
// for us, which CDSAddIn did in it's QueryInterface call
@@ -61,55 +62,57 @@ void CCommands::SetApplicationObject (IApplication * pApplication)
return;
// Create Application event handlers
- XApplicationEventsObj::CreateInstance (&m_pApplicationEventsObj);
+ XApplicationEventsObj::CreateInstance(&m_pApplicationEventsObj);
if (! m_pApplicationEventsObj)
{
- ReportInternalError ("XApplicationEventsObj::CreateInstance");
+ ReportInternalError("XApplicationEventsObj::CreateInstance");
return;
}
- m_pApplicationEventsObj->AddRef ();
- m_pApplicationEventsObj->Connect (m_pApplication);
+ m_pApplicationEventsObj->AddRef();
+ m_pApplicationEventsObj->Connect(m_pApplication);
m_pApplicationEventsObj->m_pCommands = this;
#ifdef NEVER
// Create Debugger event handler
CComPtr < IDispatch > pDebugger;
- if (SUCCEEDED (m_pApplication->get_Debugger (&pDebugger))
+ if (SUCCEEDED(m_pApplication->get_Debugger(&pDebugger))
&& pDebugger != NULL)
{
- XDebuggerEventsObj::CreateInstance (&m_pDebuggerEventsObj);
- m_pDebuggerEventsObj->AddRef ();
- m_pDebuggerEventsObj->Connect (pDebugger);
+ XDebuggerEventsObj::CreateInstance(&m_pDebuggerEventsObj);
+ m_pDebuggerEventsObj->AddRef();
+ m_pDebuggerEventsObj->Connect(pDebugger);
m_pDebuggerEventsObj->m_pCommands = this;
}
#endif
// Get settings from registry HKEY_CURRENT_USER\Software\Vim\VisVim
- HKEY hAppKey = GetAppKey ("Vim");
+ HKEY hAppKey = GetAppKey("Vim");
if (hAppKey)
{
- HKEY hSectionKey = GetSectionKey (hAppKey, "VisVim");
+ HKEY hSectionKey = GetSectionKey(hAppKey, "VisVim");
if (hSectionKey)
{
- g_bEnableVim = GetRegistryInt (hSectionKey, "EnableVim",
+ g_bEnableVim = GetRegistryInt(hSectionKey, "EnableVim",
g_bEnableVim);
- g_bDevStudioEditor = GetRegistryInt(hSectionKey,"DevStudioEditor",
- g_bDevStudioEditor);
- g_ChangeDir = GetRegistryInt (hSectionKey, "ChangeDir",
+ g_bDevStudioEditor = GetRegistryInt(hSectionKey,
+ "DevStudioEditor", g_bDevStudioEditor);
+ g_bNewTabs = GetRegistryInt(hSectionKey, "NewTabs",
+ g_bNewTabs);
+ g_ChangeDir = GetRegistryInt(hSectionKey, "ChangeDir",
g_ChangeDir);
- RegCloseKey (hSectionKey);
+ RegCloseKey(hSectionKey);
}
- RegCloseKey (hAppKey);
+ RegCloseKey(hAppKey);
}
}
-void CCommands::UnadviseFromEvents ()
+void CCommands::UnadviseFromEvents()
{
- ASSERT (m_pApplicationEventsObj != NULL);
+ ASSERT(m_pApplicationEventsObj != NULL);
if (m_pApplicationEventsObj)
{
- m_pApplicationEventsObj->Disconnect (m_pApplication);
- m_pApplicationEventsObj->Release ();
+ m_pApplicationEventsObj->Disconnect(m_pApplication);
+ m_pApplicationEventsObj->Release();
m_pApplicationEventsObj = NULL;
}
@@ -121,10 +124,10 @@ void CCommands::UnadviseFromEvents ()
// unadvise from its events (thus the VERIFY_OK below--see
// stdafx.h).
CComPtr < IDispatch > pDebugger;
- VERIFY_OK (m_pApplication->get_Debugger (&pDebugger));
- ASSERT (pDebugger != NULL);
- m_pDebuggerEventsObj->Disconnect (pDebugger);
- m_pDebuggerEventsObj->Release ();
+ VERIFY_OK(m_pApplication->get_Debugger(&pDebugger));
+ ASSERT(pDebugger != NULL);
+ m_pDebuggerEventsObj->Disconnect(pDebugger);
+ m_pDebuggerEventsObj->Release();
m_pDebuggerEventsObj = NULL;
}
#endif
@@ -136,21 +139,21 @@ void CCommands::UnadviseFromEvents ()
// Application events
-HRESULT CCommands::XApplicationEvents::BeforeBuildStart ()
+HRESULT CCommands::XApplicationEvents::BeforeBuildStart()
{
- AFX_MANAGE_STATE (AfxGetStaticModuleState ());
+ AFX_MANAGE_STATE(AfxGetStaticModuleState());
return S_OK;
}
-HRESULT CCommands::XApplicationEvents::BuildFinish (long nNumErrors, long nNumWarnings)
+HRESULT CCommands::XApplicationEvents::BuildFinish(long nNumErrors, long nNumWarnings)
{
- AFX_MANAGE_STATE (AfxGetStaticModuleState ());
+ AFX_MANAGE_STATE(AfxGetStaticModuleState());
return S_OK;
}
-HRESULT CCommands::XApplicationEvents::BeforeApplicationShutDown ()
+HRESULT CCommands::XApplicationEvents::BeforeApplicationShutDown()
{
- AFX_MANAGE_STATE (AfxGetStaticModuleState ());
+ AFX_MANAGE_STATE(AfxGetStaticModuleState());
return S_OK;
}
@@ -158,9 +161,9 @@ HRESULT CCommands::XApplicationEvents::BeforeApplicationShutDown ()
// is done.
// Vim gets called from here.
//
-HRESULT CCommands::XApplicationEvents::DocumentOpen (IDispatch * theDocument)
+HRESULT CCommands::XApplicationEvents::DocumentOpen(IDispatch * theDocument)
{
- AFX_MANAGE_STATE (AfxGetStaticModuleState ());
+ AFX_MANAGE_STATE(AfxGetStaticModuleState());
if (! g_bEnableVim)
// Vim not enabled or empty command line entered
@@ -169,7 +172,7 @@ HRESULT CCommands::XApplicationEvents::DocumentOpen (IDispatch * theDocument)
// First get the current file name and line number
// Get the document object
- CComQIPtr < ITextDocument, &IID_ITextDocument > pDoc (theDocument);
+ CComQIPtr < ITextDocument, &IID_ITextDocument > pDoc(theDocument);
if (! pDoc)
return S_OK;
@@ -177,26 +180,26 @@ HRESULT CCommands::XApplicationEvents::DocumentOpen (IDispatch * theDocument)
long LineNr = -1;
// Get the document name
- if (FAILED (pDoc->get_FullName (&FileName)))
+ if (FAILED(pDoc->get_FullName(&FileName)))
return S_OK;
LPDISPATCH pDispSel;
// Get a selection object dispatch pointer
- if (SUCCEEDED (pDoc->get_Selection (&pDispSel)))
+ if (SUCCEEDED(pDoc->get_Selection(&pDispSel)))
{
// Get the selection object
- CComQIPtr < ITextSelection, &IID_ITextSelection > pSel (pDispSel);
+ CComQIPtr < ITextSelection, &IID_ITextSelection > pSel(pDispSel);
if (pSel)
// Get the selection line number
- pSel->get_CurrentLine (&LineNr);
+ pSel->get_CurrentLine(&LineNr);
- pDispSel->Release ();
+ pDispSel->Release();
}
// Open the file in Vim and position to the current line
- if (VimOpenFile (FileName, LineNr))
+ if (VimOpenFile(FileName, LineNr))
{
if (! g_bDevStudioEditor)
{
@@ -204,30 +207,30 @@ HRESULT CCommands::XApplicationEvents::DocumentOpen (IDispatch * theDocument)
CComVariant vSaveChanges = dsSaveChangesPrompt;
DsSaveStatus Saved;
- pDoc->Close (vSaveChanges, &Saved);
+ pDoc->Close(vSaveChanges, &Saved);
}
}
// We're done here
- SysFreeString (FileName);
+ SysFreeString(FileName);
return S_OK;
}
-HRESULT CCommands::XApplicationEvents::BeforeDocumentClose (IDispatch * theDocument)
+HRESULT CCommands::XApplicationEvents::BeforeDocumentClose(IDispatch * theDocument)
{
- AFX_MANAGE_STATE (AfxGetStaticModuleState ());
+ AFX_MANAGE_STATE(AfxGetStaticModuleState());
return S_OK;
}
-HRESULT CCommands::XApplicationEvents::DocumentSave (IDispatch * theDocument)
+HRESULT CCommands::XApplicationEvents::DocumentSave(IDispatch * theDocument)
{
- AFX_MANAGE_STATE (AfxGetStaticModuleState ());
+ AFX_MANAGE_STATE(AfxGetStaticModuleState());
return S_OK;
}
-HRESULT CCommands::XApplicationEvents::NewDocument (IDispatch * theDocument)
+HRESULT CCommands::XApplicationEvents::NewDocument(IDispatch * theDocument)
{
- AFX_MANAGE_STATE (AfxGetStaticModuleState ());
+ AFX_MANAGE_STATE(AfxGetStaticModuleState());
if (! g_bEnableVim)
// Vim not enabled or empty command line entered
@@ -235,19 +238,19 @@ HRESULT CCommands::XApplicationEvents::NewDocument (IDispatch * theDocument)
// First get the current file name and line number
- CComQIPtr < ITextDocument, &IID_ITextDocument > pDoc (theDocument);
+ CComQIPtr < ITextDocument, &IID_ITextDocument > pDoc(theDocument);
if (! pDoc)
return S_OK;
BSTR FileName;
HRESULT hr;
- hr = pDoc->get_FullName (&FileName);
- if (FAILED (hr))
+ hr = pDoc->get_FullName(&FileName);
+ if (FAILED(hr))
return S_OK;
// Open the file in Vim and position to the current line
- if (VimOpenFile (FileName, 0))
+ if (VimOpenFile(FileName, 0))
{
if (! g_bDevStudioEditor)
{
@@ -255,49 +258,49 @@ HRESULT CCommands::XApplicationEvents::NewDocument (IDispatch * theDocument)
CComVariant vSaveChanges = dsSaveChangesPrompt;
DsSaveStatus Saved;
- pDoc->Close (vSaveChanges, &Saved);
+ pDoc->Close(vSaveChanges, &Saved);
}
}
- SysFreeString (FileName);
+ SysFreeString(FileName);
return S_OK;
}
-HRESULT CCommands::XApplicationEvents::WindowActivate (IDispatch * theWindow)
+HRESULT CCommands::XApplicationEvents::WindowActivate(IDispatch * theWindow)
{
- AFX_MANAGE_STATE (AfxGetStaticModuleState ());
+ AFX_MANAGE_STATE(AfxGetStaticModuleState());
return S_OK;
}
-HRESULT CCommands::XApplicationEvents::WindowDeactivate (IDispatch * theWindow)
+HRESULT CCommands::XApplicationEvents::WindowDeactivate(IDispatch * theWindow)
{
- AFX_MANAGE_STATE (AfxGetStaticModuleState ());
+ AFX_MANAGE_STATE(AfxGetStaticModuleState());
return S_OK;
}
-HRESULT CCommands::XApplicationEvents::WorkspaceOpen ()
+HRESULT CCommands::XApplicationEvents::WorkspaceOpen()
{
- AFX_MANAGE_STATE (AfxGetStaticModuleState ());
+ AFX_MANAGE_STATE(AfxGetStaticModuleState());
return S_OK;
}
-HRESULT CCommands::XApplicationEvents::WorkspaceClose ()
+HRESULT CCommands::XApplicationEvents::WorkspaceClose()
{
- AFX_MANAGE_STATE (AfxGetStaticModuleState ());
+ AFX_MANAGE_STATE(AfxGetStaticModuleState());
return S_OK;
}
-HRESULT CCommands::XApplicationEvents::NewWorkspace ()
+HRESULT CCommands::XApplicationEvents::NewWorkspace()
{
- AFX_MANAGE_STATE (AfxGetStaticModuleState ());
+ AFX_MANAGE_STATE(AfxGetStaticModuleState());
return S_OK;
}
// Debugger event
-HRESULT CCommands::XDebuggerEvents::BreakpointHit (IDispatch * pBreakpoint)
+HRESULT CCommands::XDebuggerEvents::BreakpointHit(IDispatch * pBreakpoint)
{
- AFX_MANAGE_STATE (AfxGetStaticModuleState ());
+ AFX_MANAGE_STATE(AfxGetStaticModuleState());
return S_OK;
}
@@ -308,17 +311,18 @@ HRESULT CCommands::XDebuggerEvents::BreakpointHit (IDispatch * pBreakpoint)
class CMainDialog : public CDialog
{
public:
- CMainDialog (CWnd * pParent = NULL); // Standard constructor
+ CMainDialog(CWnd * pParent = NULL); // Standard constructor
//{{AFX_DATA(CMainDialog)
enum { IDD = IDD_ADDINMAIN };
int m_ChangeDir;
BOOL m_bDevStudioEditor;
+ BOOL m_bNewTabs;
//}}AFX_DATA
//{{AFX_VIRTUAL(CMainDialog)
protected:
- virtual void DoDataExchange (CDataExchange * pDX); // DDX/DDV support
+ virtual void DoDataExchange(CDataExchange * pDX); // DDX/DDV support
//}}AFX_VIRTUAL
protected:
@@ -326,100 +330,106 @@ class CMainDialog : public CDialog
afx_msg void OnEnable();
afx_msg void OnDisable();
//}}AFX_MSG
- DECLARE_MESSAGE_MAP ()
+ DECLARE_MESSAGE_MAP()
};
-CMainDialog::CMainDialog (CWnd * pParent /* =NULL */ )
- : CDialog (CMainDialog::IDD, pParent)
+CMainDialog::CMainDialog(CWnd * pParent /* =NULL */ )
+ : CDialog(CMainDialog::IDD, pParent)
{
//{{AFX_DATA_INIT(CMainDialog)
m_ChangeDir = -1;
m_bDevStudioEditor = FALSE;
+ m_bNewTabs = FALSE;
//}}AFX_DATA_INIT
}
-void CMainDialog::DoDataExchange (CDataExchange * pDX)
+void CMainDialog::DoDataExchange(CDataExchange * pDX)
{
- CDialog::DoDataExchange (pDX);
+ CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CMainDialog)
DDX_Radio(pDX, IDC_CD_SOURCE_PATH, m_ChangeDir);
- DDX_Check (pDX, IDC_DEVSTUDIO_EDITOR, m_bDevStudioEditor);
+ DDX_Check(pDX, IDC_DEVSTUDIO_EDITOR, m_bDevStudioEditor);
+ DDX_Check(pDX, IDC_NEW_TABS, m_bNewTabs);
//}}AFX_DATA_MAP
}
-BEGIN_MESSAGE_MAP (CMainDialog, CDialog)
+BEGIN_MESSAGE_MAP(CMainDialog, CDialog)
//{{AFX_MSG_MAP(CMainDialog)
//}}AFX_MSG_MAP
-END_MESSAGE_MAP ()
+END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CCommands methods
-STDMETHODIMP CCommands::VisVimDialog ()
+STDMETHODIMP CCommands::VisVimDialog()
{
- AFX_MANAGE_STATE (AfxGetStaticModuleState ());
+ AFX_MANAGE_STATE(AfxGetStaticModuleState());
// Use m_pApplication to access the Developer Studio Application
// object,
// and VERIFY_OK to see error strings in DEBUG builds of your add-in
// (see stdafx.h)
- VERIFY_OK (m_pApplication->EnableModeless (VARIANT_FALSE));
+ VERIFY_OK(m_pApplication->EnableModeless(VARIANT_FALSE));
CMainDialog Dlg;
Dlg.m_bDevStudioEditor = g_bDevStudioEditor;
+ Dlg.m_bNewTabs = g_bNewTabs;
Dlg.m_ChangeDir = g_ChangeDir;
- if (Dlg.DoModal () == IDOK)
+ if (Dlg.DoModal() == IDOK)
{
g_bDevStudioEditor = Dlg.m_bDevStudioEditor;
+ g_bNewTabs = Dlg.m_bNewTabs;
g_ChangeDir = Dlg.m_ChangeDir;
// Save settings to registry HKEY_CURRENT_USER\Software\Vim\VisVim
- HKEY hAppKey = GetAppKey ("Vim");
+ HKEY hAppKey = GetAppKey("Vim");
if (hAppKey)
{
- HKEY hSectionKey = GetSectionKey (hAppKey, "VisVim");
+ HKEY hSectionKey = GetSectionKey(hAppKey, "VisVim");
if (hSectionKey)
{
- WriteRegistryInt (hSectionKey, "DevStudioEditor",
+ WriteRegistryInt(hSectionKey, "DevStudioEditor",
g_bDevStudioEditor);
- WriteRegistryInt (hSectionKey, "ChangeDir", g_ChangeDir);
- RegCloseKey (hSectionKey);
+ WriteRegistryInt(hSectionKey, "NewTabs",
+ g_bNewTabs);
+ WriteRegistryInt(hSectionKey, "ChangeDir", g_ChangeDir);
+ RegCloseKey(hSectionKey);
}
- RegCloseKey (hAppKey);
+ RegCloseKey(hAppKey);
}
}
- VERIFY_OK (m_pApplication->EnableModeless (VARIANT_TRUE));
+ VERIFY_OK(m_pApplication->EnableModeless(VARIANT_TRUE));
return S_OK;
}
-STDMETHODIMP CCommands::VisVimEnable ()
+STDMETHODIMP CCommands::VisVimEnable()
{
- AFX_MANAGE_STATE (AfxGetStaticModuleState ());
- VimSetEnableState (true);
+ AFX_MANAGE_STATE(AfxGetStaticModuleState());
+ VimSetEnableState(true);
return S_OK;
}
-STDMETHODIMP CCommands::VisVimDisable ()
+STDMETHODIMP CCommands::VisVimDisable()
{
- AFX_MANAGE_STATE (AfxGetStaticModuleState ());
- VimSetEnableState (false);
+ AFX_MANAGE_STATE(AfxGetStaticModuleState());
+ VimSetEnableState(false);
return S_OK;
}
-STDMETHODIMP CCommands::VisVimToggle ()
+STDMETHODIMP CCommands::VisVimToggle()
{
- AFX_MANAGE_STATE (AfxGetStaticModuleState ());
- VimSetEnableState (! g_bEnableVim);
+ AFX_MANAGE_STATE(AfxGetStaticModuleState());
+ VimSetEnableState(! g_bEnableVim);
return S_OK;
}
-STDMETHODIMP CCommands::VisVimLoad ()
+STDMETHODIMP CCommands::VisVimLoad()
{
- AFX_MANAGE_STATE (AfxGetStaticModuleState ());
+ AFX_MANAGE_STATE(AfxGetStaticModuleState());
// Use m_pApplication to access the Developer Studio Application object,
// and VERIFY_OK to see error strings in DEBUG builds of your add-in
@@ -430,7 +440,7 @@ STDMETHODIMP CCommands::VisVimLoad ()
CComPtr < IDispatch > pDispDoc, pDispSel;
// Get a document object dispatch pointer
- VERIFY_OK (m_pApplication->get_ActiveDocument (&pDispDoc));
+ VERIFY_OK(m_pApplication->get_ActiveDocument(&pDispDoc));
if (! pDispDoc)
return S_OK;
@@ -438,30 +448,30 @@ STDMETHODIMP CCommands::VisVimLoad ()
long LineNr = -1;
// Get the document object
- CComQIPtr < ITextDocument, &IID_ITextDocument > pDoc (pDispDoc);
+ CComQIPtr < ITextDocument, &IID_ITextDocument > pDoc(pDispDoc);
if (! pDoc)
return S_OK;
// Get the document name
- if (FAILED (pDoc->get_FullName (&FileName)))
+ if (FAILED(pDoc->get_FullName(&FileName)))
return S_OK;
// Get a selection object dispatch pointer
- if (SUCCEEDED (pDoc->get_Selection (&pDispSel)))
+ if (SUCCEEDED(pDoc->get_Selection(&pDispSel)))
{
// Get the selection object
- CComQIPtr < ITextSelection, &IID_ITextSelection > pSel (pDispSel);
+ CComQIPtr < ITextSelection, &IID_ITextSelection > pSel(pDispSel);
if (pSel)
// Get the selection line number
- pSel->get_CurrentLine (&LineNr);
+ pSel->get_CurrentLine(&LineNr);
}
// Open the file in Vim
- VimOpenFile (FileName, LineNr);
+ VimOpenFile(FileName, LineNr);
- SysFreeString (FileName);
+ SysFreeString(FileName);
return S_OK;
}
@@ -472,16 +482,16 @@ STDMETHODIMP CCommands::VisVimLoad ()
// Set the enable state and save to registry
//
-static void VimSetEnableState (BOOL bEnableState)
+static void VimSetEnableState(BOOL bEnableState)
{
g_bEnableVim = bEnableState;
- HKEY hAppKey = GetAppKey ("Vim");
+ HKEY hAppKey = GetAppKey("Vim");
if (hAppKey)
{
- HKEY hSectionKey = GetSectionKey (hAppKey, "VisVim");
+ HKEY hSectionKey = GetSectionKey(hAppKey, "VisVim");
if (hSectionKey)
- WriteRegistryInt (hSectionKey, "EnableVim", g_bEnableVim);
- RegCloseKey (hAppKey);
+ WriteRegistryInt(hSectionKey, "EnableVim", g_bEnableVim);
+ RegCloseKey(hAppKey);
}
}
@@ -490,7 +500,7 @@ static void VimSetEnableState (BOOL bEnableState)
// letter.
// 'LineNr' must contain a valid line number or 0, e. g. for a new file
//
-static BOOL VimOpenFile (BSTR& FileName, long LineNr)
+static BOOL VimOpenFile(BSTR& FileName, long LineNr)
{
// OLE automation object for com. with Vim
@@ -507,7 +517,7 @@ static BOOL VimOpenFile (BSTR& FileName, long LineNr)
// Get a dispatch id for the SendKeys method of Vim;
// enables connection to Vim if necessary
DISPID DispatchId;
- DispatchId = VimGetDispatchId (VimOle, "SendKeys");
+ DispatchId = VimGetDispatchId(VimOle, "SendKeys");
if (! DispatchId)
// OLE error, can't obtain dispatch id
goto OleError;
@@ -525,20 +535,28 @@ static BOOL VimOpenFile (BSTR& FileName, long LineNr)
#ifdef SINGLE_WINDOW
// Update the current file in Vim if it has been modified.
// Disabled, because it could write the file when you don't want to.
- sprintf (VimCmd + 2, ":up\n");
+ sprintf(VimCmd + 2, ":up\n");
#endif
- if (! VimOle.Method (DispatchId, "s", TO_OLE_STR_BUF (VimCmd, Buf)))
+ if (! VimOle.Method(DispatchId, "s", TO_OLE_STR_BUF(VimCmd, Buf)))
goto OleError;
// Change Vim working directory to where the file is if desired
if (g_ChangeDir != CD_NONE)
- VimChangeDir (VimOle, DispatchId, FileName);
+ VimChangeDir(VimOle, DispatchId, FileName);
// Make Vim open the file.
// In the filename convert all \ to /, put a \ before a space.
- sprintf(VimCmd, ":drop ");
+ if (g_bNewTabs)
+ {
+ sprintf(VimCmd, ":tab drop ");
+ s = VimCmd + 11;
+ }
+ else
+ {
+ sprintf(VimCmd, ":drop ");
+ s = VimCmd + 6;
+ }
sprintf(FileNameTmp, "%S", (char *)FileName);
- s = VimCmd + 6;
for (p = FileNameTmp; *p != '\0' && s < FileNameTmp + MAX_OLE_STR - 4;
++p)
if (*p == '\\')
@@ -552,20 +570,20 @@ static BOOL VimOpenFile (BSTR& FileName, long LineNr)
*s++ = '\n';
*s = '\0';
- if (! VimOle.Method (DispatchId, "s", TO_OLE_STR_BUF (VimCmd, Buf)))
+ if (! VimOle.Method(DispatchId, "s", TO_OLE_STR_BUF(VimCmd, Buf)))
goto OleError;
if (LineNr > 0)
{
// Goto line
- sprintf (VimCmd, ":%d\n", LineNr);
- if (! VimOle.Method (DispatchId, "s", TO_OLE_STR_BUF (VimCmd, Buf)))
+ sprintf(VimCmd, ":%d\n", LineNr);
+ if (! VimOle.Method(DispatchId, "s", TO_OLE_STR_BUF(VimCmd, Buf)))
goto OleError;
}
// Make Vim come to the foreground
- if (! VimOle.Method ("SetForeground"))
- VimOle.ErrDiag ();
+ if (! VimOle.Method("SetForeground"))
+ VimOle.ErrDiag();
// We're done
return true;
@@ -573,7 +591,7 @@ static BOOL VimOpenFile (BSTR& FileName, long LineNr)
OleError:
// There was an OLE error
// Check if it's the "unknown class string" error
- VimErrDiag (VimOle);
+ VimErrDiag(VimOle);
return false;
}
@@ -581,18 +599,18 @@ static BOOL VimOpenFile (BSTR& FileName, long LineNr)
// Create the Vim OLE object if necessary
// Returns a valid dispatch id or null on error
//
-static DISPID VimGetDispatchId (COleAutomationControl& VimOle, char* Method)
+static DISPID VimGetDispatchId(COleAutomationControl& VimOle, char* Method)
{
// Initialize Vim OLE connection if not already done
- if (! VimOle.IsCreated ())
+ if (! VimOle.IsCreated())
{
- if (! VimOle.CreateObject ("Vim.Application"))
+ if (! VimOle.CreateObject("Vim.Application"))
return NULL;
}
// Get the dispatch id for the SendKeys method.
// By doing this, we are checking if Vim is still there...
- DISPID DispatchId = VimOle.GetDispatchId ("SendKeys");
+ DISPID DispatchId = VimOle.GetDispatchId("SendKeys");
if (! DispatchId)
{
// We can't get a dispatch id.
@@ -604,12 +622,12 @@ static DISPID VimGetDispatchId (COleAutomationControl& VimOle, char* Method)
// should not be kept long enough to allow the user to terminate Vim
// to avoid memory corruption (why the heck is there no system garbage
// collection for those damned OLE memory chunks???).
- VimOle.DeleteObject ();
- if (! VimOle.CreateObject ("Vim.Application"))
+ VimOle.DeleteObject();
+ if (! VimOle.CreateObject("Vim.Application"))
// If this create fails, it's time for an error msg
return NULL;
- if (! (DispatchId = VimOle.GetDispatchId ("SendKeys")))
+ if (! (DispatchId = VimOle.GetDispatchId("SendKeys")))
// There is something wrong...
return NULL;
}
@@ -620,20 +638,20 @@ static DISPID VimGetDispatchId (COleAutomationControl& VimOle, char* Method)
// Output an error message for an OLE error
// Check on the classstring error, which probably means Vim wasn't registered.
//
-static void VimErrDiag (COleAutomationControl& VimOle)
+static void VimErrDiag(COleAutomationControl& VimOle)
{
- SCODE sc = GetScode (VimOle.GetResult ());
+ SCODE sc = GetScode(VimOle.GetResult());
if (sc == CO_E_CLASSSTRING)
{
char Buf[256];
- sprintf (Buf, "There is no registered OLE automation server named "
+ sprintf(Buf, "There is no registered OLE automation server named "
"\"Vim.Application\".\n"
"Use the OLE-enabled version of Vim with VisVim and "
"make sure to register Vim by running \"vim -register\".");
- MessageBox (NULL, Buf, "OLE Error", MB_OK);
+ MessageBox(NULL, Buf, "OLE Error", MB_OK);
}
else
- VimOle.ErrDiag ();
+ VimOle.ErrDiag();
}
// Change directory to the directory the file 'FileName' is in or it's parent
@@ -644,7 +662,7 @@ static void VimErrDiag (COleAutomationControl& VimOle)
// CD_SOURCE_PATH
// CD_SOURCE_PARENT
//
-static void VimChangeDir (COleAutomationControl& VimOle, DISPID DispatchId, BSTR& FileName)
+static void VimChangeDir(COleAutomationControl& VimOle, DISPID DispatchId, BSTR& FileName)
{
// Do a :cd first
@@ -655,7 +673,7 @@ static void VimChangeDir (COleAutomationControl& VimOle, DISPID DispatchId, BSTR
char DirUnix[_MAX_DIR * 2];
char *s, *t;
- _splitpath (StrFileName, Drive, Dir, NULL, NULL);
+ _splitpath(StrFileName, Drive, Dir, NULL, NULL);
// Convert to Unix path name format, escape spaces.
t = DirUnix;
@@ -676,19 +694,18 @@ static void VimChangeDir (COleAutomationControl& VimOle, DISPID DispatchId, BSTR
OLECHAR Buf[MAX_OLE_STR];
char VimCmd[MAX_OLE_STR];
- sprintf (VimCmd, ":cd %s%s%s\n", Drive, DirUnix,
+ sprintf(VimCmd, ":cd %s%s%s\n", Drive, DirUnix,
g_ChangeDir == CD_SOURCE_PARENT && DirUnix[1] ? ".." : "");
- VimOle.Method (DispatchId, "s", TO_OLE_STR_BUF (VimCmd, Buf));
+ VimOle.Method(DispatchId, "s", TO_OLE_STR_BUF(VimCmd, Buf));
}
#ifdef _DEBUG
// Print out a debug message
//
-static void DebugMsg (char* Msg, char* Arg)
+static void DebugMsg(char* Msg, char* Arg)
{
char Buf[400];
- sprintf (Buf, Msg, Arg);
- AfxMessageBox (Buf);
+ sprintf(Buf, Msg, Arg);
+ AfxMessageBox(Buf);
}
#endif
-
diff --git a/src/VisVim/Resource.h b/src/VisVim/Resource.h
index e098b386a..1070091be 100644
--- a/src/VisVim/Resource.h
+++ b/src/VisVim/Resource.h
@@ -16,6 +16,7 @@
#define IDC_CD_SOURCE_PATH 1001
#define IDC_CD_SOURCE_PARENT 1002
#define IDC_CD_NONE 1003
+#define IDC_NEW_TABS 1004
// Next default values for new objects
//
diff --git a/src/VisVim/VisVim.rc b/src/VisVim/VisVim.rc
index f227e53cb..cf74b291b 100644
--- a/src/VisVim/VisVim.rc
+++ b/src/VisVim/VisVim.rc
@@ -122,6 +122,9 @@ BEGIN
CONTROL "&Open file in DevStudio editor simultaneously",
IDC_DEVSTUDIO_EDITOR,"Button",BS_AUTOCHECKBOX | WS_GROUP |
WS_TABSTOP,7,7,153,10
+ CONTROL "Open files in new tabs",
+ IDC_NEW_TABS,"Button",BS_AUTOCHECKBOX | WS_GROUP |
+ WS_TABSTOP,7,21,153,10
GROUPBOX "Current directory",IDC_STATIC,7,35,164,58,WS_GROUP
CONTROL "Set to &source file path",IDC_CD_SOURCE_PATH,"Button",
BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,17,49,85,10
diff --git a/src/version.c b/src/version.c
index 5dfbacf38..e2963645c 100644
--- a/src/version.c
+++ b/src/version.c
@@ -677,6 +677,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 150,
+/**/
149,
/**/
148,