Commit 121a6fd3 authored by Michael Reeves's avatar Michael Reeves

*Initial Commit

parent be348bcf
......@@ -20,20 +20,20 @@ link_directories(
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config-kdiff3.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-kdiff3.h )
add_subdirectory(src-QT4)
add_subdirectory(po)
#add_subdirectory(po)
add_subdirectory(doc)
find_file(KFILEITEMACTIONPLUGIN_FOUND kfileitemactionplugin.h PATHS ${KDE4_INCLUDE_DIR} NO_DEFAULT_PATH)
find_file(KFILEITEMACTIONPLUGIN_FOUND kabstractfileitemactionplugin.h PATHS ${KDE4_INCLUDE_DIR} NO_DEFAULT_PATH)
if(KFILEITEMACTIONPLUGIN_FOUND)
message(STATUS "")
message(STATUS "kfileitemactionplugin.h found........... YES")
message(STATUS "kabstractfileitemactionplugin.h found........... YES")
message(STATUS " => kdiff3fileitemactionplugin (KDiff3 contextmenu plugin for Konqueror/Dolphin, KDE>4.6) will be built.")
message(STATUS "")
add_subdirectory(kdiff3fileitemactionplugin)
else(KFILEITEMACTIONPLUGIN_FOUND)
message(STATUS "")
message(STATUS "kfileitemactionplugin.h found........... NO")
message(STATUS "kabstractfileitemactionplugin.h found........... NO")
message(STATUS " => kdiff3fileitemactionplugin (KDiff3 contextmenu plugin for Konqueror/Dolphin, KDE>4.6) will not be built.)")
message(STATUS "Trying fallback via libkonq (works with Konqueror only) ...")
MACRO_OPTIONAL_FIND_PACKAGE(LibKonq)
......
......@@ -6,6 +6,8 @@ Version 0.9.98a - 2012-09-11
- Improved handling of texts with both right to left and left to right languages (mixed Arabic and western texts).
- Improved handling of Chinese and Japanese.
- Whitespace characters are now shown as dots for spaces and arrows for tabs, and not only in differences.
- Fixed symlink comparison (Qt4 symLinkTarget returns absolute paths)
- Fix for saving to relative path in KDE-environments. (Patch from Harald Sitter)
Version 0.9.97 - 2012-08-10
===========================
......@@ -88,7 +90,7 @@ Version 0.9.93 - 2009/01/06
Version 0.9.92 - 2007/04/15
===========================
- Windows installer now allows to install KDiff3 as Clearcase Diff and Merge Tool
- Windows installer now allows you to install KDiff3 as Clearcase Diff and Merge Tool
- Windows installer "SVN Merge tool" corrected: Not creating $AppData\Subversion\config subdir anymore.
- KDE-Konqueror plugin: Launch KDiff3 from Konqueror. (Similar to Diff-Ext on Windows.)
- Qt4-version
......@@ -99,7 +101,7 @@ Version 0.9.92 - 2007/04/15
- Temp file names use the process id in file name to allow several instances.
- Suppress flicker during startup. (Don't show status info window on creation.)
- New File comparison mode: Trust the size and date, but use binary comparison if date doesn't match (unsafe)
- After explicitely selecting files any file of the selected may be right clicked for context menu.
- After explicitly selecting files any file of the selected may be right clicked for context menu.
- Open dialog also shows current directories in directory comparison mode.
- Writing a file via --auto option didn't work for relative files. (Reported by Guilhem Bichot)
- New option for history merge: Max number of history entries
......@@ -221,7 +223,7 @@ Version 0.9.84 - 2004/05/29
============================
New Features:
- Word Wrap for DiffTextWindow
- Directory-Comparison: Option "Full Analysis" allows to show the number of solved vs. unsolved
- Directory-Comparison: Option "Full Analysis" allows you to show the number of solved vs. unsolved
conflicts or deltas vs. whitespace-changes in the directory tree.
- Diff-Menu for Diff-view specific entries
- Docs now contain a new chapter for uses of preprocessor and line-matching-preprocessor.
......@@ -232,7 +234,7 @@ New Features:
- In the Qt-only-version the user-interface-language can be set via the regional-settings
(only effective after a restart).
- ProgressDialog redesign for recursive use.
- Overview now allows to show the delta between two other files in triplediff-mode.
- Overview now allows you to show the delta between two other files in triplediff-mode.
- Option to ignore case which treats case-changes like white space (instead of conversion to upcase).
Bugfixes:
- Dir-Comp: When one file exists, but the other doesn't then instead the latest used other file was displayed.
......
This diff is collapsed.
......@@ -2,10 +2,10 @@ This file contains some feature-wishes for future KDiff3-versions.
TODO
====
- Verknüpfungsziel für Links relativ anzeigen
- See link target for relative links
- KDiff3-Plugin sollte auch in Dolphin arbeiten
- Alignmenttechnik bei Merge von 3 Dateien wählbar
- Horizontales Scrolling reparieren
- Alignment of technology with Merge 3 files selectable (Huh? Bad translation from german I guess.)
- Horizontal Scrolling reparieren
- Fix drawing in columns A/B/C-directory window
- Qt4-translation files
......@@ -38,10 +38,10 @@ TODO
- Only show different lines.
- ftp: Abbruch beim Einlesen von Verzeichnis stoppt nicht vollständig
- ftp: Abort when reading directory does not stop completely
- Projekt-Verwaltung: Die ganze Config-Datei (=Projektdatei) an einen benutzerdefinierten Ort zu legen. (Keine Angabe->Default)
- Bei Combobox-History alle Elemente von (A/B/C/Out) anzeigen.
- Project management: Put the config file (= project file) in a custom location. (None-> Default)
- Combobox-History show all elements of (A / B / C / out).
- Test on empty floppy drive.
......@@ -62,7 +62,7 @@ TODO
- kdiff3 does not preserve the permissions of files it overwrites during a 'save' operation.
- Insbesondere Ausführbarkeit "x" und Schreibschutz "w" sollten erhalten bleiben.
- In particular, write protection of file should be retained..
- Under Windows: Shortcut Ctrl-Shift-2 (for select B everywhere doesn't work.)
- Paste from Clipboard doesn't work.
......@@ -94,9 +94,9 @@ TODO
- Optionally show size/date for A/B/C
- Choose what to see (all or only different items)
- If only different items are visible: copy the others nevertheless to destdir.
- Warnung wenn Datum in B oder C älter als A ist.
- Zielverzeichnis nachträglich änderbar
- Bei Kopie von Remote nach lokal: Auf jeden Fall das modification Datum setzen.
- Warning if date of A is older than B or C.
- Destination directory can be changed later
- For a copy of remote to local: set the modification date in any case.
- Ctrl-Space doesn't work when a file comparison takes place.
- Option to allow case-insensitive filename-matching.
- Options to show/suppress annoying messages
......
#!/bin/sh
# Manually created configure
echo "configure for KDiff3 Qt4/KDE4 by Joachim Eibl"
if [ "$1" = "kde4" ]; then
echo Trying to build for KDE4. If anything fails see the README for details.
echo Creating and entering subdir "release"
mkdir release # create sub directory
cd release
echo "Running cmake .. -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix`"
cmake .. -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix` # create Makefile
echo Running make.
make # run make (compile and link)
echo "If everything went OK then KDiff3 was built in the release-subdir."
echo "Install as root (requires password)."
sudo make install # install as root user
elif [ "$1" = "qt4" ]; then
echo Trying to build for Qt4 without KDE
echo "Entering subdir src-QT4"
cd src-QT4
echo "Running qmake kdiff3.pro"
qmake kdiff3.pro
echo "Running make"
make
echo "If everything went OK then KDiff3 was built as src-QT4/kdiff3"
else
echo Usage 1: configure kde4
echo Usage 2: configure qt4
echo For requirements, more options and details in case of failure see the README.
fi
# Project: diff_ext
# Generates diff_ext_for_kdiff3.dll with gcc.
# Can be used for Cygwin and MingW (MingW ignores -mno-cygwin)
#
PROJ := diff_ext_for_kdiff3
CXX ?= g++.exe
ifdef DEBUG
CXXFLAGS ?= -g
else
CXXFLAGS ?= -Os
LDFLAGS += -s -static-libgcc
endif
CXXFLAGS += -pedantic -Wall -W -D_UNICODE -DUNICODE
LIBS := -luuid -lole32
DEFFILE = $(PROJ).def
STATICLIB = $(PROJ).a
EXPLIB = $(PROJ).exp
SRC-CXX = $(wildcard *.cpp)
SRC-RC = $(wildcard *.rc)
OBJ := $(SRC-CXX:.cpp=.o)
RES := $(SRC-RC:.rc=.res)
OBJ += $(RES)
DLL := $(PROJ).dll
.PHONY: all clean
.SUFFIXES: .rc .res
all: .depend $(DLL)
debug:
$(MAKE) DEBUG=YES UNICODE=YES
release:
$(MAKE)
.depend: Makefile $(SRC-RC) $(SRC-CXX)
$(CXX) -M $(CXXFLAGS) $(SRC-RC) $(SRC-CXX) > .depend
include .depend
clean:
del .depend $(OBJ) $(DLL) ${EXPLIB} $(STATICLIB)
$(DLL): $(OBJ)
dllwrap.exe \
--mno-cygwin \
--def $(DEFFILE) \
--output-exp ${EXPLIB} \
--driver-name c++ -L/usr/local/lib -L/usr/lib/mingw \
--implib $(STATICLIB) \
$(OBJ) $(LDFLAGS) $(LIBS) \
-o $@
.cpp.o:
$(CXX) $(CXXFLAGS) -c $< -o $@
.rc.res:
windres.exe $< -J rc -o $@ -O coff -DMING
# Project: diff_ext
# Generates diff_ext_for_kdiff3.dll with gcc.
# Can be used for Cygwin and MingW (MingW ignores -mno-cygwin)
#
PROJ := diff_ext_for_kdiff3
CXX ?= g++.exe
ifdef DEBUG
CXXFLAGS ?= -g
else
CXXFLAGS ?= -Os
LDFLAGS += -s
endif
CXXFLAGS += -ansi -pedantic -Wall -W -D_UNICODE -DUNICODE
LIBS := -luuid -lole32
DEFFILE = $(PROJ).def
STATICLIB = $(PROJ).a
EXPLIB = $(PROJ).exp
SRC-CXX = $(wildcard *.cpp)
SRC-RC = $(wildcard *.rc)
OBJ := $(SRC-CXX:.cpp=.o)
RES := $(SRC-RC:.rc=.res)
OBJ += $(RES)
DLL := $(PROJ).dll
.PHONY: all clean
.SUFFIXES: .rc .res
all: .depend $(DLL)
debug:
$(MAKE) DEBUG=YES UNICODE=YES
release:
$(MAKE)
.depend: Makefile $(SRC-RC) $(SRC-CXX)
$(CXX) -M $(CXXFLAGS) $(SRC-RC) $(SRC-CXX) > .depend
include .depend
clean: clean-custom
${RM} $(OBJ) $(DLL) ${EXPLIB} $(STATICLIB)
$(DLL): $(OBJ)
dllwrap.exe \
--mno-cygwin \
--def $(DEFFILE) \
--output-exp ${EXPLIB} \
--driver-name c++ -L/usr/local/lib -L/usr/lib/mingw \
--implib $(STATICLIB) \
$(OBJ) $(LDFLAGS) $(LIBS) \
-o $@
.cpp.o:
$(CXX) $(CXXFLAGS) -c $< -o $@
.rc.res:
windres.exe $< -J rc -o $@ -O coff -DMING
# Project: diff_ext
# Generates diff_ext_for_kdiff3.dll with gcc.
# Can be used for Cygwin and MingW (MingW ignores -mno-cygwin)
#
PROJ := diff_ext_for_kdiff3
CXX := x86_64-w64-mingw32-g++.exe
ifdef DEBUG
CXXFLAGS ?= -g
else
CXXFLAGS ?= -Os
LDFLAGS += -s
endif
CXXFLAGS += -ansi -pedantic -Wall -W -D_UNICODE -DUNICODE
LIBS := -luuid -lole32
DEFFILE = $(PROJ).def
STATICLIB = $(PROJ).a
EXPLIB = $(PROJ).exp
SRC-CXX = $(wildcard *.cpp)
SRC-RC = $(wildcard *.rc)
OBJ := $(SRC-CXX:.cpp=.o)
RES := $(SRC-RC:.rc=.res)
OBJ += $(RES)
DLL := $(PROJ).dll
.PHONY: all clean
.SUFFIXES: .rc .res
all: .depend $(DLL)
debug:
$(MAKE) DEBUG=YES UNICODE=YES
release:
$(MAKE)
.depend: Makefile $(SRC-RC) $(SRC-CXX)
$(CXX) -M $(CXXFLAGS) $(SRC-RC) $(SRC-CXX) > .depend
include .depend
clean: clean-custom
${RM} $(OBJ) $(DLL) ${EXPLIB} $(STATICLIB)
$(DLL): $(OBJ)
x86_64-w64-mingw32-dllwrap.exe \
--mno-cygwin \
--def $(DEFFILE) \
--output-exp ${EXPLIB} \
--driver-name x86_64-w64-mingw32-g++ -static-libgcc -L/Users/Joachim/qt/mingw-w64-bin_i686-mingw_20100105/mingw/lib \
--implib $(STATICLIB) \
$(OBJ) $(LDFLAGS) $(LIBS) \
-o $@
.cpp.o:
$(CXX) $(CXXFLAGS) -c $< -o $@
.rc.res:
x86_64-w64-mingw32-windres.exe $< -J rc -o $@ -O coff -DMING
# Project: diff_ext
# Generates diff_ext_for_kdiff3.dll with gcc.
# Can be used for Cygwin and MingW (MingW ignores -mno-cygwin)
#
PROJ := diff_ext_for_kdiff3
CXX := x86_64-w64-mingw32-g++.exe
ifdef DEBUG
CXXFLAGS ?= -g
else
CXXFLAGS ?= -Os
LDFLAGS += -s
endif
CXXFLAGS += -ansi -pedantic -Wall -W -D_UNICODE -DUNICODE
LIBS := -luuid -lole32
DEFFILE = $(PROJ).def
STATICLIB = $(PROJ).a
EXPLIB = $(PROJ).exp
SRC-CXX = $(wildcard *.cpp)
SRC-RC = $(wildcard *.rc)
OBJ := $(SRC-CXX:.cpp=.o)
RES := $(SRC-RC:.rc=.res)
OBJ += $(RES)
DLL := $(PROJ).dll
.PHONY: all clean
.SUFFIXES: .rc .res
all: .depend $(DLL)
debug:
$(MAKE) DEBUG=YES UNICODE=YES
release:
$(MAKE)
.depend: Makefile $(SRC-RC) $(SRC-CXX)
$(CXX) -M $(CXXFLAGS) $(SRC-RC) $(SRC-CXX) > .depend
include .depend
clean: clean-custom
${RM} $(OBJ) $(DLL) ${EXPLIB} $(STATICLIB)
$(DLL): $(OBJ)
x86_64-w64-mingw32-dllwrap.exe \
--mno-cygwin \
--def $(DEFFILE) \
--output-exp ${EXPLIB} \
--driver-name x86_64-w64-mingw32-g++ -static-libgcc -L/Users/Joachim/qt/mingw-w64-bin_i686-mingw_20100105/mingw/lib \
--implib $(STATICLIB) \
$(OBJ) $(LDFLAGS) $(LIBS) \
-o $@
.cpp.o:
$(CXX) $(CXXFLAGS) -c $< -o $@
.rc.res:
x86_64-w64-mingw32-windres.exe $< -J rc -o $@ -O coff -DMING
/*
* Copyright (c) 2003, Sergey Zorin. All rights reserved.
*
* This software is distributable under the BSD license. See the terms
* of the BSD license in the LICENSE file provided with this software.
*
*/
#include "class_factory.h"
#include "diff_ext.h"
#include "server.h"
CLASS_FACTORY::CLASS_FACTORY() {
_ref_count = 0L;
SERVER::instance()->lock();
}
CLASS_FACTORY::~CLASS_FACTORY() {
SERVER::instance()->release();
}
STDMETHODIMP
CLASS_FACTORY::QueryInterface(REFIID riid, void** ppv) {
HRESULT ret = E_NOINTERFACE;
*ppv = 0;
if(IsEqualIID(riid, IID_IUnknown) || IsEqualIID(riid, IID_IClassFactory)) {
*ppv = static_cast<CLASS_FACTORY*>(this);
AddRef();
ret = NOERROR;
}
return ret;
}
STDMETHODIMP_(ULONG)
CLASS_FACTORY::AddRef() {
return InterlockedIncrement((LPLONG)&_ref_count);
}
STDMETHODIMP_(ULONG)
CLASS_FACTORY::Release() {
ULONG ret = 0L;
if(InterlockedDecrement((LPLONG)&_ref_count) != 0)
ret = _ref_count;
else
delete this;
return ret;
}
STDMETHODIMP
CLASS_FACTORY::CreateInstance(IUnknown* outer, REFIID refiid, void** obj) {
HRESULT ret = CLASS_E_NOAGGREGATION;
*obj = 0;
// Shell extensions typically don't support aggregation (inheritance)
if(outer == 0) {
DIFF_EXT* ext = new DIFF_EXT();
if(ext == 0)
ret = E_OUTOFMEMORY;
else
ret = ext->QueryInterface(refiid, obj);
}
return ret;
}
STDMETHODIMP
CLASS_FACTORY::LockServer(BOOL) {
return NOERROR;
}
/*
* Copyright (c) 2003, Sergey Zorin. All rights reserved.
*
* This software is distributable under the BSD license. See the terms
* of the BSD license in the LICENSE file provided with this software.
*
*/
#include "class_factory.h"
#include "diff_ext.h"
#include "server.h"
CLASS_FACTORY::CLASS_FACTORY() {
_ref_count = 0L;
SERVER::instance()->lock();
}