[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [kdiff3] /: Remove remnents clearCase support
From:       Michael Reeves <null () kde ! org>
Date:       2018-07-31 23:21:11
Message-ID: E1fkdx1-0000Hc-F2 () code ! kde ! org
[Download RAW message or body]

Git commit 3ae019350568bba35fa6a466bf5d93b459555e63 by Michael Reeves.
Committed on 31/07/2018 at 23:20.
Pushed by mreeves into branch 'master'.

Remove remnents clearCase support

M  +1    -0    ChangeLog
D  +0    -326  src/ccInstHelper.cpp
M  +0    -26   src/fileaccess.cpp
M  +0    -46   src/optiondialog.cpp
M  +0    -2    src/optiondialog.h
M  +0    -9    windows_installer/README_WIN.txt
D  +0    -29   windows_installer/ccinstallhelper/README.txt
D  +0    -327  windows_installer/ccinstallhelper/ccInstHelper.cpp
D  +0    -4    windows_installer/ccinstallhelper/ccinstallhelper.def
M  +0    -15   windows_installer/kdiff3.nsi

https://commits.kde.org/kdiff3/3ae019350568bba35fa6a466bf5d93b459555e63

diff --git a/ChangeLog b/ChangeLog
index 083bf1a..d67e688 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -10,6 +10,7 @@ Version 1.7.0 - 2017-01-23
 -Don't sort twice when sorting in reverse order.
 -fix memmory leak introduced in 0.9.91.
 -change version numbering.
+-scrap ClearCase support
 
 Version 0.9.98 - 2014-07-04
 ===========================
diff --git a/src/ccInstHelper.cpp b/src/ccInstHelper.cpp
deleted file mode 100644
index bab0458..0000000
--- a/src/ccInstHelper.cpp
+++ /dev/null
@@ -1,326 +0,0 @@
-// uninstallHelper.cpp : Defines the entry point for the console application.
-//
-#include <io.h>
-#include <list>
-#include <string.h>
-#include <string>
-#include <vector>
-#include <windows.h>
-
-//#define __stdcall
-
-// For compilation download the NSIS source package and modify the following
-// line to point to the exdll.h-file
-#include "C:/Programme/NSIS/Contrib/ExDll/exdll.h"
-
-struct ReplacementItem {
-    const char* fileType;
-    const char* operationType;
-};
-
-ReplacementItem g_replacementTable[] = {
-    {"text_file_delta", "xcompare"},
-    {"text_file_delta", "xmerge"},
-    {"whole_copy", "xcompare"},
-    {"whole_copy", "xmerge"},
-    {"z_text_file_delta", "xcompare"},
-    {"z_text_file_delta", "xmerge"},
-    {"z_whole_copy", "xcompare"},
-    {"z_whole_copy", "xmerge"},
-    {"_xml", "xcompare"},
-    {"_xml", "xmerge"},
-    {"_xml2", "xcompare"},
-    {"_xml2", "xmerge"},
-    {"_rftdef", "xcompare"},
-    {"_rftmap", "xcompare"},
-    {"_rftvp", "xcompare"},
-    {"_xtools", "xcompare"},
-    {0, 0}};
-
-struct LineItem {
-    std::string fileType;
-    std::string opType;
-    std::string command;
-    std::string fileOpPart;
-};
-
-// Return true if successful, else false
-bool readAndParseMapFile(const std::string& filename, std::list<LineItem>& \
                lineItemList)
-{
-    // Read file
-    FILE* pFile = fopen(filename.c_str(), "r");
-    if(pFile)
-    {
-        fseek(pFile, 0, SEEK_END);
-        int size = ftell(pFile);
-        fseek(pFile, 0, SEEK_SET);
-        std::vector<char> buf(size);
-        fread(&buf[0], 1, size, pFile);
-        fclose(pFile);
-
-        // Replace strings
-        int lineStartPos = 0;
-        int wordInLine = 0;
-        LineItem lineItem;
-        for(int i = 0; i < size;)
-        {
-            if(buf[i] == '\n' || buf[i] == '\r')
-            {
-                ++i;
-                wordInLine = 0;
-                lineStartPos = i;
-                continue;
-            }
-            if(buf[i] == ' ' || buf[i] == '\t')
-            {
-                ++i;
-                continue;
-            }
-            else
-            {
-                int wordStartPos = i;
-                if(wordInLine < 2)
-                {
-                    while(i < size && !(buf[i] == ' ' || buf[i] == '\t'))
-                        ++i;
-
-                    std::string word(&buf[wordStartPos], i - wordStartPos);
-                    if(wordInLine == 0)
-                        lineItem.fileType = word;
-                    else
-                        lineItem.opType = word;
-                    ++wordInLine;
-                }
-                else
-                {
-                    lineItem.fileOpPart = std::string(&buf[lineStartPos], i - \
                lineStartPos);
-                    while(i < size && !(buf[i] == '\n' || buf[i] == '\r'))
-                        ++i;
-
-                    std::string word(&buf[wordStartPos], i - wordStartPos);
-                    lineItem.command = word;
-                    lineItemList.push_back(lineItem);
-                }
-            }
-        }
-    }
-    else
-    {
-        return false;
-    }
-    return true;
-}
-
-bool writeMapFile(const std::string& filename, const std::list<LineItem>& \
                lineItemList)
-{
-    FILE* pFile = fopen(filename.c_str(), "w");
-    if(pFile)
-    {
-        std::list<LineItem>::const_iterator i = lineItemList.begin();
-        for(; i != lineItemList.end(); ++i)
-        {
-            const LineItem& li = *i;
-            fprintf(pFile, "%s%s\n", li.fileOpPart.c_str(), li.command.c_str());
-        }
-        fclose(pFile);
-    }
-    else
-    {
-        return false;
-    }
-    return true;
-}
-
-std::string toUpper(const std::string& s)
-{
-    std::string s2 = s;
-
-    for(unsigned int i = 0; i < s.length(); ++i)
-    {
-        s2[i] = toupper(s2[i]);
-    }
-    return s2;
-}
-
-int integrateWithClearCase(const char* subCommand, const char* kdiff3CommandPath)
-{
-    std::string installCommand = subCommand; // "install" or "uninstall" or \
                "existsClearCase"
-    std::string kdiff3Command = kdiff3CommandPath;
-
-    /*
-   std::wstring installCommand = subCommand; // "install" or "uninstall"
-   std::wstring wKDiff3Command  = kdiff3CommandPath;
-   std::string kdiff3Command;
-   kdiff3Command.reserve( wKDiff3Command.length()+1 );
-   kdiff3Command.resize( wKDiff3Command.length() );
-   BOOL bUsedDefaultChar = FALSE;
-   int successLen = WideCharToMultiByte(  CP_ACP, 0, 
-      wKDiff3Command.c_str(), int(wKDiff3Command.length()),
-      &kdiff3Command[0], int(kdiff3Command.length()), 0, &bUsedDefaultChar );
-
-   if ( successLen != kdiff3Command.length() || bUsedDefaultChar )
-   {
-      std::cerr << "KDiff3 command contains characters that don't map to ansi code \
                page.\n"
-          "Aborting clearcase installation.\n"
-          "Try to install KDiff3 in another path that doesn't require special \
                characters.\n";
-      return -1;
-   }
-   */
-
-    // Try to locate cleartool, the clearcase tool in the path
-    char buffer[1000];
-    char* pLastPart = 0;
-    int len = SearchPathA(0, "cleartool.exe", 0, sizeof(buffer) / sizeof(buffer[0]),
-                          buffer, &pLastPart);
-    if(len > 0 && len + 1 < int(sizeof(buffer) / sizeof(buffer[0])) && pLastPart)
-    {
-        pLastPart[-1] = 0;
-        pLastPart = strrchr(buffer, '\\'); // cd up (because cleartool.exe is in bin \
                subdir)
-        if(pLastPart)
-            pLastPart[1] = 0;
-
-        std::string path(buffer);
-        path += "lib\\mgrs\\map";
-        std::string bakName = path + ".preKDiff3Install";
-
-        if(installCommand == "existsClearCase")
-        {
-            return 1;
-        }
-        else if(installCommand == "install")
-        {
-            std::list<LineItem> lineItemList;
-            bool bSuccess = readAndParseMapFile(path, lineItemList);
-            if(!bSuccess)
-            {
-                fprintf(stderr, "Error reading original map file.\n");
-                return -1;
-            }
-
-            // Create backup
-            if(access(bakName.c_str(), 0) != 0) // Create backup only if not exists \
                yet
-            {
-                if(rename(path.c_str(), bakName.c_str()))
-                {
-                    fprintf(stderr, "Error renaming original map file.\n");
-                    return -1;
-                }
-            }
-
-            std::list<LineItem>::iterator i = lineItemList.begin();
-            for(; i != lineItemList.end(); ++i)
-            {
-                LineItem& li = *i;
-                for(int j = 0;; ++j)
-                {
-                    ReplacementItem& ri = g_replacementTable[j];
-                    if(ri.fileType == 0 || ri.operationType == 0)
-                        break;
-                    if(li.fileType == ri.fileType && li.opType == ri.operationType)
-                    {
-                        li.command = kdiff3Command.c_str();
-                        break;
-                    }
-                }
-            }
-
-            bSuccess = writeMapFile(path, lineItemList);
-            if(!bSuccess)
-            {
-                if(rename(bakName.c_str(), path.c_str()))
-                    fprintf(stderr, "Error writing new map file, restoring old file \
                also failed.\n");
-                else
-                    fprintf(stderr, "Error writing new map file, old file \
                restored.\n");
-
-                return -1;
-            }
-        }
-        else if(installCommand == "uninstall")
-        {
-            std::list<LineItem> lineItemList;
-            bool bSuccess = readAndParseMapFile(path, lineItemList);
-            if(!bSuccess)
-            {
-                fprintf(stderr, "Error reading original map file\n.");
-                return -1;
-            }
-
-            std::list<LineItem> lineItemListBak;
-            bSuccess = readAndParseMapFile(bakName, lineItemListBak);
-            if(!bSuccess)
-            {
-                fprintf(stderr, "Error reading backup map file.\n");
-                return -1;
-            }
-
-            std::list<LineItem>::iterator i = lineItemList.begin();
-            for(; i != lineItemList.end(); ++i)
-            {
-                LineItem& li = *i;
-                if((int)toUpper(li.command).find("KDIFF3") >= 0)
-                {
-                    std::list<LineItem>::const_iterator j = lineItemListBak.begin();
-                    for(; j != lineItemListBak.end(); ++j)
-                    {
-                        const LineItem& bi = *j; // backup iterator
-                        if(li.fileType == bi.fileType && li.opType == bi.opType)
-                        {
-                            li.command = bi.command;
-                            break;
-                        }
-                    }
-                }
-            }
-
-            bSuccess = writeMapFile(path, lineItemList);
-            if(!bSuccess)
-            {
-                fprintf(stderr, "Error writing map file.");
-                return -1;
-            }
-        }
-    }
-    return 0;
-}
-
-extern "C" void __declspec(dllexport) nsisPlugin(HWND hwndParent, int string_size,
-                                                 char* variables, stack_t** \
                stacktop,
-                                                 extra_parameters* extra)
-{
-    //g_hwndParent=hwndParent;
-
-    EXDLL_INIT();
-    {
-        std::string param1(g_stringsize, ' ');
-        int retVal = popstring(&param1[0]);
-        if(retVal == 0)
-        {
-            std::string param2(g_stringsize, ' ');
-            retVal = popstring(&param2[0]);
-            if(retVal == 0)
-                install(param1.c_str(), param2.c_str());
-            return;
-        }
-        fprintf(stderr, "Not enough parameters.\n");
-    }
-}
-
-/*
-int _tmain(int argc, _TCHAR* argv[])
-{
-   if ( argc<3 ) 
-   {
-      std::cout << "This program is needed to install/uninstall KDiff3 for \
                clearcase.\n"
-                   "It tries to patch the map file \
                (clearcase-subdir\\lib\\mgrs\\map)\n"
-                   "Usage 1: ccInstHelper install pathToKdiff3.exe\n"
-                   "Usage 2: ccInstHelper uninstall pathToKdiff3.exe\n"
-                   "Backups of the original map files are created in the dir of the \
                map file.\n";
-   }
-   else
-   {
-      return install( argv[1], argv[2] );
-   }
-   
-   return 0;
-}
-*/
diff --git a/src/fileaccess.cpp b/src/fileaccess.cpp
index 8df4a39..55dd661 100644
--- a/src/fileaccess.cpp
+++ b/src/fileaccess.cpp
@@ -246,32 +246,6 @@ void FileAccess::setFile(const QFileInfo& fi, FileAccess* \
pParent)  {
             d()->m_url.setPath(absoluteFilePath());
         }
-
-        if(!m_bExists && absoluteFilePath().contains("@@"))
-        {
-            // Try reading a clearcase file
-            d()->m_localCopy = FileAccess::tempFileName();
-            QString cmd = "cleartool get -to \"" + d()->m_localCopy + "\"  \"" + \
                absoluteFilePath() + "\"";
-            QProcess process;
-            process.start(cmd);
-            process.waitForFinished(-1);
-            //::system( cmd.local8Bit() );
-            QFile::setPermissions(d()->m_localCopy, QFile::ReadUser | \
                QFile::WriteUser); // Clearcase creates a write protected file, allow \
                delete.
-
-            QFileInfo fi(d()->m_localCopy);
-#if defined(Q_OS_WIN)
-            d()->m_bReadable = true;    //fi.isReadable();
-            m_bWritable = true;         //fi.isWritable();
-            d()->m_bExecutable = false; //fi.isExecutable();
-#else
-            d()->m_bReadable = fi.isReadable();
-            d()->m_bExecutable = fi.isExecutable();
-#endif
-            //d()->m_creationTime = fi.created();
-            //d()->m_accessTime = fi.lastRead();
-            m_bExists = fi.exists();
-            m_size = fi.size();
-        }
     }
 }
 
diff --git a/src/optiondialog.cpp b/src/optiondialog.cpp
index c57422b..fcc9d80 100644
--- a/src/optiondialog.cpp
+++ b/src/optiondialog.cpp
@@ -1538,15 +1538,6 @@ void OptionDialog::setupRegionalPage(void)
     topLayout->addStretch(10);
 }
 
-// TODO: Integrate this properly in the build system.
-// Currently breaks compilation on Windows b/c of:
-//   src\ccInstHelper.cpp(15): fatal error C1083: Cannot open include file: \
                'C:/Program Files/NSIS/Contrib/ExDll/exdll.h': No such file or \
                directory
-#define ENABLE_CC_INTEGRATION 0
-
-#if ENABLE_CC_INTEGRATION
-#include "ccInstHelper.cpp"
-#endif
-
 void OptionDialog::setupIntegrationPage(void)
 {
     QFrame* page = new QFrame();
@@ -1581,46 +1572,9 @@ void OptionDialog::setupIntegrationPage(void)
         "For those who are used to using the Escape key."));
     ++line;
 
-#if ENABLE_CC_INTEGRATION
-    QPushButton* pIntegrateWithClearCase = new QPushButton(i18n("Integrate with \
                ClearCase"), page);
-    gbox->addWidget(pIntegrateWithClearCase, line, 0);
-    pIntegrateWithClearCase->setToolTip(i18n(
-        "Integrate with Rational ClearCase from IBM.\n"
-        "Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n"
-        "(Only enabled when ClearCase \"bin\" directory is in the path.)"));
-    connect(pIntegrateWithClearCase, &QPushButton::clicked, this, \
                &OptionDialog::slotIntegrateWithClearCase);
-    pIntegrateWithClearCase->setEnabled(integrateWithClearCase("existsClearCase", \
                "") != 0);
-
-    QPushButton* pRemoveClearCaseIntegration = new QPushButton(i18n("Remove \
                ClearCase Integration"), page);
-    gbox->addWidget(pRemoveClearCaseIntegration, line, 1);
-    pRemoveClearCaseIntegration->setToolTip(i18n(
-        "Restore the old \"map\" file from before doing the ClearCase \
                integration."));
-    connect(pRemoveClearCaseIntegration, &QPushButton::clicked, this, \
                &OptionDialog::slotRemoveClearCaseIntegration);
-    pRemoveClearCaseIntegration->setEnabled(integrateWithClearCase("existsClearCase", \
                "") != 0);
-
-    ++line;
-#endif
-
     topLayout->addStretch(10);
 }
 
-void OptionDialog::slotIntegrateWithClearCase()
-{
-#if ENABLE_CC_INTEGRATION
-    char kdiff3CommandPath[1000];
-    GetModuleFileNameA(0, kdiff3CommandPath, sizeof(kdiff3CommandPath) - 1);
-    integrateWithClearCase("install", kdiff3CommandPath);
-#endif
-}
-
-void OptionDialog::slotRemoveClearCaseIntegration()
-{
-#if ENABLE_CC_INTEGRATION
-    char kdiff3CommandPath[1000];
-    GetModuleFileNameA(0, kdiff3CommandPath, sizeof(kdiff3CommandPath) - 1);
-    integrateWithClearCase("uninstall", kdiff3CommandPath);
-#endif
-}
 
 void OptionDialog::slotEncodingChanged()
 {
diff --git a/src/optiondialog.h b/src/optiondialog.h
index e972950..d1c145d 100644
--- a/src/optiondialog.h
+++ b/src/optiondialog.h
@@ -68,8 +68,6 @@ protected Q_SLOTS:
     
     void slotEncodingChanged();
     void slotHistoryMergeRegExpTester();
-    void slotIntegrateWithClearCase();
-    void slotRemoveClearCaseIntegration();
 Q_SIGNALS:
     void applyDone();
 private:
diff --git a/windows_installer/README_WIN.txt b/windows_installer/README_WIN.txt
index 2e0d5cb..5cdc0ca 100644
--- a/windows_installer/README_WIN.txt
+++ b/windows_installer/README_WIN.txt
@@ -62,15 +62,6 @@ Installation:
   (C:\Documents and Settings\Username\Application Data\Subversion\diff3_cmd.bat)
   (Installation is disabled by default) 
 
-- Integration with Rational ClearCase from IBM: Allows to use KDiff3 as comparison 
-  and merge tool for text files under Clearcase. KDiff3 tries to locate the \
                "map"-file 
-  (e.g.: C:\Program Files\Rational\Clearcase\lib\mgrs\map) which tells clearcase 
-  which tool to use for which filetype and operation. KDiff3 stores a backup in 
-  map.preKDiff3Install (if is doesn't exist yet) and modifies the map file so that 
-  KDiff3 is used for text files. On KDiff3-uninstallation the entries containing 
-  "KDiff3" are restored. The map-file is normal text, so you can also adjust it 
-  yourself. (Installation for ClearCase is disabled by default) 
-
 Since this program was actually developed for GNU/Linux, there might be Windows
 specific problems I don't know of yet. Please write me about problems you encounter.
 
diff --git a/windows_installer/ccinstallhelper/README.txt \
b/windows_installer/ccinstallhelper/README.txt deleted file mode 100644
index c2beffe..0000000
--- a/windows_installer/ccinstallhelper/README.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-Clearcase install helper plugin DLL-Readme
-==========================================
-Copyright (C) 2007 Joachim Eibl, All rights reserved.
-License: GPL Version 2 or any later version.
-
-This subdirectory contains files to build a NSIS-plugin which is
-called during installation and uninstallation.
-
-The plugin tries to locate clearcase by looking for cleartool.exe in the
-PATH environment variable.
-
-Then it searches for the "map" file relative to the cleartool.exe in
-../lib/mgrs/map.
-
-This file contains a map which tells clearcase which tool to use for a certain
-operation. It is readable and modifiable with any text editor.
-
-During installation this plugin replaces several entries with the 
-KDiff3-executable.
-The original file is renamed into "map.preKDiff3Install".
-
-During uninstallation the plugin restores the original contents from the 
-"map.preKDiff3Install" but only for those entries where KDiff3 is used.
-
-NSIS integrates the plugin as part of the installer executable and in the 
-"Uninstall.exe" file.
-
-
-
diff --git a/windows_installer/ccinstallhelper/ccInstHelper.cpp \
b/windows_installer/ccinstallhelper/ccInstHelper.cpp deleted file mode 100644
index 12cf1a8..0000000
--- a/windows_installer/ccinstallhelper/ccInstHelper.cpp
+++ /dev/null
@@ -1,327 +0,0 @@
-// uninstallHelper.cpp : Defines the entry point for the console application.
-//
-#define _CRT_SECURE_NO_DEPRECATE
-#include "stdafx.h"
-#include <iostream>
-#include <string>
-#include <vector>
-#include <list>
-#include <windows.h>
-#include <string.h>
-#include <io.h>
-
-//#define __stdcall
-
-// For compilation download the NSIS source package and modify the following
-// line to point to the exdll.h-file
-#include "C:/Programme/NSIS/Contrib/ExDll/exdll.h"
-
-struct ReplacementItem
-{ char* fileType; char* operationType; };
-
-ReplacementItem g_replacementTable[] = {
-   "text_file_delta",   "xcompare",
-   "text_file_delta",   "xmerge",
-   "whole_copy",        "xcompare",
-   "whole_copy",        "xmerge",
-   "z_text_file_delta", "xcompare",
-   "z_text_file_delta", "xmerge",
-   "z_whole_copy",      "xcompare",
-   "z_whole_copy",      "xmerge",
-   "_xml",              "xcompare",
-   "_xml",              "xmerge",
-   "_xml2",             "xcompare",
-   "_xml2",             "xmerge",
-   "_rftdef",           "xcompare",
-   "_rftmap",           "xcompare",
-   "_rftvp",            "xcompare",
-   "_xtools",           "xcompare",
-   0,0
-};
-
-struct LineItem
-{
-   std::string fileType;
-   std::string opType;
-   std::string command;
-   std::string fileOpPart;
-};
-
-// Return true if successful, else false
-bool readAndParseMapFile( const std::string& filename, std::list<LineItem>& \
                lineItemList )
-{
-   // Read file
-   FILE* pFile = fopen( filename.c_str(), "r" );
-   if (pFile)
-   {
-      fseek(pFile,0,SEEK_END);
-      int size = ftell(pFile);
-      fseek(pFile,0,SEEK_SET);
-      std::vector<char> buf( size );
-      fread( &buf[0], 1, size, pFile );
-      fclose( pFile );
-
-      // Replace strings
-      int lineStartPos=0;
-      int wordInLine = 0;
-      LineItem lineItem;
-      for( int i=0; i<size; )
-      {
-         if( buf[i] == '\n' || buf[i] == '\r' )
-         {
-            ++i;
-            wordInLine = 0;
-            lineStartPos = i;
-            continue;
-         }
-         if( buf[i] == ' ' || buf[i] == '\t' )
-         {
-            ++i;
-            continue;
-         }
-         else
-         {
-            int wordStartPos = i;
-            if (wordInLine<2)
-            {
-               while ( i<size && !( buf[i] == ' ' || buf[i] == '\t' ) )
-                  ++i;
-
-               std::string word( &buf[wordStartPos], i-wordStartPos );
-               if (wordInLine==0)
-                  lineItem.fileType = word;
-               else
-                  lineItem.opType = word;
-               ++wordInLine;
-            }
-            else
-            {
-               lineItem.fileOpPart = std::string( &buf[lineStartPos], i-lineStartPos \
                );
-               while ( i<size && !( buf[i] == '\n' || buf[i] == '\r' ) )
-                  ++i;
-
-               std::string word( &buf[wordStartPos], i-wordStartPos );
-               lineItem.command = word;
-               lineItemList.push_back( lineItem );
-            }
-         }
-      }
-   }
-   else
-   {
-      return false;
-   }
-   return true;
-}
-
-bool writeMapFile( const std::string& filename, const std::list<LineItem>& \
                lineItemList )
-{
-   FILE* pFile = fopen( filename.c_str(), "w" );
-   if (pFile)
-   {
-      std::list<LineItem>::const_iterator i = lineItemList.begin();
-      for( ; i!=lineItemList.end(); ++i )
-      {
-         const LineItem& li = *i;
-         fprintf( pFile, "%s%s\n", li.fileOpPart.c_str(), li.command.c_str() );
-      }
-      fclose( pFile );
-   }
-   else
-   {
-      return false;
-   }
-   return true;
-}
-
-std::string toUpper( const std::string& s )
-{
-   std::string s2 = s;
-
-   for( unsigned int i=0; i<s.length(); ++i )
-   {
-      s2[i] = toupper( s2[i] );
-   }
-   return s2;
-}
-
-int install( const _TCHAR* subCommand, const _TCHAR* kdiff3CommandPath )
-{
-   std::string installCommand = subCommand; // "install" or "uninstall"
-   std::string kdiff3Command  = kdiff3CommandPath;
-
-   /*
-   std::wstring installCommand = subCommand; // "install" or "uninstall"
-   std::wstring wKDiff3Command  = kdiff3CommandPath;
-   std::string kdiff3Command;
-   kdiff3Command.reserve( wKDiff3Command.length()+1 );
-   kdiff3Command.resize( wKDiff3Command.length() );
-   BOOL bUsedDefaultChar = FALSE;
-   int successLen = WideCharToMultiByte(  CP_ACP, 0, 
-      wKDiff3Command.c_str(), int(wKDiff3Command.length()),
-      &kdiff3Command[0], int(kdiff3Command.length()), 0, &bUsedDefaultChar );
-
-   if ( successLen != kdiff3Command.length() || bUsedDefaultChar )
-   {
-      std::cerr << "KDiff3 command contains characters that don't map to ansi code \
                page.\n"
-          "Aborting clearcase installation.\n"
-          "Try to install KDiff3 in another path that doesn't require special \
                characters.\n";
-      return -1;
-   }
-   */
-
-   // Try to locate cleartool, the clearcase tool in the path
-   char buffer[1000];
-   char* pLastPart = 0;
-   int len = SearchPathA(0, "cleartool.exe", 0, sizeof(buffer)/sizeof(buffer[0]), 
-                         buffer, &pLastPart );
-   if ( len+1<int(sizeof(buffer)/sizeof(buffer[0])) && pLastPart )
-   {
-      pLastPart[-1] = 0;
-      pLastPart = strchr( buffer, '\\' ); // cd up (because cleartool.exe is in bin \
                subdir)
-      if ( pLastPart )
-         pLastPart[1]=0;
-
-      std::string path( buffer );
-      path += _T("lib\\mgrs\\map");
-      std::string bakName = path + _T(".preKDiff3Install");
-      
-      if ( installCommand == _T("install") )
-      {
-         std::list<LineItem> lineItemList;
-         bool bSuccess = readAndParseMapFile( path, lineItemList );
-         if ( !bSuccess )
-         {
-            std::cerr << "Error reading original map file.\n";
-            return -1;
-         }
-
-         // Create backup
-         if ( access( bakName.c_str(), 0 )!=0 ) // Create backup only if not exists \
                yet
-         {
-            if ( rename( path.c_str(), bakName.c_str() ) )
-            {
-               std::cerr << "Error renaming original map file.\n";
-               return -1;
-            }
-         }
-
-         std::list<LineItem>::iterator i = lineItemList.begin();
-         for( ; i!=lineItemList.end(); ++i )
-         {
-            LineItem& li = *i;
-            for (int j=0;;++j)
-            {
-               ReplacementItem& ri = g_replacementTable[j];
-               if ( ri.fileType==0 || ri.operationType==0 )
-                  break;
-               if ( li.fileType == ri.fileType && li.opType == ri.operationType )
-               {
-                  li.command = kdiff3Command.c_str();
-                  break;
-               }
-            }
-         }
-
-         bSuccess = writeMapFile( path, lineItemList );
-         if ( !bSuccess )
-         {
-            if ( rename( bakName.c_str(), path.c_str() ) )
-               std::cerr << "Error writing new map file, restoring old file also \
                failed.\n";
-            else
-               std::cerr << "Error writing new map file, old file restored.\n";
-
-            return -1;
-         }
-      }
-      else if ( installCommand == _T("uninstall") )
-      {
-         std::list<LineItem> lineItemList;
-         bool bSuccess = readAndParseMapFile( path, lineItemList );
-         if ( !bSuccess )
-         {
-            std::cerr << "Error reading original map file\n.";
-            return -1;
-         }
-
-         std::list<LineItem> lineItemListBak;
-         bSuccess = readAndParseMapFile( bakName, lineItemListBak );
-         if ( !bSuccess )
-         {
-            std::cerr << "Error reading backup map file.\n";
-            return -1;
-         }
-
-         std::list<LineItem>::iterator i = lineItemList.begin();
-         for( ; i!=lineItemList.end(); ++i )
-         {
-            LineItem& li = *i;
-            if ((int)toUpper(li.command).find("KDIFF3")>=0)
-            {
-               std::list<LineItem>::const_iterator j = lineItemListBak.begin();
-               for (;j!=lineItemListBak.end();++j)
-               {
-                  const LineItem& bi = *j;  // backup iterator
-                  if ( li.fileType == bi.fileType && li.opType == bi.opType )
-                  {
-                     li.command = bi.command;
-                     break;
-                  }
-               }
-            }
-         }
-
-         bSuccess = writeMapFile( path, lineItemList );
-         if ( !bSuccess )
-         {
-            std::cerr << "Error writing map file.";
-
-            return -1;
-         }
-      }
-   }
-   return 0;
-}
-
-extern "C"
-void __declspec(dllexport) nsisPlugin(HWND hwndParent, int string_size, 
-                                      char *variables, stack_t **stacktop,
-                                      extra_parameters *extra)
-{
-   //g_hwndParent=hwndParent;
-
-   EXDLL_INIT();
-   {
-      std::string param1( g_stringsize, ' ' );
-      int retVal = popstring( &param1[0] );
-      if ( retVal == 0 )
-      {
-         std::string param2( g_stringsize, ' ' );
-         retVal = popstring( &param2[0] );
-         if ( retVal == 0 )
-            install( param1.c_str(), param2.c_str() );
-         return;
-      }
-      std::cerr << "Not enough parameters." << std::endl;
-   }
-}
-
-/*
-int _tmain(int argc, _TCHAR* argv[])
-{
-   if ( argc<3 ) 
-   {
-      std::cout << "This program is needed to install/uninstall KDiff3 for \
                clearcase.\n"
-                   "It tries to patch the map file \
                (clearcase-subdir\\lib\\mgrs\\map)\n"
-                   "Usage 1: ccInstHelper install pathToKdiff3.exe\n"
-                   "Usage 2: ccInstHelper uninstall pathToKdiff3.exe\n"
-                   "Backups of the original map files are created in the dir of the \
                map file.\n";
-   }
-   else
-   {
-      return install( argv[1], argv[2] );
-   }
-   
-   return 0;
-}
-*/
diff --git a/windows_installer/ccinstallhelper/ccinstallhelper.def \
b/windows_installer/ccinstallhelper/ccinstallhelper.def deleted file mode 100644
index 732cd6c..0000000
--- a/windows_installer/ccinstallhelper/ccinstallhelper.def
+++ /dev/null
@@ -1,4 +0,0 @@
-LIBRARY	"ccinstallhelper"
-EXPORTS
-    nsisPlugin
-
diff --git a/windows_installer/kdiff3.nsi b/windows_installer/kdiff3.nsi
index df39907..4e4f95d 100755
--- a/windows_installer/kdiff3.nsi
+++ b/windows_installer/kdiff3.nsi
@@ -383,15 +383,6 @@ Section /o "SVN Merge tool" SecIntegrationSubversionDiff3Cmd
   CopyFiles '$INSTDIR\diff3_cmd.bat' '$APPDATA\Subversion'
 SectionEnd
 
-
-Section /o "ClearCase" SecIntegrationClearCase
-  DetailPrint "Integrate with Rational ClearCase from IBM"
-  ccInstallHelper::nsisPlugin "install" "$INSTDIR\kdiff3.exe"
-
-  ;File "ccInstHelper.exe"
-  ;ExecWait '"$INSTDIR\ccInstHelper.exe" install "$INSTDIR\kdiff3.exe"'
-SectionEnd
-
 SubSectionEnd
 
 ;--------------------------------
@@ -429,7 +420,6 @@ FunctionEnd
     !insertmacro MUI_DESCRIPTION_TEXT ${SecIntegrationWinCVS}  "Integrate KDiff3 \
                with WinCVS. (Please close WinCVS before proceeding.)"
     !insertmacro MUI_DESCRIPTION_TEXT ${SecIntegrationTortoiseSVN}  "Integrate \
                KDiff3 with TortoiseSVN."
     !insertmacro MUI_DESCRIPTION_TEXT ${SecIntegrationSubversionDiff3Cmd}  "Install \
                diff3_cmd.bat for Subversion merge"
-    !insertmacro MUI_DESCRIPTION_TEXT ${SecIntegrationClearCase}  "Integrate KDiff3 \
                with Rational Clearcase from IBM"
   !insertmacro MUI_FUNCTION_DESCRIPTION_END
 
  
@@ -513,11 +503,6 @@ ${EndIf}
   DeleteRegKey SHCTX \
"Software\Classes\Directory\shellex\ContextMenuHandlers\$DIFF_EXT_ID"  DeleteRegValue \
SHCTX "Software\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved" \
"$DIFF_EXT_CLSID"  
-  ; clearcase
-  ccInstallHelper::nsisPlugin "uninstall" "$INSTDIR\kdiff3.exe"
-  ;ExecWait '"$INSTDIR\ccInstHelper.exe" uninstall "$INSTDIR\kdiff3.exe"'
-  ;Delete "$INSTDIR\ccInstHelper.exe"
-
 SectionEnd
 
 ;--------------------------------


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic