]> granicus.if.org Git - vim/commitdiff
updated for version 7.2-150 v7.2.150
authorBram Moolenaar <Bram@vim.org>
Wed, 22 Apr 2009 11:08:26 +0000 (11:08 +0000)
committerBram Moolenaar <Bram@vim.org>
Wed, 22 Apr 2009 11:08:26 +0000 (11:08 +0000)
src/VisVim/Commands.cpp
src/VisVim/Resource.h
src/VisVim/VisVim.rc
src/version.c

index 95d7c0ee620b716a8598bbf134d8f79bc022bdea..a346dea702954c1e6212aa82e9730dd1df8b937d 100644 (file)
@@ -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
-
index e098b386a4196a92129c33208cb0f12c6ccb8ee5..1070091be44c0f755f370129844f99d40acbdaff 100644 (file)
@@ -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
 //
index f227e53cb9a0db8fab0779843434b4a4a33b4d2a..cf74b291b21a424d57277f12ec99d98194217c69 100644 (file)
@@ -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
index 5dfbacf38e305d3a983770774599cf929437d6c7..e2963645cd90394310aaf20560cc8227bf9d4fe8 100644 (file)
@@ -676,6 +676,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    150,
 /**/
     149,
 /**/