├── .cvsignore ├── .gitignore ├── CHANGES ├── COPYING ├── PKGINFO ├── README.build ├── README.rst ├── TODO ├── VERSION ├── adm ├── README ├── build_rpm ├── config.guess ├── get_version ├── release_bin ├── release_i386_rpm ├── release_i586_mdk ├── release_mips_tardist ├── release_src ├── solaris_pkg_instructions ├── xxdiff-mdk.spec ├── xxdiff-rpm.spec ├── xxdiff-sgi.idb └── xxdiff-sgi.spec ├── bin ├── .cvsignore ├── svn-foreign ├── termdiff ├── termdiff-test-urwid ├── xx-cond-replace ├── xx-cvs-diff ├── xx-cvs-revcmp ├── xx-diff-proxy ├── xx-encrypted ├── xx-filter ├── xx-find-grep-sed ├── xx-hg-merge ├── xx-match ├── xx-p4-unmerge ├── xx-pyline ├── xx-rename ├── xx-sql-schemas ├── xx-svn-diff ├── xx-svn-resolve └── xx-svn-review ├── bugs └── bug-xxdiff-rendering.png ├── doc ├── Makefile ├── equals.png ├── horiz.png ├── perhunk.png ├── rma.png ├── screenshot-sql-schema-compare.png ├── screenshots │ ├── gallery │ │ ├── Makefile │ │ ├── highslide │ │ │ ├── graphics │ │ │ │ ├── close.png │ │ │ │ ├── closeX.png │ │ │ │ ├── controlbar-black-border.gif │ │ │ │ ├── controlbar-text-buttons.png │ │ │ │ ├── controlbar-white-small.gif │ │ │ │ ├── controlbar-white.gif │ │ │ │ ├── controlbar2.gif │ │ │ │ ├── controlbar3.gif │ │ │ │ ├── controlbar4-hover.gif │ │ │ │ ├── controlbar4.gif │ │ │ │ ├── fullexpand.gif │ │ │ │ ├── geckodimmer.png │ │ │ │ ├── icon.gif │ │ │ │ ├── loader.gif │ │ │ │ ├── loader.white.gif │ │ │ │ ├── outlines │ │ │ │ │ ├── Outlines.psd │ │ │ │ │ ├── beveled.png │ │ │ │ │ ├── drop-shadow.png │ │ │ │ │ ├── glossy-dark.png │ │ │ │ │ ├── outer-glow.png │ │ │ │ │ ├── rounded-black.png │ │ │ │ │ └── rounded-white.png │ │ │ │ ├── resize.gif │ │ │ │ ├── scrollarrows.png │ │ │ │ ├── zoomin.cur │ │ │ │ └── zoomout.cur │ │ │ ├── highslide-full.js │ │ │ ├── highslide-full.min.js │ │ │ ├── highslide-full.packed.js │ │ │ ├── highslide-ie6.css │ │ │ ├── highslide-with-gallery.js │ │ │ ├── highslide-with-gallery.min.js │ │ │ ├── highslide-with-gallery.packed.js │ │ │ ├── highslide-with-html.js │ │ │ ├── highslide-with-html.min.js │ │ │ ├── highslide-with-html.packed.js │ │ │ ├── highslide.css │ │ │ ├── highslide.js │ │ │ ├── highslide.min.js │ │ │ └── highslide.packed.js │ │ ├── index.html │ │ └── thumbs │ │ │ ├── thumbnail.xxdiff-snap-about.jpg │ │ │ ├── thumbnail.xxdiff-snap-dirs2.jpg │ │ │ ├── thumbnail.xxdiff-snap-doc.jpg │ │ │ ├── thumbnail.xxdiff-snap-files2.jpg │ │ │ ├── thumbnail.xxdiff-snap-files3.jpg │ │ │ ├── thumbnail.xxdiff-snap-merged.jpg │ │ │ ├── thumbnail.xxdiff-snap-opt1.jpg │ │ │ ├── thumbnail.xxdiff-snap-opt2.jpg │ │ │ ├── thumbnail.xxdiff-snap-opt3.jpg │ │ │ ├── thumbnail.xxdiff-snap-opt4.jpg │ │ │ └── thumbnail.xxdiff-snap-opt5.jpg │ ├── xxdiff-snap-about.jpg │ ├── xxdiff-snap-dirs2.jpg │ ├── xxdiff-snap-doc.jpg │ ├── xxdiff-snap-files2.jpg │ ├── xxdiff-snap-files3.jpg │ ├── xxdiff-snap-merged.jpg │ ├── xxdiff-snap-opt1.jpg │ ├── xxdiff-snap-opt2.jpg │ ├── xxdiff-snap-opt3.jpg │ ├── xxdiff-snap-opt4.jpg │ └── xxdiff-snap-opt5.jpg ├── select.png ├── xxdiff-doc.html ├── xxdiff-integration.html ├── xxdiff-integration.txt ├── xxdiff-scripts.html ├── xxdiff-scripts.txt ├── xxdiff-secrets.html ├── xxdiff-secrets.txt └── xxdiff-users.txt ├── etc ├── bashrc ├── docutilsrc ├── env └── header-background.jpg ├── index.html ├── lib ├── elisp │ ├── xxdiff-style.el │ └── xxdiff.el └── python │ └── xxdiff │ ├── __init__.py │ ├── backup.py │ ├── checkout.py │ ├── condrepl.py │ ├── db │ ├── __init__.py │ └── postgresql.py │ ├── editor.py │ ├── history.py │ ├── invoke.py │ ├── mapcompare.py │ ├── patches.py │ ├── resilient.py │ ├── scm │ ├── __init__.py │ ├── clearcase.py │ ├── cvs.py │ ├── perforce.py │ └── subversion.py │ ├── scripts │ ├── __init__.py │ ├── condreplace.py │ ├── cvsdiff.py │ ├── cvsrevcmp.py │ ├── diffproxy.py │ ├── encrypted.py │ ├── filter.py │ ├── findgrepsed.py │ ├── match.py │ ├── patch.py │ ├── pyline.py │ ├── rename.py │ ├── sqlschemas.py │ ├── svndiff.py │ ├── svnforeign.py │ └── svnresolve.py │ ├── selectfiles.py │ ├── utils.py │ └── xformloop.py ├── old ├── alternate-build-systems │ ├── Jamfile │ ├── sconstruct │ ├── xxdiff.pro.qmake-tentative │ └── xxdiff.pro.windows ├── art │ └── pixmaps-submission │ │ ├── .cvsignore │ │ ├── diff_files.xpm │ │ ├── diff_files_next.xpm │ │ ├── next_difference.xpm │ │ ├── next_unselected_difference.xpm │ │ ├── previous_difference.xpm │ │ ├── previous_unselected_difference.xpm │ │ ├── return_accept.xpm │ │ ├── return_merged.xpm │ │ ├── return_reject.xpm │ │ ├── save_as.xpm │ │ ├── save_as_left.xpm │ │ ├── save_as_merged.xpm │ │ ├── save_as_middle.xpm │ │ ├── save_as_right.xpm │ │ ├── search.xpm │ │ ├── search_backward.xpm │ │ ├── search_forward.xpm │ │ ├── select_region_left.xpm │ │ ├── select_region_middle.xpm │ │ ├── select_region_neither.xpm │ │ ├── select_region_right.xpm │ │ ├── select_region_unselect.xpm │ │ └── split_swap_join.xpm ├── autoconf │ ├── INSTALL │ ├── Makefile.am │ ├── acinclude.m4 │ ├── automoc │ └── configure.in ├── in-core-diff │ ├── README │ └── diffutils-2.7.patch ├── scripts │ └── conversion-old-invocations.py ├── svn-conversion.dirlist.txt ├── tmake2qmake │ ├── log.before │ ├── notes-tmake2qmake.txt │ ├── xxdiff.pro.tmake │ └── xxdiff.t └── xcontribs.py ├── ports ├── README ├── macosx │ ├── README.macosx │ ├── screenshots │ │ ├── xxdiff.jpeg │ │ └── xxdiffOptions.jpeg │ ├── xxdiff-3.2-osx.diff │ ├── xxdiff.app │ │ ├── Contents │ │ │ ├── Info.plist │ │ │ ├── MacOS │ │ │ │ └── xxdiff │ │ │ └── PkgInfo │ │ └── Resources │ │ │ └── xxdiff.icns │ └── xxdiff.png ├── qt2 │ └── README.qt2 ├── sun-amd64 │ ├── Makefile │ └── email.txt └── win32 │ └── README.win32 ├── setup.py ├── src ├── Makefile.bootstrap ├── Makefile.extra ├── accelUtil.cpp ├── accelUtil.h ├── app.cpp ├── app.h ├── app.inline.h ├── borderLabel.cpp ├── borderLabel.h ├── buffer.cpp ├── buffer.h ├── buffer.inline.h ├── builder.cpp ├── builder.h ├── builder.inline.h ├── builderDirs2.cpp ├── builderDirs2.h ├── builderFiles2.cpp ├── builderFiles2.h ├── builderFiles3.cpp ├── builderFiles3.h ├── builderSingle.cpp ├── builderSingle.h ├── builderUnmerge.cpp ├── builderUnmerge.h ├── central.cpp ├── central.h ├── cmdline.cpp ├── cmdline.h ├── compiler.h ├── conflict ├── copyLabel.cpp ├── copyLabel.h ├── defs.h ├── diffs.cpp ├── diffs.h ├── diffs.inline.h ├── diffutils.cpp ├── diffutils.h ├── diffutils_hack.h ├── doc.html ├── doc.txt ├── empty ├── exceptions.cpp ├── exceptions.h ├── getopt.c ├── getopt.h ├── getopt1.c ├── help.cpp ├── help.h ├── hordiffImp.cpp ├── hordiffImp.h ├── kdeSupport.h ├── line.cpp ├── line.h ├── line.inline.h ├── lineNumbers.cpp ├── lineNumbers.h ├── main.cpp ├── main.h ├── markers.cpp ├── markers.h ├── markersWidgetBase.ui ├── merged.cpp ├── merged.h ├── mine ├── older ├── optionsDialog.cpp ├── optionsDialog.h ├── optionsDialogBase.ui ├── overview.cpp ├── overview.h ├── pixmaps │ ├── diff_files.xpm │ ├── diff_files_next.xpm │ ├── next_difference.xpm │ ├── next_unselected_difference.xpm │ ├── previous_difference.xpm │ ├── previous_unselected_difference.xpm │ ├── return_accept.xpm │ ├── return_merged.xpm │ ├── return_reject.xpm │ ├── save_as.xpm │ ├── save_as_left.xpm │ ├── save_as_merged.xpm │ ├── save_as_middle.xpm │ ├── save_as_right.xpm │ ├── search.xpm │ ├── search_backward.xpm │ ├── search_forward.xpm │ ├── select_region_left.xpm │ ├── select_region_middle.xpm │ ├── select_region_neither.xpm │ ├── select_region_right.xpm │ ├── select_region_unselect.xpm │ ├── split_swap_join.xpm │ ├── xxdiff-new.jpb │ └── xxdiff.xpm ├── proginfo.c ├── proginfo.h ├── resParser.cpp ├── resParser.h ├── resParser.l ├── resParser.y ├── resources.cpp ├── resources.h ├── resources.inline.h ├── sample.xxdiffrc ├── scrollView.cpp ├── scrollView.h ├── searchDialog.cpp ├── searchDialog.h ├── searchDialogBase.ui ├── suicideMessageBox.cpp ├── suicideMessageBox.h ├── text.cpp ├── text.h ├── text.inline.h ├── types.h ├── util.cpp ├── util.h ├── winfixes │ ├── unistd.h │ └── winfixes.h ├── xxdiff.1 ├── xxdiff.icns ├── xxdiff.pro └── yours ├── style.css ├── test ├── bugs │ ├── examples │ │ ├── diff1.txt │ │ └── diff2.txt │ └── segfault │ │ ├── ancestor │ │ ├── left │ │ ├── right │ │ └── stacktrace ├── carriage │ ├── Makefile │ ├── d1 │ └── d2 ├── diff3 │ ├── a │ ├── aaa │ ├── b │ ├── c │ ├── mine │ ├── mine.b │ ├── moy.out │ ├── older │ ├── older.b │ ├── yours │ └── yours.b ├── dir1 │ ├── file1 │ ├── file2 │ ├── file3 │ ├── file4 │ └── newfile ├── dir2 │ ├── file1 │ ├── file2 │ ├── file3 │ ├── file4 │ └── file5 ├── dir3 │ ├── file1 │ ├── file2 │ ├── file3 │ └── file4 ├── elongate │ ├── f1 │ └── f2 ├── empty ├── encrypted │ ├── .cvsignore │ ├── conflict.asc │ ├── f1.asc │ ├── f1.gpg │ ├── f2.asc │ └── f2.gpg ├── hdiff.1 ├── hdiff.2 ├── incomplete ├── latin1 │ ├── frmine │ └── fryours ├── merge ├── mine ├── older ├── out ├── perhunk │ ├── minews │ ├── olderws │ └── yoursws ├── problem.horizontal.1 │ ├── file1 │ └── file2 ├── problem.horizontal.2 │ ├── f1 │ ├── f2 │ ├── file1 │ └── file2 ├── problem │ ├── left │ ├── middle │ ├── res │ ├── res2 │ └── right ├── runtest ├── split │ ├── st.cpp │ ├── st.h │ └── st.pro ├── tabs │ ├── Makefile │ ├── notabs │ ├── t1 │ ├── tabs │ ├── w1a │ ├── w1b │ ├── w2a │ └── w2b ├── test-mercurial-merge │ └── runtest ├── test-render-horiz-insert │ ├── f1 │ └── f2 ├── testCmdLine ├── unmerge │ ├── basic │ ├── contig │ ├── diff3merge │ ├── emptydiff │ ├── falseend0 │ ├── falseend1 │ ├── falseend2 │ ├── falseend3 │ ├── falseend4 │ ├── falseend5 │ ├── falseend6 │ ├── falseend7 │ ├── falsestart0 │ ├── falsestart1 │ ├── falsestart2 │ ├── falsestart3 │ ├── falsestart4 │ ├── falsestart5 │ ├── falsestart6 │ └── falsestart7 └── yours └── tools ├── .htaccess ├── clearcase ├── xx-ct-diff └── xxcleartool ├── cvs ├── README ├── cvs-xdiff ├── lib │ └── python-fallback │ │ ├── cmdqueue.py │ │ └── cvs.py ├── xxcvs ├── xxcvs.newer └── xxcvs.old ├── git ├── xx-git-resolve └── xxdiff-git ├── index.html ├── index.txt ├── misc └── xxdiff_translate_resources ├── perforce ├── perforce_diff.sh └── tkp4 ├── subversion ├── README └── contrib │ ├── README │ ├── svnxxdiff.sh │ ├── svnxxdiff.sh.modifs │ └── xxdiff-sub ├── tkxxdiff ├── GPL.txt ├── README.txt └── tkxxdiff └── tla └── README /.cvsignore: -------------------------------------------------------------------------------- 1 | Makefile 2 | Makefile.in 3 | config.* 4 | configure 5 | aclocal.m4 6 | ltmain.sh 7 | ltconfig 8 | libtool 9 | config.sub 10 | config.guess 11 | xxdiff-*.tar.gz 12 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | syntax: glob 2 | src/.qmake.stash 3 | src/moc_predefs.h 4 | src/version.h 5 | *.o 6 | *.pyc 7 | moc_*.cpp 8 | bin/xxdiff 9 | bin/xxdiff.app 10 | src/Makefile 11 | src/Makefile.qmake 12 | src/doc.h 13 | src/markersWidgetBase.cpp 14 | src/markersWidgetBase.h 15 | src/optionsDialogBase.cpp 16 | src/optionsDialogBase.h 17 | src/resParser_lex.cpp 18 | src/resParser_lex.h 19 | src/resParser_yacc.cpp 20 | src/resParser_yacc.h 21 | src/searchDialogBase.cpp 22 | src/searchDialogBase.h 23 | 24 | src/core 25 | src/ui_markersWidgetBase.h 26 | src/ui_optionsDialogBase.h 27 | src/ui_searchDialogBase.h 28 | -------------------------------------------------------------------------------- /PKGINFO: -------------------------------------------------------------------------------- 1 | Description: Graphical File And Directories Comparator And Merge Tool 2 | Official-Homepage: http://furius.ca/xxdiff 3 | Mirror-Homepage: http://github.com/blais/xxdiff 4 | Author: Martin Blais 5 | Author-Email: blais@furius.ca 6 | ChangeLog: https://raw.githubusercontent.com/blais/xxdiff/master/CHANGES 7 | Download-Snapshots: https://github.com/blais/xxdiff/archive/refs/heads/master.tar.gz 8 | Bugs-Reporting: http://github.com/blais/xxdiff/issues 9 | License: GNU GPL 10 | -------------------------------------------------------------------------------- /VERSION: -------------------------------------------------------------------------------- 1 | 5.1 2 | -------------------------------------------------------------------------------- /adm/README: -------------------------------------------------------------------------------- 1 | In this directory lie scripts that I use to build packages, etc. 2 | These should never be installed in binary distribution. 3 | 4 | All these scripts are made to be run from the root of the xxdiff source tree, 5 | e.g. 6 | 7 | cd xxdiff-/ ; adm/build_rpm 8 | 9 | -------------------------------------------------------------------------------- /adm/build_rpm: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # $RCSfile$ 4 | # 5 | 6 | if [ ! -f "configure.in" -o ! -f "adm/rpm_spec" ]; then 7 | echo "You must be running this script from the topdir directory." 8 | fi 9 | 10 | # Note: this script assume that release_bin has already been called. 11 | 12 | echo "Getting version number" 13 | VERSION=`grep AM_INIT_AUTOMAKE configure.in | sed -e 's/[^0-9]*\([.0-9]*\).*/\1/'` 14 | echo " Version is " $VERSION 15 | 16 | echo "Creating spec file" 17 | sed -e "s/@VERSION@/$VERSION/" adm/rpm_spec > /usr/src/redhat/SPECS/xxdiff-$VERSION.spec 18 | 19 | echo "Copying pristine build" 20 | if [ ! -f "../xxdiff-$VERSION.i386.tar.gz" ]; then 21 | echo "You must be running this script from the topdir directory." 22 | fi 23 | cp ../xxdiff-$VERSION.i386.tar.gz /usr/src/redhat/SOURCES 24 | 25 | echo "Building binary package" 26 | rpm -ba /usr/src/redhat/SPECS/xxdiff-$VERSION.spec 27 | 28 | echo "Copy binary package home" 29 | cp /usr/src/redhat/RPMS/i386/xxdiff-$VERSION*.i386.rpm /home/blais 30 | chmod 777 /home/blais/xxdiff-$VERSION*.i386.rpm 31 | 32 | echo "Done." 33 | -------------------------------------------------------------------------------- /adm/get_version: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # $RCSfile$ 4 | # 5 | 6 | if [ ! -d "adm" -a ! -f "VERSION" ]; then 7 | echo "You must be running this script from the topdir directory." 8 | exit 1; 9 | fi 10 | 11 | # this has become exceedingly simple. 12 | cat VERSION 13 | 14 | -------------------------------------------------------------------------------- /adm/release_bin: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # $RCSfile$ 4 | # 5 | 6 | if [ ! -d "adm" ]; then 7 | echo "You must be running this script from the topdir directory." 8 | exit 1; 9 | fi 10 | 11 | # Package for simple binary release. 12 | VERSION=`adm/get_version` 13 | echo "Making binary release version $VERSION" 14 | 15 | XXDIFF=xxdiff 16 | 17 | PLAT=`adm/config.guess` 18 | case $PLAT in 19 | *sparc*) 20 | PEXT=sparc ;; 21 | 22 | *mips*) 23 | PEXT=mips ;; 24 | 25 | *linux*) 26 | PEXT=i386 ;; 27 | 28 | *apple-darwin*) 29 | PEXT=osx 30 | BUNDLE=xxdiff.app 31 | XXDIFF=$BUNDLE/Contents/MacOS/xxdiff 32 | ;; 33 | esac 34 | 35 | PDIR=xxdiff-$VERSION.$PEXT 36 | ROOT=.. 37 | 38 | mkdir $ROOT/$PDIR 39 | cp -rf bin/* $ROOT/$PDIR 40 | 41 | if [ $PEXT = osx ]; then 42 | rm -f $ROOT/$PDIR/*.dmg # the one created by make deploy 43 | if [ ! -e $ROOT/$PDIR/$BUNDLE/Contents/Resources/qt.conf ]; then 44 | # Copy all required Qt libs in the bundle 45 | macdeployqt $ROOT/$PDIR/$BUNDLE 46 | # Strip 32bit part of the libraries, to just keep the x86_64 part 47 | for lib in `find $ROOT/$PDIR/$BUNDLE -type f -name '*.dylib'; find $ROOT/$PDIR/$BUNDLE/Contents/Frameworks -type f -name 'Qt*'`; do 48 | if [ `lipo $lib -info | grep -c 'Non-fat'` != "1" ]; then 49 | lipo $lib -thin x86_64 -output $lib 50 | fi 51 | done 52 | fi 53 | fi 54 | 55 | strip $ROOT/$PDIR/$XXDIFF 56 | 57 | cp src/xxdiff.1 $ROOT/$PDIR 58 | cp README $ROOT/$PDIR 59 | cp CHANGES $ROOT/$PDIR 60 | 61 | $ROOT/$PDIR/$XXDIFF --help-html > $ROOT/$PDIR/xxdiff-doc.html 62 | 63 | cd .. 64 | if [ $PEXT != osx ]; then 65 | tar cvf - $PDIR | gzip > $PDIR.tar.gz 66 | else 67 | hdiutil create -ov -fs HFS+ -srcfolder $PDIR -volname "xxdiff $VERSION" $PDIR.dmg 68 | fi 69 | 70 | rm -rf $PDIR 71 | -------------------------------------------------------------------------------- /adm/release_i386_rpm: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # $RCSfile$ 4 | # 5 | 6 | if [ ! -d "adm" ]; then 7 | echo "You must be running this script from the topdir directory." 8 | exit 1; 9 | fi 10 | 11 | # Note: this script assume that release_bin has already been called. 12 | 13 | echo "== Getting version number" 14 | VERSION=`adm/get_version` 15 | echo "== Version is " $VERSION 16 | 17 | echo "== Getting and creating top dir" 18 | # Variable subsitution for rpm --showrc output 19 | _usrsrc="/usr/src" 20 | 21 | BUILDROOT=`eval echo $(rpm --showrc | egrep "[^{]_topdir" | cut --fields=2 | sed 's/%/$/')` 22 | mkdir -p $BUILDROOT/{SPECS,SOURCES,BUILD,SRPMS,RPMS} 23 | 24 | # echo "== Creating spec file" 25 | # cp adm/xxdiff-rpm.spec $BUILDROOT/SPECS/xxdiff-$VERSION.spec 26 | 27 | echo "== Copying pristine build to $BUILDROOT/SOURCES" 28 | PRISTINE=../xxdiff-$VERSION.tar.bz2 29 | if [ ! -f "$PRISTINE" ]; then 30 | echo "Cannot find pristine sources in $PRISTINE" 31 | fi 32 | cp $PRISTINE $BUILDROOT/SOURCES 33 | 34 | echo "== Building source and binary packages" 35 | # Note: we use nodeps here because tmake package is not quite common yet under 36 | # rh-7.1. 37 | 38 | # use -bs to build source only 39 | 40 | rpmbuild -ba --nodeps --clean --rmsource adm/xxdiff-rpm.spec 41 | 42 | #rpm -bs --nodeps adm/xxdiff-rpm.spec 43 | #rpm -bs --nodeps --rmsource --rmspec $BUILDROOT/SPECS/xxdiff-$VERSION.spec 44 | #rpm -bs --nodeps --rmsource --rmspec $BUILDROOT/SPECS/xxdiff-$VERSION.spec 45 | #rpm -ts --nodeps --clean --rmsource --rmspec $PRISTINE 46 | 47 | DEST=$HOME 48 | echo "== Copying source and binary packages to $DEST" 49 | if test `uname -m` = "x86_64" 50 | then 51 | arch="x86_64" 52 | else 53 | arch="i386" 54 | fi 55 | cp $BUILDROOT/RPMS/$arch/xxdiff-$VERSION*.$arch.rpm $DEST 56 | cp $BUILDROOT/SRPMS/xxdiff-$VERSION*.src.rpm $DEST 57 | 58 | echo "== Signing package files in $DEST" 59 | rpm --addsign $DEST/xxdiff-$VERSION*.rpm 60 | 61 | echo "== Done." 62 | -------------------------------------------------------------------------------- /adm/release_i586_mdk: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # $RCSfile: release_i586_mdk,v $ 4 | # 5 | 6 | if [ ! -d "adm" ]; then 7 | echo "You must be running this script from the topdir directory." 8 | exit 1; 9 | fi 10 | 11 | # Note: this script assume that release_bin has already been called. 12 | 13 | echo "== Getting version number" 14 | VERSION=`adm/get_version` 15 | echo "== Version is " $VERSION 16 | 17 | echo "== Getting and creating top dir" 18 | BUILDROOT=`rpm --showrc | egrep "[^{]_topdir" | cut --fields=2 | sed -e 'sX%{_usrsrc}X/usr/srcX'` 19 | mkdir -p $BUILDROOT/{SPECS,SOURCES,BUILD,SRPMS,RPMS} 20 | 21 | # echo "== Creating spec file" 22 | # cp adm/xxdiff-mdk.spec $BUILDROOT/SPECS/xxdiff-$VERSION.spec 23 | 24 | echo "== Copying pristine build to $BUILDROOT/SOURCES" 25 | PRISTINE=../xxdiff-$VERSION.tar.gz 26 | if [ ! -f "$PRISTINE" ]; then 27 | echo "Cannot find pristine sources in $PRISTINE" 28 | fi 29 | cp $PRISTINE $BUILDROOT/SOURCES 30 | 31 | echo "== Building source and binary packages" 32 | # Note: we use nodeps here because tmake package is not quite common yet under 33 | # rh-7.1. 34 | 35 | # use -bs to build source only 36 | 37 | rpmbuild -ba --nodeps --clean --rmsource adm/xxdiff-mdk.spec 38 | 39 | #rpm -bs --nodeps adm/xxdiff-mdk.spec 40 | #rpm -bs --nodeps --rmsource --rmspec $BUILDROOT/SPECS/xxdiff-$VERSION.spec 41 | #rpm -bs --nodeps --rmsource --rmspec $BUILDROOT/SPECS/xxdiff-$VERSION.spec 42 | #rpm -ts --nodeps --clean --rmsource --rmspec $PRISTINE 43 | 44 | DEST=$HOME 45 | echo "== Copying source and binary packages to $DEST" 46 | cp $BUILDROOT/RPMS/i586/xxdiff-$VERSION*.i586.rpm $DEST 47 | cp $BUILDROOT/SRPMS/xxdiff-$VERSION*.src.rpm $DEST 48 | 49 | echo "== Signing package files in $DEST" 50 | rpm --addsign $DEST/xxdiff-$VERSION*.rpm 51 | 52 | echo "== Done." 53 | -------------------------------------------------------------------------------- /adm/release_mips_tardist: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # $RCSfile$ 4 | # 5 | 6 | if [ ! -d "adm" ]; then 7 | echo "You must be running this script from the topdir directory." 8 | exit 1; 9 | fi 10 | 11 | VERSION=`adm/get_version` 12 | 13 | SBASE=. 14 | COMPONENTS="xxdiff xxdiff.idb xxdiff.sw xxdiff.man" 15 | DEST=$PWD/../xxdiff-$VERSION.mips.tardist 16 | 17 | # Generate help 18 | $SBASE/src/xxdiff --help-html > $SBASE/src/xxdiff-doc.html 19 | 20 | # Generate distribution. 21 | gendist -sbase $SBASE -idb $SBASE/adm/xxdiff-sgi.idb \ 22 | -spec $SBASE/adm/xxdiff-sgi.spec -dist /tmp -all 23 | 24 | ( cd /tmp ; tar cvf $DEST $COMPONENTS ; rm $COMPONENTS ) 25 | 26 | -------------------------------------------------------------------------------- /adm/release_src: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # $RCSfile$ 4 | # 5 | 6 | if [ ! -d "adm" ]; then 7 | echo "You must be running this script from the topdir directory." 8 | exit 1; 9 | fi 10 | 11 | # Package for source release. 12 | echo "Getting version" 13 | VERSION=`adm/get_version` 14 | UVERSION=`echo $VERSION | sed -e 's/\./_/g'` 15 | RTAG=xxdiff_$UVERSION 16 | echo "Version $VERSION, Release tag $RTAG" 17 | 18 | echo "Creating temporary space to extract source" 19 | TMP=xxdiff-tmp 20 | 21 | cd .. && mkdir $TMP && cd $TMP 22 | 23 | echo "Exporting source from CVS" 24 | CVS_RSH=ssh 25 | export CVS_RSH 26 | cvs -z3 -d:ext:blais@vor.iro.umontreal.ca:/u/blais/cvsroot \ 27 | export -d xxdiff-$VERSION -r $RTAG xxdiff 28 | 29 | if [ $? = 0 ]; then 30 | echo "Compressing source into archive" 31 | tar zcvf ../xxdiff-${VERSION}.tar.gz xxdiff-${VERSION} 32 | else 33 | echo "Error exporting source" 34 | fi 35 | 36 | echo "Cleaning up" 37 | cd .. && rm -rf $TMP 38 | -------------------------------------------------------------------------------- /adm/xxdiff-sgi.idb: -------------------------------------------------------------------------------- 1 | f 0755 root sys usr/local/bin/xxdiff src/xxdiff xxdiff.sw.base 2 | f 0644 root sys usr/local/doc/xxdiff/COPYING COPYING xxdiff.man.legal 3 | f 0644 root sys usr/local/doc/xxdiff/README README xxdiff.man.relnotes 4 | f 0644 root sys usr/local/doc/xxdiff/test/empty src/empty xxdiff.man.test 5 | f 0644 root sys usr/local/doc/xxdiff/test/mine src/mine xxdiff.man.test 6 | f 0644 root sys usr/local/doc/xxdiff/test/older src/older xxdiff.man.test 7 | f 0644 root sys usr/local/doc/xxdiff/test/yours src/yours xxdiff.man.test 8 | f 0644 root sys usr/local/doc/xxdiff/xxdiff-doc.html src/xxdiff-doc.html xxdiff.man.relnotes 9 | f 0644 root sys usr/local/man/man1/xxdiff.1 src/xxdiff.1 xxdiff.man.manpages 10 | f 0644 root sys usr/local/relnotes/xxdiff/CHANGES CHANGES xxdiff.man.relnotes 11 | -------------------------------------------------------------------------------- /adm/xxdiff-sgi.spec: -------------------------------------------------------------------------------- 1 | # -*- mode: fundamental -*- 2 | #Distribution: xxdiff 3 | product xxdiff 4 | id "A graphical front end to the diff command" 5 | 6 | image man 7 | id "Man Pages" 8 | version 1 9 | order 9999 10 | subsys legal 11 | id "GPL Legal Notice" 12 | default 13 | exp xxdiff.man.legal 14 | endsubsys 15 | subsys relnotes 16 | id "Release Notes" 17 | default 18 | exp xxdiff.man.relnotes 19 | endsubsys 20 | subsys manpages 21 | id "Man Pages" 22 | default 23 | exp xxdiff.man.manpages 24 | endsubsys 25 | subsys test 26 | id "Testing files" 27 | exp xxdiff.man.test 28 | endsubsys 29 | endimage 30 | 31 | image sw 32 | id "Software" 33 | version 3002 34 | order 9999 35 | subsys base 36 | id "Base Software" 37 | default 38 | exp xxdiff.sw.base 39 | prereq ( 40 | fw_qt3.sw.lib 1230000000 1239999900 41 | eoe.sw.base 1274627340 1274627340 42 | ) 43 | endsubsys 44 | endimage 45 | endproduct 46 | -------------------------------------------------------------------------------- /bin/.cvsignore: -------------------------------------------------------------------------------- 1 | xxdiff 2 | -------------------------------------------------------------------------------- /bin/svn-foreign: -------------------------------------------------------------------------------- 1 | ../lib/python/xxdiff/scripts/svnforeign.py -------------------------------------------------------------------------------- /bin/xx-cond-replace: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # This file is part of the xxdiff package. See xxdiff for license and details. 3 | 4 | "Use --help for usage or see the xxdiff Python module for details." 5 | 6 | __author__ = 'Martin Blais ' 7 | 8 | from xxdiff.scripts.condreplace import main 9 | main() 10 | 11 | -------------------------------------------------------------------------------- /bin/xx-cvs-diff: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # This file is part of the xxdiff package. See xxdiff for license and details. 3 | 4 | "Use --help for usage or see the xxdiff Python module for details." 5 | 6 | __author__ = 'Martin Blais ' 7 | 8 | from xxdiff.scripts.cvsdiff import main 9 | main() 10 | 11 | -------------------------------------------------------------------------------- /bin/xx-cvs-revcmp: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # This file is part of the xxdiff package. See xxdiff for license and details. 3 | 4 | "Use --help for usage or see the xxdiff Python module for details." 5 | 6 | __author__ = 'Martin Blais ' 7 | 8 | from xxdiff.scripts.cvsrevcmp import main 9 | main() 10 | 11 | -------------------------------------------------------------------------------- /bin/xx-diff-proxy: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # This file is part of the xxdiff package. See xxdiff for license and details. 3 | 4 | "Use --help for usage or see the xxdiff Python module for details." 5 | 6 | __author__ = 'Martin Blais ' 7 | 8 | from xxdiff.scripts.diffproxy import main 9 | main() 10 | 11 | -------------------------------------------------------------------------------- /bin/xx-encrypted: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # This file is part of the xxdiff package. See xxdiff for license and details. 3 | 4 | "Use --help for usage or see the xxdiff Python module for details." 5 | 6 | __author__ = 'Martin Blais ' 7 | 8 | from xxdiff.scripts.encrypted import main 9 | main() 10 | 11 | -------------------------------------------------------------------------------- /bin/xx-filter: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # This file is part of the xxdiff package. See xxdiff for license and details. 3 | 4 | "Use --help for usage or see the xxdiff Python module for details." 5 | 6 | __author__ = 'Martin Blais ' 7 | 8 | from xxdiff.scripts.filter import main 9 | main() 10 | 11 | 12 | -------------------------------------------------------------------------------- /bin/xx-find-grep-sed: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # This file is part of the xxdiff package. See xxdiff for license and details. 3 | 4 | "Use --help for usage or see the xxdiff Python module for details." 5 | 6 | __author__ = 'Martin Blais ' 7 | 8 | from xxdiff.scripts.findgrepsed import main 9 | main() 10 | 11 | 12 | -------------------------------------------------------------------------------- /bin/xx-match: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # This file is part of the xxdiff package. See xxdiff for license and details. 3 | 4 | "Use --help for usage or see the xxdiff Python module for details." 5 | 6 | __author__ = 'Martin Blais ' 7 | 8 | from xxdiff.scripts.match import main 9 | main() 10 | 11 | -------------------------------------------------------------------------------- /bin/xx-p4-unmerge: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | """ 3 | A wrapper script that will split up a p4 file with merge conflicts to three 4 | files and invoke xxdiff on it. 5 | """ 6 | 7 | # stdlib imports 8 | import sys, os, shutil, re, tempfile 9 | 10 | try: 11 | from StringIO import StringIO ## for Python 2 12 | except ImportError: 13 | from io import StringIO ## for Python 3 14 | 15 | # xxdiff imports 16 | from xxdiff import invoke 17 | 18 | 19 | def unmerge_file(filename): 20 | file_original = tempfile.NamedTemporaryFile() 21 | file_theirs = tempfile.NamedTemporaryFile() 22 | file_yours = tempfile.NamedTemporaryFile() 23 | files = file_original, file_theirs, file_yours 24 | file_current = None 25 | for line in open(filename): 26 | if line.startswith('>>>> ORIGINAL'): 27 | file_current = file_original 28 | elif line.startswith('==== THEIRS'): 29 | file_current = file_theirs 30 | elif line.startswith('==== YOURS'): 31 | file_current = file_yours 32 | elif line.startswith('<<<<'): 33 | file_current = None 34 | elif file_current is None: 35 | for file_ in files: 36 | file_.write(line) 37 | else: 38 | file_current.write(line) 39 | for file_ in files: 40 | file_.flush() 41 | return files 42 | 43 | 44 | def main(): 45 | import optparse 46 | parser = optparse.OptionParser(__doc__.strip()) 47 | invoke.options_graft(parser) 48 | opts, args = parser.parse_args() 49 | invoke.options_validate(opts, parser) 50 | 51 | if len(args) != 1: 52 | parser.error("You need to provide 1 file argumnet.") 53 | filename, = args 54 | 55 | file_original, file_theirs, file_yours = unmerge_file(filename) 56 | 57 | 58 | # Invoke xxdiff. 59 | decision, mergedf, __retcode = invoke.xxdiff_decision( 60 | opts, 61 | '--merged-filename=%s' % filename, 62 | '--title1=Current', 63 | '--title2=Ancestor', 64 | '--title3=Merging', 65 | file_yours.name, file_original.name, file_theirs.name) 66 | 67 | 68 | if __name__ == '__main__': 69 | sys.exit(main()) 70 | -------------------------------------------------------------------------------- /bin/xx-pyline: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # This file is part of the xxdiff package. See xxdiff for license and details. 3 | 4 | "Use --help for usage or see the xxdiff Python module for details." 5 | 6 | __author__ = 'Martin Blais ' 7 | 8 | from xxdiff.scripts.pyline import main 9 | main() 10 | 11 | 12 | -------------------------------------------------------------------------------- /bin/xx-rename: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # This file is part of the xxdiff package. See xxdiff for license and details. 3 | 4 | "Use --help for usage or see the xxdiff Python module for details." 5 | 6 | __author__ = 'Martin Blais ' 7 | 8 | from xxdiff.scripts.rename import main 9 | main() 10 | -------------------------------------------------------------------------------- /bin/xx-sql-schemas: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # This file is part of the xxdiff package. See xxdiff for license and details. 3 | 4 | "Use --help for usage or see the xxdiff Python module for details." 5 | 6 | __author__ = 'Martin Blais ' 7 | 8 | from xxdiff.scripts.sqlschemas import main 9 | main() 10 | 11 | -------------------------------------------------------------------------------- /bin/xx-svn-diff: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # This file is part of the xxdiff package. See xxdiff for license and details. 3 | 4 | "Use --help for usage or see the xxdiff Python module for details." 5 | 6 | __author__ = 'Martin Blais ' 7 | 8 | from xxdiff.scripts.svndiff import main 9 | main() 10 | 11 | -------------------------------------------------------------------------------- /bin/xx-svn-resolve: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # This file is part of the xxdiff package. See xxdiff for license and details. 3 | 4 | "Use --help for usage or see the xxdiff Python module for details." 5 | 6 | __author__ = 'Martin Blais ' 7 | 8 | from xxdiff.scripts.svnresolve import main 9 | main() 10 | 11 | -------------------------------------------------------------------------------- /bugs/bug-xxdiff-rendering.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/bugs/bug-xxdiff-rendering.png -------------------------------------------------------------------------------- /doc/Makefile: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env make 2 | # 3 | # $Source$ 4 | # $Id: Makefile 766 2004-02-25 17:37:35Z blais $ 5 | # 6 | # Automatic generation of HTML for tools. 7 | 8 | USERMANUAL=xxdiff-doc.html 9 | 10 | TXTDOC= \ 11 | xxdiff-integration.txt \ 12 | xxdiff-secrets.txt \ 13 | xxdiff-scripts.txt 14 | 15 | TXTDOC_HTML = $(TXTDOC:.txt=.html) 16 | 17 | TXTHTML_CONVERT=projects-rst2html --project-header --project-home="http://furius.ca/xxdiff" 18 | 19 | BIN=../bin 20 | 21 | # TOOLS= \ 22 | # condreplace \ 23 | # findgrepsed \ 24 | # cvsdiff \ 25 | # diffproxy \ 26 | # svndiff \ 27 | # encrypted \ 28 | # match \ 29 | # patch 30 | 31 | # TMPFILE=/tmp/xxdiff-doc-convert.tmp 32 | # SCRIPTS = $(patsubst %,$(BIN)/%,$(TOOLS)) 33 | # TOOLS_HTML = $(TOOLS:=.html) 34 | 35 | # $(TOOLS_HTML) : %.html : $(BIN)/% 36 | # python-genpage -l $< -o $(TMPFILE) $< 37 | # $(TXTHTML_CONVERT) $(TMPFILE) $@ 38 | # rm -f $(TMPFILE) 39 | 40 | 41 | .SUFFIXES: .txt .html 42 | 43 | all: $(USERMANUAL) $(TXTDOC_HTML) 44 | 45 | .txt.html: 46 | $(TXTHTML_CONVERT) $< $@ 47 | 48 | $(USERMANUAL): $(BIN)/xxdiff 49 | $(BIN)/xxdiff --help-html > $@ 50 | 51 | 52 | clean: 53 | rm -f $(USERMANUAL) 54 | rm -f $(TOOLS_HTML) 55 | rm -f $(TXTDOC_HTML) 56 | 57 | debug: 58 | @echo TOOLS 59 | @echo $(TOOLS) 60 | @echo SCRIPTS 61 | @echo $(SCRIPTS) 62 | @echo TOOLS_HTML 63 | @echo $(TOOLS_HTML) 64 | -------------------------------------------------------------------------------- /doc/equals.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/doc/equals.png -------------------------------------------------------------------------------- /doc/horiz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/doc/horiz.png -------------------------------------------------------------------------------- /doc/perhunk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/doc/perhunk.png -------------------------------------------------------------------------------- /doc/rma.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/doc/rma.png -------------------------------------------------------------------------------- /doc/screenshot-sql-schema-compare.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/doc/screenshot-sql-schema-compare.png -------------------------------------------------------------------------------- /doc/screenshots/gallery/Makefile: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env make 2 | 3 | ROOT = .. 4 | 5 | redo: 6 | cd $(ROOT) ; /home/blais/p/curator/bin/curator-hs . 7 | -------------------------------------------------------------------------------- /doc/screenshots/gallery/highslide/graphics/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/doc/screenshots/gallery/highslide/graphics/close.png -------------------------------------------------------------------------------- /doc/screenshots/gallery/highslide/graphics/closeX.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/doc/screenshots/gallery/highslide/graphics/closeX.png -------------------------------------------------------------------------------- /doc/screenshots/gallery/highslide/graphics/controlbar-black-border.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/doc/screenshots/gallery/highslide/graphics/controlbar-black-border.gif -------------------------------------------------------------------------------- /doc/screenshots/gallery/highslide/graphics/controlbar-text-buttons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/doc/screenshots/gallery/highslide/graphics/controlbar-text-buttons.png -------------------------------------------------------------------------------- /doc/screenshots/gallery/highslide/graphics/controlbar-white-small.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/doc/screenshots/gallery/highslide/graphics/controlbar-white-small.gif -------------------------------------------------------------------------------- /doc/screenshots/gallery/highslide/graphics/controlbar-white.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/doc/screenshots/gallery/highslide/graphics/controlbar-white.gif -------------------------------------------------------------------------------- /doc/screenshots/gallery/highslide/graphics/controlbar2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/doc/screenshots/gallery/highslide/graphics/controlbar2.gif -------------------------------------------------------------------------------- /doc/screenshots/gallery/highslide/graphics/controlbar3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/doc/screenshots/gallery/highslide/graphics/controlbar3.gif -------------------------------------------------------------------------------- /doc/screenshots/gallery/highslide/graphics/controlbar4-hover.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/doc/screenshots/gallery/highslide/graphics/controlbar4-hover.gif -------------------------------------------------------------------------------- /doc/screenshots/gallery/highslide/graphics/controlbar4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/doc/screenshots/gallery/highslide/graphics/controlbar4.gif -------------------------------------------------------------------------------- /doc/screenshots/gallery/highslide/graphics/fullexpand.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/doc/screenshots/gallery/highslide/graphics/fullexpand.gif -------------------------------------------------------------------------------- /doc/screenshots/gallery/highslide/graphics/geckodimmer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/doc/screenshots/gallery/highslide/graphics/geckodimmer.png -------------------------------------------------------------------------------- /doc/screenshots/gallery/highslide/graphics/icon.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/doc/screenshots/gallery/highslide/graphics/icon.gif -------------------------------------------------------------------------------- /doc/screenshots/gallery/highslide/graphics/loader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/doc/screenshots/gallery/highslide/graphics/loader.gif -------------------------------------------------------------------------------- /doc/screenshots/gallery/highslide/graphics/loader.white.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/doc/screenshots/gallery/highslide/graphics/loader.white.gif -------------------------------------------------------------------------------- /doc/screenshots/gallery/highslide/graphics/outlines/Outlines.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/doc/screenshots/gallery/highslide/graphics/outlines/Outlines.psd -------------------------------------------------------------------------------- /doc/screenshots/gallery/highslide/graphics/outlines/beveled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/doc/screenshots/gallery/highslide/graphics/outlines/beveled.png -------------------------------------------------------------------------------- /doc/screenshots/gallery/highslide/graphics/outlines/drop-shadow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/doc/screenshots/gallery/highslide/graphics/outlines/drop-shadow.png -------------------------------------------------------------------------------- /doc/screenshots/gallery/highslide/graphics/outlines/glossy-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/doc/screenshots/gallery/highslide/graphics/outlines/glossy-dark.png -------------------------------------------------------------------------------- /doc/screenshots/gallery/highslide/graphics/outlines/outer-glow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/doc/screenshots/gallery/highslide/graphics/outlines/outer-glow.png -------------------------------------------------------------------------------- /doc/screenshots/gallery/highslide/graphics/outlines/rounded-black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/doc/screenshots/gallery/highslide/graphics/outlines/rounded-black.png -------------------------------------------------------------------------------- /doc/screenshots/gallery/highslide/graphics/outlines/rounded-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/doc/screenshots/gallery/highslide/graphics/outlines/rounded-white.png -------------------------------------------------------------------------------- /doc/screenshots/gallery/highslide/graphics/resize.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/doc/screenshots/gallery/highslide/graphics/resize.gif -------------------------------------------------------------------------------- /doc/screenshots/gallery/highslide/graphics/scrollarrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/doc/screenshots/gallery/highslide/graphics/scrollarrows.png -------------------------------------------------------------------------------- /doc/screenshots/gallery/highslide/graphics/zoomin.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/doc/screenshots/gallery/highslide/graphics/zoomin.cur -------------------------------------------------------------------------------- /doc/screenshots/gallery/highslide/graphics/zoomout.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/doc/screenshots/gallery/highslide/graphics/zoomout.cur -------------------------------------------------------------------------------- /doc/screenshots/gallery/thumbs/thumbnail.xxdiff-snap-about.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/doc/screenshots/gallery/thumbs/thumbnail.xxdiff-snap-about.jpg -------------------------------------------------------------------------------- /doc/screenshots/gallery/thumbs/thumbnail.xxdiff-snap-dirs2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/doc/screenshots/gallery/thumbs/thumbnail.xxdiff-snap-dirs2.jpg -------------------------------------------------------------------------------- /doc/screenshots/gallery/thumbs/thumbnail.xxdiff-snap-doc.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/doc/screenshots/gallery/thumbs/thumbnail.xxdiff-snap-doc.jpg -------------------------------------------------------------------------------- /doc/screenshots/gallery/thumbs/thumbnail.xxdiff-snap-files2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/doc/screenshots/gallery/thumbs/thumbnail.xxdiff-snap-files2.jpg -------------------------------------------------------------------------------- /doc/screenshots/gallery/thumbs/thumbnail.xxdiff-snap-files3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/doc/screenshots/gallery/thumbs/thumbnail.xxdiff-snap-files3.jpg -------------------------------------------------------------------------------- /doc/screenshots/gallery/thumbs/thumbnail.xxdiff-snap-merged.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/doc/screenshots/gallery/thumbs/thumbnail.xxdiff-snap-merged.jpg -------------------------------------------------------------------------------- /doc/screenshots/gallery/thumbs/thumbnail.xxdiff-snap-opt1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/doc/screenshots/gallery/thumbs/thumbnail.xxdiff-snap-opt1.jpg -------------------------------------------------------------------------------- /doc/screenshots/gallery/thumbs/thumbnail.xxdiff-snap-opt2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/doc/screenshots/gallery/thumbs/thumbnail.xxdiff-snap-opt2.jpg -------------------------------------------------------------------------------- /doc/screenshots/gallery/thumbs/thumbnail.xxdiff-snap-opt3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/doc/screenshots/gallery/thumbs/thumbnail.xxdiff-snap-opt3.jpg -------------------------------------------------------------------------------- /doc/screenshots/gallery/thumbs/thumbnail.xxdiff-snap-opt4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/doc/screenshots/gallery/thumbs/thumbnail.xxdiff-snap-opt4.jpg -------------------------------------------------------------------------------- /doc/screenshots/gallery/thumbs/thumbnail.xxdiff-snap-opt5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/doc/screenshots/gallery/thumbs/thumbnail.xxdiff-snap-opt5.jpg -------------------------------------------------------------------------------- /doc/screenshots/xxdiff-snap-about.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/doc/screenshots/xxdiff-snap-about.jpg -------------------------------------------------------------------------------- /doc/screenshots/xxdiff-snap-dirs2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/doc/screenshots/xxdiff-snap-dirs2.jpg -------------------------------------------------------------------------------- /doc/screenshots/xxdiff-snap-doc.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/doc/screenshots/xxdiff-snap-doc.jpg -------------------------------------------------------------------------------- /doc/screenshots/xxdiff-snap-files2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/doc/screenshots/xxdiff-snap-files2.jpg -------------------------------------------------------------------------------- /doc/screenshots/xxdiff-snap-files3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/doc/screenshots/xxdiff-snap-files3.jpg -------------------------------------------------------------------------------- /doc/screenshots/xxdiff-snap-merged.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/doc/screenshots/xxdiff-snap-merged.jpg -------------------------------------------------------------------------------- /doc/screenshots/xxdiff-snap-opt1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/doc/screenshots/xxdiff-snap-opt1.jpg -------------------------------------------------------------------------------- /doc/screenshots/xxdiff-snap-opt2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/doc/screenshots/xxdiff-snap-opt2.jpg -------------------------------------------------------------------------------- /doc/screenshots/xxdiff-snap-opt3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/doc/screenshots/xxdiff-snap-opt3.jpg -------------------------------------------------------------------------------- /doc/screenshots/xxdiff-snap-opt4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/doc/screenshots/xxdiff-snap-opt4.jpg -------------------------------------------------------------------------------- /doc/screenshots/xxdiff-snap-opt5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/doc/screenshots/xxdiff-snap-opt5.jpg -------------------------------------------------------------------------------- /doc/select.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/doc/select.png -------------------------------------------------------------------------------- /doc/xxdiff-secrets.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/doc/xxdiff-secrets.html -------------------------------------------------------------------------------- /doc/xxdiff-users.txt: -------------------------------------------------------------------------------- 1 | =================== 2 | User Comments 3 | =================== 4 | :Author: Martin Blais 5 | :Date: 2006-11-21 6 | :Abstract: 7 | 8 | Some feel-good user comments submitted over the years. 9 | 10 | .. contents:: 11 | .. 12 | 1 Oracle 13 | 2 IBM 14 | 3 NASA 15 | 4 Others 16 | 17 | 18 | Oracle 19 | ====== 20 | 21 | FIXME: TODO, find old email 22 | 23 | 24 | 25 | IBM 26 | === 27 | 28 | FIXME: TODO, find old email 29 | 30 | 31 | 32 | NASA 33 | ==== 34 | 35 | “Many of us here at NASA Langley Research Center use your tool for 36 | graphical diffs during software development. We also use 37 | xxdiff-subversion integration into subversion. I personally can no 38 | longer read context diff output as I have gotten so used to xxdiff (well 39 | at least that's what I tell people when I refuse to work without xxdiff).” 40 | 41 | Thanks for the great work! 42 | 43 | ---Bill Jones, NASA Langley Research Center 44 | 45 | 46 | 47 | Others 48 | ====== 49 | 50 | find other comments. 51 | 52 | -------------------------------------------------------------------------------- /etc/bashrc: -------------------------------------------------------------------------------- 1 | # 2 | # Bash configuration for this project. 3 | # 4 | 5 | # Make bash invoke optcomplete completion for the scripts. 6 | # 7 | # This is not necessary for other users, the scripts will work without 8 | # auto-generated programmable completion. 9 | complete -F _optcomplete svn-foreign 10 | complete -F _optcomplete xx-cond-replace 11 | complete -F _optcomplete xx-cvs-diff 12 | complete -F _optcomplete xx-cvs-revcmp 13 | complete -F _optcomplete xx-diff-proxy 14 | complete -F _optcomplete xx-encrypted 15 | complete -F _optcomplete xx-filter 16 | complete -F _optcomplete xx-find-grep-sed 17 | complete -F _optcomplete xx-match 18 | complete -F _optcomplete xx-pyline 19 | complete -F _optcomplete xx-rename 20 | complete -F _optcomplete xx-sql-schemas 21 | complete -F _optcomplete xx-svn-diff 22 | complete -F _optcomplete xx-svn-resolve 23 | -------------------------------------------------------------------------------- /etc/docutilsrc: -------------------------------------------------------------------------------- 1 | README index.html @header 2 | tools/index.txt @header 3 | doc/xxdiff-integration.txt @header 4 | doc/xxdiff-secrets.txt @header 5 | doc/xxdiff-scripts.txt @header 6 | -------------------------------------------------------------------------------- /etc/env: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # $Id: env 697 2003-12-28 06:43:46Z blais $ 4 | # 5 | # My personal environment initialization for this project. This file is 6 | # executed automatically by my shell initialization framework from my projects 7 | # directory. Note to packagers: this file is useless to anyone but me. 8 | 9 | USERPATH=$USERPATH:$PROJDIR/bin 10 | PYTHONPATH=$PYTHONPATH:$PROJDIR/lib/python 11 | 12 | XXDIFF_EDITOR="xterm -e '/usr/bin/vim %s'" 13 | export XXDIFF_EDITOR 14 | -------------------------------------------------------------------------------- /etc/header-background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/etc/header-background.jpg -------------------------------------------------------------------------------- /lib/python/xxdiff/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/lib/python/xxdiff/__init__.py -------------------------------------------------------------------------------- /lib/python/xxdiff/db/__init__.py: -------------------------------------------------------------------------------- 1 | """ 2 | This package contains support for extracting stuff from various databases. 3 | """ 4 | 5 | -------------------------------------------------------------------------------- /lib/python/xxdiff/patches.py: -------------------------------------------------------------------------------- 1 | # This file is part of the xxdiff package. See xxdiff for license and details. 2 | 3 | """ 4 | Functions to manipulate patches. 5 | """ 6 | 7 | __author__ = 'Martin Blais ' 8 | 9 | 10 | # stdlib imports. 11 | import re 12 | 13 | 14 | def splitpatch(text): 15 | """ 16 | Split output in chunks starting with ^Index. Returns a list of pairs 17 | (tuples), each with (filename, patch) contents. 18 | """ 19 | 20 | ## splitre = re.compile('^Index: (.*)$', re.M) 21 | splitre = re.compile('^Index: (.*)$', re.M) 22 | chunks = [] 23 | curbeg, curfn = None, None 24 | for mo in splitre.finditer(text): 25 | if curbeg != None: 26 | assert curfn 27 | chunks.append( (curfn, text[curbeg:mo.start()]) ) 28 | curbeg = mo.start() 29 | curfn = mo.group(1) 30 | if curbeg != None: 31 | chunks.append( (curfn, text[curbeg:]) ) 32 | 33 | return chunks 34 | 35 | 36 | -------------------------------------------------------------------------------- /lib/python/xxdiff/resilient.py: -------------------------------------------------------------------------------- 1 | # This file is part of the xxdiff package. See xxdiff for license and details. 2 | 3 | """ 4 | Resilient files. 5 | 6 | This is used to manage a location where merge comments and preview history are 7 | saved between sessions. 8 | 9 | Support a per-user directory to hold resilient temporary files. We want to be 10 | able to recycle the files stored in there if the process/script has been 11 | interrupted for some reason--this is quite common for source code, as the 12 | reviewer often realizes he forgot to do something or other, this is a benefit of 13 | reviewing diffs before committing--if the same directories/files are to be 14 | checked-in. We do not want to store the files in the CWD because that might 15 | change, and it may later interfere with other tools, e.g. show up in 'svn 16 | status' if left behind. Therefore, we store the comments file in the user's 17 | home directory under a hash computed from the absolute paths of the directories 18 | given as arguments. 19 | """ 20 | 21 | __author__ = 'Martin Blais ' 22 | 23 | 24 | # stdlib imports. 25 | import os, hashlib 26 | from os.path import * 27 | 28 | # xxdiff imports. 29 | from xxdiff.scripts import script_name 30 | 31 | 32 | resilient_dir = join(os.environ['HOME'], '.%s' % script_name) 33 | 34 | def resilient_for_paths(paths): 35 | """ 36 | Compute a unique file or directory name for a set of paths (considered 37 | unique as absolute) for a specific process. 38 | """ 39 | 40 | # Compute a unique hash from the given absolute paths. 41 | comhash = hashlib.md5() 42 | for p in paths: 43 | comhash.update(abspath(p)) 44 | resdir = join(resilient_dir, comhash.hexdigest()) 45 | return resdir 46 | 47 | def resilient_remove(fn): 48 | """ 49 | Removes a resilient file, and then checks if the resilient file's parent 50 | directory can be removed as well. 51 | """ 52 | os.unlink(fn) 53 | parent = dirname(fn) 54 | if not os.listdir(parent): 55 | os.rmdir(parent) 56 | 57 | 58 | -------------------------------------------------------------------------------- /lib/python/xxdiff/scm/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/lib/python/xxdiff/scm/__init__.py -------------------------------------------------------------------------------- /lib/python/xxdiff/scm/clearcase.py: -------------------------------------------------------------------------------- 1 | # This file is part of the xxdiff package. See xxdiff for license and details. 2 | 3 | """ 4 | Functions for Rational ClearCase. 5 | """ 6 | 7 | __author__ = 'Martin Blais ' 8 | 9 | 10 | # stdlib imports. 11 | from subprocess import Popen, call, PIPE 12 | 13 | # xxdiff imports. 14 | from xxdiff.scripts import script_name 15 | 16 | 17 | def is_checked_out(filename): 18 | """ 19 | Check if the file is already checked out. 20 | """ 21 | p = Popen(['cleartool', 'desc', '-s', filename], stdout=PIPE, stderr=PIPE, text=True) 22 | stdout, stderr = p.communicate() 23 | if p.returncode != 0: 24 | raise SystemExit( stderr ) 25 | 26 | if stdout.strip().endswith('CHECKEDOUT'): 27 | return True 28 | 29 | return False 30 | 31 | def checkout(filename): 32 | """ 33 | Checkout the given filename from ClearCase. 34 | """ 35 | msg = 'Checked out by %s' % script_name 36 | 37 | call(['cleartool', 'co', '-comment', msg, filename]) 38 | # FIXME: TODO -- you need to check the return code. 39 | 40 | 41 | def commit(filename): 42 | """ 43 | Commit the given filename into CVS. 44 | """ 45 | msg = 'Committed by %s' % script_name 46 | call(['cleartool', 'commit', '-command', msg, filename]) 47 | 48 | 49 | -------------------------------------------------------------------------------- /lib/python/xxdiff/scm/cvs.py: -------------------------------------------------------------------------------- 1 | # This file is part of the xxdiff package. See xxdiff for license and details. 2 | 3 | """ 4 | Functions for CVS. 5 | """ 6 | 7 | __author__ = 'Martin Blais ' 8 | 9 | 10 | # stdlib imports. 11 | import os, re 12 | from subprocess import call 13 | 14 | 15 | def is_checked_out(filename): 16 | """ 17 | Return True if the file is checked out. 18 | """ 19 | return os.access(os.W_OK) 20 | 21 | 22 | def checkout(filename): 23 | """ 24 | Checkout the given filename from CVS. 25 | """ 26 | call(['cvs', 'edit', filename]) 27 | 28 | 29 | def commit(filename): 30 | """ 31 | Commit the given filename into CVS. 32 | """ 33 | call(['cvs', 'commit', filename]) 34 | 35 | 36 | # Note: this is cut-n-paste from cvs.py, for simplicity of distribution. 37 | def unmerge2(text): 38 | """ 39 | Unmerges conflicts between two files and returns the two split original 40 | files. This is not meant to work with three files. 41 | """ 42 | begre = re.compile('^<<<<<<< (.*)') 43 | sepre = re.compile('^=======\\s*$') 44 | endre = re.compile('^>>>>>>> (.*)') 45 | 46 | OUT, IN1, IN2 = 0, 1, 2 47 | 48 | status = OUT 49 | lines1, lines2 = [], [] 50 | for l in text.splitlines(): 51 | if status == OUT: 52 | if begre.match(l): 53 | status = IN1 54 | else: 55 | lines1.append(l) 56 | lines2.append(l) 57 | elif status == IN1: 58 | if sepre.match(l): 59 | status = IN2 60 | else: 61 | lines1.append(l) 62 | elif status == IN2: 63 | if endre.match(l): 64 | status = OUT 65 | else: 66 | lines2.append(l) 67 | 68 | text1 = os.linesep.join(lines1) 69 | text2 = os.linesep.join(lines2) 70 | 71 | return text1, text2 72 | 73 | -------------------------------------------------------------------------------- /lib/python/xxdiff/scm/perforce.py: -------------------------------------------------------------------------------- 1 | # This file is part of the xxdiff package. See xxdiff for license and details. 2 | 3 | """ 4 | Functions for Perforce. 5 | """ 6 | 7 | __author__ = 'Martin Blais ' 8 | 9 | 10 | # stdlib imports. 11 | import re 12 | from subprocess import Popen, call, PIPE 13 | 14 | # xxdiff imports. 15 | from xxdiff.scripts import script_name 16 | 17 | 18 | P4EXEC = 'g4' # Temporary. 19 | 20 | 21 | def is_checked_out(filename): 22 | """ 23 | Check if the file is already checked out. 24 | """ 25 | p = Popen([P4EXEC, 'desc', '-n', filename], stdout=PIPE, stderr=PIPE, text=True) 26 | stdout, stderr = p.communicate() 27 | if p.returncode != 0: 28 | raise SystemExit( stderr ) 29 | 30 | if re.search('opened for edit', stdout.strip()): 31 | return True 32 | 33 | return False 34 | 35 | def checkout(filename): 36 | """ 37 | Checkout the given filename for writable edit in Perforce. 38 | """ 39 | call([P4EXEC, 'edit', filename]) 40 | 41 | 42 | def commit(filename): 43 | """ 44 | Commit the given filename into a CL. 45 | """ 46 | call([P4EXEC, 'change', filename]) 47 | -------------------------------------------------------------------------------- /old/art/pixmaps-submission/.cvsignore: -------------------------------------------------------------------------------- 1 | .xvpics 2 | -------------------------------------------------------------------------------- /old/art/pixmaps-submission/diff_files.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * diff_files_xpm[] = { 3 | "32 32 2 1", 4 | " c None", 5 | ". c #000000", 6 | " ", 7 | " ", 8 | " . .... ", 9 | " . ... ", 10 | " .. ... ", 11 | " .. . .. . ", 12 | " ... .... .. ... ", 13 | " ... ..... ...... ", 14 | " .... .... ..... ", 15 | " .... ", 16 | " ..... ... .. ", 17 | " ..... .... ... ", 18 | " ...... .... .... ", 19 | " ...... .... ... ", 20 | " ....... .. .. ", 21 | " .. ", 22 | " .. ", 23 | " .. ", 24 | " .. ", 25 | " .. ", 26 | " .. ", 27 | " .. ", 28 | " .. ", 29 | " .. ", 30 | " .. ", 31 | " .. ", 32 | " .. ", 33 | " .. ", 34 | " .. ", 35 | " ... ", 36 | " .. ", 37 | " "}; 38 | -------------------------------------------------------------------------------- /old/art/pixmaps-submission/diff_files_next.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * diff_files_next_xpm[] = { 3 | "32 32 2 1", 4 | " c None", 5 | ". c #000000", 6 | " ", 7 | " ", 8 | " . .... ", 9 | " . ... ", 10 | " .. ... ", 11 | " .. . .. . ", 12 | " ... .... .. ... ", 13 | " ... ..... ...... ", 14 | " .... .... ..... ", 15 | " .... ", 16 | " ..... ... .. ", 17 | " ..... .... ... ", 18 | " ...... .... .... ", 19 | " ...... .... ... ", 20 | " ....... .. .. ", 21 | " .. ", 22 | " .. ... .. ", 23 | " .. ... .. ", 24 | " .. ..... ... ", 25 | " .. ..... ... ", 26 | " .. ..... ... ", 27 | " .. .. ... .. ", 28 | " .. ... ... .. ", 29 | " .. ... .... ... ", 30 | " .. ... ... ... ", 31 | " .. .. ...... ", 32 | " .. .. ..... ", 33 | " .. ... ..... ", 34 | " .. ... .... ", 35 | " ... ... .... ", 36 | " .. .. ... ", 37 | " "}; 38 | -------------------------------------------------------------------------------- /old/art/pixmaps-submission/next_difference.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * next_difference_xpm[] = { 3 | "32 32 25 1", 4 | " c None", 5 | ". c #FFFFCE", 6 | "+ c #000000", 7 | "@ c #001624", 8 | "# c #2A6B8C", 9 | "$ c #00568C", 10 | "% c #00416A", 11 | "& c #00111D", 12 | "* c #004E7F", 13 | "= c #006BAE", 14 | "- c #0079C5", 15 | "; c #2A5467", 16 | "> c #009DFF", 17 | ", c #002D4A", 18 | "' c #001928", 19 | ") c #00395D", 20 | "! c #000305", 21 | "~ c #001E31", 22 | "{ c #003353", 23 | "] c #003455", 24 | "^ c #000A0F", 25 | "/ c #EDCBED", 26 | "( c #001A2A", 27 | "_ c #0068AA", 28 | ": c #0082D4", 29 | "................................", 30 | "..............++++..............", 31 | ".............+@#$%+.............", 32 | "............+&*=-=*&............", 33 | "............+;$->-$+............", 34 | "............+,*=-=*+............", 35 | "............+')*$*)+............", 36 | ".............!~,{,+.............", 37 | " +]*^ ", 38 | " +]*+ ", 39 | " +]*+ ", 40 | " +]*+ ", 41 | "//////////////+]*+//////////////", 42 | "///////////++++]*++++///////////", 43 | "///////////+++(]*_:++///////////", 44 | "////////////++(]*_++////////////", 45 | "/////////////++]*++/////////////", 46 | "//////////////++++//////////////", 47 | "///////////////++///////////////", 48 | "////////////////////////////////", 49 | " ", 50 | " ", 51 | " ", 52 | " ", 53 | "................................", 54 | "................................", 55 | "................................", 56 | "................................", 57 | "................................", 58 | "................................", 59 | "................................", 60 | "................................"}; 61 | -------------------------------------------------------------------------------- /old/art/pixmaps-submission/next_unselected_difference.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * next_unselected_difference_xpm[] = { 3 | "32 32 25 1", 4 | " c None", 5 | ". c #FFFFCE", 6 | "+ c #000000", 7 | "@ c #001624", 8 | "# c #2A6B8C", 9 | "$ c #00568C", 10 | "% c #00416A", 11 | "& c #00111D", 12 | "* c #004E7F", 13 | "= c #006BAE", 14 | "- c #0079C5", 15 | "; c #2A5467", 16 | "> c #009DFF", 17 | ", c #002D4A", 18 | "' c #001928", 19 | ") c #00395D", 20 | "! c #000305", 21 | "~ c #001E31", 22 | "{ c #003353", 23 | "] c #003455", 24 | "^ c #000A0F", 25 | "/ c #EDCBED", 26 | "( c #001A2A", 27 | "_ c #0068AA", 28 | ": c #0082D4", 29 | "................................", 30 | "................................", 31 | "................................", 32 | "..............++++..............", 33 | ".............+@#$%+.............", 34 | "............+&*=-=*&............", 35 | "............+;$->-$+............", 36 | "............+,*=-=*+............", 37 | " +')*$*)+ ", 38 | " !~,{,+ ", 39 | " +]*^ ", 40 | " +]*+ ", 41 | "//////////////+]*+//////////////", 42 | "//////////////+]*+//////////////", 43 | "//////////////+]*+//////////////", 44 | "//////////////+]*+//////////////", 45 | "//////////////+]*+//////////////", 46 | "//////////////+]*+//////////////", 47 | "//////////////+]*+//////////////", 48 | "//////////////+]*+//////////////", 49 | " +]*+ ", 50 | " +]*+ ", 51 | " +]*+ ", 52 | " ++++]*++++ ", 53 | "...........+++(]*_:++...........", 54 | "............++(]*_++............", 55 | ".............++]*++.............", 56 | "..............++++..............", 57 | "...............++...............", 58 | "................................", 59 | "................................", 60 | "................................"}; 61 | -------------------------------------------------------------------------------- /old/art/pixmaps-submission/previous_difference.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * previous_difference_xpm[] = { 3 | "32 32 25 1", 4 | " c None", 5 | ". c #FFFFCE", 6 | "+ c #EDCBED", 7 | "@ c #000000", 8 | "# c #003455", 9 | "$ c #004E7F", 10 | "% c #001A2A", 11 | "& c #0068AA", 12 | "* c #0082D4", 13 | "= c #000A0F", 14 | "- c #000305", 15 | "; c #001E31", 16 | "> c #002D4A", 17 | ", c #003353", 18 | "' c #001928", 19 | ") c #00395D", 20 | "! c #00568C", 21 | "~ c #006BAE", 22 | "{ c #0079C5", 23 | "] c #2A5467", 24 | "^ c #009DFF", 25 | "/ c #00111D", 26 | "( c #001624", 27 | "_ c #2A6B8C", 28 | ": c #00416A", 29 | "................................", 30 | "................................", 31 | "................................", 32 | "................................", 33 | "................................", 34 | "................................", 35 | "................................", 36 | "................................", 37 | " ", 38 | " ", 39 | " ", 40 | " ", 41 | "++++++++++++++++++++++++++++++++", 42 | "+++++++++++++++@@+++++++++++++++", 43 | "++++++++++++++@@@@++++++++++++++", 44 | "+++++++++++++@@#$@@+++++++++++++", 45 | "++++++++++++@@%#$&@@++++++++++++", 46 | "+++++++++++@@@%#$&*@@+++++++++++", 47 | "+++++++++++@@@@#$@@@@+++++++++++", 48 | "++++++++++++++@#$@++++++++++++++", 49 | " @#$@ ", 50 | " @#$@ ", 51 | " @#$@ ", 52 | " @#$= ", 53 | ".............-;>,>@.............", 54 | "............@')$!$)@............", 55 | "............@>$~{~$@............", 56 | "............@]!{^{!@............", 57 | "............@/$~{~$/............", 58 | ".............@(_!:@.............", 59 | "..............@@@@..............", 60 | "................................"}; 61 | -------------------------------------------------------------------------------- /old/art/pixmaps-submission/previous_unselected_difference.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * previous_unselected_difference_xpm[] = { 3 | "32 32 25 1", 4 | " c None", 5 | ". c #FFFFCE", 6 | "+ c #000000", 7 | "@ c #003455", 8 | "# c #004E7F", 9 | "$ c #001A2A", 10 | "% c #0068AA", 11 | "& c #0082D4", 12 | "* c #EDCBED", 13 | "= c #000A0F", 14 | "- c #000305", 15 | "; c #001E31", 16 | "> c #002D4A", 17 | ", c #003353", 18 | "' c #001928", 19 | ") c #00395D", 20 | "! c #00568C", 21 | "~ c #006BAE", 22 | "{ c #0079C5", 23 | "] c #2A5467", 24 | "^ c #009DFF", 25 | "/ c #00111D", 26 | "( c #001624", 27 | "_ c #2A6B8C", 28 | ": c #00416A", 29 | "................................", 30 | "................................", 31 | "................................", 32 | "...............++...............", 33 | "..............++++..............", 34 | ".............++@#++.............", 35 | "............++$@#%++............", 36 | "...........+++$@#%&++...........", 37 | " ++++@#++++ ", 38 | " +@#+ ", 39 | " +@#+ ", 40 | " +@#+ ", 41 | "**************+@#+**************", 42 | "**************+@#+**************", 43 | "**************+@#+**************", 44 | "**************+@#+**************", 45 | "**************+@#+**************", 46 | "**************+@#+**************", 47 | "**************+@#+**************", 48 | "**************+@#+**************", 49 | " +@#+ ", 50 | " +@#= ", 51 | " -;>,>+ ", 52 | " +')#!#)+ ", 53 | "............+>#~{~#+............", 54 | "............+]!{^{!+............", 55 | "............+/#~{~#/............", 56 | ".............+(_!:+.............", 57 | "..............++++..............", 58 | "................................", 59 | "................................", 60 | "................................"}; 61 | -------------------------------------------------------------------------------- /old/art/pixmaps-submission/return_accept.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * return_accept_xpm[] = { 3 | "32 32 2 1", 4 | " c None", 5 | ". c #000000", 6 | " ", 7 | " ", 8 | " ", 9 | " .... ", 10 | " ..... ", 11 | " ..... ", 12 | " ....... ", 13 | " ... ... ", 14 | " .. .... ", 15 | " ... .... ", 16 | " .. ... ", 17 | " ... .... ", 18 | " ... ... ", 19 | " ............ ", 20 | " ............. ", 21 | " .. ... ", 22 | " .. .... ", 23 | " ... ... ", 24 | " .. .... ", 25 | " ... .... ", 26 | " ", 27 | " . ", 28 | " ....... ... ", 29 | " ............ ... ", 30 | " .... ........ ", 31 | " ... ....... ", 32 | " ... ........ ", 33 | " .. .......... ", 34 | " . ...... ", 35 | " .. ", 36 | " ", 37 | " "}; 38 | -------------------------------------------------------------------------------- /old/art/pixmaps-submission/return_merged.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * return_merged_xpm[] = { 3 | "32 32 2 1", 4 | " c None", 5 | ". c #000000", 6 | " ", 7 | " ", 8 | " ", 9 | " ..... .... ", 10 | " ..... .... ", 11 | " ..... .... ", 12 | " ...... ..... ", 13 | " ...... ..... ", 14 | " ... .. ..... ", 15 | " ... .. .. ... ", 16 | " ... ... .. ... ", 17 | " ... ... .. ... ", 18 | " ... .. . ... ", 19 | " ... .... ... ", 20 | " ... .... ... ", 21 | " ... .... ... ", 22 | " ... .. ... ", 23 | " ... ... ", 24 | " ", 25 | " ", 26 | " ", 27 | " . ", 28 | " ....... ... ", 29 | " ............ ... ", 30 | " .... ........ ", 31 | " ... ....... ", 32 | " ... ........ ", 33 | " .. .......... ", 34 | " . ...... ", 35 | " .. ", 36 | " ", 37 | " "}; 38 | -------------------------------------------------------------------------------- /old/art/pixmaps-submission/return_reject.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * return_reject_xpm[] = { 3 | "32 32 2 1", 4 | " c None", 5 | ". c #000000", 6 | " ", 7 | " ", 8 | " ......... ", 9 | " .......... ", 10 | " ... .... ", 11 | " ... ... ", 12 | " ... ... ", 13 | " ... ... ", 14 | " ... ... ", 15 | " ......... ", 16 | " ......... ", 17 | " ... ... ", 18 | " ... ... ", 19 | " ... .... ", 20 | " ... ... ", 21 | " ... ... ", 22 | " ... .... ", 23 | " ", 24 | " ... .. ", 25 | " ... ... ", 26 | " .. ... ", 27 | " ..... . ", 28 | " ....... ... ", 29 | " ............ ... ", 30 | " ........ ........ ", 31 | " ... .... ....... ", 32 | " ... ... ... ........ ", 33 | " .. ... .. .......... ", 34 | " . ... ... ...... ", 35 | " .. .. .. ", 36 | " .. ", 37 | " "}; 38 | -------------------------------------------------------------------------------- /old/art/pixmaps-submission/save_as_left.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * save_as_left_xpm[] = { 3 | "32 32 18 1", 4 | " c None", 5 | ". c #0000FF", 6 | "+ c #000000", 7 | "@ c #319CFF", 8 | "# c #3366FF", 9 | "$ c #000084", 10 | "% c #848484", 11 | "& c #FFFFFF", 12 | "* c #CCCCCC", 13 | "= c #AFFFAA", 14 | "- c #6A7993", 15 | "; c #EDCBED", 16 | "> c #FFFFCE", 17 | ", c #C5C2C6", 18 | "' c #040404", 19 | ") c #808304", 20 | "! c #BFC2BF", 21 | "~ c #FF0000", 22 | " ...+++............+ ", 23 | " .@#+++############+ ", 24 | " $$$+++$$$$$$$$$$$$+ ", 25 | " %&&&+&&&*%=======*+ ", 26 | " %&&&+&&&*%=======*+ ", 27 | " %---+---*%;;;;;;;*+ ", 28 | " %---+---*%;;;;;;;*+ ", 29 | " %;;;+;;;*%-------*+ ", 30 | " %;;;+;;;*%-------*+ ", 31 | " %>>>+>>>*%>>>>>>>*+ ", 32 | " %>>>+>>>*%>>>>>>>*+ ", 33 | " %***+****%,*******+ ", 34 | " +++++++++++++++++++ ", 35 | " + ", 36 | " +++++ ", 37 | " +++ ", 38 | " + ", 39 | " ", 40 | " '''''''''''''' ", 41 | " ')'!!~!!!!!'!' ", 42 | " ')'!!~!!!!!''' ", 43 | " ')'!!~!!!!!')' ", 44 | " ')'!!~!!!!!')' ", 45 | " ')'!!~!!!!!')' ", 46 | " ')'!!~~~~!!')' ", 47 | " '))''''''''))' ", 48 | " '))))))))))))' ", 49 | " '))''''''''')' ", 50 | " '))''''''!!')' ", 51 | " '))''''''!!')' ", 52 | " '))''''''!!')' ", 53 | " ''''''''''''' "}; 54 | -------------------------------------------------------------------------------- /old/art/pixmaps-submission/save_as_right.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * save_as_right_xpm[] = { 3 | "32 32 18 1", 4 | " c None", 5 | ". c #0000FF", 6 | "+ c #000000", 7 | "@ c #319CFF", 8 | "# c #3366FF", 9 | "$ c #000084", 10 | "% c #848484", 11 | "& c #FFFFFF", 12 | "* c #CCCCCC", 13 | "= c #AFFFAA", 14 | "- c #6A7993", 15 | "; c #EDCBED", 16 | "> c #FFFFCE", 17 | ", c #C5C2C6", 18 | "' c #040404", 19 | ") c #808304", 20 | "! c #BFC2BF", 21 | "~ c #FF0000", 22 | " ............+++...+ ", 23 | " .@##########+++###+ ", 24 | " $$$$$$$$$$$$+++$$$+ ", 25 | " %&&&&&&&*%===+===*+ ", 26 | " %&&&&&&&*%===+===*+ ", 27 | " %-------*%;;;+;;;*+ ", 28 | " %-------*%;;;+;;;*+ ", 29 | " %;;;;;;;*%---+---*+ ", 30 | " %;;;;;;;*%---+---*+ ", 31 | " %>>>>>>>*%>>>+>>>*+ ", 32 | " %>>>>>>>*%>>>+>>>*+ ", 33 | " %********%,**+****+ ", 34 | " +++++++++++++++++++ ", 35 | " + ", 36 | " +++++ ", 37 | " +++ ", 38 | " + ", 39 | " ", 40 | " '''''''''''''' ", 41 | " ')'!!~~~!!!'!' ", 42 | " ')'!!~!!~!!''' ", 43 | " ')'!!~!!~!!')' ", 44 | " ')'!!~~~!!!')' ", 45 | " ')'!!~!~!!!')' ", 46 | " ')'!!~!!~!!')' ", 47 | " '))''''''''))' ", 48 | " '))))))))))))' ", 49 | " '))''''''''')' ", 50 | " '))''''''!!')' ", 51 | " '))''''''!!')' ", 52 | " '))''''''!!')' ", 53 | " ''''''''''''' "}; 54 | -------------------------------------------------------------------------------- /old/art/pixmaps-submission/search.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * search_xpm[] = { 3 | "32 32 2 1", 4 | " c None", 5 | ". c #000000", 6 | " ", 7 | " ", 8 | " ", 9 | " ", 10 | " ....... ", 11 | " ........... ", 12 | " ... .... ", 13 | " .. ... ", 14 | " .. ... ", 15 | " .. ... ", 16 | " .. ... ", 17 | " .. ... ", 18 | " .. ... ", 19 | " .. ... ", 20 | " ... .... ", 21 | " ... .... ", 22 | " ............. ", 23 | " ............... ", 24 | " ..... ....... ", 25 | " ...... ", 26 | " ....... ", 27 | " ....... ", 28 | " ....... ", 29 | " ....... ", 30 | " ....... ", 31 | " ....... ", 32 | " ...... ", 33 | " .... ", 34 | " ", 35 | " ", 36 | " ", 37 | " "}; 38 | -------------------------------------------------------------------------------- /old/art/pixmaps-submission/search_backward.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * search_backward_xpm[] = { 3 | "32 32 2 1", 4 | " c None", 5 | ". c #000000", 6 | " ", 7 | " ", 8 | " ", 9 | " ", 10 | " ....... ", 11 | " ........... ", 12 | " ... .... ", 13 | " .. ... ", 14 | " .. ... ", 15 | " .. ... ", 16 | " .. ... ", 17 | " .. ... ", 18 | " .. ... ", 19 | " .. ... ", 20 | " ... .... ", 21 | " ... .... ", 22 | " ............. ", 23 | " ............... ", 24 | " ..... ....... ", 25 | " ...... . ", 26 | " ....... .... ", 27 | " ....... ........ ", 28 | " ....... ........... ", 29 | " ....... ........... ", 30 | " ....... ...... ", 31 | " ....... ........ ", 32 | " ...... ........... ", 33 | " .... .......... ", 34 | " ....... ", 35 | " ... ", 36 | " ", 37 | " "}; 38 | -------------------------------------------------------------------------------- /old/art/pixmaps-submission/search_forward.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * search_forward_xpm[] = { 3 | "32 32 2 1", 4 | " c None", 5 | ". c #000000", 6 | " ", 7 | " ", 8 | " ", 9 | " ", 10 | " ....... ", 11 | " ........... ", 12 | " ... .... ", 13 | " .. ... ", 14 | " .. ... ", 15 | " .. ... ", 16 | " .. ... ", 17 | " .. ... ", 18 | " .. ... ", 19 | " .. ... ", 20 | " ... .... ", 21 | " ... .... ", 22 | " ............. ", 23 | " ............... ", 24 | " ..... ....... ", 25 | " ...... . ", 26 | " ....... ...... ", 27 | " ....... ........ ", 28 | " ....... .......... ", 29 | " ....... .......... ", 30 | " ....... ....... ", 31 | " ....... ....... ", 32 | " ...... .......... ", 33 | " .... .......... ", 34 | " ........ ", 35 | " ..... ", 36 | " ... ", 37 | " "}; 38 | -------------------------------------------------------------------------------- /old/art/pixmaps-submission/select_region_left.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * select_region_left_xpm[] = { 3 | "32 32 3 1", 4 | " c None", 5 | ". c #EDCBED", 6 | "+ c #6A7993", 7 | " ", 8 | " ", 9 | " ", 10 | " ", 11 | " ", 12 | " ", 13 | " ", 14 | " ", 15 | " ", 16 | " ", 17 | " ", 18 | " ", 19 | "............... +++++++++++++++", 20 | "............... +++++++++++++++", 21 | "............... +++++++++++++++", 22 | "............... +++++++++++++++", 23 | "............... +++++++++++++++", 24 | "............... +++++++++++++++", 25 | "............... +++++++++++++++", 26 | "............... +++++++++++++++", 27 | " ", 28 | " ", 29 | " ", 30 | " ", 31 | " ", 32 | " ", 33 | " ", 34 | " ", 35 | " ", 36 | " ", 37 | " ", 38 | " "}; 39 | -------------------------------------------------------------------------------- /old/art/pixmaps-submission/select_region_middle.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * select_region_middle_xpm[] = { 3 | "32 32 2 1", 4 | " c None", 5 | ". c #000000", 6 | " ", 7 | " ", 8 | " ", 9 | " ............ ", 10 | " ............ ", 11 | " ............ ", 12 | " ............ ", 13 | " ............ ", 14 | " ............ ", 15 | " ............ ", 16 | " ............ ", 17 | " ............ ", 18 | " ............ ", 19 | " ............ ", 20 | " ............ ", 21 | " ............ ", 22 | " ............ ", 23 | " ............ ", 24 | " ............ ", 25 | " ............ ", 26 | " ............ ", 27 | " ............ ", 28 | " ............ ", 29 | " ............ ", 30 | " ............ ", 31 | " ............ ", 32 | " .............................. ", 33 | " .............................. ", 34 | " .............................. ", 35 | " .............................. ", 36 | " ", 37 | " "}; 38 | -------------------------------------------------------------------------------- /old/art/pixmaps-submission/select_region_neither.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * select_region_neither_xpm[] = { 3 | "32 32 2 1", 4 | " c None", 5 | ". c #6A7993", 6 | " ", 7 | " ", 8 | " ", 9 | " ", 10 | " ", 11 | " ", 12 | " ", 13 | " ", 14 | " ", 15 | " ", 16 | " ", 17 | " ", 18 | "............... ...............", 19 | "............... ...............", 20 | "............... ...............", 21 | "............... ...............", 22 | "............... ...............", 23 | "............... ...............", 24 | "............... ...............", 25 | "............... ...............", 26 | " ", 27 | " ", 28 | " ", 29 | " ", 30 | " ", 31 | " ", 32 | " ", 33 | " ", 34 | " ", 35 | " ", 36 | " ", 37 | " "}; 38 | -------------------------------------------------------------------------------- /old/art/pixmaps-submission/select_region_right.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * select_region_right_xpm[] = { 3 | "32 32 3 1", 4 | " c None", 5 | ". c #6A7993", 6 | "+ c #EDCBED", 7 | " ", 8 | " ", 9 | " ", 10 | " ", 11 | " ", 12 | " ", 13 | " ", 14 | " ", 15 | " ", 16 | " ", 17 | " ", 18 | " ", 19 | "............... +++++++++++++++", 20 | "............... +++++++++++++++", 21 | "............... +++++++++++++++", 22 | "............... +++++++++++++++", 23 | "............... +++++++++++++++", 24 | "............... +++++++++++++++", 25 | "............... +++++++++++++++", 26 | "............... +++++++++++++++", 27 | " ", 28 | " ", 29 | " ", 30 | " ", 31 | " ", 32 | " ", 33 | " ", 34 | " ", 35 | " ", 36 | " ", 37 | " ", 38 | " "}; 39 | -------------------------------------------------------------------------------- /old/art/pixmaps-submission/select_region_unselect.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * select_region_unselect_xpm[] = { 3 | "32 32 2 1", 4 | " c None", 5 | ". c #FFFFCE", 6 | " ", 7 | " ", 8 | " ", 9 | " ", 10 | " ", 11 | " ", 12 | " ", 13 | " ", 14 | " ", 15 | " ", 16 | " ", 17 | " ", 18 | "............... ...............", 19 | "............... ...............", 20 | "............... ...............", 21 | "............... ...............", 22 | "............... ...............", 23 | "............... ...............", 24 | "............... ...............", 25 | "............... ...............", 26 | " ", 27 | " ", 28 | " ", 29 | " ", 30 | " ", 31 | " ", 32 | " ", 33 | " ", 34 | " ", 35 | " ", 36 | " ", 37 | " "}; 38 | -------------------------------------------------------------------------------- /old/art/pixmaps-submission/split_swap_join.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * split_swap_join_xpm[] = { 3 | "32 32 4 1", 4 | " c None", 5 | ". c #AFFFAA", 6 | "+ c #000000", 7 | "@ c #FFFFCE", 8 | " ........ ", 9 | " + ........ ", 10 | " ++ ........ ", 11 | " +++++++++ ........ ", 12 | " ++ ++ ........", 13 | " + + ........", 14 | " + ........", 15 | " + ........", 16 | " + ", 17 | " + ", 18 | " + + ", 19 | " + ", 20 | " + ", 21 | "@@@@@@@@ @@@@@@@@ + ", 22 | "@@@@@@@@ @@@@@@@@ + ", 23 | "@@@@@@@@ @@@@@@@@ + ", 24 | "@@@@@@@@ @@@@@@@@ + ", 25 | " + ", 26 | " + ", 27 | " + +++++ ", 28 | " +++ +++ ", 29 | " +++++ + ", 30 | " + ", 31 | " + ", 32 | " + ........", 33 | " + ........", 34 | " + ........", 35 | " ++ ........", 36 | " +++++++++ ........ ", 37 | " ........ ", 38 | " ........ ", 39 | " ........ "}; 40 | -------------------------------------------------------------------------------- /old/autoconf/Makefile.am: -------------------------------------------------------------------------------- 1 | dnl SUBDIRS = diffutils-2.7 src 2 | SUBDIRS = src 3 | 4 | EXTRA_DIST = \ 5 | CHANGES \ 6 | automoc \ 7 | copyright.txt \ 8 | libtool \ 9 | tools \ 10 | doc \ 11 | test \ 12 | diffutils-2.7 13 | -------------------------------------------------------------------------------- /old/in-core-diff/README: -------------------------------------------------------------------------------- 1 | ==================== 2 | In-Core Diff Patches 3 | ==================== 4 | 5 | This directory contains patches to be applied to specific versions of GNU diff 6 | or other diffs with available source code, so that we can compile xxdiff 7 | in-core. The reason is that we wanted at some point to not have to spawn an 8 | externel GNU diff, especially under Windows. 9 | 10 | We never completed this task but had some success binding directly to GNU diff 11 | at some point. However, it was never maintained nor shipped as a working 12 | feature. Nevertheless, we keep patches here in case we ever want to revive this 13 | idea. 14 | -------------------------------------------------------------------------------- /old/tmake2qmake/xxdiff.t: -------------------------------------------------------------------------------- 1 | # -*- mode: Makefile -*- 2 | ############################################################################# 3 | #! 4 | #! $RCSfile$ 5 | #! 6 | #! This is a tmake template for building Unix applications. 7 | #! 8 | #$ IncludeTemplate("app.t"); 9 | 10 | # 11 | # Compute current date/time. 12 | # 13 | COMPILE_DATE=#$ Now() 14 | 15 | # 16 | # Lex/Yacc 17 | # 18 | ####### Lex/yacc programs and options 19 | 20 | LEX = flex 21 | #LEXDEBUG = -d 22 | 23 | YACC = #$ $text = "bison -d"; 24 | #YACCDEBUG = -t --verbose 25 | 26 | ####### Lex/yacc files 27 | 28 | LEXIN = #$ $text = Expand("LEXYACC") . ".l"; 29 | LEXOUT = #$ $text = Expand("LEXYACC") . ".l.c"; 30 | YACCIN = #$ $text = Expand("LEXYACC") . ".y"; 31 | YACCOUTC = #$ $text = Expand("LEXYACC") . ".y.c"; 32 | YACCOUTH = #$ $text = Expand("LEXYACC") . ".y.h"; 33 | PARSOBJ = #$ $text = Expand("LEXYACC") . ".o"; 34 | 35 | ####### Process lex/yacc files 36 | 37 | $(LEXOUT): $(LEXIN) 38 | $(LEX) $(LEXDEBUG) -o$(LEXOUT) $(LEXIN) 39 | 40 | $(YACCOUTC) $(YACCOUTH): $(YACCIN) $(LEXOUT) 41 | $(YACC) $(YACCDEBUG) -o$(YACCOUTC) $(YACCIN) 42 | 43 | $(PARSOBJ): $(YACCOUTC) $(YACCOUTH) $(LEXOUT) 44 | 45 | #------------------------------------------------------------------------------- 46 | # support for documentation transformation 47 | 48 | .SUFFIXES: .html .txt 49 | 50 | .txt.html: 51 | rst2html.py --output-encoding=iso-8859-1 $< $@ 52 | 53 | .html.h: 54 | sed -e 's/\"/\\\"/g;s/$$/\\n\\/;1s/^/char text[]=\"/;$$s/\\$$/\"\;/' $< > $@ 55 | 56 | help.o: doc.h 57 | help.obj: doc.h 58 | 59 | # Automatically generate a simple include file from the version file. 60 | version.h: ../VERSION 61 | echo "#define XX_VERSION \"`cat ../VERSION`\"" > $@ 62 | 63 | proginfo.o: version.h 64 | proginfo.obj: version.h 65 | 66 | # 67 | # Additional dependencies. 68 | # Note: this is lame, find a better way to do this. The problem is that tmake 69 | # does note include dependencies for files it cannot find in the include path. 70 | # 71 | cmdline.o: $(YACCOUTH) 72 | cmdline.obj: $(YACCOUTH) 73 | 74 | -------------------------------------------------------------------------------- /old/xcontribs.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | """ 3 | A quick script to extract the diffs of contributions from other people, to be 4 | able to review them quickly. 5 | """ 6 | 7 | import re 8 | from subprocess import * 9 | 10 | 11 | 12 | def main(): 13 | import optparse 14 | parser = optparse.OptionParser(__doc__.strip()) 15 | opts, args = parser.parse_args() 16 | 17 | fn, = args 18 | revs = [] 19 | for line in open(fn): 20 | mo = re.match('^changeset:[ \t]+([0-9]+):', line) 21 | if not mo: 22 | continue 23 | revs.append(int(mo.group(1))) 24 | 25 | files = set() 26 | for rev in revs: 27 | p = Popen('hg diff -r %s' % rev, stdout=PIPE, shell=1, text=True) 28 | out, _ = p.communicate() 29 | print() 30 | print() 31 | print(rev) 32 | print() 33 | print(out) 34 | ## mo = re.search('files:(.*)\n', out) 35 | ## files |= set(mo.group(1).split()) 36 | 37 | print(files) 38 | for fn in sorted(files): 39 | print(fn) 40 | 41 | 42 | 43 | 44 | 45 | if __name__ == '__main__': 46 | main() 47 | -------------------------------------------------------------------------------- /ports/README: -------------------------------------------------------------------------------- 1 | This directory contains files related to ports to various OSes. 2 | -------------------------------------------------------------------------------- /ports/macosx/screenshots/xxdiff.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/ports/macosx/screenshots/xxdiff.jpeg -------------------------------------------------------------------------------- /ports/macosx/screenshots/xxdiffOptions.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/ports/macosx/screenshots/xxdiffOptions.jpeg -------------------------------------------------------------------------------- /ports/macosx/xxdiff.app/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDocumentTypes 6 | 7 | 8 | CFBundleTypeExtensions 9 | 10 | * 11 | 12 | CFBundleTypeOSTypes 13 | 14 | **** 15 | fold 16 | 17 | CFBundleTypeRole 18 | Editor 19 | 20 | 21 | CFBundleExecutable 22 | xxdiff 23 | CFBundleGetInfoString 24 | Created by Qt/QMake 25 | CFBundleIconFile 26 | xxdiff.icns 27 | CFBundlePackageType 28 | APPL 29 | CFBundleSignature 30 | ttxt 31 | NOTE 32 | Please, do NOT change this file -- It was generated by Qt/QMake. 33 | 34 | 35 | -------------------------------------------------------------------------------- /ports/macosx/xxdiff.app/Contents/MacOS/xxdiff: -------------------------------------------------------------------------------- 1 | this file must be replaced by the xxdiff binary. -------------------------------------------------------------------------------- /ports/macosx/xxdiff.app/Contents/PkgInfo: -------------------------------------------------------------------------------- 1 | APPL???? 2 | -------------------------------------------------------------------------------- /ports/macosx/xxdiff.app/Resources/xxdiff.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/ports/macosx/xxdiff.app/Resources/xxdiff.icns -------------------------------------------------------------------------------- /ports/macosx/xxdiff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/ports/macosx/xxdiff.png -------------------------------------------------------------------------------- /ports/qt2/README.qt2: -------------------------------------------------------------------------------- 1 | ============================ 2 | Build xxdiff with qt-2.x 3 | ============================ 4 | 5 | :Author: Martin Blais 6 | :Date: 2005-06-03 7 | :Abstract: 8 | 9 | Notes on how to build xxdiff with old versions of qt. 10 | 11 | 12 | Building against qt-2.x (e.g. RedHat Advanced Server) 13 | ----------------------------------------------------- 14 | 15 | As of version 3.0, xxdiff was back ported to compile with qt2 for RedHat AS (and 16 | I supposed for all people with old version of qt). A very small amount of minor 17 | features has been disabled for that to work. The affected features are: 18 | 19 | - qt style (look and feel provided by qt) 20 | - font name conversions 21 | - printing the time in the filename title format string 22 | 23 | To build it, first copy the files under .../src/qt2 into .../src like this:: 24 | 25 | cd xxdiff/src ; cp qt2/* . 26 | 27 | Then go about compiling xxdiff the normal way (described above, basically, 28 | tmake, make). 29 | 30 | -------------------------------------------------------------------------------- /ports/sun-amd64/email.txt: -------------------------------------------------------------------------------- 1 | Hanna Mousa hide details 12:51 am (6 hours ago) 2 | to Martin Blais 3 | date Dec 6, 2006 12:51 AM 4 | subject Re: Compiling xxdiff on Sun AMD64 platform 5 | signed-by gmail.com 6 | Greetings Martin, 7 | 8 | I modified the Makefile adding an explicit rule for .y files. This is the only significant modification I did for it to work. Somehow - maybe it is a bug in make - make uses an implicit rule to produce .o from .y and therefore, because there is no such rule in the generated Makefile, I added a new one and guessed how this file should be built. You can see the changes in the Makefile attached. 9 | 10 | I want to note also that I compiled the project in 32bit. The g++, gcc I got doesn't support 64 yet. I need to build it again, and I need to build QT again to support 64bit. I intend to do that slowly because I don't have much time for it. 11 | 12 | I also compiled the project on my SUSE 10.1 machine on PC (Pentium D) without any modifications. 13 | 14 | Please tell me if you need anything else. 15 | 16 | thanks, 17 | Hanna 18 | 19 | 20 | - Hide quoted text - 21 | On 12/5/06, Martin Blais wrote: 22 | 23 | hello Hanna 24 | this is great 25 | can you send me the patch/changes? 26 | thx 27 | 28 | 29 | On 12/5/06, Hanna Mousa < hanna.mousa@gmail.com> wrote: 30 | > Hello Martin, 31 | > 32 | > Thank you for your great tool and wish you all the success in improving and 33 | > making it even greater. 34 | > 35 | > I recently managed to compile xxdiff on Sun AMD64 new platform and I just 36 | > wanted to inform you so we can share this with other people. 37 | > It was a bit difficult because of this new platform but I made it all 38 | > through. 39 | > 40 | > best regards, 41 | > thanks again, 42 | > Hanna Mousa 43 | 44 | -------------------------------------------------------------------------------- /src/Makefile.bootstrap: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env make 2 | # 3 | # Generate the Makefile using both qmake and the custom rules we need to add on 4 | # top of it. 5 | # 6 | 7 | # Rule to generate the qmake Makefile for building xxdiff. 8 | # Note: To build with Qt5, use QMAKE=qmake5 or QMAKE=qmake. 9 | QMAKE ?= qmake6 10 | MAKEDIR ?= . 11 | QMAKEOPTS = 12 | 13 | all: Makefile 14 | 15 | OS := $(shell uname -s) 16 | ifeq ($(OS),Darwin) 17 | # Default is an Xcode project, so force a makefile build 18 | export QMAKESPEC=macx-clang 19 | endif 20 | 21 | Makefile.qmake: $(MAKEDIR)/xxdiff.pro 22 | $(QMAKE) $(QMAKEOPTS) -o Makefile.qmake $< 23 | 24 | Makefile: Makefile.qmake $(MAKEDIR)/Makefile.extra 25 | echo "MAKEDIR = $(MAKEDIR)" > Makefile 26 | cat $^ >> Makefile 27 | -------------------------------------------------------------------------------- /src/Makefile.extra: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env make 2 | # 3 | # Extra rules to be appended to the generated qmake makefile for xxdiff build. 4 | # 5 | 6 | # Extra targets. 7 | EXTRA_FILES = version.h $(MAKEDIR)/doc.h 8 | 9 | .SUFFIXES: .html .txt .h 10 | 11 | 12 | # 13 | # resParser.o 14 | # 15 | 16 | # Extra dependencies for the included lex/yacc generated files. 17 | resParser_lex.h: resParser_lex.cpp 18 | resParser.cpp: resParser_lex.h 19 | 20 | 21 | # 22 | # version.h 23 | # 24 | 25 | # Automatically generate a simple include file with version number in it. 26 | version.h: $(MAKEDIR)/../VERSION 27 | echo "#define XX_VERSION \"`cat $(MAKEDIR)/../VERSION`\"" > $@ 28 | 29 | # Dependencies for the generated version file. 30 | proginfo.o: version.h 31 | proginfo.obj: version.h 32 | 33 | 34 | # 35 | # doc.h 36 | # 37 | 38 | # Convert the html/qml documentation to an C include file. 39 | # This needs to be automated. 40 | .html.h: 41 | sed -e 's/\"/\\\"/g;s/$$/\\n\\/;1s/^/char text[]=\"/;$$s/\\$$/\"\;/' $< > $@ 42 | 43 | # Dependencies for the generated documentation file. 44 | help.o: $(MAKEDIR)/doc.h 45 | help.obj: $(MAKEDIR)/doc.h 46 | 47 | # Convert the reStructuredText documentation to html. (this is only used by the 48 | # author, directly, manually, not that important for xxdiff packagers.) 49 | .txt.html: 50 | rst2html.py --output-encoding=iso-8859-1 $< $@ 51 | 52 | # 53 | # clean_extra 54 | # 55 | 56 | # Clean up some of the generated files automatically. 57 | clean: clean_extra 58 | 59 | clean_extra: 60 | rm -f $(EXTRA_FILES) 61 | 62 | 63 | # Note: we would need to add this to be correct. Danger! If the Makefile gets 64 | # remade, this file does not get appended again to the new makefile! 65 | all: Makefile 66 | 67 | Makefile: $(MAKEDIR)/xxdiff.pro 68 | $(MAKE) -f $(MAKEDIR)/Makefile.bootstrap Makefile 69 | -------------------------------------------------------------------------------- /src/conflict: -------------------------------------------------------------------------------- 1 | The preemptible Linux kernel patch that 2 | was originally introduced by MontaVista 3 | Software and more recently championed by 4 | Robert Love has been merged by Linus 5 | Torvalds into the main linux 6 | development-kernel tree, beginning 7 | version v2.5.4-pre6. This adds a far 8 | <<<<<<< SOMEFILE1 9 | greater degree of real-time 10 | ======= 11 | lesser degree of interactive 12 | >>>>>>> 1.13 13 | responsiveness to the standard Linux 14 | kernel, by reducing interrupt latencies 15 | while kernel functions are 16 | <<<<<<< SOMEFILE2 17 | executing. The story at LinuxDevices.com 18 | ======= 19 | >>>>>>> 1.14 20 | includes comments by Robert Love, and 21 | there is also a recent interview with 22 | <<<<<<< SOMEFILE3 23 | ======= 24 | Robert Love about the preemptable kernel 25 | >>>>>>> 1.15 26 | here and a whitepaper about the 27 | technology by MontaVista here." 28 | -------------------------------------------------------------------------------- /src/empty: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/src/empty -------------------------------------------------------------------------------- /src/main.h: -------------------------------------------------------------------------------- 1 | /* -*- c-file-style: "xxdiff" -*- */ 2 | /******************************************************************************\ 3 | * $RCSfile$ 4 | * 5 | * Copyright (C) 1999-2003 Martin Blais 6 | * 7 | * This program is free software; you can redistribute it and/or modify 8 | * it under the terms of the GNU General Public License as published by 9 | * the Free Software Foundation; either version 2 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License 18 | * along with this program; if not, write to the Free Software 19 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 20 | * 21 | ******************************************************************************/ 22 | 23 | #ifndef INCL_XXDIFF_MAIN 24 | #define INCL_XXDIFF_MAIN 25 | 26 | /*============================================================================== 27 | * EXTERNAL DECLARATIONS 28 | *============================================================================*/ 29 | 30 | #ifndef INCL_XXDIFF_DEFS 31 | #include 32 | #endif 33 | 34 | /*============================================================================== 35 | * PUBLIC DECLARATIONS 36 | *============================================================================*/ 37 | 38 | #ifndef WINDOWS 39 | extern "C" { 40 | 41 | extern char** environ; 42 | 43 | } 44 | #endif 45 | 46 | #endif 47 | -------------------------------------------------------------------------------- /src/pixmaps/diff_files.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char * diff_files_xpm[] = { 3 | "32 32 2 1", 4 | " c None", 5 | ". c #000000", 6 | " ", 7 | " ", 8 | " . .... ", 9 | " . ... ", 10 | " .. ... ", 11 | " .. . .. . ", 12 | " ... .... .. ... ", 13 | " ... ..... ...... ", 14 | " .... .... ..... ", 15 | " .... ", 16 | " ..... ... .. ", 17 | " ..... .... ... ", 18 | " ...... .... .... ", 19 | " ...... .... ... ", 20 | " ....... .. .. ", 21 | " .. ", 22 | " .. ", 23 | " .. ", 24 | " .. ", 25 | " .. ", 26 | " .. ", 27 | " .. ", 28 | " .. ", 29 | " .. ", 30 | " .. ", 31 | " .. ", 32 | " .. ", 33 | " .. ", 34 | " .. ", 35 | " ... ", 36 | " .. ", 37 | " "}; 38 | -------------------------------------------------------------------------------- /src/pixmaps/diff_files_next.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char * diff_files_next_xpm[] = { 3 | "32 32 2 1", 4 | " c None", 5 | ". c #000000", 6 | " ", 7 | " ", 8 | " . .... ", 9 | " . ... ", 10 | " .. ... ", 11 | " .. . .. . ", 12 | " ... .... .. ... ", 13 | " ... ..... ...... ", 14 | " .... .... ..... ", 15 | " .... ", 16 | " ..... ... .. ", 17 | " ..... .... ... ", 18 | " ...... .... .... ", 19 | " ...... .... ... ", 20 | " ....... .. .. ", 21 | " .. ", 22 | " .. ... .. ", 23 | " .. ... .. ", 24 | " .. ..... ... ", 25 | " .. ..... ... ", 26 | " .. ..... ... ", 27 | " .. .. ... .. ", 28 | " .. ... ... .. ", 29 | " .. ... .... ... ", 30 | " .. ... ... ... ", 31 | " .. .. ...... ", 32 | " .. .. ..... ", 33 | " .. ... ..... ", 34 | " .. ... .... ", 35 | " ... ... .... ", 36 | " .. .. ... ", 37 | " "}; 38 | -------------------------------------------------------------------------------- /src/pixmaps/next_difference.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char * next_difference_xpm[] = { 3 | "32 32 2 1", 4 | " c None", 5 | ". c #000000", 6 | " ", 7 | " ", 8 | " . ", 9 | " .... ", 10 | " ....... ", 11 | " ......... ", 12 | " ............ ", 13 | " .............. ", 14 | " ................. ", 15 | " ................ ", 16 | " ................. ", 17 | " .............. ", 18 | " ........... ", 19 | " ......... ", 20 | " .......... ", 21 | " ............. ", 22 | " ................ ", 23 | " ................ ", 24 | " ................ ", 25 | " ............... ", 26 | " ............ ", 27 | " ......... ", 28 | " ........ ", 29 | " ..... ", 30 | " .. ", 31 | " ", 32 | " ", 33 | " ", 34 | " ", 35 | " ", 36 | " ", 37 | " "}; 38 | -------------------------------------------------------------------------------- /src/pixmaps/next_unselected_difference.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char * next_unselected_difference_xpm[] = { 3 | "32 32 2 1", 4 | " c None", 5 | ". c #000000", 6 | " ", 7 | " ", 8 | " . ", 9 | " .... ", 10 | " ....... ", 11 | " ......... ", 12 | " ............ ", 13 | " .............. ", 14 | " ................. ", 15 | " ................ ", 16 | " ................. ", 17 | " .............. ", 18 | " ........... ", 19 | " ......... ", 20 | " .......... ", 21 | " ............. ", 22 | " ................ ", 23 | " ................ ", 24 | " ................ ", 25 | " ............... ", 26 | " ............ ", 27 | " ......... .. .. ", 28 | " ........ ... ... ", 29 | " ..... ...... ", 30 | " .. .... ", 31 | " .... ", 32 | " ...... ", 33 | " ... ... ", 34 | " .. .. ", 35 | " ", 36 | " ", 37 | " "}; 38 | -------------------------------------------------------------------------------- /src/pixmaps/previous_difference.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char * previous_difference_xpm[] = { 3 | "32 32 2 1", 4 | " c None", 5 | ". c #000000", 6 | " ", 7 | " ", 8 | " ", 9 | " . ", 10 | " .... ", 11 | " ....... ", 12 | " ......... ", 13 | " ............ ", 14 | " ............... ", 15 | " ................. ", 16 | " ................. ", 17 | " ................. ", 18 | " .............. ", 19 | " ........... ", 20 | " ......... ", 21 | " ........... ", 22 | " .............. ", 23 | " ................ ", 24 | " ................. ", 25 | " ................. ", 26 | " ............... ", 27 | " ............ ", 28 | " .......... ", 29 | " ....... ", 30 | " ..... ", 31 | " . ", 32 | " ", 33 | " ", 34 | " ", 35 | " ", 36 | " ", 37 | " "}; 38 | -------------------------------------------------------------------------------- /src/pixmaps/previous_unselected_difference.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char * previous_unselected_difference_xpm[] = { 3 | "32 32 2 1", 4 | " c None", 5 | ". c #000000", 6 | " ", 7 | " ", 8 | " ", 9 | " . ", 10 | " .... ", 11 | " ....... ", 12 | " ......... ", 13 | " ............ ", 14 | " ............... ", 15 | " ................. ", 16 | " ................. ", 17 | " ................. ", 18 | " .............. ", 19 | " ........... ", 20 | " ......... ", 21 | " ........... ", 22 | " .............. ", 23 | " ................ ", 24 | " ................. ", 25 | " ................. ", 26 | " ............... ", 27 | " .. .. ............ ", 28 | " .. ... .......... ", 29 | " .. ... ....... ", 30 | " .... ..... ", 31 | " ... . ", 32 | " ..... ", 33 | " ... .. ", 34 | " .. .. ", 35 | " . . ", 36 | " ", 37 | " "}; 38 | -------------------------------------------------------------------------------- /src/pixmaps/return_accept.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char * return_accept_xpm[] = { 3 | "32 32 2 1", 4 | " c None", 5 | ". c #000000", 6 | " ", 7 | " ", 8 | " ", 9 | " .... ", 10 | " ..... ", 11 | " ..... ", 12 | " ....... ", 13 | " ... ... ", 14 | " .. .... ", 15 | " ... .... ", 16 | " .. ... ", 17 | " ... .... ", 18 | " ... ... ", 19 | " ............ ", 20 | " ............. ", 21 | " .. ... ", 22 | " .. .... ", 23 | " ... ... ", 24 | " .. .... ", 25 | " ... .... ", 26 | " ", 27 | " . ", 28 | " ....... ... ", 29 | " ............ ... ", 30 | " .... ........ ", 31 | " ... ....... ", 32 | " ... ........ ", 33 | " .. .......... ", 34 | " . ...... ", 35 | " .. ", 36 | " ", 37 | " "}; 38 | -------------------------------------------------------------------------------- /src/pixmaps/return_merged.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char * return_merged_xpm[] = { 3 | "32 32 2 1", 4 | " c None", 5 | ". c #000000", 6 | " ", 7 | " ", 8 | " ", 9 | " ..... .... ", 10 | " ..... .... ", 11 | " ..... .... ", 12 | " ...... ..... ", 13 | " ...... ..... ", 14 | " ... .. ..... ", 15 | " ... .. .. ... ", 16 | " ... ... .. ... ", 17 | " ... ... .. ... ", 18 | " ... .. . ... ", 19 | " ... .... ... ", 20 | " ... .... ... ", 21 | " ... .... ... ", 22 | " ... .. ... ", 23 | " ... ... ", 24 | " ", 25 | " ", 26 | " ", 27 | " . ", 28 | " ....... ... ", 29 | " ............ ... ", 30 | " .... ........ ", 31 | " ... ....... ", 32 | " ... ........ ", 33 | " .. .......... ", 34 | " . ...... ", 35 | " .. ", 36 | " ", 37 | " "}; 38 | -------------------------------------------------------------------------------- /src/pixmaps/return_reject.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char * return_reject_xpm[] = { 3 | "32 32 2 1", 4 | " c None", 5 | ". c #000000", 6 | " ", 7 | " ", 8 | " ......... ", 9 | " .......... ", 10 | " ... .... ", 11 | " ... ... ", 12 | " ... ... ", 13 | " ... ... ", 14 | " ... ... ", 15 | " ......... ", 16 | " ......... ", 17 | " ... ... ", 18 | " ... ... ", 19 | " ... .... ", 20 | " ... ... ", 21 | " ... ... ", 22 | " ... .... ", 23 | " ", 24 | " ... .. ", 25 | " ... ... ", 26 | " .. ... ", 27 | " ..... . ", 28 | " ....... ... ", 29 | " ............ ... ", 30 | " ........ ........ ", 31 | " ... .... ....... ", 32 | " ... ... ... ........ ", 33 | " .. ... .. .......... ", 34 | " . ... ... ...... ", 35 | " .. .. .. ", 36 | " .. ", 37 | " "}; 38 | -------------------------------------------------------------------------------- /src/pixmaps/search.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char * search_xpm[] = { 3 | "32 32 2 1", 4 | " c None", 5 | ". c #000000", 6 | " ", 7 | " ", 8 | " ", 9 | " ", 10 | " ....... ", 11 | " ........... ", 12 | " ... .... ", 13 | " .. ... ", 14 | " .. ... ", 15 | " .. ... ", 16 | " .. ... ", 17 | " .. ... ", 18 | " .. ... ", 19 | " .. ... ", 20 | " ... .... ", 21 | " ... .... ", 22 | " ............. ", 23 | " ............... ", 24 | " ..... ....... ", 25 | " ...... ", 26 | " ....... ", 27 | " ....... ", 28 | " ....... ", 29 | " ....... ", 30 | " ....... ", 31 | " ....... ", 32 | " ...... ", 33 | " .... ", 34 | " ", 35 | " ", 36 | " ", 37 | " "}; 38 | -------------------------------------------------------------------------------- /src/pixmaps/search_backward.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char * search_backward_xpm[] = { 3 | "32 32 2 1", 4 | " c None", 5 | ". c #000000", 6 | " ", 7 | " ", 8 | " ", 9 | " ", 10 | " ....... ", 11 | " ........... ", 12 | " ... .... ", 13 | " .. ... ", 14 | " .. ... ", 15 | " .. ... ", 16 | " .. ... ", 17 | " .. ... ", 18 | " .. ... ", 19 | " .. ... ", 20 | " ... .... ", 21 | " ... .... ", 22 | " ............. ", 23 | " ............... ", 24 | " ..... ....... ", 25 | " ...... . ", 26 | " ....... .... ", 27 | " ....... ........ ", 28 | " ....... ........... ", 29 | " ....... ........... ", 30 | " ....... ...... ", 31 | " ....... ........ ", 32 | " ...... ........... ", 33 | " .... .......... ", 34 | " ....... ", 35 | " ... ", 36 | " ", 37 | " "}; 38 | -------------------------------------------------------------------------------- /src/pixmaps/search_forward.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char * search_forward_xpm[] = { 3 | "32 32 2 1", 4 | " c None", 5 | ". c #000000", 6 | " ", 7 | " ", 8 | " ", 9 | " ", 10 | " ....... ", 11 | " ........... ", 12 | " ... .... ", 13 | " .. ... ", 14 | " .. ... ", 15 | " .. ... ", 16 | " .. ... ", 17 | " .. ... ", 18 | " .. ... ", 19 | " .. ... ", 20 | " ... .... ", 21 | " ... .... ", 22 | " ............. ", 23 | " ............... ", 24 | " ..... ....... ", 25 | " ...... . ", 26 | " ....... ...... ", 27 | " ....... ........ ", 28 | " ....... .......... ", 29 | " ....... .......... ", 30 | " ....... ....... ", 31 | " ....... ....... ", 32 | " ...... .......... ", 33 | " .... .......... ", 34 | " ........ ", 35 | " ..... ", 36 | " ... ", 37 | " "}; 38 | -------------------------------------------------------------------------------- /src/pixmaps/select_region_left.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char * select_region_left_xpm[] = { 3 | "32 32 2 1", 4 | " c None", 5 | ". c #000000", 6 | " ", 7 | " ", 8 | " ", 9 | " ............ ", 10 | " ............ ", 11 | " ............ ", 12 | " ............ ", 13 | " ............ ", 14 | " ............ ", 15 | " ............ ", 16 | " ............ ", 17 | " ............ ", 18 | " ............ ", 19 | " ............ ", 20 | " ............ ", 21 | " ............ ", 22 | " ............ ", 23 | " ............ ", 24 | " ............ ", 25 | " ............ ", 26 | " ............ ", 27 | " ............ ", 28 | " ............ ", 29 | " ............ ", 30 | " ............ ", 31 | " ............ ", 32 | " ............................ ", 33 | " ............................ ", 34 | " ............................ ", 35 | " ............................ ", 36 | " ", 37 | " "}; 38 | -------------------------------------------------------------------------------- /src/pixmaps/select_region_middle.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char * select_region_middle_xpm[] = { 3 | "32 32 2 1", 4 | " c None", 5 | ". c #000000", 6 | " ", 7 | " ", 8 | " ", 9 | " ............ ", 10 | " ............ ", 11 | " ............ ", 12 | " ............ ", 13 | " ............ ", 14 | " ............ ", 15 | " ............ ", 16 | " ............ ", 17 | " ............ ", 18 | " ............ ", 19 | " ............ ", 20 | " ............ ", 21 | " ............ ", 22 | " ............ ", 23 | " ............ ", 24 | " ............ ", 25 | " ............ ", 26 | " ............ ", 27 | " ............ ", 28 | " ............ ", 29 | " ............ ", 30 | " ............ ", 31 | " ............ ", 32 | " .............................. ", 33 | " .............................. ", 34 | " .............................. ", 35 | " .............................. ", 36 | " ", 37 | " "}; 38 | -------------------------------------------------------------------------------- /src/pixmaps/select_region_neither.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char * select_region_neither_xpm[] = { 3 | "32 32 2 1", 4 | " c None", 5 | ". c #000000", 6 | " ", 7 | " ", 8 | " ", 9 | " ", 10 | " ", 11 | " ", 12 | " ", 13 | " ", 14 | " ", 15 | " ", 16 | " ", 17 | " ", 18 | " ", 19 | " ", 20 | " ", 21 | " ", 22 | " ", 23 | " ", 24 | " ", 25 | " ", 26 | " ", 27 | " ", 28 | " ", 29 | " ", 30 | " ", 31 | " ", 32 | " .............................. ", 33 | " .............................. ", 34 | " .............................. ", 35 | " .............................. ", 36 | " ", 37 | " "}; 38 | -------------------------------------------------------------------------------- /src/pixmaps/select_region_right.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char * select_region_right_xpm[] = { 3 | "32 32 2 1", 4 | " c None", 5 | ". c #000000", 6 | " ", 7 | " ", 8 | " ", 9 | " ............ ", 10 | " ............ ", 11 | " ............ ", 12 | " ............ ", 13 | " ............ ", 14 | " ............ ", 15 | " ............ ", 16 | " ............ ", 17 | " ............ ", 18 | " ............ ", 19 | " ............ ", 20 | " ............ ", 21 | " ............ ", 22 | " ............ ", 23 | " ............ ", 24 | " ............ ", 25 | " ............ ", 26 | " ............ ", 27 | " ............ ", 28 | " ............ ", 29 | " ............ ", 30 | " ............ ", 31 | " ............ ", 32 | " ............................ ", 33 | " ............................ ", 34 | " ............................ ", 35 | " ............................ ", 36 | " ", 37 | " "}; 38 | -------------------------------------------------------------------------------- /src/pixmaps/select_region_unselect.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char * select_region_unselect_xpm[] = { 3 | "32 32 2 1", 4 | " c None", 5 | ". c #000000", 6 | " ", 7 | " ", 8 | " ", 9 | " ...... ", 10 | " .... .... ", 11 | " ... ... ", 12 | " ... ... ", 13 | " . ... ", 14 | " ... ", 15 | " ... ", 16 | " ... ", 17 | " .. ", 18 | " ... ", 19 | " ... ", 20 | " ... ", 21 | " .. ", 22 | " . ", 23 | " . ", 24 | " . ", 25 | " ", 26 | " ", 27 | " . ", 28 | " ... ", 29 | " ... ", 30 | " ... ", 31 | " ", 32 | " .............................. ", 33 | " .............................. ", 34 | " .............................. ", 35 | " .............................. ", 36 | " ", 37 | " "}; 38 | -------------------------------------------------------------------------------- /src/pixmaps/split_swap_join.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char * split_swap_join_xpm[] = { 3 | "32 32 2 1", 4 | " c None", 5 | ". c #000000", 6 | " ", 7 | " ", 8 | " ", 9 | " .... ", 10 | " .......... ", 11 | " .......... ", 12 | " .. ......... ", 13 | " .... ....... ", 14 | " ..... ....... ", 15 | " ...... ........ ", 16 | " ...... ... .... ", 17 | " ..... .. ... ", 18 | " ..... .... ", 19 | " ..... ... ", 20 | " .... ... ", 21 | " .... .... ", 22 | " .... .... ", 23 | " ... .... ", 24 | " ... ..... ", 25 | " .... ..... ", 26 | " ... .. ..... ", 27 | " .... ... ...... ", 28 | " ........ ...... ", 29 | " ....... ..... ", 30 | " ....... .... ", 31 | " ......... .. ", 32 | " .......... ", 33 | " .......... ", 34 | " .... ", 35 | " ", 36 | " ", 37 | " "}; 38 | -------------------------------------------------------------------------------- /src/pixmaps/xxdiff-new.jpb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/src/pixmaps/xxdiff-new.jpb -------------------------------------------------------------------------------- /src/proginfo.c: -------------------------------------------------------------------------------- 1 | /* -*- c-file-style: "xxdiff" -*- */ 2 | /******************************************************************************\ 3 | * $RCSfile$ 4 | * 5 | * Copyright (C) 1999-2003 Martin Blais 6 | * 7 | * This program is free software; you can redistribute it and/or modify 8 | * it under the terms of the GNU General Public License as published by 9 | * the Free Software Foundation; either version 2 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License 18 | * along with this program; if not, write to the Free Software 19 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 20 | * 21 | *****************************************************************************/ 22 | 23 | /*============================================================================== 24 | * EXTERNAL DECLARATIONS 25 | *============================================================================*/ 26 | 27 | #include 28 | #include 29 | 30 | 31 | /*============================================================================== 32 | * PUBLIC DECLARATIONS 33 | *============================================================================*/ 34 | 35 | char const xx_name[] = "xxdiff"; 36 | char const xx_version[] = XX_VERSION; 37 | char const xx_description[] = "A graphical file comparator and merge tool."; 38 | char const xx_copyright[] = "Copyright (C) 1999-2004 Martin Blais"; 39 | char const xx_homepage[] = "http://github.com/blais/xxdiff"; 40 | char const xx_bugs_email[] = "blais@furius.ca"; 41 | -------------------------------------------------------------------------------- /src/proginfo.h: -------------------------------------------------------------------------------- 1 | /* -*- c-file-style: "xxdiff" -*- */ 2 | /******************************************************************************\ 3 | * $RCSfile$ 4 | * 5 | * Copyright (C) 1999-2003 Martin Blais 6 | * 7 | * This program is free software; you can redistribute it and/or modify 8 | * it under the terms of the GNU General Public License as published by 9 | * the Free Software Foundation; either version 2 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License 18 | * along with this program; if not, write to the Free Software 19 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 20 | * 21 | ******************************************************************************/ 22 | 23 | #ifndef INCL_XXDIFF_VERSION 24 | #define INCL_XXDIFF_VERSION 25 | 26 | /*============================================================================== 27 | * PUBLIC DECLARATIONS 28 | *============================================================================*/ 29 | 30 | /* 31 | * Version number. Compiled in version.c everytime we link. 32 | */ 33 | #ifdef __cplusplus 34 | extern "C" { 35 | #endif 36 | 37 | extern char const xx_name[]; 38 | extern char const xx_version[]; 39 | extern char const xx_description[]; 40 | extern char const xx_copyright[]; 41 | extern char const xx_homepage[]; 42 | extern char const xx_bugs_email[]; 43 | 44 | #ifdef __cplusplus 45 | } 46 | #endif 47 | 48 | #endif 49 | -------------------------------------------------------------------------------- /src/sample.xxdiffrc: -------------------------------------------------------------------------------- 1 | # 2 | # Sample .xxdiffrc file. 3 | # 4 | # $RCSfile$ 5 | # 6 | 7 | # 8 | # Full screen xxdiff: 9 | # 10 | #Geometry : Maximize 11 | Geometry : 1200x900 12 | #Geometry : 1200x900+0+0 13 | 14 | # 15 | # Keyboard customizations 16 | # 17 | Accel.Exit: "Alt+Q" 18 | 19 | # 20 | # Colors 21 | # 22 | #Color.Same.Back: "#ffff00" 23 | 24 | 25 | # 26 | # Commands 27 | # 28 | Command.DiffFiles3: "/usr/bin/diff3" 29 | #Command.DiffFiles2: "diff -b -w" 30 | #Command.DiffDirectories: "diff -b -w" 31 | 32 | Command.Edit : "xterm -exec vi" 33 | 34 | 35 | # 36 | # Displayed stuff: 37 | # 38 | Show.LineNumbers : true 39 | Show.Filenames: true 40 | Show.Toolbar: false 41 | Show.VerticalLine: true 42 | VerticalLinePosition: 80 43 | 44 | 45 | # 46 | # Fonts 47 | # 48 | FontApp: "-*-screen-bold-i-normal--*-100-*-*-*-*-iso8859-1" 49 | 50 | 51 | # 52 | # Other options 53 | # 54 | 55 | HorizontalDiffs: true 56 | FormatClipboardText: false 57 | ClipboardFormat: "%L> %s" 58 | ExitOnSame: false 59 | 60 | 61 | 62 | DirDiffBuildSolelyFromOutput: false 63 | -------------------------------------------------------------------------------- /src/text.inline.h: -------------------------------------------------------------------------------- 1 | /* -*- c-file-style: "xxdiff" -*- */ 2 | /******************************************************************************\ 3 | * $RCSfile$ 4 | * 5 | * Copyright (C) 1999-2003 Martin Blais 6 | * 7 | * This program is free software; you can redistribute it and/or modify 8 | * it under the terms of the GNU General Public License as published by 9 | * the Free Software Foundation; either version 2 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License 18 | * along with this program; if not, write to the Free Software 19 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 20 | * 21 | ******************************************************************************/ 22 | 23 | /*============================================================================== 24 | * EXTERNAL DECLARATIONS 25 | *============================================================================*/ 26 | 27 | XX_NAMESPACE_BEGIN 28 | 29 | 30 | /*============================================================================== 31 | * CLASS XxText 32 | *============================================================================*/ 33 | 34 | //------------------------------------------------------------------------------ 35 | // 36 | inline uint XxText::getMergedLines() const 37 | { 38 | return _mergedLines; 39 | } 40 | 41 | XX_NAMESPACE_END 42 | -------------------------------------------------------------------------------- /src/types.h: -------------------------------------------------------------------------------- 1 | /* -*- c-file-style: "xxdiff" -*- */ 2 | /******************************************************************************\ 3 | * $RCSfile$ 4 | * 5 | * Copyright (C) 1999-2003 Martin Blais 6 | * 7 | * This program is free software; you can redistribute it and/or modify 8 | * it under the terms of the GNU General Public License as published by 9 | * the Free Software Foundation; either version 2 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License 18 | * along with this program; if not, write to the Free Software 19 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 20 | * 21 | ******************************************************************************/ 22 | 23 | #ifndef INCL_XXDIFF_TYPES 24 | #define INCL_XXDIFF_TYPES 25 | 26 | XX_NAMESPACE_BEGIN 27 | 28 | /*============================================================================== 29 | * EXTERNAL DECLARATIONS 30 | *============================================================================*/ 31 | 32 | // These are used throughout the code, but this file is a good location for 33 | // those two defines because it is most likely to have been included when using 34 | // those defines. 35 | 36 | // File line number, that is, a line number within a file. 37 | typedef int XxFln; 38 | 39 | // Display line number, that is, a line number for the reconciled files display. 40 | typedef int XxDln; 41 | 42 | // File no (0, 1 or 2) 43 | typedef int XxFno; 44 | 45 | // Hunk id. 46 | typedef int XxHunk; 47 | 48 | XX_NAMESPACE_END 49 | 50 | #endif 51 | 52 | -------------------------------------------------------------------------------- /src/winfixes/unistd.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/src/winfixes/unistd.h -------------------------------------------------------------------------------- /src/winfixes/winfixes.h: -------------------------------------------------------------------------------- 1 | /* -*- c-file-style: "xxdiff" -*- */ 2 | /******************************************************************************\ 3 | * $RCSfile$ 4 | * 5 | * Copyright (C) 1999-2002 Martin Blais 6 | * 7 | * This program is free software; you can redistribute it and/or modify 8 | * it under the terms of the GNU General Public License as published by 9 | * the Free Software Foundation; either version 2 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License 18 | * along with this program; if not, write to the Free Software 19 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 20 | * 21 | *****************************************************************************/ 22 | 23 | #ifndef INCL_XXDIFF_WINFIXES 24 | #define INCL_XXDIFF_WINFIXES 25 | 26 | // 27 | // This is REALLY lame, we should use std::min and std::max, but we have to 28 | // start portnig to Windoom at some point. 29 | // 30 | #ifndef WINDOWS 31 | namespace std { 32 | 33 | #ifdef min 34 | #undef min 35 | #undef max 36 | #endif 37 | 38 | template 39 | T min( const T& a, const T& b ) { 40 | if ( a < b ) { return a; } else { return b; } 41 | } 42 | 43 | template 44 | T max( const T& a, const T& b ) { 45 | if ( a > b ) { return a; } else { return b; } 46 | } 47 | 48 | } 49 | #endif //!WINDOWS 50 | 51 | 52 | #define snprintf _snprintf 53 | 54 | //#define getenv(x) 0 55 | 56 | #endif 57 | -------------------------------------------------------------------------------- /src/xxdiff.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/src/xxdiff.icns -------------------------------------------------------------------------------- /style.css: -------------------------------------------------------------------------------- 1 | @import url("/docutils-style.css"); 2 | @import url("/project.css"); 3 | 4 | div#project-header { 5 | background-image: url("etc/header-background.jpg"); 6 | background-color: rgb(173,173,173); 7 | } 8 | 9 | -------------------------------------------------------------------------------- /test/bugs/examples/diff1.txt: -------------------------------------------------------------------------------- 1 | function supply() 2 | { 3 | //alert(cover.supplier.options[cover.supplier.selectedIndex].text) 4 | if (cover.supplier.options[cover.supplier.selectedIndex].text == 'Southern Print') 5 | { 6 | cover.finish.disabled = false 7 | cover.print.disabled = false 8 | cover.ifc.disabled = false 9 | cover.ibc.disabled = false 10 | cover.obc.disabled = false 11 | 12 | cover.finish.style.background='#ffffff' 13 | cover.print.style.background='#ffffff' 14 | cover.ifc.style.background='#ffffff' 15 | cover.ibc.style.background='#ffffff' 16 | cover.obc.style.background='#ffffff' 17 | } 18 | 19 | if (cover.supplier.options[cover.supplier.selectedIndex].text == 'Customer') 20 | { 21 | cover.finish.style.background='#C0C0C0' 22 | cover.print.style.background='#C0C0C0' 23 | cover.ifc.style.background='#C0C0C0' 24 | cover.ibc.style.background='#C0C0C0' 25 | cover.obc.style.background='#C0C0C0' 26 | 27 | cover.finish.disabled = true 28 | cover.print.disabled = true 29 | cover.ifc.disabled = true 30 | cover.ibc.disabled = true 31 | cover.obc.disabled = true 32 | } 33 | 34 | if (cover.cover_type.options[cover.cover_type.selectedIndex].text == 'Self') 35 | { 36 | cover.ifc.style.background='#C0C0C0' 37 | cover.ibc.style.background='#C0C0C0' 38 | cover.obc.style.background='#C0C0C0' 39 | cover.ifc.disabled = true 40 | cover.ibc.disabled = true 41 | cover.obc.disabled = true 42 | } 43 | 44 | if (cover.cover_type.options[cover.cover_type.selectedIndex].text == 'None') 45 | { 46 | cover.ifc.style.background='#C0C0C0' 47 | cover.ibc.style.background='#C0C0C0' 48 | cover.obc.style.background='#C0C0C0' 49 | cover.ifc.disabled = true 50 | cover.ibc.disabled = true 51 | cover.obc.disabled = true 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /test/bugs/examples/diff2.txt: -------------------------------------------------------------------------------- 1 | ?> 38 | -------------------------------------------------------------------------------- /test/bugs/segfault/ancestor: -------------------------------------------------------------------------------- 1 | static void 2 | calculate_new_manifest_map(manifest_map const & m_old, 3 | manifest_map & m_new, 4 | rename_set & renames, 5 | app_state & app) 6 | { 7 | path_set paths; 8 | work_set work; 9 | extract_path_set(m_old, paths); 10 | get_work_set(work); 11 | if (work.dels.size() > 0) 12 | L(F("removing %d dead files from manifest\n") % 13 | work.dels.size()); 14 | if (work.adds.size() > 0) 15 | L(F("adding %d files to manifest\n") % 16 | work.adds.size()); 17 | if (work.renames.size() > 0) 18 | L(F("renaming %d files in manifest\n") % 19 | work.renames.size()); 20 | apply_work_set(work, paths); 21 | build_manifest_map(paths, m_new, app); 22 | renames = work.renames; 23 | } 24 | 25 | 26 | static void 27 | calculate_new_manifest_map(manifest_map const & m_old, 28 | manifest_map & m_new, 29 | app_state & app) 30 | { 31 | rename_set dummy; 32 | calculate_new_manifest_map (m_old, m_new, dummy, app); 33 | } 34 | -------------------------------------------------------------------------------- /test/bugs/segfault/left: -------------------------------------------------------------------------------- 1 | static void 2 | calculate_base_revision(app_state & app, 3 | revision_id & rid, 4 | revision_set & rev, 5 | manifest_id & mid, 6 | manifest_map & man) 7 | { 8 | rev.edges.clear(); 9 | man.clear(); 10 | 11 | get_revision_id(rid); 12 | 13 | if (! rid.inner()().empty()) 14 | { 15 | 16 | N(app.db.revision_exists(rid), 17 | F("base revision %s does not exist in database\n") % rid); 18 | 19 | app.db.get_revision_manifest(rid, mid); 20 | L(F("old manifest is %s\n") % mid); 21 | 22 | N(app.db.manifest_version_exists(mid), 23 | F("base manifest %s does not exist in database\n") % mid); 24 | 25 | app.db.get_manifest(mid, man); 26 | } 27 | 28 | L(F("old manifest has %d entries\n") % man.size()); 29 | } 30 | 31 | static void 32 | calculate_base_revision(app_state & app, 33 | revision_set & rev, 34 | manifest_map & man) 35 | { 36 | revision_id rid; 37 | manifest_id mid; 38 | calculate_base_revision(app, rid, rev, mid, man); 39 | } 40 | 41 | -------------------------------------------------------------------------------- /test/carriage/Makefile: -------------------------------------------------------------------------------- 1 | all: 2 | xxdiff d1 d2 3 | -------------------------------------------------------------------------------- /test/carriage/d1: -------------------------------------------------------------------------------- 1 | The paper would attempt to look at the coverage 2 | of Nigeria's ethnic diversity and conflicts in 3 | Alaroye publications. By Alaroye publications, 4 | we refer to the news publications emanating from 5 | World Information Agents. They include Alaroye 6 | newspaper, Alaroye Magazine and Akede 7 | Agbaye. Since the colonial days, the various 8 | ethnic groups that make up the nation, Nigeria, 9 | have been dealing with t; themselves with mutual 10 | suspicion and unhealthy rival. The quest for 11 | power and the exclusion from power have been 12 | major dynamite in the political troubles that 13 | have confronted the country. In diverse ways, 14 | the Nigerian press have been mirroring this. In 15 | other words, happenings in the society have 16 | impacted on the content and nature of the press; 17 | while, the press, in turn, as an agent of 18 | socialisation, have affected the society 19 | fulfilling, in this sense, its function as a 20 | tool in shaping news and opinions. 21 | 22 | The ethnic identity of a Nigerian newspaper is 23 | determined by the ethnic identity of the 24 | publisher and the main market that the paper 25 | seeks to cultivate and patronise. Indigenous 26 | language newspapers are ethnic based newspapers 27 | which, of course, have primordial interests in 28 | the ethnic groups whose (indigenous) languages 29 | the news papers use. These newspapers can lead 30 | and modify the opinions of their peoples forming 31 | stereotypes for them about other ethnic groups; 32 | thereby fuelling further the social conflicts. 33 | -------------------------------------------------------------------------------- /test/carriage/d2: -------------------------------------------------------------------------------- 1 | The paper would attempt to look at the coverage 2 | of Nigeria's ethnic diversity and conflicts in 3 | Alaroye publications. By Alaroye publications, 4 | we refer to the news publications emanating from 5 | World Information Agents. They include Alaroye 6 | newspaper, Alaroye Magazine and Akede 7 | Agbaye. Since the colonial days, the various 8 | ethnic groups that make up the nation, Nigeria, 9 | have been dealing with t; themselves with mutual 10 | suspicion and unhealthy rival. The quest for 11 | power and the exclusion from power have been 12 | major dynamite in the political troubles that 13 | have confronted the country. In diverse ways, 14 | the Nigerian press have been mirroring this. In 15 | other words, happenings in the society have 16 | impacted on the content and nature of the press; 17 | while, the press, in turn, as an agent of 18 | socialisation, have affected the society 19 | fulfilling, in this sense, its function as a 20 | tool in shaping news and opinions. 21 | 22 | The ethnic identity of a Nigerian newspaper is 23 | determined by the ethnic identity of the 24 | publisher and the main market that the paper 25 | seeks to cultivate and patronise. Indigenous 26 | language newspapers are ethnic based newspapers 27 | which, of course, have primordial interests in 28 | the ethnic groups whose (indigenous) languages 29 | the news papers use. These newspapers can lead 30 | and modify the opinions of their peoples forming 31 | stereotypes for them about other ethnic groups; 32 | thereby fuelling further the social conflicts. 33 | -------------------------------------------------------------------------------- /test/diff3/moy.out: -------------------------------------------------------------------------------- 1 | ====1 2 | 1:8,9c 3 | This is text inserted in file a. 4 | 5 | 2:7a 6 | 3:7a 7 | ====2 8 | 1:17a 9 | 3:15a 10 | 2:16,17c 11 | This is text inserted in file b. 12 | 13 | ====3 14 | 1:23a 15 | 2:23a 16 | 3:22,23c 17 | This is text inserted in file b. 18 | 19 | ====3 20 | 1:31c 21 | 2:31c 22 | This is text that will be deleted in file c. 23 | 3:30a 24 | ====1 25 | 1:35a 26 | 2:36c 27 | 3:35c 28 | This is text that will be deleted in file a. 29 | ====2 30 | 1:39c 31 | 3:39c 32 | This is text that will be deleted in file b. 33 | 2:39a 34 | ==== 35 | 1:45,47c 36 | This is text that was inserted in file a and other different 37 | text was also inserted in file b. 38 | 39 | 2:45,47c 40 | This is the different text we were talking about in 41 | file a. 42 | 43 | 3:44a 44 | ==== 45 | 1:53c 46 | Earlier this month, a coalition of companies released 47 | 2:53c 48 | Earlier this month, chagned a coalition of companies released 49 | 3:50c 50 | Earlier this month, a coalition of compasjknies released 51 | -------------------------------------------------------------------------------- /test/dir1/file1: -------------------------------------------------------------------------------- 1 | #!/bin/bash #-- not used anyhow 2 | # 3 | # $Id: file1 694 2003-12-27 07:22:12Z blais $ 4 | # 5 | 6 | # echo "Bashrc executed" 7 | 8 | export SHELL=bash 9 | 10 | 11 | # Reset environment in bash if requested. The reason why we do this is for 12 | # setting stuff that depends on the calling process environment, e.g. with 13 | # ClearCase. 14 | 15 | if [ -f "$HOME/.cache.bashenv" ]; then 16 | # echo "Resetting environment in .bashrc" 17 | . $HOME/the-config/.env.pre 18 | . $HOME/the-config/.env.scopes 19 | . $HOME/the-config/.env.post 20 | fi 21 | 22 | # check for cache first 23 | if [ ! -f "$HOME/.cache.disable" -a \ 24 | -f "$HOME/.cache.bashrc.$SITE.$PLAT.$HOST" ]; then 25 | 26 | echo "Using cached .bashrc"; 27 | . $HOME/.cache.bashrc.$SITE.$PLAT.$HOST 28 | 29 | else 30 | 31 | #--------------------------------------------------------------------------- 32 | # source scope-specific bashrc's 33 | 34 | if [ -f $HOME/the-config/share/.bashrc.local ]; then 35 | . $HOME/the-config/share/.bashrc.local 36 | fi 37 | 38 | if [ -f $HOME/the-config/site/$SITE/.bashrc.local ]; then 39 | . $HOME/the-config/site/$SITE/.bashrc.local 40 | fi 41 | 42 | if [ -f $HOME/the-config/plat/$PLAT/.bashrc.local ]; then 43 | . $HOME/the-config/plat/$PLAT/.bashrc.local 44 | fi 45 | 46 | if [ -f $HOME/the-config/host/$HOST/.bashrc.local ]; then 47 | . $HOME/the-config/host/$HOST/.bashrc.local 48 | fi 49 | 50 | if [ -f $HOME/the-config/site/$SITE/plat/$PLAT/.bashrc.local ]; then 51 | . $HOME/the-config/site/$SITE/plat/$PLAT/.bashrc.local 52 | fi 53 | 54 | if [ -f $HOME/the-config/host/$HOST/plat/$PLAT/.bashrc.local ]; then 55 | . $HOME/the-config/host/$HOST/plat/$PLAT/.bashrc.local 56 | fi 57 | fi 58 | -------------------------------------------------------------------------------- /test/dir1/file2: -------------------------------------------------------------------------------- 1 | #!/bin/bash #-- not used anyhow 2 | # 3 | # $Id: file2 694 2003-12-27 07:22:12Z blais $ 4 | # 5 | 6 | # echo "Bashrc executed" 7 | 8 | export SHELL=bash 9 | 10 | 11 | # Reset environment in bash if requested. The reason why we do this is for 12 | # setting stuff that depends on the calling process environment, e.g. with 13 | # ClearCase. 14 | 15 | if [ -f "$HOME/.cache.bashenv" ]; then 16 | # echo "Resetting environment in .bashrc" 17 | . $HOME/the-config/.env.pre 18 | . $HOME/the-config/.env.scopes 19 | . $HOME/the-config/.env.post 20 | fi 21 | 22 | # check for cache first 23 | if [ ! -f "$HOME/.cache.disable" -a \ 24 | -f "$HOME/.cache.bashrc.$SITE.$PLAT.$HOST" ]; then 25 | 26 | echo "Using cached .bashrc"; 27 | . $HOME/.cache.bashrc.$SITE.$PLAT.$HOST 28 | 29 | else 30 | 31 | #--------------------------------------------------------------------------- 32 | # source scope-specific bashrc's 33 | 34 | if [ -f $HOME/the-config/share/.bashrc.local ]; then 35 | . $HOME/the-config/share/.bashrc.local 36 | fi 37 | 38 | if [ -f $HOME/the-config/site/$SITE/.bashrc.local ]; then 39 | . $HOME/the-config/site/$SITE/.bashrc.local 40 | fi 41 | 42 | if [ -f $HOME/the-config/plat/$PLAT/.bashrc.local ]; then 43 | . $HOME/the-config/plat/$PLAT/.bashrc.local 44 | fi 45 | 46 | if [ -f $HOME/the-config/host/$HOST/.bashrc.local ]; then 47 | . $HOME/the-config/host/$HOST/.bashrc.local 48 | fi 49 | 50 | if [ -f $HOME/the-config/site/$SITE/plat/$PLAT/.bashrc.local ]; then 51 | . $HOME/the-config/site/$SITE/plat/$PLAT/.bashrc.local 52 | fi 53 | 54 | if [ -f $HOME/the-config/host/$HOST/plat/$PLAT/.bashrc.local ]; then 55 | . $HOME/the-config/host/$HOST/plat/$PLAT/.bashrc.local 56 | fi 57 | fi 58 | -------------------------------------------------------------------------------- /test/dir1/file3: -------------------------------------------------------------------------------- 1 | #!/bin/bash #-- not used anyhow 2 | # 3 | # $Id: file3 694 2003-12-27 07:22:12Z blais $ 4 | # 5 | 6 | # echo "Bashrc executed" 7 | 8 | export SHELL=bash 9 | 10 | 11 | # Reset environment in bash if requested. The reason why we do this is for 12 | # setting stuff that depends on the calling process environment, e.g. with 13 | # ClearCase. 14 | 15 | if [ -f "$HOME/.cache.bashenv" ]; then 16 | # echo "Resetting environment in .bashrc" 17 | . $HOME/the-config/.env.pre 18 | . $HOME/the-config/.env.scopes 19 | . $HOME/the-config/.env.post 20 | fi 21 | 22 | # check for cache first 23 | if [ ! -f "$HOME/.cache.disable" -a \ 24 | -f "$HOME/.cache.bashrc.$SITE.$PLAT.$HOST" ]; then 25 | 26 | echo "Using cached .bashrc"; 27 | . $HOME/.cache.bashrc.$SITE.$PLAT.$HOST 28 | 29 | else 30 | 31 | #--------------------------------------------------------------------------- 32 | # source scope-specific bashrc's 33 | 34 | if [ -f $HOME/the-config/share/.bashrc.local ]; then 35 | . $HOME/the-config/share/.bashrc.local 36 | fi 37 | 38 | if [ -f $HOME/the-config/site/$SITE/.bashrc.local ]; then 39 | . $HOME/the-config/site/$SITE/.bashrc.local 40 | fi 41 | 42 | if [ -f $HOME/the-config/plat/$PLAT/.bashrc.local ]; then 43 | . $HOME/the-config/plat/$PLAT/.bashrc.local 44 | fi 45 | 46 | if [ -f $HOME/the-config/host/$HOST/.bashrc.local ]; then 47 | . $HOME/the-config/host/$HOST/.bashrc.local 48 | fi 49 | 50 | if [ -f $HOME/the-config/site/$SITE/plat/$PLAT/.bashrc.local ]; then 51 | . $HOME/the-config/site/$SITE/plat/$PLAT/.bashrc.local 52 | fi 53 | 54 | if [ -f $HOME/the-config/host/$HOST/plat/$PLAT/.bashrc.local ]; then 55 | . $HOME/the-config/host/$HOST/plat/$PLAT/.bashrc.local 56 | fi 57 | fi 58 | -------------------------------------------------------------------------------- /test/dir1/file4: -------------------------------------------------------------------------------- 1 | #!/bin/bash #-- not used anyhow 2 | # 3 | # $Id: file4 694 2003-12-27 07:22:12Z blais $ 4 | # 5 | sdjhsdsjhsj 6 | # echo "Bashrc executed" 7 | 8 | export SHELL=bash 9 | 10 | 11 | # Reset environment in bash if requested. The reason why we do this is for 12 | # setting stuff that depends on the calling process environment, e.g. with 13 | # ClearCase. 14 | 15 | if [ -f "$HOME/.cache.bashenv" ]; then 16 | # echo "Resetting environment in .bashrc" 17 | . $HOME/the-config/.env.pre 18 | . $HOME/the-config/.env.scopes 19 | . $HOME/the-config/.env.post 20 | fi 21 | 22 | # check for cache first 23 | if [ ! -f "$HOME/.cache.disable" -a \ 24 | -f "$HOME/.cache.bashrc.$SITE.$PLAT.$HOST" ]; then 25 | 26 | echo "Using cached .bashrc"; 27 | . $HOME/.cache.bashrc.$SITE.$PLAT.$HOST 28 | 29 | else 30 | 31 | #--------------------------------------------------------------------------- 32 | # source scope-specific bashrc's 33 | 34 | if [ -f $HOME/the-config/share/.bashrc.local ]; then 35 | . $HOME/the-config/share/.bashrc.local 36 | fi 37 | 38 | if [ -f $HOME/the-config/site/$SITE/.bashrc.local ]; then 39 | . $HOME/the-config/site/$SITE/.bashrc.local 40 | fi 41 | 42 | if [ -f $HOME/the-config/plat/$PLAT/.bashrc.local ]; then 43 | . $HOME/the-config/plat/$PLAT/.bashrc.local 44 | fi 45 | 46 | if [ -f $HOME/the-config/host/$HOST/.bashrc.local ]; then 47 | . $HOME/the-config/host/$HOST/.bashrc.local 48 | fi 49 | 50 | if [ -f $HOME/the-config/site/$SITE/plat/$PLAT/.bashrc.local ]; then 51 | . $HOME/the-config/site/$SITE/plat/$PLAT/.bashrc.local 52 | fi 53 | 54 | if [ -f $HOME/the-config/host/$HOST/plat/$PLAT/.bashrc.local ]; then 55 | . $HOME/the-config/host/$HOST/plat/$PLAT/.bashrc.local 56 | fi 57 | fi 58 | -------------------------------------------------------------------------------- /test/dir1/newfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/test/dir1/newfile -------------------------------------------------------------------------------- /test/dir2/file1: -------------------------------------------------------------------------------- 1 | #!/bin/bash #-- not used anyhow 2 | # 3 | # $Id: file1 694 2003-12-27 07:22:12Z blais $ 4 | # 5 | 6 | # echo "Bashrc executed" 7 | 8 | export SHELL=bash 9 | 10 | 11 | # Reset environment in bash if requested. The reason why we do this is for 12 | # setting stuff that depends on the calling process environment, e.g. with 13 | # ClearCase. 14 | 15 | if [ -f "$HOME/.cache.bashenv" ]; then 16 | # echo "Resetting environment in .bashrc" 17 | . $HOME/the-config/.env.pre 18 | . $HOME/the-config/.env.scopes 19 | . $HOME/the-config/.env.post 20 | fi 21 | 22 | # check for cache first 23 | if [ ! -f "$HOME/.cache.disable" -a \ 24 | -f "$HOME/.cache.bashrc.$SITE.$PLAT.$HOST" ]; then 25 | 26 | echo "Using cached .bashrc"; 27 | . $HOME/.cache.bashrc.$SITE.$PLAT.$HOST 28 | 29 | else 30 | 31 | #--------------------------------------------------------------------------- 32 | # source scope-specific bashrc's 33 | 34 | if [ -f $HOME/the-config/share/.bashrc.local ]; then 35 | . $HOME/the-config/share/.bashrc.local 36 | fi 37 | 38 | if [ -f $HOME/the-config/site/$SITE/.bashrc.local ]; then 39 | . $HOME/the-config/site/$SITE/.bashrc.local 40 | fi 41 | 42 | if [ -f $HOME/the-config/plat/$PLAT/.bashrc.local ]; then 43 | . $HOME/the-config/plat/$PLAT/.bashrc.local 44 | fi 45 | 46 | if [ -f $HOME/the-config/host/$HOST/.bashrc.local ]; then 47 | . $HOME/the-config/host/$HOST/.bashrc.local 48 | fi 49 | 50 | if [ -f $HOME/the-config/site/$SITE/plat/$PLAT/.bashrc.local ]; then 51 | . $HOME/the-config/site/$SITE/plat/$PLAT/.bashrc.local 52 | fi 53 | 54 | if [ -f $HOME/the-config/host/$HOST/plat/$PLAT/.bashrc.local ]; then 55 | . $HOME/the-config/host/$HOST/plat/$PLAT/.bashrc.local 56 | fi 57 | fi 58 | -------------------------------------------------------------------------------- /test/dir2/file2: -------------------------------------------------------------------------------- 1 | #!/bin/bash #-- not used anyhow 2 | # 3 | # $Id: file2 694 2003-12-27 07:22:12Z blais $ 4 | # 5 | 6 | # echo "Bashrc executed" 7 | 8 | export SHELL=bash 9 | 10 | 11 | # Reset environment in bash if requested. The reason why we do this is for 12 | # setting stuff that depends on the calling process environment, e.g. with 13 | # ClearCase. 14 | 15 | if [ -f "$HOME/.cache.bashenv" ]; then 16 | # echo "Resetting environment in .bashrc" 17 | . $HOME/the-config/.env.pre 18 | . $HOME/the-config/.env.scopes 19 | . $HOME/the-config/.env.post 20 | fi 21 | 22 | # check for cache first 23 | if [ ! -f "$HOME/.cache.disable" -a \ 24 | -f "$HOME/.cache.bashrc.$SITE.$PLAT.$HOST" ]; then 25 | 26 | echo "Using cached .bashrc"; 27 | . $HOME/.cache.bashrc.$SITE.$PLAT.$HOST 28 | 29 | else 30 | 31 | #--------------------------------------------------------------------------- 32 | # source scope-specific bashrc's 33 | 34 | if [ -f $HOME/the-config/share/.bashrc.local ]; then 35 | . $HOME/the-config/share/.bashrc.local 36 | fi 37 | 38 | if [ -f $HOME/the-config/site/$SITE/.bashrc.local ]; then 39 | . $HOME/the-config/site/$SITE/.bashrc.local 40 | fi 41 | 42 | if [ -f $HOME/the-config/plat/$PLAT/.bashrc.local ]; then 43 | . $HOME/the-config/plat/$PLAT/.bashrc.local 44 | fi 45 | 46 | if [ -f $HOME/the-config/host/$HOST/.bashrc.local ]; then 47 | . $HOME/the-config/host/$HOST/.bashrc.local 48 | fi 49 | 50 | if [ -f $HOME/the-config/site/$SITE/plat/$PLAT/.bashrc.local ]; then 51 | . $HOME/the-config/site/$SITE/plat/$PLAT/.bashrc.local 52 | fi 53 | 54 | if [ -f $HOME/the-config/host/$HOST/plat/$PLAT/.bashrc.local ]; then 55 | . $HOME/the-config/host/$HOST/plat/$PLAT/.bashrc.local 56 | fi 57 | fi 58 | -------------------------------------------------------------------------------- /test/dir2/file3: -------------------------------------------------------------------------------- 1 | #!/bin/bash #-- not used anyhow 2 | # 3 | # $Id: file3 694 2003-12-27 07:22:12Z blais $ 4 | # 5 | 6 | # echo "Bashrc executed" 7 | 8 | export SHELL=bash 9 | 10 | 11 | # Reset environment in bash if requested. The reason why we do this is for 12 | # setting stuff that depends on the calling process environment, e.g. with 13 | # ClearCase. 14 | 15 | if [ -f "$HOME/.cache.bashenv" ]; then 16 | # echo "Resetting environment in .bashrc" 17 | . $HOME/the-config/.env.pre 18 | . $HOME/the-config/.env.scopes 19 | . $HOME/the-config/.env.post 20 | fi 21 | 22 | # check for cache first 23 | if [ ! -f "$HOME/.cache.disable" -a \ 24 | -f "$HOME/.cache.bashrc.$SITE.$PLAT.$HOST" ]; then 25 | 26 | echo "Using cached .bashrc"; 27 | . $HOME/.cache.bashrc.$SITE.$PLAT.$HOST 28 | 29 | else 30 | 31 | #--------------------------------------------------------------------------- 32 | # source scope-specific bashrc's 33 | 34 | if [ -f $HOME/the-config/share/.bashrc.local ]; then 35 | . $HOME/the-config/share/.bashrc.local 36 | fi 37 | 38 | if [ -f $HOME/the-config/site/$SITE/.bashrc.local ]; then 39 | . $HOME/the-config/site/$SITE/.bashrc.local 40 | fi 41 | 42 | if [ -f $HOME/the-config/plat/$PLAT/.bashrc.local ]; then 43 | . $HOME/the-config/plat/$PLAT/.bashrc.local 44 | fi 45 | 46 | if [ -f $HOME/the-config/host/$HOST/.bashrc.local ]; then 47 | . $HOME/the-config/host/$HOST/.bashrc.local 48 | fi 49 | 50 | if [ -f $HOME/the-config/site/$SITE/plat/$PLAT/.bashrc.local ]; then 51 | . $HOME/the-config/site/$SITE/plat/$PLAT/.bashrc.local 52 | fi 53 | 54 | if [ -f $HOME/the-config/host/$HOST/plat/$PLAT/.bashrc.local ]; then 55 | . $HOME/the-config/host/$HOST/plat/$PLAT/.bashrc.local 56 | fi 57 | fi 58 | -------------------------------------------------------------------------------- /test/dir2/file4: -------------------------------------------------------------------------------- 1 | #!/bin/bash #-- not used anyhow 2 | # 3 | # $Id: file4 694 2003-12-27 07:22:12Z blais $ 4 | # 5 | sdjhsdsjhsj 6 | # echo "Bashrc executed" 7 | 8 | export SHELL=bash 9 | 10 | 11 | # Reset environment in bash if requested. The reason why we do this is for 12 | # setting stuff that depends on the calling process environment, e.g. with 13 | # ClearCase. 14 | 15 | if [ -f "$HOME/.cache.bashenv" ]; then 16 | # echo "Resetting environment in .bashrc" 17 | . $HOME/the-config/.env.pre 18 | . $HOME/the-config/.env.scopes 19 | . $HOME/the-config/.env.post 20 | fi 21 | 22 | # check for cache first 23 | if [ ! -f "$HOME/.cache.disable" -a \ 24 | -f "$HOME/.cache.bashrc.$SITE.$PLAT.$HOST" ]; then 25 | 26 | echo "Using cached .bashrc"; 27 | . $HOME/.cache.bashrc.$SITE.$PLAT.$HOST 28 | 29 | else 30 | 31 | #--------------------------------------------------------------------------- 32 | # source scope-specific bashrc's 33 | 34 | if [ -f $HOME/the-config/share/.bashrc.local ]; then 35 | . $HOME/the-config/share/.bashrc.local 36 | fi 37 | 38 | if [ -f $HOME/the-config/site/$SITE/.bashrc.local ]; then 39 | . $HOME/the-config/site/$SITE/.bashrc.local 40 | fi 41 | 42 | if [ -f $HOME/the-config/plat/$PLAT/.bashrc.local ]; then 43 | . $HOME/the-config/plat/$PLAT/.bashrc.local 44 | fi 45 | 46 | if [ -f $HOME/the-config/host/$HOST/.bashrc.local ]; then 47 | . $HOME/the-config/host/$HOST/.bashrc.local 48 | fi 49 | 50 | if [ -f $HOME/the-config/site/$SITE/plat/$PLAT/.bashrc.local ]; then 51 | . $HOME/the-config/site/$SITE/plat/$PLAT/.bashrc.local 52 | fi 53 | 54 | if [ -f $HOME/the-config/host/$HOST/plat/$PLAT/.bashrc.local ]; then 55 | . $HOME/the-config/host/$HOST/plat/$PLAT/.bashrc.local 56 | fi 57 | fi 58 | -------------------------------------------------------------------------------- /test/dir2/file5: -------------------------------------------------------------------------------- 1 | #!/bin/bash #-- not used anyhow 2 | # 3 | # $Id: file5 700 2003-12-29 01:56:41Z blais $ 4 | # 5 | sdjhsdsjhsj 6 | # echo "Bashrc executed" 7 | 8 | export SHELL=bash 9 | 10 | 11 | # Reset environment in bash if requested. The reason why we do this is for 12 | # setting stuff that depends on the calling process environment, e.g. with 13 | # ClearCase. 14 | 15 | if [ -f "$HOME/.cache.bashenv" ]; then 16 | # echo "Resetting environment in .bashrc" 17 | . $HOME/the-config/.env.pre 18 | . $HOME/the-config/.env.scopes 19 | . $HOME/the-config/.env.post 20 | fi 21 | 22 | # check for cache first 23 | if [ ! -f "$HOME/.cache.disable" -a \ 24 | -f "$HOME/.cache.bashrc.$SITE.$PLAT.$HOST" ]; then 25 | 26 | echo "Using cached .bashrc"; 27 | . $HOME/.cache.bashrc.$SITE.$PLAT.$HOST 28 | 29 | else 30 | 31 | #--------------------------------------------------------------------------- 32 | # source scope-specific bashrc's 33 | 34 | if [ -f $HOME/the-config/share/.bashrc.local ]; then 35 | . $HOME/the-config/share/.bashrc.local 36 | fi 37 | 38 | if [ -f $HOME/the-config/site/$SITE/.bashrc.local ]; then 39 | . $HOME/the-config/site/$SITE/.bashrc.local 40 | fi 41 | 42 | if [ -f $HOME/the-config/plat/$PLAT/.bashrc.local ]; then 43 | . $HOME/the-config/plat/$PLAT/.bashrc.local 44 | fi 45 | 46 | if [ -f $HOME/the-config/host/$HOST/.bashrc.local ]; then 47 | . $HOME/the-config/host/$HOST/.bashrc.local 48 | fi 49 | 50 | if [ -f $HOME/the-config/site/$SITE/plat/$PLAT/.bashrc.local ]; then 51 | . $HOME/the-config/site/$SITE/plat/$PLAT/.bashrc.local 52 | fi 53 | 54 | if [ -f $HOME/the-config/host/$HOST/plat/$PLAT/.bashrc.local ]; then 55 | . $HOME/the-config/host/$HOST/plat/$PLAT/.bashrc.local 56 | fi 57 | fi 58 | -------------------------------------------------------------------------------- /test/dir3/file1: -------------------------------------------------------------------------------- 1 | #!/bin/bash #-- not used anyhow 2 | # 3 | # $Id: file1 694 2003-12-27 07:22:12Z blais $ 4 | # 5 | 6 | # echo "Bashrc executed" 7 | 8 | export SHELL=bash 9 | 10 | 11 | # Reset environment in bash if requested. The reason why we do this is for 12 | # setting stuff that depends on the calling process environment, e.g. with 13 | # ClearCase. 14 | 15 | if [ -f "$HOME/.cache.bashenv" ]; then 16 | # echo "Resetting environment in .bashrc" 17 | . $HOME/the-config/.env.pre 18 | . $HOME/the-config/.env.scopes 19 | . $HOME/the-config/.env.post 20 | fi 21 | 22 | # check for cache first 23 | if [ ! -f "$HOME/.cache.disable" -a \ 24 | -f "$HOME/.cache.bashrc.$SITE.$PLAT.$HOST" ]; then 25 | 26 | echo "Using cached .bashrc"; 27 | . $HOME/.cache.bashrc.$SITE.$PLAT.$HOST 28 | 29 | else 30 | 31 | #--------------------------------------------------------------------------- 32 | # source scope-specific bashrc's 33 | 34 | if [ -f $HOME/the-config/share/.bashrc.local ]; then 35 | . $HOME/the-config/share/.bashrc.local 36 | fi 37 | 38 | if [ -f $HOME/the-config/site/$SITE/.bashrc.local ]; then 39 | . $HOME/the-config/site/$SITE/.bashrc.local 40 | fi 41 | 42 | if [ -f $HOME/the-config/plat/$PLAT/.bashrc.local ]; then 43 | . $HOME/the-config/plat/$PLAT/.bashrc.local 44 | fi 45 | 46 | if [ -f $HOME/the-config/host/$HOST/.bashrc.local ]; then 47 | . $HOME/the-config/host/$HOST/.bashrc.local 48 | fi 49 | 50 | if [ -f $HOME/the-config/site/$SITE/plat/$PLAT/.bashrc.local ]; then 51 | . $HOME/the-config/site/$SITE/plat/$PLAT/.bashrc.local 52 | fi 53 | 54 | if [ -f $HOME/the-config/host/$HOST/plat/$PLAT/.bashrc.local ]; then 55 | . $HOME/the-config/host/$HOST/plat/$PLAT/.bashrc.local 56 | fi 57 | fi 58 | -------------------------------------------------------------------------------- /test/dir3/file2: -------------------------------------------------------------------------------- 1 | #!/bin/bash #-- not used anyhow 2 | # 3 | # $Id: file2 694 2003-12-27 07:22:12Z blais $ 4 | # 5 | 6 | # echo "Bashrc executed" 7 | 8 | export SHELL=bash 9 | 10 | 11 | # Reset environment in bash if requested. The reason why we do this is for 12 | # setting stuff that depends on the calling process environment, e.g. with 13 | # ClearCase. 14 | 15 | if [ -f "$HOME/.cache.bashenv" ]; then 16 | # echo "Resetting environment in .bashrc" 17 | . $HOME/the-config/.env.pre 18 | . $HOME/the-config/.env.scopes 19 | . $HOME/the-config/.env.post 20 | fi 21 | 22 | # check for cache first 23 | if [ ! -f "$HOME/.cache.disable" -a \ 24 | -f "$HOME/.cache.bashrc.$SITE.$PLAT.$HOST" ]; then 25 | 26 | echo "Using cached .bashrc"; 27 | . $HOME/.cache.bashrc.$SITE.$PLAT.$HOST 28 | 29 | else 30 | 31 | #--------------------------------------------------------------------------- 32 | # source scope-specific bashrc's 33 | 34 | if [ -f $HOME/the-config/share/.bashrc.local ]; then 35 | . $HOME/the-config/share/.bashrc.local 36 | fi 37 | 38 | if [ -f $HOME/the-config/site/$SITE/.bashrc.local ]; then 39 | . $HOME/the-config/site/$SITE/.bashrc.local 40 | fi 41 | 42 | if [ -f $HOME/the-config/plat/$PLAT/.bashrc.local ]; then 43 | . $HOME/the-config/plat/$PLAT/.bashrc.local 44 | fi 45 | 46 | if [ -f $HOME/the-config/host/$HOST/.bashrc.local ]; then 47 | . $HOME/the-config/host/$HOST/.bashrc.local 48 | fi 49 | 50 | if [ -f $HOME/the-config/site/$SITE/plat/$PLAT/.bashrc.local ]; then 51 | . $HOME/the-config/site/$SITE/plat/$PLAT/.bashrc.local 52 | fi 53 | 54 | if [ -f $HOME/the-config/host/$HOST/plat/$PLAT/.bashrc.local ]; then 55 | . $HOME/the-config/host/$HOST/plat/$PLAT/.bashrc.local 56 | fi 57 | fi 58 | -------------------------------------------------------------------------------- /test/dir3/file3: -------------------------------------------------------------------------------- 1 | #!/bin/bash #-- not used anyhow 2 | # 3 | # $Id: file3 694 2003-12-27 07:22:12Z blais $ 4 | # 5 | 6 | # echo "Bashrc executed" 7 | 8 | export SHELL=bash 9 | 10 | 11 | # Reset environment in bash if requested. The reason why we do this is for 12 | # setting stuff that depends on the calling process environment, e.g. with 13 | # ClearCase. 14 | 15 | if [ -f "$HOME/.cache.bashenv" ]; then 16 | # echo "Resetting environment in .bashrc" 17 | . $HOME/the-config/.env.pre 18 | . $HOME/the-config/.env.scopes 19 | kkk . $HOME/the-config/.env.post 20 | fi 21 | 22 | # check for cache first 23 | if [ ! -f "$HOME/.cache.disable" -a \ 24 | -f "$HOME/.cache.bashrc.$SITE.$PLAT.$HOST" ]; then 25 | 26 | echo "Using cached .bashrc"; 27 | . $HOME/.cache.bashrc.$SITE.$PLAT.$HOST 28 | 29 | else 30 | 31 | #--------------------------------------------------------------------------- 32 | # source scope-specific bashrc's 33 | 34 | if [ -f $HOME/the-config/share/.bashrc.local ]; then 35 | . $HOME/the-config/share/.bashrc.local 36 | fi 37 | 38 | if [ -f $HOME/the-config/site/$SITE/.bashrc.local ]; then 39 | . $HOME/the-config/site/$SITE/.bashrc.local 40 | fi 41 | 42 | if [ -f $HOME/the-config/plat/$PLAT/.bashrc.local ]; then 43 | . $HOME/the-config/plat/$PLAT/.bashrc.local 44 | fi 45 | 46 | if [ -f $HOME/the-config/host/$HOST/.bashrc.local ]; then 47 | . $HOME/the-config/host/$HOST/.bashrc.local 48 | fi 49 | 50 | if [ -f $HOME/the-config/site/$SITE/plat/$PLAT/.bashrc.local ]; then 51 | . $HOME/the-config/site/$SITE/plat/$PLAT/.bashrc.local 52 | fi 53 | 54 | if [ -f $HOME/the-config/host/$HOST/plat/$PLAT/.bashrc.local ]; then 55 | . $HOME/the-config/host/$HOST/plat/$PLAT/.bashrc.local 56 | fi 57 | fi 58 | -------------------------------------------------------------------------------- /test/dir3/file4: -------------------------------------------------------------------------------- 1 | #!/bin/bash #-- not used anyhow 2 | # 3 | # $Id: file4 694 2003-12-27 07:22:12Z blais $ 4 | # 5 | 6 | # echo "Bashrc executed" 7 | 8 | export SHELL=bash 9 | 10 | 11 | # Reset environment in bash if requested. The reason why we do this is for 12 | # setting stuff that depends on the calling process environment, e.g. with 13 | # ClearCase. 14 | 15 | if [ -f "$HOME/.cache.bashenv" ]; then 16 | # echo "Resetting environment in .bashrc" 17 | . $HOME/the-config/.env.pre 18 | . $HOME/the-config/.env.scopes 19 | . $HOME/the-config/.env.post 20 | fi 21 | 22 | # check for cache first 23 | if [ ! -f "$HOME/.cache.disable" -a \ 24 | -f "$HOME/.cache.bashrc.$SITE.$PLAT.$HOST" ]; then 25 | 26 | echo "Using cached .bashrc"; 27 | . $HOME/.cache.bashrc.$SITE.$PLAT.$HOST 28 | 29 | else 30 | 31 | #--------------------------------------------------------------------------- 32 | # source scope-specific bashrc's 33 | 34 | if [ -f $HOME/the-config/share/.bashrc.local ]; then 35 | . $HOME/the-config/share/.bashrc.local 36 | fi 37 | 38 | if [ -f $HOME/the-config/site/$SITE/.bashrc.local ]; then 39 | . $HOME/the-config/site/$SITE/.bashrc.local 40 | fi 41 | 42 | if [ -f $HOME/the-config/plat/$PLAT/.bashrc.local ]; then 43 | . $HOME/the-config/plat/$PLAT/.bashrc.local 44 | fi 45 | 46 | if [ -f $HOME/the-config/host/$HOST/.bashrc.local ]; then 47 | . $HOME/the-config/host/$HOST/.bashrc.local 48 | fi 49 | 50 | if [ -f $HOME/the-config/site/$SITE/plat/$PLAT/.bashrc.local ]; then 51 | . $HOME/the-config/site/$SITE/plat/$PLAT/.bashrc.local 52 | fi 53 | 54 | if [ -f $HOME/the-config/host/$HOST/plat/$PLAT/.bashrc.local ]; then 55 | . $HOME/the-config/host/$HOST/plat/$PLAT/.bashrc.local 56 | fi 57 | fi 58 | -------------------------------------------------------------------------------- /test/elongate/f1: -------------------------------------------------------------------------------- 1 | ABCDEFG 2 | ABCDEFG 3 | sprintf( myString, "Number is %d, myInteger ); 4 | -------------------------------------------------------------------------------- /test/elongate/f2: -------------------------------------------------------------------------------- 1 | _A_B_ABCDEFG; 2 | ;ABCDEFG_F_G_ 3 | snprintf( myString, sizeof(myString), "Number is %d, myInteger ); 4 | -------------------------------------------------------------------------------- /test/empty: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/test/empty -------------------------------------------------------------------------------- /test/encrypted/.cvsignore: -------------------------------------------------------------------------------- 1 | out.asc 2 | out.gpg 3 | -------------------------------------------------------------------------------- /test/encrypted/conflict.asc: -------------------------------------------------------------------------------- 1 | -----BEGIN PGP MESSAGE----- 2 | 3 | <<<<<<< filename 4 | hQEOAyClAM9OJu/cEAP+Mzx4IliCv5HDlo2xNV5RCIIrfI54rWBwoVKMkICUw9Pa 5 | IbV6p+5aQIb3SY9EadjKNcExuCJF/cYBojkEtw6ht36ulRbEjKO4o7Mgl6wYemn8 6 | K+ztH0LfHoBfnNRTgnttEgIG1zoD2cuXNgyP8WQqiCVgUtwtN0++UiL3DrgTciED 7 | /0Wnigb7JBSlwwZb7xyvw4jsI21NaRnge7Da8iKWPJN0i0zmZJ+I1TLOpNWoiqVx 8 | qTea5RaZyhdExKDkSAiUVZQ2nuGBJRq/sivWLH/FTTaapV4C648wYJdfr73sqmCf 9 | ButtFr8BNwrJIQ2CPIy7YtTYswnMrOj5F0qSpUJFH5iu0sAPAc5ZZl8TsoFiI9yE 10 | z4No6XWt1WpNa2zAYQ7IZVT4kXt92pKbdD2D8Cv/GbOrzygLBLVhSTab+4hzqAKR 11 | ddyidxo2P90u8YwbEqBU+5817SzexwjnMYB8cB4UHYK3crZ6yYI/BK/ockut0ghJ 12 | GXc0ki0rGXpC71jMxcq5wUY+Uoo8yk72KMq923A8MW37YgxY0zeT/AzfTuhEubdv 13 | pZmPzAMtEPY1wVvmV7eBT/zyJCJo2gGBRCFtOpg+GufIH+cypdcPpvAGvofUFnlp 14 | SvFQ 15 | =sRl7 16 | ======= 17 | hQEOAyClAM9OJu/cEAP/XuEjlJfPTQR0P0frGXAmi/h8rgsvIC4Ycq4OJsQUd+HT 18 | wQf/0cmCgR9hcQGnqHJX7SUVGDOqMp1PCWDkh4Yp2u2CkLfWCMKgeymu19zC0Fk9 19 | YFpO0I2BA3/kXt2eZSaZdjzJErixCKqijuC1EAX+o/rzbMziM6qRmn/v0mvZLTwD 20 | /AqD0WZcoFGXu3sUgQnCz2pYuSU9X2oCrV71ofBgynV5BThmXJ9s63QJcjSt8z0e 21 | S5Z5AWRrPemj0jora5W8QCZSdshM5yFP/h9k4SO35go77WS3qJ+ByDWAIVgj/1WB 22 | g0Ohknra9e+U65ERRqyp3YC8dhBcXjEF763MzCsl1K+40sARAYS7hEtZnVIWgykc 23 | oq23RXIFSnfFp9Fda1IGKebb8lkMlDE07YoisExHLE8cnNU4LvgOBc4By0ZTbr6U 24 | S7JkXzdHGGMEytei917K/kouw5R5O1oj+BHKlEU/nFCJPOTK9YkDJB1nwdqiEENf 25 | qwFocxUokDRr9u/zr2J53VMS+RctncBoFpR4zX+Cgtk8ydSvrOHNje9ZASB18E0/ 26 | NlgXzUtUoNLGhZqs7ViVex3zC7ipYhxiTL0+j1vshD2VcaRNOBh3cGUUHrSSzTcH 27 | TNomYrQ= 28 | =A7wP 29 | >>>>>>> filename 30 | 31 | -----END PGP MESSAGE----- 32 | -------------------------------------------------------------------------------- /test/encrypted/f1.asc: -------------------------------------------------------------------------------- 1 | -----BEGIN PGP MESSAGE----- 2 | 3 | hQEOAyClAM9OJu/cEAP+Mzx4IliCv5HDlo2xNV5RCIIrfI54rWBwoVKMkICUw9Pa 4 | IbV6p+5aQIb3SY9EadjKNcExuCJF/cYBojkEtw6ht36ulRbEjKO4o7Mgl6wYemn8 5 | K+ztH0LfHoBfnNRTgnttEgIG1zoD2cuXNgyP8WQqiCVgUtwtN0++UiL3DrgTciED 6 | /0Wnigb7JBSlwwZb7xyvw4jsI21NaRnge7Da8iKWPJN0i0zmZJ+I1TLOpNWoiqVx 7 | qTea5RaZyhdExKDkSAiUVZQ2nuGBJRq/sivWLH/FTTaapV4C648wYJdfr73sqmCf 8 | ButtFr8BNwrJIQ2CPIy7YtTYswnMrOj5F0qSpUJFH5iu0sAPAc5ZZl8TsoFiI9yE 9 | z4No6XWt1WpNa2zAYQ7IZVT4kXt92pKbdD2D8Cv/GbOrzygLBLVhSTab+4hzqAKR 10 | ddyidxo2P90u8YwbEqBU+5817SzexwjnMYB8cB4UHYK3crZ6yYI/BK/ockut0ghJ 11 | GXc0ki0rGXpC71jMxcq5wUY+Uoo8yk72KMq923A8MW37YgxY0zeT/AzfTuhEubdv 12 | pZmPzAMtEPY1wVvmV7eBT/zyJCJo2gGBRCFtOpg+GufIH+cypdcPpvAGvofUFnlp 13 | SvFQ 14 | =sRl7 15 | -----END PGP MESSAGE----- 16 | -------------------------------------------------------------------------------- /test/encrypted/f1.gpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/test/encrypted/f1.gpg -------------------------------------------------------------------------------- /test/encrypted/f2.asc: -------------------------------------------------------------------------------- 1 | -----BEGIN PGP MESSAGE----- 2 | 3 | hQEOAyClAM9OJu/cEAP/XuEjlJfPTQR0P0frGXAmi/h8rgsvIC4Ycq4OJsQUd+HT 4 | wQf/0cmCgR9hcQGnqHJX7SUVGDOqMp1PCWDkh4Yp2u2CkLfWCMKgeymu19zC0Fk9 5 | YFpO0I2BA3/kXt2eZSaZdjzJErixCKqijuC1EAX+o/rzbMziM6qRmn/v0mvZLTwD 6 | /AqD0WZcoFGXu3sUgQnCz2pYuSU9X2oCrV71ofBgynV5BThmXJ9s63QJcjSt8z0e 7 | S5Z5AWRrPemj0jora5W8QCZSdshM5yFP/h9k4SO35go77WS3qJ+ByDWAIVgj/1WB 8 | g0Ohknra9e+U65ERRqyp3YC8dhBcXjEF763MzCsl1K+40sARAYS7hEtZnVIWgykc 9 | oq23RXIFSnfFp9Fda1IGKebb8lkMlDE07YoisExHLE8cnNU4LvgOBc4By0ZTbr6U 10 | S7JkXzdHGGMEytei917K/kouw5R5O1oj+BHKlEU/nFCJPOTK9YkDJB1nwdqiEENf 11 | qwFocxUokDRr9u/zr2J53VMS+RctncBoFpR4zX+Cgtk8ydSvrOHNje9ZASB18E0/ 12 | NlgXzUtUoNLGhZqs7ViVex3zC7ipYhxiTL0+j1vshD2VcaRNOBh3cGUUHrSSzTcH 13 | TNomYrQ= 14 | =A7wP 15 | -----END PGP MESSAGE----- 16 | -------------------------------------------------------------------------------- /test/encrypted/f2.gpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/test/encrypted/f2.gpg -------------------------------------------------------------------------------- /test/hdiff.1: -------------------------------------------------------------------------------- 1 | this is the horizontall diffs testing pair. 2 | 3 | this is text where one has been added. 4 | this is text where one word has been deleted. 5 | this is text where one word is different. 6 | ah ah! this is text whose beginning changes. 7 | this is text whose ending also varies 8 | 9 | one has been added. 10 | -------------------------------------------------------------------------------- /test/hdiff.2: -------------------------------------------------------------------------------- 1 | this is the horizontall diffs testing pair. 2 | 3 | this is text where one word has been added. 4 | this is text where one has been deleted. 5 | this is text where one part/chunk is different. 6 | this is text whose beginning changes. 7 | this is text whose ending also varies/changes 8 | 9 | one stupid word has been added. 10 | -------------------------------------------------------------------------------- /test/latin1/frmine: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/test/latin1/frmine -------------------------------------------------------------------------------- /test/latin1/fryours: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blais/xxdiff/a5593c1c675fb79d0ec2b6e353abba1fb0179aa7/test/latin1/fryours -------------------------------------------------------------------------------- /test/problem.horizontal.1/file1: -------------------------------------------------------------------------------- 1 | return (abcdefghijklmnopqrstuvwxyz + gosh + fiji + kill + mono + paques + roast + zoo); 2 | -------------------------------------------------------------------------------- /test/problem.horizontal.1/file2: -------------------------------------------------------------------------------- 1 | return abcdefghijklmnopqrstuvwxyz; 2 | -------------------------------------------------------------------------------- /test/problem.horizontal.2/f1: -------------------------------------------------------------------------------- 1 | ABCDEFGH 2 | -------------------------------------------------------------------------------- /test/problem.horizontal.2/f2: -------------------------------------------------------------------------------- 1 | ;ABCDEFG_F_G_ 2 | -------------------------------------------------------------------------------- /test/problem.horizontal.2/file1: -------------------------------------------------------------------------------- 1 | ABCDEFG 2 | ABCDEFG 3 | -------------------------------------------------------------------------------- /test/problem.horizontal.2/file2: -------------------------------------------------------------------------------- 1 | _A_B_ABCDEFG; 2 | ;ABCDEFG_F_G_ 3 | -------------------------------------------------------------------------------- /test/problem/left: -------------------------------------------------------------------------------- 1 | a 2 | b 3 | c 4 | d 5 | e 6 | f 7 | -------------------------------------------------------------------------------- /test/problem/middle: -------------------------------------------------------------------------------- 1 | a 2 | b 3 | c 4 | D 5 | e 6 | f 7 | -------------------------------------------------------------------------------- /test/problem/res: -------------------------------------------------------------------------------- 1 | a 2 | b 3 | c 4 | D 5 | e 6 | f 7 | -------------------------------------------------------------------------------- /test/problem/res2: -------------------------------------------------------------------------------- 1 | a 2 | B 3 | c 4 | D 5 | e 6 | f 7 | -------------------------------------------------------------------------------- /test/problem/right: -------------------------------------------------------------------------------- 1 | a 2 | B 3 | c 4 | d 5 | e 6 | f 7 | -------------------------------------------------------------------------------- /test/split/st.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "st.h" 4 | 5 | #include 6 | 7 | 8 | TApp::TApp( int argc, char** argv ) : 9 | QApplication( argc, argv ), b1(0), b2(0) 10 | { 11 | } 12 | 13 | TApp::~TApp() 14 | {} 15 | 16 | void TApp::clicked1() 17 | { 18 | if ( b2->isVisible() ) { 19 | b2->hide(); 20 | } 21 | else { 22 | b2->show(); 23 | } 24 | } 25 | 26 | void TApp::clicked2() 27 | { 28 | if ( b1->isVisible() ) { 29 | b1->hide(); 30 | } 31 | else { 32 | b1->show(); 33 | } 34 | } 35 | 36 | //------------------------------------------------------------------------------ 37 | // 38 | int main( int argc, char** argv ) 39 | { 40 | TApp app( argc, argv ); 41 | 42 | QSizePolicy maxsp( QSizePolicy::Maximum, QSizePolicy::Maximum ); 43 | 44 | QMainWindow* mw = new QMainWindow; 45 | QWidget* cw = new QWidget( mw ); 46 | { 47 | QHBoxLayout* lcw = new QHBoxLayout( cw ); 48 | 49 | QSplitter* spl = new QSplitter( cw ); 50 | { 51 | spl->setOrientation( Qt::Vertical ); 52 | { 53 | app.b1 = new QPushButton( spl ); 54 | app.b1->setText( "button 1" ); 55 | app.b2 = new QPushButton( spl); 56 | app.b2->setText( "button 2" ); 57 | 58 | QObject::connect( app.b1, SIGNAL(clicked()), 59 | &app, SLOT(clicked1()) ); 60 | QObject::connect( app.b2, SIGNAL(clicked()), 61 | &app, SLOT(clicked2()) ); 62 | 63 | } 64 | 65 | QValueList vl; 66 | vl.append( 10 ); 67 | vl.append( 20 ); 68 | spl->setSizes( vl ); 69 | } 70 | lcw->addWidget( spl ); 71 | 72 | QPushButton* but = new QPushButton( cw ); 73 | but->setText( "overview" ); 74 | but->setSizePolicy( maxsp ); 75 | lcw->addWidget( but ); 76 | } 77 | 78 | mw->statusBar(); 79 | 80 | mw->setCentralWidget( cw ); 81 | app.setMainWidget( mw ); 82 | 83 | mw->show(); 84 | 85 | int r = app.exec(); 86 | return r; 87 | } 88 | 89 | -------------------------------------------------------------------------------- /test/split/st.h: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | 9 | class TApp : public QApplication { 10 | 11 | Q_OBJECT 12 | 13 | public: 14 | 15 | TApp(int argc, char** argv ); 16 | virtual ~TApp(); 17 | 18 | public slots: 19 | 20 | void clicked1(); 21 | void clicked2(); 22 | 23 | public: 24 | 25 | QPushButton* b1; 26 | QPushButton* b2; 27 | 28 | }; 29 | -------------------------------------------------------------------------------- /test/split/st.pro: -------------------------------------------------------------------------------- 1 | # -*- mode: Makefile -*- 2 | 3 | TEMPLATE = app 4 | CONFIG = debug qt warn_on 5 | 6 | INCLUDEPATH += . 7 | 8 | # 9 | # irix-n32 10 | # 11 | 12 | irix-n32:TMAKE_CXXFLAGS += -woff 1375,1424,3201,1209,1110 -LANG:std 13 | #irix-n32:TMAKE_CXXFLAGS += -DCOMPILER_MIPSPRO 14 | 15 | # always disable full warnings for C code. 16 | #irix-n32:TMAKE_CFLAGS_WARN_ON = 17 | #irix-n32:TMAKE_CC = cc 18 | #irix-n32:TMAKE_CFLAGS = $$TMAKE_CXXFLAGS 19 | 20 | irix-n32:TMAKE_MOC = ${QTDIR}/bin/moc 21 | 22 | irix-n32:TMAKE_LIBS += -lC -lCio -lm 23 | irix-n32:TMAKE_LIBDIR_QT = $(QTDIR)/lib32 24 | irix-n32:TMAKE_LIBS += -Wl,-rpath -Wl,$(QTDIR)/lib32 25 | 26 | # irix-n32:TMAKE_CFLAGS_RELEASE += -OPT:Olimit=4000 27 | 28 | 29 | # 30 | # linux-g++ 31 | # 32 | 33 | linux-g++:TMAKE_CXXFLAGS += -DCOMPILER_GNU 34 | 35 | HEADERS = st.h 36 | 37 | SOURCES = st.cpp 38 | 39 | TARGET = st 40 | 41 | -------------------------------------------------------------------------------- /test/tabs/Makefile: -------------------------------------------------------------------------------- 1 | all: 2 | xxdiff w2a w2b 3 | xxdiff w1a w1b 4 | xxdiff t1 t1 5 | xxdiff tabs notabs 6 | -------------------------------------------------------------------------------- /test/tabs/notabs: -------------------------------------------------------------------------------- 1 | 01234567890123456789012345678901234567890123456 2 | | | | | | 3 | 4 | tabs at eight: 5 | | | | | | | | 6 | a bb ccc dddd eeeee fffffff 7 | 8 | tabs at four: 9 | | | | | | | | | | | | | 10 | a bb ccc dddd eeeee 11 | 12 | tabs at three: 13 | | | | | | | | | | | | | | | | 14 | a bb ccc dddd 15 | -------------------------------------------------------------------------------- /test/tabs/t1: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- 2 | a 3 | a 4 | a 5 | a 6 | a 7 | a 8 | a 9 | a 10 | a 11 | -------------------------------------------------------------------------------- 12 | a 13 | a 14 | a 15 | a 16 | a 17 | a 18 | a 19 | a 20 | -------------------------------------------------------------------------------- 21 | a b 22 | a b 23 | a b 24 | a b 25 | a b 26 | a b 27 | a b 28 | a b 29 | -------------------------------------------------------------------------------- 30 | -------------------------------------------------------------------------------- /test/tabs/tabs: -------------------------------------------------------------------------------- 1 | 01234567890123456789012345678901234567890123456 2 | | | | | | 3 | 4 | tabs at eight: 5 | | | | | | | | 6 | a bb ccc dddd eeeee fffffff 7 | 8 | tabs at four: 9 | | | | | | | | | | | | | 10 | a bb ccc dddd eeeee 11 | 12 | tabs at three: 13 | | | | | | | | | | | | | | | | 14 | a bb ccc dddd 15 | -------------------------------------------------------------------------------- /test/tabs/w1a: -------------------------------------------------------------------------------- 1 | COMMONARCH = MSVC_ix86 2 | COMMONOSNAME = WinNT 3 | 4 | C++INCS = \ 5 | -I. \ 6 | -I$(COMMONSRC) 7 | -------------------------------------------------------------------------------- /test/tabs/w1b: -------------------------------------------------------------------------------- 1 | COMMONARCH = MSVC_ix86 2 | COMMONOSNAME = WinNT 3 | 4 | ifndef S2M_PLATFORM_SDK_ROOT_DIR 5 | S2M_PLATFORM_SDK_ROOT_DIR := C:/Program\ Files/Microsoft\ SDK 6 | endif 7 | 8 | C++INCS = \ 9 | -I. \ 10 | -I$(COMMONSRC) 11 | -------------------------------------------------------------------------------- /test/tabs/w2a: -------------------------------------------------------------------------------- 1 | crs 2 | crs 3 | crs 4 | -------------------------------------------------------------------------------- /test/tabs/w2b: -------------------------------------------------------------------------------- 1 | crs 2 | crs 3 | crs 4 | -------------------------------------------------------------------------------- /test/test-mercurial-merge/runtest: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | """ 3 | Test a mercurial merge. 4 | """ 5 | 6 | import sys, os, logging, tempfile, shutil, re 7 | from subprocess import * 8 | from os.path import * 9 | 10 | 11 | 12 | def run_hg(cmd, *args, **kwds): 13 | kwds['shell'] = 1 14 | return call('hg ' + cmd, *args, **kwds) 15 | 16 | def main(): 17 | import optparse 18 | parser = optparse.OptionParser(__doc__.strip()) 19 | opts, args = parser.parse_args() 20 | 21 | logging.basicConfig(level=logging.INFO) 22 | 23 | # Delete all previous test directories. 24 | tmproot = tempfile.gettempdir() 25 | for fn in os.listdir(tmproot): 26 | if re.match('hgtest\.', fn): 27 | dn = join(tmproot, fn) 28 | logging.info('Deleting %s' % dn) 29 | shutil.rmtree(dn, ignore_errors=1) 30 | 31 | tmpdir = tempfile.mkdtemp(prefix='hgtest.') 32 | logging.info('Temporary directory: %s' % tmpdir) 33 | 34 | # Create a repository. 35 | repo1 = join(tmpdir, 'repo1') 36 | os.mkdir(repo1) 37 | os.chdir(repo1) 38 | open('file', 'w').write('**\noriginal\n**\n') 39 | 40 | run_hg('init') 41 | run_hg('addremove') 42 | run_hg('commit -m "Initial commit"') 43 | 44 | # Edit the repository. 45 | open('file', 'w').write('**\nleft\n**\n') 46 | run_hg('commit -m "edit 1"', shell=True) 47 | 48 | # Edit on the other side. 49 | run_hg('update -C -r 0') 50 | 51 | open('file', 'w').write('**\nright\n**\n') 52 | run_hg('commit -m "edit 2"') 53 | 54 | run_hg('update -C -r 1') 55 | run_hg('merge -r 2') 56 | 57 | run_hg('commit -m "merged"') 58 | 59 | run_hg('view') 60 | 61 | print 62 | print open('file', 'r').read() 63 | print 64 | 65 | print 66 | print 'cd %s' % repo1 67 | 68 | 69 | if __name__ == '__main__': 70 | main() 71 | 72 | 73 | -------------------------------------------------------------------------------- /test/test-render-horiz-insert/f1: -------------------------------------------------------------------------------- 1 | sala malecum malecum sala 2 | -------------------------------------------------------------------------------- /test/test-render-horiz-insert/f2: -------------------------------------------------------------------------------- 1 | sala macum malecum sala 2 | -------------------------------------------------------------------------------- /test/unmerge/basic: -------------------------------------------------------------------------------- 1 | The preemptible Linux kernel patch that 2 | was originally introduced by MontaVista 3 | Software and more recently championed by 4 | Robert Love has been merged by Linus 5 | Torvalds into the main linux 6 | development-kernel tree, beginning 7 | version v2.5.4-pre6. This adds a far 8 | <<<<<<< SOMEFILE1 9 | greater degree of real-time 10 | ======= 11 | lesser degree of interactive 12 | >>>>>>> 1.13 13 | responsiveness to the standard Linux 14 | kernel, by reducing interrupt latencies 15 | while kernel functions are 16 | <<<<<<< SOMEFILE2 17 | executing. The story at LinuxDevices.com 18 | ======= 19 | >>>>>>> 1.14 20 | includes comments by Robert Love, and 21 | there is also a recent interview with 22 | <<<<<<< SOMEFILE3 23 | ======= 24 | Robert Love about the preemptable kernel 25 | >>>>>>> 1.15 26 | here and a whitepaper about the 27 | technology by MontaVista here." 28 | -------------------------------------------------------------------------------- /test/unmerge/contig: -------------------------------------------------------------------------------- 1 | The preemptible Linux kernel patch that 2 | was originally introduced by MontaVista 3 | Software and more recently championed by 4 | Robert Love has been merged by Linus 5 | Torvalds into the main linux 6 | development-kernel tree, beginning 7 | version v2.5.4-pre6. This adds a far 8 | <<<<<<< SOMEFILE 9 | greater degree of real-time 10 | ======= 11 | lesser degree of interactive 12 | >>>>>>> 13 | <<<<<<< SOMEFILE 14 | responsiveness to the standard Linux 15 | ======= 16 | kernel, by reducing interrupt latencies 17 | >>>>>>> 18 | while kernel functions are 19 | executing. The story at LinuxDevices.com 20 | includes comments by Robert Love, and 21 | there is also a recent interview with 22 | Robert Love about the preemptable kernel 23 | here and a whitepaper about the 24 | technology by MontaVista here." 25 | -------------------------------------------------------------------------------- /test/unmerge/emptydiff: -------------------------------------------------------------------------------- 1 | The preemptible Linux kernel patch that 2 | was originally introduced by MontaVista 3 | Software and more recently championed by 4 | Robert Love has been merged by Linus 5 | Torvalds into the main linux 6 | development-kernel tree, beginning 7 | version v2.5.4-pre6. This adds a far 8 | <<<<<<< SOMEFILE 9 | ======= 10 | >>>>>>> 11 | while kernel functions are 12 | executing. The story at LinuxDevices.com 13 | includes comments by Robert Love, and 14 | there is also a recent interview with 15 | Robert Love about the preemptable kernel 16 | here and a whitepaper about the 17 | technology by MontaVista here." 18 | -------------------------------------------------------------------------------- /test/unmerge/falseend0: -------------------------------------------------------------------------------- 1 | The preemptible Linux kernel patch that 2 | was originally introduced by MontaVista 3 | Software and more recently championed by 4 | Robert Love has been merged by Linus 5 | Torvalds into the main linux 6 | development-kernel tree, beginning 7 | version v2.5.4-pre6. This adds a far 8 | greater degree of real-time 9 | lesser degree of interactive 10 | responsiveness to the standard Linux 11 | kernel, by reducing interrupt latencies 12 | while kernel functions are 13 | executing. The story at LinuxDevices.com 14 | includes comments by Robert Love, and 15 | there is also a recent interview with 16 | Robert Love about the preemptable kernel 17 | here and a whitepaper about the 18 | technology by MontaVista here." 19 | <<<<<<< SOMEFILE 20 | ======= 21 | >>>>>>> 22 | -------------------------------------------------------------------------------- /test/unmerge/falseend1: -------------------------------------------------------------------------------- 1 | The preemptible Linux kernel patch that 2 | was originally introduced by MontaVista 3 | Software and more recently championed by 4 | Robert Love has been merged by Linus 5 | Torvalds into the main linux 6 | development-kernel tree, beginning 7 | version v2.5.4-pre6. This adds a far 8 | greater degree of real-time 9 | lesser degree of interactive 10 | responsiveness to the standard Linux 11 | kernel, by reducing interrupt latencies 12 | while kernel functions are 13 | executing. The story at LinuxDevices.com 14 | includes comments by Robert Love, and 15 | there is also a recent interview with 16 | Robert Love about the preemptable kernel 17 | here and a whitepaper about the 18 | technology by MontaVista here." 19 | <<<<<<< SOMEFILE 20 | ======= 21 | -------------------------------------------------------------------------------- /test/unmerge/falseend2: -------------------------------------------------------------------------------- 1 | The preemptible Linux kernel patch that 2 | was originally introduced by MontaVista 3 | Software and more recently championed by 4 | Robert Love has been merged by Linus 5 | Torvalds into the main linux 6 | development-kernel tree, beginning 7 | version v2.5.4-pre6. This adds a far 8 | greater degree of real-time 9 | lesser degree of interactive 10 | responsiveness to the standard Linux 11 | kernel, by reducing interrupt latencies 12 | while kernel functions are 13 | executing. The story at LinuxDevices.com 14 | includes comments by Robert Love, and 15 | there is also a recent interview with 16 | Robert Love about the preemptable kernel 17 | here and a whitepaper about the 18 | <<<<<<< SOMEFILE 19 | ======= 20 | technology by MontaVista here." 21 | -------------------------------------------------------------------------------- /test/unmerge/falseend3: -------------------------------------------------------------------------------- 1 | The preemptible Linux kernel patch that 2 | was originally introduced by MontaVista 3 | Software and more recently championed by 4 | Robert Love has been merged by Linus 5 | Torvalds into the main linux 6 | development-kernel tree, beginning 7 | version v2.5.4-pre6. This adds a far 8 | greater degree of real-time 9 | lesser degree of interactive 10 | responsiveness to the standard Linux 11 | kernel, by reducing interrupt latencies 12 | while kernel functions are 13 | executing. The story at LinuxDevices.com 14 | includes comments by Robert Love, and 15 | there is also a recent interview with 16 | Robert Love about the preemptable kernel 17 | <<<<<<< SOMEFILE 18 | here and a whitepaper about the 19 | ======= 20 | technology by MontaVista here." 21 | -------------------------------------------------------------------------------- /test/unmerge/falseend4: -------------------------------------------------------------------------------- 1 | The preemptible Linux kernel patch that 2 | was originally introduced by MontaVista 3 | Software and more recently championed by 4 | Robert Love has been merged by Linus 5 | Torvalds into the main linux 6 | development-kernel tree, beginning 7 | version v2.5.4-pre6. This adds a far 8 | greater degree of real-time 9 | lesser degree of interactive 10 | responsiveness to the standard Linux 11 | kernel, by reducing interrupt latencies 12 | while kernel functions are 13 | executing. The story at LinuxDevices.com 14 | includes comments by Robert Love, and 15 | there is also a recent interview with 16 | Robert Love about the preemptable kernel 17 | <<<<<<< SOMEFILE 18 | here and a whitepaper about the 19 | ======= 20 | -------------------------------------------------------------------------------- /test/unmerge/falseend5: -------------------------------------------------------------------------------- 1 | The preemptible Linux kernel patch that 2 | was originally introduced by MontaVista 3 | Software and more recently championed by 4 | Robert Love has been merged by Linus 5 | Torvalds into the main linux 6 | development-kernel tree, beginning 7 | version v2.5.4-pre6. This adds a far 8 | greater degree of real-time 9 | lesser degree of interactive 10 | responsiveness to the standard Linux 11 | kernel, by reducing interrupt latencies 12 | while kernel functions are 13 | executing. The story at LinuxDevices.com 14 | includes comments by Robert Love, and 15 | there is also a recent interview with 16 | Robert Love about the preemptable kernel 17 | <<<<<<< SOMEFILE 18 | ======= 19 | -------------------------------------------------------------------------------- /test/unmerge/falseend6: -------------------------------------------------------------------------------- 1 | The preemptible Linux kernel patch that 2 | was originally introduced by MontaVista 3 | Software and more recently championed by 4 | Robert Love has been merged by Linus 5 | Torvalds into the main linux 6 | development-kernel tree, beginning 7 | version v2.5.4-pre6. This adds a far 8 | greater degree of real-time 9 | lesser degree of interactive 10 | responsiveness to the standard Linux 11 | kernel, by reducing interrupt latencies 12 | while kernel functions are 13 | executing. The story at LinuxDevices.com 14 | includes comments by Robert Love, and 15 | there is also a recent interview with 16 | <<<<<<< SOMEFILE 17 | Robert Love about the preemptable kernel 18 | -------------------------------------------------------------------------------- /test/unmerge/falseend7: -------------------------------------------------------------------------------- 1 | The preemptible Linux kernel patch that 2 | was originally introduced by MontaVista 3 | Software and more recently championed by 4 | Robert Love has been merged by Linus 5 | Torvalds into the main linux 6 | development-kernel tree, beginning 7 | version v2.5.4-pre6. This adds a far 8 | greater degree of real-time 9 | lesser degree of interactive 10 | responsiveness to the standard Linux 11 | kernel, by reducing interrupt latencies 12 | while kernel functions are 13 | executing. The story at LinuxDevices.com 14 | includes comments by Robert Love, and 15 | there is also a recent interview with 16 | <<<<<<< SOMEFILE 17 | -------------------------------------------------------------------------------- /test/unmerge/falsestart0: -------------------------------------------------------------------------------- 1 | <<<<<<< SOMEFILE 2 | ======= 3 | >>>>>>> 4 | The preemptible Linux kernel patch that 5 | was originally introduced by MontaVista 6 | Software and more recently championed by 7 | Robert Love has been merged by Linus 8 | Torvalds into the main linux 9 | development-kernel tree, beginning 10 | version v2.5.4-pre6. This adds a far 11 | greater degree of real-time 12 | responsiveness to the standard Linux 13 | kernel, by reducing interrupt latencies 14 | while kernel functions are 15 | executing. The story at LinuxDevices.com 16 | includes comments by Robert Love, and 17 | there is also a recent interview with 18 | Robert Love about the preemptable kernel 19 | here and a whitepaper about the 20 | technology by MontaVista here." 21 | -------------------------------------------------------------------------------- /test/unmerge/falsestart1: -------------------------------------------------------------------------------- 1 | ======= 2 | >>>>>>> 3 | The preemptible Linux kernel patch that 4 | was originally introduced by MontaVista 5 | Software and more recently championed by 6 | Robert Love has been merged by Linus 7 | Torvalds into the main linux 8 | development-kernel tree, beginning 9 | version v2.5.4-pre6. This adds a far 10 | greater degree of real-time 11 | responsiveness to the standard Linux 12 | kernel, by reducing interrupt latencies 13 | while kernel functions are 14 | executing. The story at LinuxDevices.com 15 | includes comments by Robert Love, and 16 | there is also a recent interview with 17 | Robert Love about the preemptable kernel 18 | here and a whitepaper about the 19 | technology by MontaVista here." 20 | -------------------------------------------------------------------------------- /test/unmerge/falsestart2: -------------------------------------------------------------------------------- 1 | The preemptible Linux kernel patch that 2 | ======= 3 | >>>>>>> 4 | was originally introduced by MontaVista 5 | Software and more recently championed by 6 | Robert Love has been merged by Linus 7 | Torvalds into the main linux 8 | development-kernel tree, beginning 9 | version v2.5.4-pre6. This adds a far 10 | greater degree of real-time 11 | responsiveness to the standard Linux 12 | kernel, by reducing interrupt latencies 13 | while kernel functions are 14 | executing. The story at LinuxDevices.com 15 | includes comments by Robert Love, and 16 | there is also a recent interview with 17 | Robert Love about the preemptable kernel 18 | here and a whitepaper about the 19 | technology by MontaVista here." 20 | -------------------------------------------------------------------------------- /test/unmerge/falsestart3: -------------------------------------------------------------------------------- 1 | The preemptible Linux kernel patch that 2 | ======= 3 | was originally introduced by MontaVista 4 | >>>>>>> 5 | Software and more recently championed by 6 | Robert Love has been merged by Linus 7 | Torvalds into the main linux 8 | development-kernel tree, beginning 9 | version v2.5.4-pre6. This adds a far 10 | greater degree of real-time 11 | responsiveness to the standard Linux 12 | kernel, by reducing interrupt latencies 13 | while kernel functions are 14 | executing. The story at LinuxDevices.com 15 | includes comments by Robert Love, and 16 | there is also a recent interview with 17 | Robert Love about the preemptable kernel 18 | here and a whitepaper about the 19 | technology by MontaVista here." 20 | -------------------------------------------------------------------------------- /test/unmerge/falsestart4: -------------------------------------------------------------------------------- 1 | ======= 2 | was originally introduced by MontaVista 3 | >>>>>>> 4 | Software and more recently championed by 5 | Robert Love has been merged by Linus 6 | Torvalds into the main linux 7 | development-kernel tree, beginning 8 | version v2.5.4-pre6. This adds a far 9 | greater degree of real-time 10 | responsiveness to the standard Linux 11 | kernel, by reducing interrupt latencies 12 | while kernel functions are 13 | executing. The story at LinuxDevices.com 14 | includes comments by Robert Love, and 15 | there is also a recent interview with 16 | Robert Love about the preemptable kernel 17 | here and a whitepaper about the 18 | technology by MontaVista here." 19 | -------------------------------------------------------------------------------- /test/unmerge/falsestart5: -------------------------------------------------------------------------------- 1 | ======= 2 | >>>>>>> 3 | Software and more recently championed by 4 | Robert Love has been merged by Linus 5 | Torvalds into the main linux 6 | development-kernel tree, beginning 7 | version v2.5.4-pre6. This adds a far 8 | greater degree of real-time 9 | responsiveness to the standard Linux 10 | kernel, by reducing interrupt latencies 11 | while kernel functions are 12 | executing. The story at LinuxDevices.com 13 | includes comments by Robert Love, and 14 | there is also a recent interview with 15 | Robert Love about the preemptable kernel 16 | here and a whitepaper about the 17 | technology by MontaVista here." 18 | -------------------------------------------------------------------------------- /test/unmerge/falsestart6: -------------------------------------------------------------------------------- 1 | Software and more recently championed by 2 | >>>>>>> 3 | Robert Love has been merged by Linus 4 | Torvalds into the main linux 5 | development-kernel tree, beginning 6 | version v2.5.4-pre6. This adds a far 7 | greater degree of real-time 8 | responsiveness to the standard Linux 9 | kernel, by reducing interrupt latencies 10 | while kernel functions are 11 | executing. The story at LinuxDevices.com 12 | includes comments by Robert Love, and 13 | there is also a recent interview with 14 | Robert Love about the preemptable kernel 15 | here and a whitepaper about the 16 | technology by MontaVista here." 17 | -------------------------------------------------------------------------------- /test/unmerge/falsestart7: -------------------------------------------------------------------------------- 1 | >>>>>>> 2 | Robert Love has been merged by Linus 3 | Torvalds into the main linux 4 | development-kernel tree, beginning 5 | version v2.5.4-pre6. This adds a far 6 | greater degree of real-time 7 | responsiveness to the standard Linux 8 | kernel, by reducing interrupt latencies 9 | while kernel functions are 10 | executing. The story at LinuxDevices.com 11 | includes comments by Robert Love, and 12 | there is also a recent interview with 13 | Robert Love about the preemptable kernel 14 | here and a whitepaper about the 15 | technology by MontaVista here." 16 | -------------------------------------------------------------------------------- /tools/.htaccess: -------------------------------------------------------------------------------- 1 | # Add directory indexes for tools since they are accessible 2 | # from the web. 3 | Options +Indexes 4 | -------------------------------------------------------------------------------- /tools/clearcase/xx-ct-diff: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # Autor: Jimmy Björklund 4 | # Mail: xx-ct-diff@dreamz.se 5 | # 6 | # Tool for diffing files in clearcase using xxdiff. 7 | # 8 | # xxdiff can be found at http://furius.ca/xxdiff/ 9 | # 10 | 11 | if [ $# -ne 1 ]; then 12 | b="xx-ct-diff"; 13 | echo "" 14 | echo "Usage: Compare the current file with the latest on this branch or" 15 | echo " all the files from a given directory root." 16 | echo "" 17 | echo " $b |" 18 | echo "" 19 | exit 1; 20 | fi 21 | 22 | if [ -d $1 ]; then 23 | echo $0 - Directory $1: 24 | 25 | for d in `cleartool lsprivate -co $1 | sed 's/ .*//g'` ; do 26 | $0 $d; 27 | done 28 | exit 1; 29 | fi 30 | 31 | version=`cleartool describe -predecessor $1 | grep "predecessor version:" | sed -e 's/predecessor version://g' -e 's/ //g'` 32 | 33 | # 34 | # You can substitute xxdiff with meld if you find it more 35 | # to your liking. 36 | # 37 | xxdiff $1 "$1@@$version" 38 | -------------------------------------------------------------------------------- /tools/cvs/README: -------------------------------------------------------------------------------- 1 | =========== 2 | CVS Support 3 | =========== 4 | 5 | Important note: cvs.py is working well, and being used in other contexts, but I 6 | haven't had time to implement xxcvs yet. This xxcvs needs updating. 7 | 8 | -------------------------------------------------------------------------------- /tools/cvs/cvs-xdiff: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # $Source$ 4 | # $Id: cvs-xdiff 101 2001-04-02 16:21:21Z blais $ 5 | # 6 | 7 | # 8 | # validate parameters 9 | # 10 | 11 | # get module name 12 | #module=`basename $PWD` 13 | module=`cat CVS/Repository` 14 | echo In Module "$module": 15 | 16 | # get filename 17 | filename=$1 18 | if [ -z "$filename" ] ; then 19 | echo "Usage: xdiffcvs [ []]" 20 | exit 1 21 | fi 22 | 23 | # get revision numbers, if present 24 | revleft=$2 25 | revright=$3 26 | 27 | 28 | # 29 | # create the two temporary files 30 | # 31 | current=$PWD 32 | 33 | # create left file 34 | cvs co -p$revleft $module/$filename,v > /tmp/xdiffcvs-left.tmp 35 | 36 | # create the right file 37 | if [ -z "$revright" ] ; then 38 | cp $filename /tmp/xdiffcvs-right.tmp 39 | chmod 700 /tmp/xdiffcvs-right.tmp 40 | else 41 | cvs co -p$revright $module/$filename,v > /tmp/xdiffcvs-right.tmp 42 | fi 43 | 44 | # echo message 45 | echo =============================================================================== 46 | if [ -z "$revleft" ] ; then 47 | echo Left: $filename -- Latest \|\| Right: $filename -- Local 48 | elif [ -z "$revright" ] ; then 49 | echo Left: $filename -- Rev $revleft \|\| Right: $filename -- Local 50 | else 51 | echo Left: $filename -- Rev $revleft \|\| Right: $filename -- $revright 52 | fi 53 | echo =============================================================================== 54 | 55 | # 56 | # spawn xdiff on them 57 | # 58 | xdiff /tmp/xdiffcvs-left.tmp /tmp/xdiffcvs-right.tmp & 59 | 60 | # 61 | # cleanup 62 | # 63 | sleep 5 # give xdiff time to load the files... 64 | rm /tmp/xdiffcvs-left.tmp 65 | rm /tmp/xdiffcvs-right.tmp 66 | 67 | -------------------------------------------------------------------------------- /tools/git/xx-git-resolve: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Resolve merge conflicts with xxdiff. 3 | FILENAME=$1 4 | OUT=$(xxdiff --merged="${FILENAME}" --unmerge --decision "${FILENAME}") 5 | 6 | if [ "x$OUT" = "xNODECISION" -o "x$OUT" = "x" ]; then 7 | exit 1 8 | fi 9 | 10 | git add "${FILENAME}" 11 | echo "Marked as resolved." 12 | -------------------------------------------------------------------------------- /tools/git/xxdiff-git: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # diff is called by git with 7 parameters: 3 | #echo path old-file old-hex old-mode new-file new-hex new-mode 4 | # essential: /opt/local/bin/xxdiff -w --title1="revision\ $3" --title2="$5" "$2" "$5" | cat 5 | xxdiff -w --title1="revision\ $3" --title2="$5" "$2" "$5" | cat 6 | #xxdiff -w --style platinum --textfont 'Bitstream Vera Sans Mono,11,-1,5,50,0,0,0,0,0' --title1="revision\ $3" --title2="$5" "$2" "$5" | cat 7 | -------------------------------------------------------------------------------- /tools/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Version Control Tools and Other Utilities 8 | 9 | 10 | 11 | 12 |
13 | 14 |
15 | 16 |
17 |

Version Control Tools and Other Utilities

18 | 19 |

This directory contains tools that can be used to link xxdiff with version 20 | control systems. Some of these are unfinished. Use them to build your own 21 | (they should be simple anyway) and I'd be happy to add your contributions in 22 | here.

23 |

Important note: cvs.py is working well, and being used in other 24 | contexts, but I haven't had time to implement xxcvs and xxcleartool 25 | yet.

26 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /tools/index.txt: -------------------------------------------------------------------------------- 1 | ========================================= 2 | Version Control Tools and Other Utilities 3 | ========================================= 4 | 5 | This directory contains tools that can be used to link xxdiff with version 6 | control systems. Some of these are unfinished. Use them to build your own 7 | (they should be simple anyway) and I'd be happy to add your contributions in 8 | here. 9 | 10 | Important note: cvs.py is working well, and being used in other 11 | contexts, but I haven't had time to implement xxcvs and xxcleartool 12 | yet. 13 | 14 | - `clearcase `_ 15 | - `cvs `_ 16 | - `emacs `_ 17 | - `misc `_ 18 | - `perforce `_ 19 | - `subversion `_ 20 | - `tla/arch `_ 21 | -------------------------------------------------------------------------------- /tools/perforce/perforce_diff.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | ######################################################### 4 | # Author: Christian Fowler 5 | # Description: cracks open xxdiff given two perforce file versions 6 | ### 7 | 8 | if [ $# -ne 2 ]; then 9 | echo "Usage: $0 file#rev1 file#rev2" 10 | echo " or: $0 file@change2 file@change2" 11 | exit 1 12 | fi 13 | 14 | p4 print -q $1 > /tmp/p4-$1 15 | p4 print -q $2 > /tmp/p4-$2 16 | xxdiff /tmp/p4-$1 /tmp/p4-$2 17 | rm /tmp/p4-$1 18 | rm /tmp/p4-$2 19 | -------------------------------------------------------------------------------- /tools/perforce/tkp4: -------------------------------------------------------------------------------- 1 | # Date: Mon, 21 Apr 2003 20:35:18 -0400 2 | # From: Christian Fowler 3 | # To: blais@IRO.UMontreal.CA 4 | # Subject: perforce scripts for xxdiff 5 | # 6 | # Thanks for the great app! 7 | # 8 | # first, here are the hacked lines of tkp4 available at 9 | # http://web.cuug.ab.ca/~macdonal/tkp4/. Roughly lines 5511 to 10 | # 5518: 11 | 12 | diffRevs { 13 | set idx [$p4(rhListbox) curselection] 14 | set rev1 [lindex [lindex [$p4(rhListbox) get[lindex $idx 0]] 0] 1] 15 | set rev2 [lindex [lindex [$p4(rhListbox) get[lindex $idx 1]] 0] 1] 16 | exec p4 print -q $p4(RevisionHistoryFile)#$rev1 > /tmp/tkp4-#$rev1 17 | exec p4 print -q $p4(RevisionHistoryFile)#$rev2 > /tmp/tkp4-#$rev2 18 | exec xxdiff /tmp/tkp4-#$rev1 /tmp/tkp4-#$rev2 & 19 | } 20 | 21 | -------------------------------------------------------------------------------- /tools/subversion/README: -------------------------------------------------------------------------------- 1 | ================== 2 | Subversion support 3 | ================== 4 | 5 | Not done yet, I want to add a wrapper script that will fetch revisions and run 6 | xxdiff on them. 7 | -------------------------------------------------------------------------------- /tools/subversion/contrib/README: -------------------------------------------------------------------------------- 1 | ================= 2 | Contributed Tools 3 | ================= 4 | 5 | :Author: Martin Blais 6 | :Date: 2004-09-29 7 | :Abstract: 8 | 9 | Contributed tools for Subversion. 10 | 11 | 12 | xxdiff-sub 13 | ========== 14 | 15 | :: 16 | 17 | From: Saqib Rasul 18 | Date: 2004-07-23 19 | 20 | Hello, 21 | 22 | I whipped up a very basic subversion integration script so that it uses 23 | xxdiff when I do something like 24 | 25 | $ svn diff 26 | 27 | ok, here Is how I did it... 28 | 29 | I modified the svn diff-cmd in ~/.subversion/config 30 | 31 | To point to a script called xxdiff-sub which lives somewhere where the 32 | PATH can pick it up. 33 | 34 | What the xxdiff-sub does: 35 | 36 | 1. checkouts out the files which have been changed into a temp directory 37 | (using svn cat) 38 | 2. uses xxdiff to diff this file with what I got in my current dir 39 | 40 | xxdiff-sub is attached. The file is _VERY_ simple, and only tested for 41 | the svn diff [filenames] syntax 42 | 43 | I am no subversion and/or xxdiff expert, so I would like to contribute 44 | it to the community and get the experts to review/comment on it. 45 | Hopefully it's a step in the right direction to get subversion 46 | integration. 47 | 48 | Hope it helps someome! 49 | 50 | Regards, 51 | 52 | Saqib 53 | 54 | ------------------------------------------------------------------------ 55 | SAGA D.C. GmbH Phone : +49 (0) 6731-9428-0 56 | Berliner Strasse 73 Fax : +49 (0) 6731-9428-26 57 | D-55232 Alzey 58 | mailto:saqib.rasul@sagadc.de http://www.sagadc.de 59 | 60 | 61 | svnxxdiff.sh 62 | ============ 63 | 64 | :: 65 | 66 | From: Tomi Ollila 67 | Date: 2004-09-28 68 | 69 | This might interest you (I was going to do freshmeat announcement, but...) 70 | 71 | This is written by me and has been quite useful. 72 | License is GPL... 73 | 74 | Tomi 75 | -------------------------------------------------------------------------------- /tools/subversion/contrib/svnxxdiff.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | if [ x$SVN_XXDIFF = x ] 4 | then 5 | case "$0" in */*) cmd="$0";; *) cmd="./$0";; esac 6 | 7 | SVN_XXDIFF=1; export SVN_XXDIFF 8 | exec svn diff --diff-cmd "$cmd" "$@" 9 | exit 1 10 | fi 11 | 12 | fail () { echo $0: "$@" >&2; sleep 2; } 13 | 14 | [ x"$7" = x ] && fail Required file argument"(s)" missing. 15 | [ -f "$7" ] || fail $7: Not a file. 16 | 17 | echo 18 | echo "***" Executing xxdiff --geometry 1200x600-0+0 "$6" "$7" 19 | echo 20 | echo "***" Press Ctrl-C in this window to break all following diffs. 21 | echo 22 | echo "***" Note, you can edit the file you are diffing and then rediff 23 | echo "***" it with the original by pressing Ctrl-R on xxdiff window. 24 | echo 25 | 26 | exec xxdiff --geometry 1200x600-0+0 "$6" "$7" 27 | -------------------------------------------------------------------------------- /tools/subversion/contrib/svnxxdiff.sh.modifs: -------------------------------------------------------------------------------- 1 | Date: Fri, 9 Sep 2005 12:07:08 +0100 2 | From: Jim Lawton 3 | Reply-To: jim.lawton@gmail.com 4 | To: blais@furius.ca 5 | Subject: svnxxdiff 6 | Mime-Version: 1.0 7 | Content-Type: text/plain; charset=ISO-8859-1 8 | Content-Transfer-Encoding: quoted-printable 9 | Content-Disposition: inline 10 | 11 | Hi Martin, 12 | 13 | Firstly, I must say thank you for xxdiff which I've been using for years, 14 | it is an excellent tool! 15 | 16 | Secondly, thanks for the svnxxdiff script. I've attached a slightly updated 17 | version of this that puts more descriptive titles into the left and right panes. 18 | I suppose one could do somthing similar with title3 in the case of a merge 19 | operation, but I haven't got around to trying that out yet. 20 | 21 | /regards/jim 22 | 23 | #!/bin/sh 24 | 25 | if [ x$SVN_XXDIFF = x ] 26 | then 27 | case "$0" in */*) cmd="$0";; *) cmd="./$0";; esac 28 | 29 | SVN_XXDIFF=1; export SVN_XXDIFF 30 | exec svn diff --diff-cmd "$cmd" "$@" 31 | exit 1 32 | fi 33 | 34 | fail () { echo $0: "$@" >&2; sleep 2; } 35 | 36 | [ x"$7" = x ] && fail Required file argument"(s)" missing. 37 | [ -f "$7" ] || fail $7: Not a file. 38 | 39 | echo "***" Executing xxdiff "$6" "$7" 40 | echo "***" Press Ctrl-C in this window to break all following diffs. 41 | echo "***" Note, you can edit the file you are diffing and then rediff 42 | echo "***" it with the original by pressing Ctrl-R on xxdiff window. 43 | 44 | exec xxdiff --title1 "$3" --title2 "$5" "$6" "$7" 45 | 46 | -------------------------------------------------------------------------------- /tools/subversion/contrib/xxdiff-sub: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | #echo $*; 4 | #echo $#; 5 | 6 | # this is where the head from svn will be 7 | # checked out so that it can be diffed with 8 | # what you got 9 | tempDIR=$HOME/tmp/svn-HEAD 10 | 11 | # total number of arguments to this script 12 | i=$#; 13 | 14 | #echo "lastargs = ${!i}" 15 | # the filename you are diffing 16 | # i get this from the last argurment of what 17 | # diff command as given by svn 18 | filename=${!i}; 19 | 20 | #echo "filename=$filename" 21 | 22 | # i get the URL of this file from svn 23 | url=`svn info $filename | grep URL | awk '{print $2}'` 24 | 25 | #echo "url=$url" 26 | 27 | # checkout the file into a temp dir 28 | svn cat $url > $tempDIR/$filename 29 | 30 | # and then do the diff! 31 | xxdiff $tempDIR/$filename $filename & 32 | 33 | -------------------------------------------------------------------------------- /tools/tkxxdiff/README.txt: -------------------------------------------------------------------------------- 1 | This is a Tk interface to xxdiff contributed by Philippe Corbes. 2 | 3 | From: Philippe Corbes 4 | To: blais@furius.ca 5 | Date: Jun 16, 2007 9:39 AM 6 | Subject: A tk interface for xxdiff 7 | 8 | 9 | 10 | Bonjour martin, 11 | 12 | J'ai codé une interface en tcl/tk pour xxdiff. Je pense que cela 13 | manquait à xxdiff. L'interface est composée de 3 onglets: "Fichier", 14 | "Repertoite" et " propos". On peut choisir l'onglet de demarrage et 15 | initialiser jusqu'a 3 repertoires 'root' 16 | 17 | J'espere que cette interface te convient. 18 | N'hesite pas à me communiquer tes remarques. 19 | 20 | A+ 21 | Philippe Corbes 22 | 23 | 2 attachments — Download all attachments 24 | tkxxdiff 25 | 9K Download 26 | GPL.txt 27 | 18K View Download 28 | 29 | 30 | -------------------------------------------------------------------------------- /tools/tla/README: -------------------------------------------------------------------------------- 1 | ================ 2 | tla/arch support 3 | ================ 4 | 5 | Not done yet, I want to add a wrapper script that will fetch revisions and run 6 | xxdiff on them. 7 | --------------------------------------------------------------------------------