xxdiff (1:3.2-10) debian-dir only changes

Summary

 debian/NEWS                                    |    8 
 debian/README.Debian                           |    8 
 debian/README.source                           |    2 
 debian/changelog                               |  466 ++++++++++++++
 debian/compat                                  |    1 
 debian/control                                 |   47 +
 debian/copyright                               |   35 +
 debian/menu.unused                             |    2 
 debian/patches/00list                          |    8 
 debian/patches/01_script_not_executable.dpatch |  279 ++++++++
 debian/patches/02_doc_furius.ca_href.dpatch    |   49 +
 debian/patches/03_cvsrevcomp_cmp_typo.dpatch   |   66 ++
 debian/patches/04_build_setup_paths.dpatch     |   45 +
 debian/patches/05_417780_gcc4.3_ftbfs.dpatch   |   20 
 debian/patches/06_user_commands_menu.dpatch    |  806 +++++++++++++++++++++++++
 debian/patches/07_subversion_externals.dpatch  |  164 +++++
 debian/patches/08_516143_xml_is_text.dpatch    |   28 
 debian/pyversions                              |    1 
 debian/rules                                   |   74 ++
 debian/watch                                   |    3 
 debian/xxdiff-scripts.1                        |  110 +++
 debian/xxdiff-scripts.README.Debian            |    9 
 debian/xxdiff-scripts.dirs                     |    3 
 debian/xxdiff-scripts.doc-base                 |   14 
 debian/xxdiff-scripts.install                  |    4 
 debian/xxdiff-scripts.links                    |   14 
 debian/xxdiff-scripts.manpages                 |    1 
 debian/xxdiff.dirs                             |    3 
 debian/xxdiff.doc-base.integration             |   13 
 debian/xxdiff.doc-base.secrets                 |   13 
 debian/xxdiff.doc-base.xxdiff                  |   11 
 debian/xxdiff.install                          |   11 
 debian/xxdiff.manpages                         |    1 
 33 files changed, 2319 insertions(+)

    
download this patch

Patch contents

--- xxdiff-3.2.orig/debian/control
+++ xxdiff-3.2/debian/control
@@ -0,0 +1,47 @@
+Source: xxdiff
+Build-Depends: qt3-dev-tools, flex, bison, libqt3-mt-dev, debhelper (>= 5), dpatch, python, python-support (>= 0.4)
+Section: text
+Priority: optional
+Maintainer: Y Giridhar Appaji Nag <appaji@debian.org>
+Uploaders: Tomas Pospisek <tpo_deb@sourcepole.ch>
+Standards-Version: 3.8.1
+Homepage: http://furius.ca/xxdiff/
+Vcs-Svn: svn://svn.debian.org/svn/collab-maint/ext-maint/xxdiff/unstable
+Vcs-Browser: http://svn.debian.org/wsvn/collab-maint/ext-maint/xxdiff/unstable/?op=log
+
+Package: xxdiff
+Architecture: any
+Depends: ${shlibs:Depends}
+Suggests: x-terminal-emulator, xxdiff-scripts
+Description: graphical file/directory comparison and merge tool
+ xxdiff is a powerful tool for viewing the differences between two or three
+ files, or two directories, and can be used to produce a merged version.  The
+ texts of the two or three files are presented side by side with their
+ differences highlighted with colors for easy identification.  Among its
+ features are:
+ .
+  * Compares two or three files, or two directories (shallow and recursive)
+  * Horizontal highlighting of diffs
+  * Interactive merges, previewing and saving of the resulting output
+  * Unmerges CVS conflicts and displays two files, to help resolve conflicts
+  * Fully customizable with a resource file
+  * Features and output that ease integration with scripts
+ .
+ The scripts that accompany xxdiff can be found in the xxdiff-scripts package.
+
+Package: xxdiff-scripts
+Architecture: all
+Depends: ${python:Depends}, xxdiff
+Description: graphical file/directory comparison and merge tool - scripts
+ xxdiff is a powerful tool for viewing the differences between two or three
+ files, or two directories, and can be used to produce a merged version.  The
+ texts of the two or three files are presented side by side with their
+ differences highlighted with colors for easy identification.  This package
+ contains the following tools that allow automation of tasks with xxdiff:
+ .
+  * xx-match: only diff files that match a pattern
+  * xx-cvs-diff: preview changes made in a CVS checkout
+  * xx-svn-diff: preview changes made in a SVN checkout and commit them
+  * xx-svn-resolve: resolve conflicts
+  * svn-foreign: traverse a checkout and prompt user to check in new files etc.
+  * xx-diff-proxy: a diff tool - useful for tools that feed input to diff
--- xxdiff-3.2.orig/debian/pyversions
+++ xxdiff-3.2/debian/pyversions
@@ -0,0 +1 @@
+2.4-
--- xxdiff-3.2.orig/debian/compat
+++ xxdiff-3.2/debian/compat
@@ -0,0 +1 @@
+5
--- xxdiff-3.2.orig/debian/xxdiff.doc-base.integration
+++ xxdiff-3.2/debian/xxdiff.doc-base.integration
@@ -0,0 +1,13 @@
+Document: xxdiff-integration
+Title: Integrating xxdiff with scripts
+Author: Martin Blais
+Abstract: A summary of some of the features and techniques
+ that can be used to integrate xxdiff with your own homegrown programs.
+Section: Programming
+
+Format: text
+Files: /usr/share/doc/xxdiff/txt/xxdiff-integration.txt.gz
+
+Format: HTML
+Index: /usr/share/doc/xxdiff/html/xxdiff-integration.html
+Files: /usr/share/doc/xxdiff/html/xxdiff-integration.html
--- xxdiff-3.2.orig/debian/changelog
+++ xxdiff-3.2/debian/changelog
@@ -0,0 +1,466 @@
+xxdiff (1:3.2-10) unstable; urgency=low
+
+  * Update Standards-Version to 3.8.1 (no changes required)
+  * Modify 03_cvsrevcomp_cmp_typo to fix typos reported by lintian -E
+  * Re-build with newer debhelper to avoid useless calls to install-docs that
+    have would otherwise be inserted.
+
+ -- Y Giridhar Appaji Nag <appaji@debian.org>  Wed, 29 Apr 2009 18:38:48 +0530
+
+xxdiff (1:3.2-9) unstable; urgency=low
+
+  * Update Maintainer to official Debian ID
+  * Remove DM-Upload-Allowed: yes
+  * Patch 08_516143_xml_is_text to classify XML files as text, thanks to
+    "J.P. Delport" <jpdelport@csir.co.za> for the patch (Closes: #516143)
+
+ -- Y Giridhar Appaji Nag <appaji@debian.org>  Tue, 24 Feb 2009 14:51:19 +0530
+
+xxdiff (1:3.2-8) unstable; urgency=low
+
+  * Improved package description
+  * Patch 07_subversion_externals to fix the xx-svn-diff failure when it
+    encounters an SVN externals item.  Thanks Joseph Rawson
+    <umeboshi3@gmail.com> for the bug report and fix (Closes: #498449)
+  * Update Standards-Version to 3.8.0 (add a README.source)
+
+ -- Y Giridhar Appaji Nag <giridhar@appaji.net>  Tue, 30 Sep 2008 21:23:41 +0530
+
+xxdiff (1:3.2-7) unstable; urgency=low
+
+  * Change doc-base section from Apps/Programming to Programming.  Fixes
+    lintian W: doc-base-unknown-section
+  * Convert xxdiff.doc-base.secrets from ISO-8859-1 to ASCII
+  * Patch 06_user_commands_menu to implement menu with user defined commands.
+    Thanks "Simon Kågström" <simon.kagstrom@bth.se> (Closes: #312240)
+  * Use xxdiff-scripts.links with dh_link instead of by-hand dh_link for all
+    the xxdiff-scripts commands.
+
+ -- Y Giridhar Appaji Nag <giridhar@appaji.net>  Sun, 23 Mar 2008 10:20:50 +0530
+
+xxdiff (1:3.2-6) unstable; urgency=low
+
+  * Add a DM-Upload-Allowed: yes field to be able to DM update packages
+  * Remove '-' from previous changelog entries.
+  * Add Homepage: and Vcs-Svn: fields to debian/control
+  * Change debian/copyright per latest standards
+  * Rename README.debian to README.Debian per convention
+  * xxdiff-scripts is Arch: all rather than Arch: any and remove
+    ${shlibs:Depends} from Depends:
+  * Remove DH_COMPAT from debian/rules, add debian/compat (5)
+  * Remove spaces in doc-base file sections' separators, fixes lintian W:
+    doc-base-file-separator-extra-whitespaces
+  * Add debian/patches, using dpatch
+    + 01_script_not_executable to prevent lintian W: script-not-executable
+    + 02_doc_furius.ca_href to change relative URLs in documentation to
+      http://furius.ca/
+    + 03_cvsrevcomp_cmp_typo to correct typo in xx-cvs-revcmp (cvsrevcomp
+      should be cvsrevcmp)
+    + 04_build_setup_paths to set the appropriate paths necessary to build
+      xxdiff and install the python scripts
+    + 05_417780_gcc4.3_ftbfs to #include <cstdlib> to prevent FTBFS with
+      GCC 4.3
+  * Cleanup and re-organize debian/rules
+    + Do not ignore make errors etc.
+    + Add comands to binary-indep target for xxdiff-scripts
+    + Use dh_installman for installing manpages
+    + Remove symlink of changelog in xxdiff to that in xxdiff-scripts
+  * Rename doc directories to keep in sync with the usual conventions:
+    manual.html/ is html/ and manual.txt/ is txt/
+  * Add a xxdiff-scripts.1 manpage and dh_link to it for all the scripts
+    present in the xxdiff-scripts package.
+  * Use dh_install and *.install files as opposed to by-hand install
+
+ -- Y Giridhar Appaji Nag <giridhar@appaji.net>  Fri, 07 Mar 2008 15:28:44 +0530
+
+xxdiff (1:3.2-5) unstable; urgency=low
+
+  * Adopted by Y Giridhar Appaji Nag <giridhar@appaji.net> (closes: #445882).
+  * New version 3 watch file, upstream uses tar.bz2 files.  Thanks for the
+    report Raphael Geissert (closes: #449716).
+  * Add Homepage to the package description
+
+ -- Y Giridhar Appaji Nag <giridhar@appaji.net>  Sun, 11 Nov 2007 10:30:44 +0530
+
+xxdiff (1:3.2-4) unstable; urgency=low
+
+  * install postinst/prerm scripts. Thanks for the report Reuben Thomas.
+    Closes: #445943
+  * remove gratuitous xxdiff.doc-base file
+  * remove dh_installdocs
+
+ -- Tomas Pospisek <tpo_deb@sourcepole.ch>  Fri, 12 Oct 2007 22:59:09 +0200
+
+xxdiff (1:3.2-3) unstable; urgency=low
+
+  * include required c++ headers. Thanks to Martin Michlmayr. Closes: #417780
+  * refer to xxdiff-scripts instead off xxdiff-tools. Thanks to Andre Colomb.
+    Closes: #426039
+  * I'm orphaning the package since I'm not using it and since I genereally
+    want to shed responsability. The package is in good state IMHO and
+    doesn't require much attention. It has smaller issues with font handling
+    though, so that'd be a good thing to look into.
+
+ -- Tomas Pospisek <tpo_deb@sourcepole.ch>  Mon, 08 Oct 2007 23:12:02 +0200
+
+xxdiff (1:3.2-2) unstable; urgency=low
+
+  * oops /usr/man slipped in again. Re-re-re-moving it.
+  * fix doc-base reference problems reported by lintian
+
+ -- Tomas Pospisek <tpo_deb@sourcepole.ch>  Sun, 03 Dec 2006 21:41:08 +0100
+
+xxdiff (1:3.2-1) unstable; urgency=low
+
+  * Acknowledge NMU. Thanks a lot Ana Beatriz Guerrero Lopez!!!
+  * include scripts/db subdirectory in setup and fix includes
+    Closes: #390091
+
+ -- Tomas Pospisek <tpo_deb@sourcepole.ch>  Sun, 03 Dec 2006 20:54:21 +0100
+
+xxdiff (1:3.2-0.1) unstable; urgency=low
+
+  * Non-maintainer upload.
+  * Removed directory /usr/man. Patch by Andreas Henriksson.
+    (Closes: #399764).
+  * Python Policy: using dh_pysupport instead of dh_python.
+    Added Build-Depends on python-support.
+  * Updated Standars-versions to 3.7.2, no changes required.
+  * Updated FSF address in copyright file.
+
+ -- Ana Beatriz Guerrero Lopez <ana@debian.org>  Tue, 28 Nov 2006 06:06:06 +0100
+
+xxdiff (1:3.2-1) unstable; urgency=low
+
+  * debian:
+    * fix created dirs. Closes: #399764 (thanks Andreas Henriksson)
+
+ -- Tomas Pospisek <tpo_deb@sourcepole.ch>  Tue, 28 Nov 2006 00:37:24 +0100
+
+xxdiff (1:3.2-0) unstable; urgency=low
+
+  * new upstream:
+    * the names of the scripts have changed from xxdiff-... to xx-...
+    * some short options for the script have changed: review the scripts that
+      call them.
+    * xx-subversion script has been renamed to xxdiff-diff-proxy
+    + xx-resolve:  finds all files that are still in conflict and invokes
+                       a 3-way merge algorithm to resolve them.
+    + xxdiff-svn-diff: view all changes in a subversion checkout. Drives the
+                       show itself, rather than being invoked by Subversion
+    + xxdiff-rename:   performs global renames
+    + xxdiff-filter:   run transformation loop using a UNIX command filter
+    + --select-grep:   among the files selected by filename, select only those
+                       which match the given regexp (or multiple clauses)
+    + --ignore-grep:   among the files selected by filename, ignore those which
+                       match the given regexp (or multiple clauses)
+
+ -- Tomas Pospisek <tpo_deb@sourcepole.ch>  Fri, 15 Sep 2006 22:46:16 +0200
+
+xxdiff (1:3.2-1) unstable; urgency=low
+
+  * sent docu patches upstream
+  * NOT RELEASED OR BUILT
+
+ -- Tomas Pospisek <tpo_deb@sourcepole.ch>  Thu, 21 Sep 2006 14:36:52 +0200
+
+xxdiff (1:3.1-5) unstable; urgency=low
+
+  * transition from debmake to debhelper
+
+ -- Tomas Pospisek <tpo_deb@sourcepole.ch>  Sun, 26 Mar 2006 20:22:48 +0200
+
+xxdiff (1:3.1-4) unstable; urgency=low
+
+  * C++ ABI transition: rebuild against current libqt3-mt-dev
+                                                            closes: #326059
+  * Work around for #326553 (thanks realKano@directbox.com
+    and Norbert Kiesel). It doesn't fix the bug though, so I'm only
+    downgrading the bug.
+
+ -- Tomas Pospisek <tpo_deb@sourcepole.ch>  Wed, 07 Sep 2005 22:07:10 +0200
+
+xxdiff (1:3.1-3) unstable; urgency=low
+
+  * re-upload
+
+ -- Tomas Pospisek <tpo_deb@sourcepole.ch>  Tue, 29 Mar 2005 08:43:56 +0200
+
+xxdiff (1:3.1-2) unstable; urgency=low
+
+  * Fix path in xxdiff-subversion (thanks Matthew Mueller)  closes: #301442
+
+ -- Tomas Pospisek <tpo_deb@sourcepole.ch>  Tue, 29 Mar 2005 08:25:58 +0200
+
+xxdiff (1:3.1-1) unstable; urgency=low
+
+  * New upstream release
+    + "Save Options" menu entry in the file menu
+    + interactive font resizing
+    + wheel support in overview area
+    + xxdiff-cond-replace script: script to conditionally replace a
+                                  original by a generated file
+    + xxdiff-subversion script:   wrapper script for integration with
+                                  Subversion
+    * clean html file                                       closes: #198327
+    * fixes segfault                                        closes: #291416
+  * fixed watch file
+  * removed src/version.h from my diff to the package
+
+ -- Tomas Pospisek <tpo_deb@sourcepole.ch>  Wed, 23 Mar 2005 21:28:12 +0100
+
+xxdiff (1:3.0.2-4) unstable; urgency=low
+
+  * reupload, something went wrong the last time
+  * correcting lintian warnings                             closes: #269681
+    (thanks for the lintian cluebar Adrian Bunk!)
+    * manpage section fixed
+    * moved binaries and manpage out of /usr/X11 to /usr
+    * suggesting python for the xxdiff scripts
+    * included png files
+
+ -- Tomas Pospisek <tpo_deb@sourcepole.ch>  Mon, 06 Sep 2004 16:53:49 +0200
+
+xxdiff (1:3.0.2-3) unstable; urgency=low
+
+  * correcting lintian warnings                             closes: #269681
+    (thanks for the lintian cluebar Adrian Bunk!)
+    * manpage section fixed
+    * moved binaries and manpage out of /usr/X11 to /usr
+    * suggesting python for the xxdiff scripts
+    * included png files
+
+ -- Tomas Pospisek <tpo_deb@sourcepole.ch>  Mon, 06 Sep 2004 15:45:46 +0200
+
+xxdiff (1:3.0.2-2) unstable; urgency=low
+
+  * gosh!: reintroduce flex build-dep                       closes: #266840
+    (thanks Anibal Monsalve Salazar)
+
+ -- Tomas Pospisek <tpo_deb@sourcepole.ch>  Fri, 20 Aug 2004 08:15:38 +0200
+
+xxdiff (1:3.0.2-1) unstable; urgency=low
+
+  * New upstream release                                    closes: #258856
+    + a lot of new scripts for:
+      * xxdiff-find-grep-sed: change/replace/merge
+      * xxdiff-encrypted: compare and merge encrypted files
+      * xxdiff-match: diff only files that match a pattern
+      * xxdiff-cvs-diff: preview CVS changes and accept/reject
+    + works with new flex                                   closes: #193585
+
+ -- Tomas Pospisek <tpo_deb@sourcepole.ch>  Tue, 17 Aug 2004 12:20:08 +0200
+
+xxdiff (1:2.9.2-1) unstable; urgency=low
+
+  * Thanks a lot Chris Halls for the previous NMU!
+  * New upstream release:
+    + Should be able to diff Mac files
+    + xxdiff can open single file
+    + clicking on new file opens it
+  * Rebuilt with libqt3-mt (thanks Brian Nelson)            closes: #184023
+                                                            closes: #181029
+
+ -- Tomas Pospisek <tpo_deb@sourcepole.ch>  Fri, 06 Jun 2003 11:55:51 +0200
+
+xxdiff (1:2.9.1-1) unstable; urgency=low
+
+  * NMU with permission from Thomas
+  * New upstream release:
+    + Bugfixes in 3 way diff handling
+    + New variable text clipboard selection with Control+Button1
+  * Rebuild against current unstable using new qt directories
+                                                            closes: #181029
+  * Reference common-licenses/GPL in copyright
+  * Move manpage to /usr/X11R6/man to match the location of the binary
+  * Update feature list in description
+  * Remove dependency for diff, which is essential.
+
+ -- Chris Halls <halls@debian.org>  Fri, 21 Feb 2003 12:35:01 +0100
+
+xxdiff (1:2.7.2-1) unstable; urgency=low
+
+  * new upstream (thanks Adrian!)                           closes: #156088
+  * new upstream features:
+    * whitespace and linebreak changes can be detected and ignored
+    * indent changes can be specialy marked
+    * port to qt3
+
+ -- Tomas Pospisek <tpo_deb@sourcepole.ch>  Fri, 23 Aug 2002 16:08:37 +0200
+
+xxdiff (1:2.5-2) unstable; urgency=low
+
+  * fixed g++-3.0 problem (thanks Daniel Jakobowitz and Philip Blundell)
+                                                            closes: #140032
+
+ -- Tomas Pospisek <tpo_deb@sourcepole.ch>  Fri, 22 Mar 2002 14:25:29 +0100
+
+xxdiff (1:2.5-1) unstable; urgency=low
+
+  * New upstream with a lot of new features, bugfixes closes: #139273
+    + multiple horizontal diffs
+    + ignore whitespace
+    + unmerge (merge conflicts support)
+    + save as merged
+    + gcc3.0 fixes closes: #134023
+
+ -- Tomas Pospisek <tpo_deb@sourcepole.ch>  Fri, 22 Mar 2002 14:25:29 +0100
+
+xxdiff (1:2.0.3-1) unstable; urgency=low
+
+  * included Martin Blais revised minimal manpage
+  * adapted control file text to Martin's manpage
+  * fixed watch file
+  * stepped back to 2.0.3 (stable) as suggested by author
+  * learned about epochs at the same time (thanks to Ryan Murray!)
+  * generating manual.html again, fixed by upstream
+  * removed TODO from install in rules
+  * added debmake dependency closes: #122272
+
+ -- Tomas Pospisek <tpo_deb@sourcepole.ch>  Fri, 14 Dec 2001 18:01:50 +0100
+
+xxdiff (2.1-2) unstable; urgency=low
+
+  * using "sendible-editor" instead of /etc/alternatives/...
+  * not generating manual.html any more, since it requires X closes: #121116
+
+ -- Tomas Pospisek <tpo_deb@sourcepole.ch>  Thu, 29 Nov 2001 13:53:55 +0100
+
+xxdiff (2.1-1) unstable; urgency=low
+
+  * new upstream closes: #111902
+  * upstream does not use autoconf any more closes: #120101
+  * added depends: diff, suggests: editor
+
+ -- Tomas Pospisek <tpo_deb@sourcepole.ch>  Sat, 24 Nov 2001 17:05:47 +0100
+
+xxdiff (1.9.1-13) unstable; urgency=low
+
+  * corrected some typos (thanks to Matt Zimmermann's effort)
+
+ -- Tomas Pospisek <tpo_deb@sourcepole.ch>  Fri, 16 Nov 2001 15:29:57 +0100
+ 
+xxdiff (1.9.1-12) unstable; urgency=low
+
+  * removed ldso from build-dependencies closes: #112869
+
+ -- Tomas Pospisek <tpo_deb@sourcepole.ch>  Thu, 20 Sep 2001 12:45:05 +0200
+ 
+xxdiff (1.9.1-11) unstable; urgency=low
+
+  * will I get the dependencies ever right? Thanks again to James Troup for pointing it out!
+    closes: #112297, #112756
+
+ -- Tomas Pospisek <tpo_deb@sourcepole.ch>  Wed, 19 Sep 2001 14:25:04 +0200
+ 
+xxdiff (1.9.1-10) unstable; urgency=low
+
+  * removed libqt2.2-dev dependency. Thanks to James Troup for pointing it out!
+    fixes: #112297
+
+ -- Tomas Pospisek <tpo_deb@sourcepole.ch>  Mon, 17 Sep 2001 17:14:03 +0200
+ 
+xxdiff (1.9.1-9) unstable; urgency=low
+
+  * reorganized build-dependencies to fix bug in autobuilder. concerns: #112297
+
+ -- Tomas Pospisek <tpo_deb@sourcepole.ch>  Sat, 15 Sep 2001 14:58:02 +0200
+ 
+xxdiff (1.9.1-8) unstable; urgency=low
+
+  * moved from libstlport to libstdc++. closes: #97557
+
+ -- Tomas Pospisek <tpo_deb@sourcepole.ch>  Mon, 25 May 2001 10:38:01 +0200
+ 
+xxdiff (1.9.1-7) unstable; urgency=low
+
+  * libstlport was missing in the dependencies (thanks Johannes Zellner)
+    as well as automake for the builddependencies . closes: #93780
+
+ -- Tomas Pospisek <tpo_deb@sourcepole.ch>  Thu, 12 Apr 2001 23:07:00 +0200
+ 
+xxdiff (1.9.1-6) unstable; urgency=low
+
+  * changed back to Depends: ${shlibs:Depends}. Thanks go out to Adrian Bunk
+    for patience and explanation ;-). closes: #92865
+
+  * some more cleaning of Build-Depends. Again, thanks to the gentleman above!
+
+ -- Tomas Pospisek <tpo_deb@sourcepole.ch>  Tue,  4 Apr 2001 20:14:42 +0200
+ 
+xxdiff (1.9.1-5) unstable; urgency=low
+
+  * it seems that the deb got linked against an obsolete
+    libstl. Thanks again Wayne!
+
+ -- Tomas Pospisek <tpo_deb@sourcepole.ch>  Tue,  3 Apr 2001 12:56:01 +0200
+ 
+xxdiff (1.9.1-4) unstable; urgency=low
+
+  * reversed automoc changes (was only some --verbose stuff)
+
+  * added missing libstlport dependency (Thanks Wayne Scott ;-)
+
+ -- Tomas Pospisek <tpo_deb@sourcepole.ch>  Mon,  2 Apr 2001 21:38:00 +0200
+ 
+xxdiff (1.9.1-3) unstable; urgency=high
+
+  * now depends on libmng | libmng1. closes: #92484
+
+ -- Tomas Pospisek <tpo_deb@sourcepole.ch>  Mon,  2 Apr 2001 11:07:00 +0200
+ 
+xxdiff (1.9.1-2) unstable; urgency=low
+
+  * changed my email address
+
+ -- Tomas Pospisek <tpo_deb@sourcepole.ch>  Wed, 28 Mar 2001 14:54:00 +0200
+ 
+xxdiff (1.9.1-1) unstable; urgency=low
+
+  * new upstream
+
+  * did some heavy build procedure patching for upstream
+
+  * building with a mix of testing and potato with the "new" libstl
+    closes: #85276, #86195
+
+  * xxdiff can't be started without a filename from the command line
+    closes: #75614
+
+  * open left and open right now work as expected, that is the will open
+    the file and redo the diff. closes: #75747
+
+  * the horizontal window size defaults to the horizontal resolution
+    closes: #75748
+
+  * depends on libqt2.2*. closes: #89782
+
+ -- Tomas Pospisek <tpo@spin.ch>  Thu, 15 Mar 2001 21:53:00 +0200
+
+xxdiff (1.8-3) unstable; urgency=low
+
+  * I must have mixed some stuff from the 1.8.2 release into this, which
+    is undone in this release
+
+  * set Architecture: to any, thanks to Roman Hodek (fixes #76385)
+
+ -- Tomas Pospisek <tpo@spin.ch>  Wed, 08 Sep 2000 12:11:01 +0200
+
+xxdiff (1.8-2) unstable; urgency=low
+
+  * Bas Zoetekouw has volenteered to sponsor me. Cool. Thanks Bas. And
+    at the same time found the first build bugs...
+
+  * Also I forgot to thank Pirmin Kalberer and Michael Weber for help
+    with autoconfig and automake
+
+  * added AUTHORS, ChangeLog and NEWS which are required by automake
+
+ -- Tomas Pospisek <tpo@spin.ch>  Thu, 14 Sep 2000 13:07:03 +0200
+
+xxdiff (1.8-1) unstable; urgency=low
+
+  * Initial release.
+
+ -- Tomas Pospisek <tpo@spin.ch>  Thu, 14 Sep 2000 13:07:03 +0200
+
--- xxdiff-3.2.orig/debian/xxdiff.dirs
+++ xxdiff-3.2/debian/xxdiff.dirs
@@ -0,0 +1,3 @@
+usr/share/doc/xxdiff/html
+usr/share/doc/xxdiff/txt
+usr/bin
--- xxdiff-3.2.orig/debian/xxdiff-scripts.doc-base
+++ xxdiff-3.2/debian/xxdiff-scripts.doc-base
@@ -0,0 +1,14 @@
+Document: xxdiff-scripts
+Title: Helper Scripts for xxdiff
+Author: Martin Blais
+Abstract: A description of the Python scripts and infrastructure
+ that is provided around xxdiff, to faciliate implementing
+ processes requiring display and selection of differences.
+Section: Programming
+
+Format: text
+Files: /usr/share/doc/xxdiff-scripts/txt/xxdiff-scripts.txt.gz
+
+Format: HTML
+Index: /usr/share/doc/xxdiff-scripts/html/xxdiff-scripts.html
+Files: /usr/share/doc/xxdiff-scripts/html/xxdiff-scripts.html
--- xxdiff-3.2.orig/debian/xxdiff-scripts.README.Debian
+++ xxdiff-3.2/debian/xxdiff-scripts.README.Debian
@@ -0,0 +1,9 @@
+xxdiff for Debian
+----------------------
+
+The package's homepage is http://furius.ca/xxdiff/
+
+Note that the upstream tarball contains a lot more scripts that _might_
+be useful.
+
+Tomas Pospisek <tpo_deb@sourcepole.ch>, Tue, 19 Sep 2006 01:07:44 +0200
--- xxdiff-3.2.orig/debian/rules
+++ xxdiff-3.2/debian/rules
@@ -0,0 +1,74 @@
+#!/usr/bin/make -f
+
+include /usr/share/dpatch/dpatch.make
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+src/Makefile: patch qmake-stamp
+qmake-stamp:
+	dh_testdir
+	$(MAKE) -C src -f Makefile.bootstrap makefile
+	touch $@
+
+build: build-stamp
+
+build-stamp: patch-stamp src/Makefile
+	dh_testdir
+	$(MAKE) -C src
+	touch $@
+
+clean: clean-patched unpatch
+clean-patched:
+	dh_testdir
+	dh_testroot
+	rm -f build-stamp qmake-stamp
+	[ ! -f src/Makefile ] || $(MAKE) -C src distclean
+	rm -f src/Makefile
+	rm -f src/Makefile.qmake
+	rm -rf build
+	rm -f src/resParser_lex.h
+	dh_clean
+
+install: build
+	dh_testdir
+	dh_testroot
+	dh_clean -k
+	dh_installdirs
+	python setup.py install --no-compile --prefix debian/xxdiff-scripts/usr
+
+binary-indep: build install
+	dh_testdir -i
+	dh_testroot -i
+	dh_install -i
+	dh_installman -i
+	dh_link -i
+	dh_installdocs -i
+	dh_installchangelogs -i
+	dh_pysupport -i
+	dh_compress -i
+	dh_fixperms -i
+	dh_installdeb -i
+	dh_md5sums -i
+	dh_gencontrol -i
+	dh_builddeb -i
+
+binary-arch: build install
+	dh_testdir -a
+	dh_testroot -a
+	dh_install -a
+	dh_installman -a
+	dh_installdocs -a
+	dh_installchangelogs -a CHANGES
+	dh_strip -a
+	dh_compress -a
+	dh_fixperms -a
+	dh_installdeb -a
+	dh_shlibdeps -a
+	dh_md5sums -a
+	dh_gencontrol -a
+	dh_builddeb -a
+
+binary: binary-indep binary-arch
+
+.PHONY: build clean binary-indep binary-arch binary install patch unpatch
--- xxdiff-3.2.orig/debian/xxdiff.doc-base.xxdiff
+++ xxdiff-3.2/debian/xxdiff.doc-base.xxdiff
@@ -0,0 +1,11 @@
+Document: xxdiff
+Title: xxdiff Documentation
+Author: Martin Blais
+Abstract: User's manual for xxdiff. If you're reading
+ this page from the web, note that you can also access
+ this document from the Help menu of xxdiff.
+Section: Programming
+
+Format: HTML
+Index: /usr/share/doc/xxdiff/html/xxdiff-doc.html
+Files: /usr/share/doc/xxdiff/html/xxdiff-doc.html
--- xxdiff-3.2.orig/debian/watch
+++ xxdiff-3.2/debian/watch
@@ -0,0 +1,3 @@
+version = 3
+
+http://sf.net/xxdiff/xxdiff-(.+)\.tar\.bz2
--- xxdiff-3.2.orig/debian/menu.unused
+++ xxdiff-3.2/debian/menu.unused
@@ -0,0 +1,2 @@
+?package(xxdiff):needs=X11 section=Apps/Text\
+  title="xxdiff" command="/usr/bin/xxdiff"
--- xxdiff-3.2.orig/debian/copyright
+++ xxdiff-3.2/debian/copyright
@@ -0,0 +1,35 @@
+This package was debianized by Tomas Pospisek <tpo_deb@sourcepole.ch> on
+Sat, 24 Nov 2001 17:05:47 +0100.
+
+It was downloaded from http://furius.ca/xxdiff/
+
+Upstream Author: 
+
+    Martin Blais <blais@furius.ca>
+
+Copyright: 
+
+    Copyright (C) 1999-2006, Martin Blais
+
+License:
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    with the Debian GNU/Linux distribution in the file
+    /usr/share/common-licenses/GPL-2; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+
+The Debian packaging is
+Copyright (C) 2001-2007, Tomas Pospisek <tpo_deb@sourcepole.ch>
+Copyright (C) 2007-2008, Y Giridhar Appaji Nag <giridhar@appaji.net> and
+is licensed under the GNU GPL, either version 2 of the License, or (at
+your option) any later version; see `/usr/share/common-licenses/GPL-2'.
--- xxdiff-3.2.orig/debian/xxdiff.doc-base.secrets
+++ xxdiff-3.2/debian/xxdiff.doc-base.secrets
@@ -0,0 +1,13 @@
+Document: xxdiff-secrets
+Title: The Almost Secret Features of xxdiff
+Author: Martin Blais
+Abstract: A sneak peak into of some of the lesser-known
+ or non-obvious features of xxdiff.
+Section: Programming
+
+Format: text
+Files: /usr/share/doc/xxdiff/txt/xxdiff-secrets.txt.gz
+
+Format: HTML
+Index: /usr/share/doc/xxdiff/html/xxdiff-secrets.html
+Files: /usr/share/doc/xxdiff/html/xxdiff-secrets.html
--- xxdiff-3.2.orig/debian/NEWS
+++ xxdiff-3.2/debian/NEWS
@@ -0,0 +1,8 @@
+xxdiff (1:3.2-0) unstable; urgency=low
+
+  * the names of the scripts have changed from xxdiff-... to xx-...
+  * some short options for the script have changed: review the scripts that
+    call them.
+  * xx-subversion script has been renamed to xxdiff-diff-proxy
+
+ -- Tomas Pospisek <tpo_deb@sourcepole.ch>  Fri, 15 Sep 2006 22:46:16 +0200
--- xxdiff-3.2.orig/debian/xxdiff-scripts.dirs
+++ xxdiff-3.2/debian/xxdiff-scripts.dirs
@@ -0,0 +1,3 @@
+usr/share/doc/xxdiff-scripts/html
+usr/share/doc/xxdiff-scripts/txt
+etc/bash_completion.d/
--- xxdiff-3.2.orig/debian/README.Debian
+++ xxdiff-3.2/debian/README.Debian
@@ -0,0 +1,8 @@
+xxdiff for Debian
+----------------------
+
+The package's homepage is http://furius.ca/xxdiff/
+
+The source has been repacked, since upstream ships in tar.bz format.
+
+Tomas Pospisek <tpo_deb@sourcepole.ch>, Tue, 19 Sep 2006 01:11:35 +0200
--- xxdiff-3.2.orig/debian/xxdiff-scripts.1
+++ xxdiff-3.2/debian/xxdiff-scripts.1
@@ -0,0 +1,110 @@
+.TH XXDIFF-SCRIPTS 1 "02 March 2008"
+.SH NAME
+xxdiff-scripts \- Tools that allow automation of tasks with xxdiff
+.SH SYNOPSIS
+.B xx-cvs-diff, xx-svn-diff, xx-*
+.br
+.SH DESCRIPTION
+\fBxxdiff(1)\fP 
+is a graphical file and directories comparison and merge tool.
+.PP
+xxdiff-scripts is a collection of python scripts around xxdiff that
+allows automation of various diff, review and merge tasks using xxdiff.
+
+.SH COMMANDS
+All the programs in xxdiff-scripts script collection support the usual
+GNU command line syntax and have a \-\-help option that has detailed
+information about the options supported.
+
+.TP
+.B svn-foreign
+svn-foreign runs 'svn status' on the given Subversion checkout
+directories, to find out which files are unaccounted for and allows
+dealing with the files interactively.
+
+.TP
+.B xx-cond-replace
+xx-cond-replace is a script to conditionally replace an original by a
+generated file.
+
+.TP
+.B xx-cvs-diff
+xx-cvs-diff invokes 'cvs diff' with the given file arguments, and allows
+a xxdiff preview of the current changes made in a cvs checkout.
+
+.TP
+.B xx-cvs-revcmp
+xx-cvs-revcmp displays file differences with the current or a previous
+CVS version.
+
+.TP
+.B xx-diff-proxy
+xx-diff-proxy is a wrapper script for xxdiff that presents options that
+are the same as the diff or diff3 commands.  This can be used with
+programs that expect to call diff/diff3 to present differences to users,
+and can be configured with a different diff program.
+
+.TP
+.B xx-encrypted
+xx-encrypted is a script to compare and merge contents of encrypted
+files relatively safely.
+
+.TP
+.B xx-filter
+xx-filter walks a directory hierarchy, selects some files to be
+processed, performs replacements in files and confirms the application
+of changes via xxdiff.
+
+.TP
+.B xx-find-grep-sed
+xx-find-grep-sed walks a directory hierarchy, selects some files to be
+processed and performs global sed-like replacements in the set of files.
+
+.TP
+.B xx-match
+xx-match is a script for invoking xxdiff on matching files using the
+basename of the files.
+
+.TP
+.B xx-pyline
+xx-pyline walks a directory hierarchy, selects some files to be
+processed and runs a given Python code on each line of the input.
+xxdiff is presented to confirm application of the changes.
+
+.TP
+.B xx-rename
+xx-rename walks a directory hierarchy, selects some files to be
+processed and perform a replacement of a one string to another in the
+files and confirm the application of changes via xxdiff.
+
+.TP
+.B xx-sql-schemas
+xx-sql-schemas dumps the schemas for two PostgreSQL databases, re-orders
+the contents so that they diff nicely, and spawns xxdiff on the results.
+
+.TP
+.B xx-svn-diff
+xx-svn-diff invokes xxdiff for all modified files in the given
+Subversion checkout area.
+
+.TP
+.B xx-svn-resolve
+xx-svn-resolve invokes xxdiff with a 3-way merge view for all files in a
+Subversion checkout whose conflicts need to be resolved.  Depending on
+the exit status, xxdiff also calls 'svn resolve' on the files.
+
+.SH SEE ALSO
+.IP "\fI/usr/share/doc/xxdiff-scripts/html/xxdiff-scripts.html\fR"
+A description of the Python scripts and infrastructure that is provided
+around xxdiff, to faciliate implementing processes requiring display and
+selection of differences.
+.IP "\fI/usr/share/doc/xxdiff-scripts/txt/xxdiff-scripts.txt.gz\fR"
+The above documentation in plain text.
+.IP "xxdiff(1)"
+The xxdiff manual page
+.BR
+.SH AUTHOR
+xxdiff was written by Martin Blais <blais@furius.ca>
+.PP
+This manual page was written by Y Giridhar Appaji Nag <giridhar@appaji.net>
+for the Debian project (but may be used by others).
--- xxdiff-3.2.orig/debian/xxdiff.manpages
+++ xxdiff-3.2/debian/xxdiff.manpages
@@ -0,0 +1 @@
+src/xxdiff.1
--- xxdiff-3.2.orig/debian/xxdiff-scripts.manpages
+++ xxdiff-3.2/debian/xxdiff-scripts.manpages
@@ -0,0 +1 @@
+debian/xxdiff-scripts.1
--- xxdiff-3.2.orig/debian/xxdiff.install
+++ xxdiff-3.2/debian/xxdiff.install
@@ -0,0 +1,11 @@
+bin/xxdiff usr/bin
+doc/equals.png usr/share/doc/xxdiff/html
+doc/horiz.png usr/share/doc/xxdiff/html
+doc/perhunk.png usr/share/doc/xxdiff/html
+doc/rma.png usr/share/doc/xxdiff/html
+doc/select.png usr/share/doc/xxdiff/html
+doc/xxdiff-secrets.html usr/share/doc/xxdiff/html
+doc/xxdiff-integration.html usr/share/doc/xxdiff/html
+doc/xxdiff-doc.html usr/share/doc/xxdiff/html
+doc/xxdiff-secrets.txt usr/share/doc/xxdiff/txt
+doc/xxdiff-integration.txt usr/share/doc/xxdiff/txt
--- xxdiff-3.2.orig/debian/xxdiff-scripts.install
+++ xxdiff-3.2/debian/xxdiff-scripts.install
@@ -0,0 +1,4 @@
+doc/screenshot-sql-schema-compare.png usr/share/doc/xxdiff-scripts/html
+doc/xxdiff-scripts.html usr/share/doc/xxdiff-scripts/html
+doc/xxdiff-scripts.txt usr/share/doc/xxdiff-scripts/txt
+etc/bashrc etc/bash_completion.d/xxdiff
--- xxdiff-3.2.orig/debian/xxdiff-scripts.links
+++ xxdiff-3.2/debian/xxdiff-scripts.links
@@ -0,0 +1,14 @@
+usr/share/man/man1/xxdiff-scripts.1 usr/share/man/man1/svn-foreign.1
+usr/share/man/man1/xxdiff-scripts.1 usr/share/man/man1/xx-cond-replace.1
+usr/share/man/man1/xxdiff-scripts.1 usr/share/man/man1/xx-cvs-diff.1
+usr/share/man/man1/xxdiff-scripts.1 usr/share/man/man1/xx-cvs-revcmp.1
+usr/share/man/man1/xxdiff-scripts.1 usr/share/man/man1/xx-diff-proxy.1
+usr/share/man/man1/xxdiff-scripts.1 usr/share/man/man1/xx-encrypted.1
+usr/share/man/man1/xxdiff-scripts.1 usr/share/man/man1/xx-filter.1
+usr/share/man/man1/xxdiff-scripts.1 usr/share/man/man1/xx-find-grep-sed.1
+usr/share/man/man1/xxdiff-scripts.1 usr/share/man/man1/xx-match.1
+usr/share/man/man1/xxdiff-scripts.1 usr/share/man/man1/xx-pyline.1
+usr/share/man/man1/xxdiff-scripts.1 usr/share/man/man1/xx-rename.1
+usr/share/man/man1/xxdiff-scripts.1 usr/share/man/man1/xx-sql-schemas.1
+usr/share/man/man1/xxdiff-scripts.1 usr/share/man/man1/xx-svn-diff.1
+usr/share/man/man1/xxdiff-scripts.1 usr/share/man/man1/xx-svn-resolve.1 
--- xxdiff-3.2.orig/debian/README.source
+++ xxdiff-3.2/debian/README.source
@@ -0,0 +1,2 @@
+Please read the README.source provided with the documentation of the
+dpatch package
--- xxdiff-3.2.orig/debian/patches/04_build_setup_paths.dpatch
+++ xxdiff-3.2/debian/patches/04_build_setup_paths.dpatch
@@ -0,0 +1,45 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 04_build_setup_paths.dpatch by Y Giridhar Appaji Nag <giridhar@appaji.net>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: qmake is in /usr/bin in Debian not in /usr/qt/3/bin.  Add db to
+## DP: xxdiff python packages alongside scripts and scm.
+
+@DPATCH@
+diff -urNad xxdiff-3.2~/setup.py xxdiff-3.2/setup.py
+--- xxdiff-3.2~/setup.py	2008-01-24 11:45:47.000000000 +0530
++++ xxdiff-3.2/setup.py	2008-01-24 11:50:11.000000000 +0530
+@@ -52,7 +52,8 @@
+       package_dir = {'': 'lib/python'},
+       packages = ['xxdiff',
+                   join('xxdiff', 'scripts'),
+-                  join('xxdiff', 'scm')],
++                  join('xxdiff', 'scm'),
++                  join('xxdiff', 'db')],
+       scripts = allscripts
+      )
+ 
+diff -urNad xxdiff-3.2~/src/Makefile.bootstrap xxdiff-3.2/src/Makefile.bootstrap
+--- xxdiff-3.2~/src/Makefile.bootstrap	2008-01-24 11:45:36.000000000 +0530
++++ xxdiff-3.2/src/Makefile.bootstrap	2008-01-24 11:50:06.000000000 +0530
+@@ -8,7 +8,7 @@
+ QTDIR ?= /usr/qt/3
+ 
+ # Rule to generate the qmake Makefile for building xxdiff.
+-QMAKE = $(QTDIR)/bin/qmake
++QMAKE = qmake
+ 
+ 
+ # Rule to generate qmake and delegate to it.
+diff -urNad xxdiff-3.2~/src/Makefile.extra xxdiff-3.2/src/Makefile.extra
+--- xxdiff-3.2~/src/Makefile.extra	2008-01-24 11:45:41.000000000 +0530
++++ xxdiff-3.2/src/Makefile.extra	2008-01-24 11:50:02.000000000 +0530
+@@ -61,7 +61,7 @@
+ 
+ 
+ # Override the qmake we use because the one in the path might be different.
+-QMAKE = $(QTDIR)/bin/qmake
++QMAKE = qmake
+ 
+ 
+ # Note: we would need to add this to be correct.  Danger!  If the Makefile gets
--- xxdiff-3.2.orig/debian/patches/03_cvsrevcomp_cmp_typo.dpatch
+++ xxdiff-3.2/debian/patches/03_cvsrevcomp_cmp_typo.dpatch
@@ -0,0 +1,66 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 03_cvsrevcomp_cmp_typo.dpatch by Y Giridhar Appaji Nag <giridhar@appaji.net>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Correct typo in xx-cvs-revcmp (cvsrevcomp should be cvsrevcmp) and help
+
+@DPATCH@
+diff -urNad xxdiff-3.2~/bin/xx-cvs-revcmp xxdiff-3.2/bin/xx-cvs-revcmp
+--- xxdiff-3.2~/bin/xx-cvs-revcmp	2009-04-29 18:34:36.000000000 +0530
++++ xxdiff-3.2/bin/xx-cvs-revcmp	2009-04-29 18:43:09.000000000 +0530
+@@ -5,6 +5,6 @@
+ 
+ __author__ = 'Martin Blais <blais@furius.ca>'
+ 
+-from xxdiff.scripts.cvsrevcomp import main
++from xxdiff.scripts.cvsrevcmp import main
+ main()
+ 
+diff -urNad xxdiff-3.2~/doc/xxdiff-doc.html xxdiff-3.2/doc/xxdiff-doc.html
+--- xxdiff-3.2~/doc/xxdiff-doc.html	2006-05-14 20:26:06.000000000 +0530
++++ xxdiff-3.2/doc/xxdiff-doc.html	2009-04-29 18:43:09.000000000 +0530
+@@ -1892,7 +1892,7 @@
+ MergedFilename: "%L.merge"
+ </PRE>
+ <BLOCKQUOTE>
+-Default merged filename. %L, %M, %R can be used as placeholders for left, middle and right filenames repectively. Note that ClearCase suffixes are stripped automatically.
++Default merged filename. %L, %M, %R can be used as placeholders for left, middle and right filenames respectively. Note that ClearCase suffixes are stripped automatically.
+ </BLOCKQUOTE>
+ 
+ </div></div>
+diff -urNad xxdiff-3.2~/src/doc.html xxdiff-3.2/src/doc.html
+--- xxdiff-3.2~/src/doc.html	2009-04-29 18:34:36.000000000 +0530
++++ xxdiff-3.2/src/doc.html	2009-04-29 18:43:09.000000000 +0530
+@@ -762,7 +762,7 @@
+ </div>
+ <div class="section">
+ <h1><a class="toc-backref" href="#id54" id="reporting-bugs" name="reporting-bugs">16&nbsp;&nbsp;&nbsp;Reporting bugs</a></h1>
+-<p>All bug reports and feature requests should be submitted throught the
++<p>All bug reports and feature requests should be submitted through the
+ SourceForge bug tracking system at the following URL
+ <a class="reference" href="http://sourceforge.net/bugs/?group_id=2198">http://sourceforge.net/bugs/?group_id=2198</a>.  Please avoid sending the author
+ email about xxdiff bugs.  Please use this bug tracking system, it is extremely
+diff -urNad xxdiff-3.2~/src/doc.txt xxdiff-3.2/src/doc.txt
+--- xxdiff-3.2~/src/doc.txt	2009-04-29 18:34:36.000000000 +0530
++++ xxdiff-3.2/src/doc.txt	2009-04-29 18:43:09.000000000 +0530
+@@ -919,7 +919,7 @@
+ --------------
+       
+ 
+-All bug reports and feature requests should be submitted throught the
++All bug reports and feature requests should be submitted through the
+ SourceForge bug tracking system at the following URL
+ http://sourceforge.net/bugs/?group_id=2198.  Please avoid sending the author
+ email about xxdiff bugs.  Please use this bug tracking system, it is extremely
+diff -urNad xxdiff-3.2~/src/resParser.cpp xxdiff-3.2/src/resParser.cpp
+--- xxdiff-3.2~/src/resParser.cpp	2009-04-29 18:34:36.000000000 +0530
++++ xxdiff-3.2/src/resParser.cpp	2009-04-29 18:43:09.000000000 +0530
+@@ -213,7 +213,7 @@
+ 
+    { "MergedFilename", MERGED_FILENAME,
+      "Default merged filename. %L, %M, %R can be used as placeholders for \
+-left, middle and right filenames repectively. Note that ClearCase suffixes \
++left, middle and right filenames respectively. Note that ClearCase suffixes \
+ are stripped automatically." },
+ 
+ };
--- xxdiff-3.2.orig/debian/patches/05_417780_gcc4.3_ftbfs.dpatch
+++ xxdiff-3.2/debian/patches/05_417780_gcc4.3_ftbfs.dpatch
@@ -0,0 +1,20 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 05_417780_gcc4.3_ftbfs.dpatch by Y Giridhar Appaji Nag <giridhar@appaji.net>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: #include <cstdlib> to prevent FTBFS with GCC 4.3, based on patch
+## DP: from Martin Michlmayr <tbm@cyrius.com>
+
+@DPATCH@
+diff -urNad xxdiff-3.2~/src/resources.inline.h xxdiff-3.2/src/resources.inline.h
+--- xxdiff-3.2~/src/resources.inline.h	2008-01-24 11:59:54.000000000 +0530
++++ xxdiff-3.2/src/resources.inline.h	2008-01-24 12:02:59.000000000 +0530
+@@ -20,6 +20,8 @@
+  *
+  ******************************************************************************/
+ 
++#include <cstdlib>
++
+ /*==============================================================================
+  * EXTERNAL DECLARATIONS
+  *============================================================================*/
--- xxdiff-3.2.orig/debian/patches/01_script_not_executable.dpatch
+++ xxdiff-3.2/debian/patches/01_script_not_executable.dpatch
@@ -0,0 +1,279 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 01_script_not_executable.dpatch by Y Giridhar Appaji Nag <giridhar@appaji.net>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Remove hashbang lines for non executable scripts to prevent
+## DP: lintian W: script-not-executable
+
+@DPATCH@
+diff -urNad xxdiff-3.2~/etc/bashrc xxdiff-3.2/etc/bashrc
+--- xxdiff-3.2~/etc/bashrc	2008-03-01 11:44:56.000000000 +0530
++++ xxdiff-3.2/etc/bashrc	2008-03-01 11:45:09.000000000 +0530
+@@ -1,5 +1,3 @@
+-#!/bin/sh
+-#
+ # $Id: bashrc 760 2004-02-09 18:51:12Z blais $
+ # $Source$
+ #
+@@ -15,4 +13,4 @@
+ complete -F _optcomplete xx-encrypted
+ complete -F _optcomplete xx-find-grep-sed
+ complete -F _optcomplete xx-match
+-complete -F _optcomplete xx-patch-UNFINISHED # FIXME
++# complete -F _optcomplete xx-patch-UNFINISHED # FIXME
+diff -urNad xxdiff-3.2~/lib/python/xxdiff/backup.py xxdiff-3.2/lib/python/xxdiff/backup.py
+--- xxdiff-3.2~/lib/python/xxdiff/backup.py	2008-03-01 11:44:56.000000000 +0530
++++ xxdiff-3.2/lib/python/xxdiff/backup.py	2008-03-01 11:45:09.000000000 +0530
+@@ -1,4 +1,3 @@
+-#!/usr/bin/env python
+ # This file is part of the xxdiff package.  See xxdiff for license and details.
+ 
+ """
+diff -urNad xxdiff-3.2~/lib/python/xxdiff/checkout.py xxdiff-3.2/lib/python/xxdiff/checkout.py
+--- xxdiff-3.2~/lib/python/xxdiff/checkout.py	2008-03-01 11:44:56.000000000 +0530
++++ xxdiff-3.2/lib/python/xxdiff/checkout.py	2008-03-01 11:45:09.000000000 +0530
+@@ -1,4 +1,3 @@
+-#!/usr/bin/env python
+ # This file is part of the xxdiff package.  See xxdiff for license and details.
+ 
+ """
+diff -urNad xxdiff-3.2~/lib/python/xxdiff/condrepl.py xxdiff-3.2/lib/python/xxdiff/condrepl.py
+--- xxdiff-3.2~/lib/python/xxdiff/condrepl.py	2008-03-01 11:44:56.000000000 +0530
++++ xxdiff-3.2/lib/python/xxdiff/condrepl.py	2008-03-01 11:45:09.000000000 +0530
+@@ -1,4 +1,3 @@
+-#!/usr/bin/env python
+ # This file is part of the xxdiff package.  See xxdiff for license and details.
+ 
+ """
+diff -urNad xxdiff-3.2~/lib/python/xxdiff/db/__init__.py xxdiff-3.2/lib/python/xxdiff/db/__init__.py
+--- xxdiff-3.2~/lib/python/xxdiff/db/__init__.py	2008-03-01 11:44:56.000000000 +0530
++++ xxdiff-3.2/lib/python/xxdiff/db/__init__.py	2008-03-01 11:45:09.000000000 +0530
+@@ -1,4 +1,3 @@
+-#!/usr/bin/env python
+ """
+ This package contains support for extracting stuff from various databases.
+ """
+diff -urNad xxdiff-3.2~/lib/python/xxdiff/db/postgresql.py xxdiff-3.2/lib/python/xxdiff/db/postgresql.py
+--- xxdiff-3.2~/lib/python/xxdiff/db/postgresql.py	2008-03-01 11:44:56.000000000 +0530
++++ xxdiff-3.2/lib/python/xxdiff/db/postgresql.py	2008-03-01 11:45:09.000000000 +0530
+@@ -1,4 +1,3 @@
+-#!/usr/bin/env python
+ # This file is part of the xxdiff package.  See xxdiff for license and details.
+ 
+ """
+diff -urNad xxdiff-3.2~/lib/python/xxdiff/editor.py xxdiff-3.2/lib/python/xxdiff/editor.py
+--- xxdiff-3.2~/lib/python/xxdiff/editor.py	2008-03-01 11:44:56.000000000 +0530
++++ xxdiff-3.2/lib/python/xxdiff/editor.py	2008-03-01 11:45:09.000000000 +0530
+@@ -1,4 +1,3 @@
+-#!/usr/bin/env python
+ # This file is part of the xxdiff package.  See xxdiff for license and details.
+ 
+ """
+diff -urNad xxdiff-3.2~/lib/python/xxdiff/history.py xxdiff-3.2/lib/python/xxdiff/history.py
+--- xxdiff-3.2~/lib/python/xxdiff/history.py	2008-03-01 11:44:56.000000000 +0530
++++ xxdiff-3.2/lib/python/xxdiff/history.py	2008-03-01 11:45:09.000000000 +0530
+@@ -1,4 +1,3 @@
+-#!/usr/bin/env python
+ # This file is part of the xxdiff package.  See xxdiff for license and details.
+ 
+ """
+diff -urNad xxdiff-3.2~/lib/python/xxdiff/invoke.py xxdiff-3.2/lib/python/xxdiff/invoke.py
+--- xxdiff-3.2~/lib/python/xxdiff/invoke.py	2008-03-01 11:44:56.000000000 +0530
++++ xxdiff-3.2/lib/python/xxdiff/invoke.py	2008-03-01 11:45:09.000000000 +0530
+@@ -1,4 +1,3 @@
+-#!/usr/bin/env python
+ # This file is part of the xxdiff package.  See xxdiff for license and details.
+ 
+ """
+diff -urNad xxdiff-3.2~/lib/python/xxdiff/mapcompare.py xxdiff-3.2/lib/python/xxdiff/mapcompare.py
+--- xxdiff-3.2~/lib/python/xxdiff/mapcompare.py	2008-03-01 11:44:56.000000000 +0530
++++ xxdiff-3.2/lib/python/xxdiff/mapcompare.py	2008-03-01 11:45:09.000000000 +0530
+@@ -1,4 +1,3 @@
+-#!/usr/bin/env python
+ # This file is part of the xxdiff package.  See xxdiff for license and details.
+ 
+ """
+diff -urNad xxdiff-3.2~/lib/python/xxdiff/patches.py xxdiff-3.2/lib/python/xxdiff/patches.py
+--- xxdiff-3.2~/lib/python/xxdiff/patches.py	2008-03-01 11:44:56.000000000 +0530
++++ xxdiff-3.2/lib/python/xxdiff/patches.py	2008-03-01 11:45:09.000000000 +0530
+@@ -1,4 +1,3 @@
+-#!/usr/bin/env python
+ # This file is part of the xxdiff package.  See xxdiff for license and details.
+ 
+ """
+diff -urNad xxdiff-3.2~/lib/python/xxdiff/resilient.py xxdiff-3.2/lib/python/xxdiff/resilient.py
+--- xxdiff-3.2~/lib/python/xxdiff/resilient.py	2008-03-01 11:44:56.000000000 +0530
++++ xxdiff-3.2/lib/python/xxdiff/resilient.py	2008-03-01 11:45:09.000000000 +0530
+@@ -1,4 +1,3 @@
+-#!/usr/bin/env python
+ # This file is part of the xxdiff package.  See xxdiff for license and details.
+ 
+ """
+diff -urNad xxdiff-3.2~/lib/python/xxdiff/scm/clearcase.py xxdiff-3.2/lib/python/xxdiff/scm/clearcase.py
+--- xxdiff-3.2~/lib/python/xxdiff/scm/clearcase.py	2008-03-01 11:44:56.000000000 +0530
++++ xxdiff-3.2/lib/python/xxdiff/scm/clearcase.py	2008-03-01 11:45:09.000000000 +0530
+@@ -1,4 +1,3 @@
+-#!/usr/bin/env python
+ # This file is part of the xxdiff package.  See xxdiff for license and details.
+ 
+ """
+diff -urNad xxdiff-3.2~/lib/python/xxdiff/scm/cvs.py xxdiff-3.2/lib/python/xxdiff/scm/cvs.py
+--- xxdiff-3.2~/lib/python/xxdiff/scm/cvs.py	2008-03-01 11:44:56.000000000 +0530
++++ xxdiff-3.2/lib/python/xxdiff/scm/cvs.py	2008-03-01 11:45:09.000000000 +0530
+@@ -1,4 +1,3 @@
+-#!/usr/bin/env python
+ # This file is part of the xxdiff package.  See xxdiff for license and details.
+ 
+ """
+diff -urNad xxdiff-3.2~/lib/python/xxdiff/scm/subversion.py xxdiff-3.2/lib/python/xxdiff/scm/subversion.py
+--- xxdiff-3.2~/lib/python/xxdiff/scm/subversion.py	2006-06-12 05:01:29.000000000 +0530
++++ xxdiff-3.2/lib/python/xxdiff/scm/subversion.py	2008-03-01 11:46:08.000000000 +0530
+@@ -1,4 +1,3 @@
+-#!/usr/bin/env python
+ # This file is part of the xxdiff package.  See xxdiff for license and details.
+ 
+ """
+diff -urNad xxdiff-3.2~/lib/python/xxdiff/scripts/__init__.py xxdiff-3.2/lib/python/xxdiff/scripts/__init__.py
+--- xxdiff-3.2~/lib/python/xxdiff/scripts/__init__.py	2008-03-01 11:44:56.000000000 +0530
++++ xxdiff-3.2/lib/python/xxdiff/scripts/__init__.py	2008-03-01 11:45:09.000000000 +0530
+@@ -1,4 +1,3 @@
+-#!/usr/bin/env python
+ # This file is part of the xxdiff package.  See xxdiff for license and details.
+ 
+ """
+diff -urNad xxdiff-3.2~/lib/python/xxdiff/scripts/condreplace.py xxdiff-3.2/lib/python/xxdiff/scripts/condreplace.py
+--- xxdiff-3.2~/lib/python/xxdiff/scripts/condreplace.py	2008-03-01 11:44:56.000000000 +0530
++++ xxdiff-3.2/lib/python/xxdiff/scripts/condreplace.py	2008-03-01 11:45:09.000000000 +0530
+@@ -1,4 +1,3 @@
+-#!/usr/bin/env python
+ # This file is part of the xxdiff package.  See xxdiff for license and details.
+ 
+ """xx-cond-replace [<options>] <orig-file> <modified-file>
+diff -urNad xxdiff-3.2~/lib/python/xxdiff/scripts/cvsdiff.py xxdiff-3.2/lib/python/xxdiff/scripts/cvsdiff.py
+--- xxdiff-3.2~/lib/python/xxdiff/scripts/cvsdiff.py	2008-03-01 11:44:56.000000000 +0530
++++ xxdiff-3.2/lib/python/xxdiff/scripts/cvsdiff.py	2008-03-01 11:45:09.000000000 +0530
+@@ -1,4 +1,3 @@
+-#!/usr/bin/env python
+ # This file is part of the xxdiff package.  See xxdiff for license and details.
+ 
+ """xx-cvs-diff [<options>] [<file> <file> ...]
+diff -urNad xxdiff-3.2~/lib/python/xxdiff/scripts/cvsrevcmp.py xxdiff-3.2/lib/python/xxdiff/scripts/cvsrevcmp.py
+--- xxdiff-3.2~/lib/python/xxdiff/scripts/cvsrevcmp.py	2008-03-01 11:44:56.000000000 +0530
++++ xxdiff-3.2/lib/python/xxdiff/scripts/cvsrevcmp.py	2008-03-01 11:45:09.000000000 +0530
+@@ -1,4 +1,3 @@
+-#!/usr/bin/env python
+ # This file is part of the xxdiff package.  See xxdiff for license and details.
+ #
+ # Note: this has originally been distributed by Michalis Giannakidis, under the
+diff -urNad xxdiff-3.2~/lib/python/xxdiff/scripts/diffproxy.py xxdiff-3.2/lib/python/xxdiff/scripts/diffproxy.py
+--- xxdiff-3.2~/lib/python/xxdiff/scripts/diffproxy.py	2008-03-01 11:44:56.000000000 +0530
++++ xxdiff-3.2/lib/python/xxdiff/scripts/diffproxy.py	2008-03-01 11:45:09.000000000 +0530
+@@ -1,4 +1,3 @@
+-#!/usr/bin/env python
+ # This file is part of the xxdiff package.  See xxdiff for license and details.
+ 
+ """xx-diff-proxy [<options>] <file> <file> [<file>]
+diff -urNad xxdiff-3.2~/lib/python/xxdiff/scripts/encrypted.py xxdiff-3.2/lib/python/xxdiff/scripts/encrypted.py
+--- xxdiff-3.2~/lib/python/xxdiff/scripts/encrypted.py	2008-03-01 11:44:56.000000000 +0530
++++ xxdiff-3.2/lib/python/xxdiff/scripts/encrypted.py	2008-03-01 11:45:09.000000000 +0530
+@@ -1,4 +1,3 @@
+-#!/usr/bin/env python
+ # This file is part of the xxdiff package.  See xxdiff for license and details.
+ 
+ """xx-encrypted [<options>] <encrypted-file> [<encrypted file> ...]
+diff -urNad xxdiff-3.2~/lib/python/xxdiff/scripts/filter.py xxdiff-3.2/lib/python/xxdiff/scripts/filter.py
+--- xxdiff-3.2~/lib/python/xxdiff/scripts/filter.py	2008-03-01 11:44:56.000000000 +0530
++++ xxdiff-3.2/lib/python/xxdiff/scripts/filter.py	2008-03-01 11:45:09.000000000 +0530
+@@ -1,4 +1,3 @@
+-#!/usr/bin/env python
+ # This file is part of the xxdiff package.  See xxdiff for license and details.
+ 
+ """
+diff -urNad xxdiff-3.2~/lib/python/xxdiff/scripts/findgrepsed.py xxdiff-3.2/lib/python/xxdiff/scripts/findgrepsed.py
+--- xxdiff-3.2~/lib/python/xxdiff/scripts/findgrepsed.py	2008-03-01 11:44:56.000000000 +0530
++++ xxdiff-3.2/lib/python/xxdiff/scripts/findgrepsed.py	2008-03-01 11:45:09.000000000 +0530
+@@ -1,4 +1,3 @@
+-#!/usr/bin/env python
+ # This file is part of the xxdiff package.  See xxdiff for license and details.
+ 
+ """
+diff -urNad xxdiff-3.2~/lib/python/xxdiff/scripts/match.py xxdiff-3.2/lib/python/xxdiff/scripts/match.py
+--- xxdiff-3.2~/lib/python/xxdiff/scripts/match.py	2008-03-01 11:44:56.000000000 +0530
++++ xxdiff-3.2/lib/python/xxdiff/scripts/match.py	2008-03-01 11:45:09.000000000 +0530
+@@ -1,4 +1,3 @@
+-#!/usr/bin/env python
+ # This file is part of the xxdiff package.  See xxdiff for license and details.
+ 
+ """xx-match [<options>] <file> <file> <file> <file> ...
+diff -urNad xxdiff-3.2~/lib/python/xxdiff/scripts/patch.py xxdiff-3.2/lib/python/xxdiff/scripts/patch.py
+--- xxdiff-3.2~/lib/python/xxdiff/scripts/patch.py	2008-03-01 11:44:56.000000000 +0530
++++ xxdiff-3.2/lib/python/xxdiff/scripts/patch.py	2008-03-01 11:45:09.000000000 +0530
+@@ -1,4 +1,3 @@
+-#!/usr/bin/env python
+ # This file is part of the xxdiff package.  See xxdiff for license and details.
+ 
+ """xx-patch [<options>] [<patchfile>]
+diff -urNad xxdiff-3.2~/lib/python/xxdiff/scripts/pyline.py xxdiff-3.2/lib/python/xxdiff/scripts/pyline.py
+--- xxdiff-3.2~/lib/python/xxdiff/scripts/pyline.py	2008-03-01 11:44:56.000000000 +0530
++++ xxdiff-3.2/lib/python/xxdiff/scripts/pyline.py	2008-03-01 11:45:09.000000000 +0530
+@@ -1,4 +1,3 @@
+-#!/usr/bin/env python
+ # This file is part of the xxdiff package.  See xxdiff for license and details.
+ 
+ """
+diff -urNad xxdiff-3.2~/lib/python/xxdiff/scripts/rename.py xxdiff-3.2/lib/python/xxdiff/scripts/rename.py
+--- xxdiff-3.2~/lib/python/xxdiff/scripts/rename.py	2008-03-01 11:44:56.000000000 +0530
++++ xxdiff-3.2/lib/python/xxdiff/scripts/rename.py	2008-03-01 11:45:09.000000000 +0530
+@@ -1,4 +1,3 @@
+-#!/usr/bin/env python
+ # This file is part of the xxdiff package.  See xxdiff for license and details.
+ 
+ """
+diff -urNad xxdiff-3.2~/lib/python/xxdiff/scripts/sqlschemas.py xxdiff-3.2/lib/python/xxdiff/scripts/sqlschemas.py
+--- xxdiff-3.2~/lib/python/xxdiff/scripts/sqlschemas.py	2008-03-01 11:44:56.000000000 +0530
++++ xxdiff-3.2/lib/python/xxdiff/scripts/sqlschemas.py	2008-03-01 11:45:09.000000000 +0530
+@@ -1,4 +1,3 @@
+-#!/usr/bin/env python
+ # This file is part of the xxdiff package.  See xxdiff for license and details.
+ 
+ """xx-sql-schemas [<options>] <db1> <db2>
+diff -urNad xxdiff-3.2~/lib/python/xxdiff/scripts/svndiff.py xxdiff-3.2/lib/python/xxdiff/scripts/svndiff.py
+--- xxdiff-3.2~/lib/python/xxdiff/scripts/svndiff.py	2008-03-01 11:44:56.000000000 +0530
++++ xxdiff-3.2/lib/python/xxdiff/scripts/svndiff.py	2008-03-01 11:45:09.000000000 +0530
+@@ -1,4 +1,3 @@
+-#!/usr/bin/env python
+ # This file is part of the xxdiff package.  See xxdiff for license and details.
+ 
+ """xx-svn-diff [<options>] <file> <file> [<file>]
+diff -urNad xxdiff-3.2~/lib/python/xxdiff/scripts/svnresolve.py xxdiff-3.2/lib/python/xxdiff/scripts/svnresolve.py
+--- xxdiff-3.2~/lib/python/xxdiff/scripts/svnresolve.py	2008-03-01 11:44:56.000000000 +0530
++++ xxdiff-3.2/lib/python/xxdiff/scripts/svnresolve.py	2008-03-01 11:45:09.000000000 +0530
+@@ -1,4 +1,3 @@
+-#!/usr/bin/env python
+ # This file is part of the xxdiff package.  See xxdiff for license and details.
+ 
+ """xx-svn-resolve [<options>] <file> <file> [<file>]
+diff -urNad xxdiff-3.2~/lib/python/xxdiff/selectfiles.py xxdiff-3.2/lib/python/xxdiff/selectfiles.py
+--- xxdiff-3.2~/lib/python/xxdiff/selectfiles.py	2008-03-01 11:44:56.000000000 +0530
++++ xxdiff-3.2/lib/python/xxdiff/selectfiles.py	2008-03-01 11:45:09.000000000 +0530
+@@ -1,4 +1,3 @@
+-#!/usr/bin/env python
+ # This file is part of the xxdiff package.  See xxdiff for license and details.
+ 
+ """
+diff -urNad xxdiff-3.2~/lib/python/xxdiff/utils.py xxdiff-3.2/lib/python/xxdiff/utils.py
+--- xxdiff-3.2~/lib/python/xxdiff/utils.py	2008-03-01 11:44:56.000000000 +0530
++++ xxdiff-3.2/lib/python/xxdiff/utils.py	2008-03-01 11:45:09.000000000 +0530
+@@ -1,4 +1,3 @@
+-#!/usr/bin/env python
+ # This file is part of the xxdiff package.  See xxdiff for license and details.
+ 
+ """
+diff -urNad xxdiff-3.2~/lib/python/xxdiff/xformloop.py xxdiff-3.2/lib/python/xxdiff/xformloop.py
+--- xxdiff-3.2~/lib/python/xxdiff/xformloop.py	2008-03-01 11:44:56.000000000 +0530
++++ xxdiff-3.2/lib/python/xxdiff/xformloop.py	2008-03-01 11:45:09.000000000 +0530
+@@ -1,4 +1,3 @@
+-#!/usr/bin/env python
+ # This file is part of the xxdiff package.  See xxdiff for license and details.
+ 
+ """
--- xxdiff-3.2.orig/debian/patches/00list
+++ xxdiff-3.2/debian/patches/00list
@@ -0,0 +1,8 @@
+01_script_not_executable
+02_doc_furius.ca_href
+03_cvsrevcomp_cmp_typo
+04_build_setup_paths
+05_417780_gcc4.3_ftbfs
+06_user_commands_menu
+07_subversion_externals
+08_516143_xml_is_text
--- xxdiff-3.2.orig/debian/patches/02_doc_furius.ca_href.dpatch
+++ xxdiff-3.2/debian/patches/02_doc_furius.ca_href.dpatch
@@ -0,0 +1,49 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 02_doc_furius.ca_href.dpatch by Y Giridhar Appaji Nag <giridhar@appaji.net>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Change relative URLs in HTML documentation to http://furius.ca/
+
+@DPATCH@
+diff -urNad xxdiff-3.2~/doc/xxdiff-integration.html xxdiff-3.2/doc/xxdiff-integration.html
+--- xxdiff-3.2~/doc/xxdiff-integration.html	2008-01-24 10:58:00.000000000 +0530
++++ xxdiff-3.2/doc/xxdiff-integration.html	2008-01-24 11:02:05.000000000 +0530
+@@ -12,8 +12,8 @@
+ <body>
+ 
+ <div id="project-header">
+-  <a href="/"><img src="/home/furius-logo-w.png" id="logo"></a>
+-  <div id="project-home"><a href="..">Project Home</a></div>
++  <a href="http://furius.ca/"><img src="http://furius.ca/home/furius-logo-w.png" id="logo"></a>
++  <div id="project-home"><a href="http://furius.ca/xxdiff">Project Home</a></div>
+ </div>
+ 
+ <div class="document" id="integrating-xxdiff-with-scripts">
+diff -urNad xxdiff-3.2~/doc/xxdiff-scripts.html xxdiff-3.2/doc/xxdiff-scripts.html
+--- xxdiff-3.2~/doc/xxdiff-scripts.html	2008-01-24 10:58:13.000000000 +0530
++++ xxdiff-3.2/doc/xxdiff-scripts.html	2008-01-24 11:01:55.000000000 +0530
+@@ -12,8 +12,8 @@
+ <body>
+ 
+ <div id="project-header">
+-  <a href="/"><img src="/home/furius-logo-w.png" id="logo"></a>
+-  <div id="project-home"><a href="..">Project Home</a></div>
++  <a href="http://furius.ca/"><img src="http://furius.ca/home/furius-logo-w.png" id="logo"></a>
++  <div id="project-home"><a href="http://furius.ca/xxdiff">Project Home</a></div>
+ </div>
+ 
+ <div class="document" id="helper-scripts-for-xxdiff">
+diff -urNad xxdiff-3.2~/doc/xxdiff-secrets.html xxdiff-3.2/doc/xxdiff-secrets.html
+--- xxdiff-3.2~/doc/xxdiff-secrets.html	2008-01-24 10:58:26.000000000 +0530
++++ xxdiff-3.2/doc/xxdiff-secrets.html	2008-01-24 11:02:00.000000000 +0530
+@@ -11,8 +11,8 @@
+ <body>
+ 
+ <div id="project-header">
+-  <a href="/"><img src="/home/furius-logo-w.png" id="logo"></a>
+-  <div id="project-home"><a href="..">Project Home</a></div>
++  <a href="http://furius.ca/"><img src="http://furius.ca/home/furius-logo-w.png" id="logo"></a>
++  <div id="project-home"><a href="http://furius.ca/">Project Home</a></div>
+ </div>
+ 
+ <div class="document" id="the-almost-secret-features-of-xxdiff">
--- xxdiff-3.2.orig/debian/patches/06_user_commands_menu.dpatch
+++ xxdiff-3.2/debian/patches/06_user_commands_menu.dpatch
@@ -0,0 +1,806 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 06_user_commands_menu.dpatch by Y Giridhar Appaji Nag <giridhar@appaji.net>
+##
+## DP: Implements a menu with user defined commands.  Patch thanks to
+## DP: Simon Kågström <simon.kagstrom@bth.se>
+
+@DPATCH@
+diff -urNad xxdiff-3.2~/src/app.cpp xxdiff-3.2/src/app.cpp
+--- xxdiff-3.2~/src/app.cpp	2009-04-29 18:34:35.000000000 +0530
++++ xxdiff-3.2/src/app.cpp	2009-04-29 18:44:24.000000000 +0530
+@@ -1748,6 +1748,27 @@
+ 
+    //---------------------------------------------------------------------------
+ 
++   // User menu
++   QkPopupMenu* userMenu = new QkPopupMenu;
++   for ( int ii = 0; ii < USER_COMMAND_LAST; ii++ ) {
++      if ( !_resources->getUserCommand(ii).isEmpty() ) {
++	 int id = userMenu->insertItem(
++	    _resources->getUserCommandTitle(ii), this, SLOT(userInvoke(int)),
++	    _resources->getAccelerator( ACCEL_USER_ADD_NEW )
++	 );
++	 userMenu->setItemParameter(id, ii);
++      }
++   }
++
++
++   //---------------------------------------------------------------------------
++
++   // User menu
++   _userMenu = new QkPopupMenu;
++   fillUserMenu();
++
++   //---------------------------------------------------------------------------
++
+    // Help menu
+    QkPopupMenu* helpMenu = new QkPopupMenu;
+    helpMenu->insertItem(
+@@ -1778,6 +1799,7 @@
+    m->insertItem( "O&ptions", _optionsMenu );
+    m->insertItem( "&Display", _displayMenu );
+    m->insertItem( "W&indows", _windowsMenu );
++   m->insertItem( "&User", userMenu );
+    m->insertSeparator();
+    m->insertItem( "&Help", helpMenu );
+ }
+@@ -2963,6 +2985,44 @@
+ 
+ //------------------------------------------------------------------------------
+ //
++QString XxApp::getUserCommand(unsigned int id) const
++{
++   QString name;
++
++   // FIXME: Use _cmdline?
++   name = _resources->getUserCommand(id);
++
++   QString left, middle, right;
++   XxBuffer* leftbuf = getBuffer( 0 );
++   if ( leftbuf ) {
++      left = leftbuf->getName();
++   }
++   if ( _nbFiles == 2 ) {
++      XxBuffer* rightbuf = getBuffer( 1 );
++      if ( rightbuf ) {
++         right = rightbuf->getName();
++      }
++   }
++   else {
++      XxBuffer* middlebuf = getBuffer( 1 );
++      if ( middlebuf ) {
++         middle = middlebuf->getName();
++      }
++      XxBuffer* rightbuf = getBuffer( 2 );
++      if ( rightbuf ) {
++         right = rightbuf->getName();
++      }
++   }
++
++   name.replace( QRegExp("%L"), left );
++   name.replace( QRegExp("%M"), middle );
++   name.replace( QRegExp("%R"), right );
++
++   return name;
++}
++
++//------------------------------------------------------------------------------
++//
+ void XxApp::saveSelectedOnly()
+ {
+    if ( _diffs.get() == 0 ) {
+@@ -4183,6 +4243,23 @@
+ 
+ //------------------------------------------------------------------------------
+ //
++void XxApp::fillUserMenu()
++{
++   // Recreate the user menu
++   _userMenu->clear();
++   for ( int ii = 0; ii < USER_COMMAND_LAST; ii++ ) {
++      if ( !_resources->getUserCommand(ii).isEmpty() ) {
++	 int id = _userMenu->insertItem(
++	    _resources->getUserCommandTitle(ii), this, SLOT(userInvoke(int)),
++	    _resources->getAccelerator( ACCEL_USER_ADD_NEW )
++	 );
++	 _userMenu->setItemParameter(id, ii);
++      }
++   }
++}
++
++//------------------------------------------------------------------------------
++//
+ void XxApp::synchronizeUI()
+ {
+    if ( _filesAreDirectories == false ) {
+@@ -4606,4 +4683,32 @@
+ 
+ }
+ 
++//------------------------------------------------------------------------------
++//
++void XxApp::userInvoke(int id)
++{
++   const char **args;
++   QStringList filenames;
++   QString command = getUserCommand(id);
++
++   XxUtil::splitArgs( command, filenames, args );
++   try {
++	XxUtil::spawnCommand( args );
++   }
++   catch ( const XxIoError& ioerr) {
++	QString text;
++	{
++	     QTextOStream oss( &text );
++	     oss << "There has been an error spawning user program:"
++		 << ioerr.getMsg() << endl;
++	}
++	QMessageBox* box = new XxSuicideMessageBox(
++	     _mainWindow, "Error.", text, QMessageBox::Warning
++	     );
++	box->show();
++
++   }
++   free (args);
++}
++
+ XX_NAMESPACE_END
+diff -urNad xxdiff-3.2~/src/app.h xxdiff-3.2/src/app.h
+--- xxdiff-3.2~/src/app.h	2009-04-29 18:34:35.000000000 +0530
++++ xxdiff-3.2/src/app.h	2009-04-29 18:44:24.000000000 +0530
+@@ -285,6 +285,7 @@
+    void ignoreFileRight();
+    void helpManPage();
+    void helpAbout();
++   void fillUserMenu();
+    // </group>
+ 
+    // Keyboard accelerators cursor motion callbacks.
+@@ -309,7 +310,11 @@
+    void fontSizeIncrease();
+    void fontSizeDecrease();
+    // </group>
+-   
++
++   // User-specified
++   // <group>
++   void userInvoke(int id);
++   // </group>
+ signals:
+ 
+    // Signal emitted when the cursor changes line.
+@@ -404,6 +409,9 @@
+    // Get the merged filename.
+    QString getMergedFilename() const;
+ 
++   // Get a user command
++   QString getUserCommand(unsigned int id) const;
++
+    // Compute if there is even a single byte different between the files.
+    bool computeAbsoluteDifference() const;
+ 
+@@ -456,6 +464,7 @@
+    QkPopupMenu*            _displayMenu;
+    QkPopupMenu*            _hordiffMenu;
+    QkPopupMenu*            _windowsMenu;
++   QkPopupMenu*            _userMenu;
+    int                     _menuids[ MAX_MENUIDS ];
+    QWidget*                _overviewArea;
+    QLabel*                 _remUnselView;
+diff -urNad xxdiff-3.2~/src/optionsDialog.cpp xxdiff-3.2/src/optionsDialog.cpp
+--- xxdiff-3.2~/src/optionsDialog.cpp	2009-04-29 18:34:35.000000000 +0530
++++ xxdiff-3.2/src/optionsDialog.cpp	2009-04-29 18:44:24.000000000 +0530
+@@ -289,6 +289,16 @@
+ 
+    // Make this dialog an observer of the resources.
+    connect( resourcesPtr, SIGNAL( changed() ), this, SLOT( synchronize() ) );
++
++   //---------------------------------------------------------------------------
++   // User menu
++
++   connect( _comboUserCommand, SIGNAL( activated(int) ),
++            this, SLOT( userCommandSelected(int) ) );
++   connect( _editUserCommand, SIGNAL( textChanged(const QString &) ),
++            this, SLOT( userCommandTextChanged(const QString &) ) );
++   connect( _editUserCommandTitle, SIGNAL( textChanged(const QString &) ),
++            this, SLOT( userCommandTitleTextChanged(const QString &) ) );
+ }
+ 
+ //------------------------------------------------------------------------------
+@@ -466,6 +476,13 @@
+          _labelEditBack->update();
+       }
+    }
++
++   //---------------------------------------------------------------------------
++   // User menu
++
++   int n = _comboUserCommand->currentItem( );
++   _editUserCommandTitle->setText( resources.getUserCommandTitle( n ) );
++   _editUserCommand->setText( resources.getUserCommand( n ) );
+ }
+ 
+ //------------------------------------------------------------------------------
+@@ -887,6 +904,37 @@
+ 
+ //------------------------------------------------------------------------------
+ //
++void XxOptionsDialog::userCommandSelected( int cmd )
++{
++   _comboUserCommand->setCurrentItem( cmd );
++   // Redraw the widgets
++   synchronize();
++}
++
++void XxOptionsDialog::userCommandTextChanged(const QString &newStr)
++{
++   XxResources& resources = _app->getResourcesNC();
++
++   resources.setUserCommand( (unsigned int) _comboUserCommand->currentItem(), newStr );
++   // Redraw the widgets
++   synchronize();
++   // Recreate the menu
++   _app->fillUserMenu();
++}
++
++void XxOptionsDialog::userCommandTitleTextChanged(const QString &newStr)
++{
++   XxResources& resources = _app->getResourcesNC();
++
++   resources.setUserCommandTitle( (unsigned int) _comboUserCommand->currentItem(), newStr );
++   // Redraw the widgets
++   synchronize();
++   // Recreate the menu
++   _app->fillUserMenu();
++}
++
++//------------------------------------------------------------------------------
++//
+ bool XxOptionsDialog::isInCommand(
+    const QString& command,
+    const QString& option
+diff -urNad xxdiff-3.2~/src/optionsDialog.h xxdiff-3.2/src/optionsDialog.h
+--- xxdiff-3.2~/src/optionsDialog.h	2009-04-29 18:34:35.000000000 +0530
++++ xxdiff-3.2/src/optionsDialog.h	2009-04-29 18:44:24.000000000 +0530
+@@ -170,6 +170,12 @@
+    void editColorFore();
+    void editColorBack();
+ 
++   //---------------------------------------------------------------------------
++   // User commands
++
++   void userCommandSelected( int cmd );
++   void userCommandTextChanged(const QString &newStr);
++   void userCommandTitleTextChanged(const QString &newStr);
+ 
+ private:
+ 
+diff -urNad xxdiff-3.2~/src/optionsDialogBase.ui xxdiff-3.2/src/optionsDialogBase.ui
+--- xxdiff-3.2~/src/optionsDialogBase.ui	2009-04-29 18:34:35.000000000 +0530
++++ xxdiff-3.2/src/optionsDialogBase.ui	2009-04-29 18:44:24.000000000 +0530
+@@ -1274,6 +1274,146 @@
+                     </widget>
+                 </vbox>
+             </widget>
++            <widget class="QWidget">
++                <property name="name">
++                    <cstring>UserMenu</cstring>
++                </property>
++                <attribute name="title">
++                    <string>User menu</string>
++                </attribute>
++                <widget class="QLayoutWidget">
++                    <property name="name">
++                        <cstring>layout90</cstring>
++                    </property>
++                    <property name="geometry">
++                        <rect>
++                            <x>20</x>
++                            <y>10</y>
++                            <width>210</width>
++                            <height>50</height>
++                        </rect>
++                    </property>
++                    <hbox>
++                        <property name="name">
++                            <cstring>unnamed</cstring>
++                        </property>
++                        <widget class="QLabel">
++                            <property name="name">
++                                <cstring>textLabel3</cstring>
++                            </property>
++                            <property name="text">
++                                <string>Menu item</string>
++                            </property>
++                        </widget>
++                        <widget class="QComboBox">
++                            <item>
++                                <property name="text">
++                                    <string>Item 1</string>
++                                </property>
++                            </item>
++                            <item>
++                                <property name="text">
++                                    <string>Item 2</string>
++                                </property>
++                            </item>
++                            <item>
++                                <property name="text">
++                                    <string>Item 3</string>
++                                </property>
++                            </item>
++                            <property name="name">
++                                <cstring>_comboUserCommand</cstring>
++                            </property>
++                        </widget>
++                    </hbox>
++                </widget>
++                <widget class="QButtonGroup">
++                    <property name="name">
++                        <cstring>buttonGroup4_4_3</cstring>
++                    </property>
++                    <property name="geometry">
++                        <rect>
++                            <x>10</x>
++                            <y>60</y>
++                            <width>640</width>
++                            <height>120</height>
++                        </rect>
++                    </property>
++                    <property name="title">
++                        <string>User Command</string>
++                    </property>
++                    <widget class="QLabel">
++                        <property name="name">
++                            <cstring>TestLabel1_2_4</cstring>
++                        </property>
++                        <property name="geometry">
++                            <rect>
++                                <x>10</x>
++                                <y>70</y>
++                                <width>90</width>
++                                <height>29</height>
++                            </rect>
++                        </property>
++                        <property name="text">
++                            <string>Command:</string>
++                        </property>
++                    </widget>
++                    <widget class="QLabel">
++                        <property name="name">
++                            <cstring>TestLabel1_2_4_2</cstring>
++                        </property>
++                        <property name="geometry">
++                            <rect>
++                                <x>10</x>
++                                <y>30</y>
++                                <width>90</width>
++                                <height>29</height>
++                            </rect>
++                        </property>
++                        <property name="text">
++                            <string>Title:</string>
++                        </property>
++                    </widget>
++                    <widget class="QLineEdit">
++                        <property name="name">
++                            <cstring>_editUserCommandTitle</cstring>
++                        </property>
++                        <property name="geometry">
++                            <rect>
++                                <x>100</x>
++                                <y>30</y>
++                                <width>530</width>
++                                <height>29</height>
++                            </rect>
++                        </property>
++                        <property name="text">
++                            <string></string>
++                        </property>
++                        <property name="toolTip" stdset="0">
++                            <string>The title that appears for the User menu item</string>
++                        </property>
++                    </widget>
++                    <widget class="QLineEdit">
++                        <property name="name">
++                            <cstring>_editUserCommand</cstring>
++                        </property>
++                        <property name="geometry">
++                            <rect>
++                                <x>100</x>
++                                <y>70</y>
++                                <width>530</width>
++                                <height>29</height>
++                            </rect>
++                        </property>
++                        <property name="text">
++                            <string></string>
++                        </property>
++                        <property name="toolTip" stdset="0">
++                            <string>The command to execute when the menu item is selected</string>
++                        </property>
++                    </widget>
++                </widget>
++            </widget>
+         </widget>
+         <widget class="QLayoutWidget">
+             <property name="name">
+diff -urNad xxdiff-3.2~/src/resParser.cpp xxdiff-3.2/src/resParser.cpp
+--- xxdiff-3.2~/src/resParser.cpp	2009-04-29 18:44:24.000000000 +0530
++++ xxdiff-3.2/src/resParser.cpp	2009-04-29 18:44:49.000000000 +0530
+@@ -127,6 +127,13 @@
+      "Color choice for diff hunks, and for certain other items in the text \
+ view." },
+ 
++   { "User", USER,
++     "User-specified commands in the User menu. The command will be executed \
++when the entry is selected in the menu. %L, %M, %R can be used as placeholders \
++for left, middle and right filenames respectively. Note that ClearCase suffixes \
++are stripped automatically. Title specifies the title in the menu for the \
++command." },
++
+    { "FontApp", FONT_APP,
+      "General application font, used for widgets and menus." },
+ 
+@@ -491,6 +498,15 @@
+      " Color of text region selection " }
+ };
+ 
++StringToken userList[] = {
++   { "UserCommand1", USER_COMMAND1,
++     "User command 1." },
++   { "UserCommand2", USER_COMMAND2,
++     "User command 2." },
++   { "UserCommand3", USER_COMMAND3,
++     "User command 3." },
++};
++
+ StringToken commandList[] = {
+    { "DiffFiles2", CMD_DIFF_FILES_2,
+      "Command to use for comparing two files." },
+@@ -590,7 +606,7 @@
+ DECL_SIZE(commandSwitchList);
+ DECL_SIZE(showList);
+ DECL_SIZE(tagList);
+-
++DECL_SIZE(userList);
+ 
+ //------------------------------------------------------------------------------
+ //
+@@ -819,6 +835,7 @@
+    sortTokens( commandSwitchList, commandSwitchList_size );
+    sortTokens( showList, showList_size );
+    sortTokens( tagList, tagList_size );
++   sortTokens( userList, userList_size );
+ }
+ 
+ //------------------------------------------------------------------------------
+@@ -1069,6 +1086,20 @@
+       }
+    }
+ 
++   int nbuser = sizeof(userList)/sizeof(StringToken);
++   const char* userStr = searchTokenName( kwdList, kwdList_size, USER );
++   for ( ii = 0; ii < nbuser; ++ii ) {
++      XxUserCommand bo = XxUserCommand(userList[ii]._token);
++      const QString& bc1 = res1.getUserCommand( bo );
++      const QString& bt1 = res1.getUserCommandTitle( bo );
++      if ( bc1 != res2.getUserCommand( bo ) || bt1 != res2.getUserCommandTitle( bo )) {
++         os << userStr << "." << userList[ii]._name << ".Command" << ": \""
++            << bc1 << "\"" << endl;
++         os << userStr << "." << userList[ii]._name << ".Title" << ": \""
++            << bt1 << "\"" << endl;
++      }
++   }
++
+    const char* initSwitchStr = searchTokenName( kwdList, kwdList_size, INITSW );
+    for ( ii = 0; ii < nbcommandSwitch; ++ii ) {
+       XxCommandSwitch bo = XxCommandSwitch(commandSwitchList[ii]._token);
+@@ -1235,6 +1266,19 @@
+          << b1.latin1() << "\"" << endl;
+    }
+ 
++   int nbusercommand = sizeof(userList)/sizeof(StringToken);
++   const char* userCommandStr =
++      searchTokenName( kwdList, kwdList_size, USER );
++   for ( ii = 0; ii < nbusercommand; ++ii ) {
++      XxUserCommand bo = XxUserCommand(userList[ii]._token);
++      const QString& bc1 = res.getUserCommand( bo );
++      const QString& bt1 = res.getUserCommandTitle( bo );
++      os << userCommandStr << "." << userList[ii]._name << ".Command" << ": \""
++	 << bc1.latin1() << "\"" << endl;
++      os << userCommandStr << "." << userList[ii]._name << ".Title" << ": \""
++	 << bt1.latin1() << "\"" << endl;
++   }
++
+    int nbcommandSwitch = sizeof(commandSwitchList)/sizeof(StringToken);
+    const char* commandSwitchStr =
+       searchTokenName( kwdList, kwdList_size, COMMANDSW );
+@@ -1341,7 +1385,7 @@
+       drbegin( os );
+       int nbaccel = sizeof(accelList)/sizeof(StringToken);
+       const StringToken* tok = searchToken( kwdList, kwdList_size, ACCEL );
+-      os << tok->_name << "." << "[NAME]." << ": \"[ACCELERATOR]\"" << endl;
++      os << tok->_name << "." << "[NAME]" << ": \"[ACCELERATOR]\"" << endl;
+       drend( os );
+       ddbegin( os );
+       os << tok->_desc << endl;
+@@ -1458,6 +1502,49 @@
+    }
+ 
+    {
++      drbegin( os );
++      int nbusercommands = sizeof(userList)/sizeof(StringToken);
++      const StringToken* tok = searchToken( kwdList, kwdList_size, USER );
++      os << tok->_name << "." << "[NAME].[Command]"
++         << ": \"[COMMAND]\"" << endl;
++      os << tok->_name << "." << "[NAME].[Title]"
++         << ": \"[MENU TITLE]\"" << endl;
++      drend( os );
++      ddbegin( os );
++      os << tok->_desc << endl;
++
++      for ( ii = 0; ii < nbusercommands; ++ii ) {
++         const StringToken* tokc = &( userList[ii] );
++
++         drbegin( os );
++
++         os << tok->_name << "." << tokc->_name << ".Title" << ": \"";
++         if ( qApp != 0 ) {
++            os << res.getUserCommandTitle( ii );
++         }
++         else { 
++            os << "&lt;menu title&gt;";
++         }
++         os << "\"" << endl;
++
++         os << tok->_name << "." << tokc->_name << ".Command" << ": \"";
++         if ( qApp != 0 ) {
++            os << res.getUserCommand( ii );
++         }
++         else { 
++            os << "&lt;command&gt;";
++         }
++         os << "\"" << endl;
++
++         drend( os );
++         ddbegin( os );
++         os << tokc->_desc << endl;
++         ddend( os );
++      }
++      ddend( os );
++   }
++
++   {
+       int nbbool = sizeof(boolkwdList)/sizeof(StringToken);
+       for ( ii = 0; ii < nbbool; ++ii ) {
+          XxBoolOpt bo = static_cast<XxBoolOpt>( boolkwdList[ii]._token - BOOLKWD_BASE );
+diff -urNad xxdiff-3.2~/src/resParser.l xxdiff-3.2/src/resParser.l
+--- xxdiff-3.2~/src/resParser.l	2009-04-29 18:34:35.000000000 +0530
++++ xxdiff-3.2/src/resParser.l	2009-04-29 18:44:24.000000000 +0530
+@@ -49,6 +49,7 @@
+ extern StringToken commandSwitchList[];
+ extern StringToken showList[];
+ extern StringToken tagList[];
++extern StringToken userList[];
+ 
+ extern int kwdList_size;
+ extern int boolkwdList_size;
+@@ -58,7 +59,7 @@
+ extern int commandSwitchList_size;
+ extern int showList_size;
+ extern int tagList_size;
+-
++extern int userList_size;
+ }
+ using namespace XxResParserNS;
+ 
+@@ -101,6 +102,7 @@
+ 
+ %s GEOM_SC
+ %s ACCEL_SC
++%s USER_SC USERCT_SC
+ %s COLOR_SC COLORBF_SC
+ %s COMMAND_SC
+ %s COMMANDSW_SC
+@@ -149,6 +151,24 @@
+    );
+ }
+ 
++<USER_SC>{id}	{ 
++   int token = parseFromKeywordList(
++      userList, userList_size,
++      USERNAME, "user",
++      yytext, yylval->num
++   );
++   if ( token != ERROR_TOKEN ) {
++      BEGIN(USERCT_SC);
++   }
++   return token;
++}
++
++<USERCT_SC>([cC]ommand|[tT]itle)	{ 
++   BEGIN(INITIAL);
++   yylval->num = ( (yytext[0] == 'c') || (yytext[0] == 'C') ) ? USERCOMMAND : USERTITLE;
++   return yylval->num;
++}
++
+ <COLOR_SC>{id}	{
+    BEGIN(INITIAL);
+    int token = parseFromKeywordList(
+@@ -257,6 +277,7 @@
+    switch ( yylval->num ) {
+       case PREFGEOMETRY: BEGIN(GEOM_SC); break;
+       case ACCEL: BEGIN(ACCEL_SC); break;
++      case USER: BEGIN(USER_SC); break;
+       case COLOR: BEGIN(COLOR_SC); break;
+       case COMMAND: BEGIN(COMMAND_SC); break;
+       case COMMANDSW: BEGIN(COMMANDSW_SC); break;
+diff -urNad xxdiff-3.2~/src/resParser.y xxdiff-3.2/src/resParser.y
+--- xxdiff-3.2~/src/resParser.y	2009-04-29 18:34:35.000000000 +0530
++++ xxdiff-3.2/src/resParser.y	2009-04-29 18:44:24.000000000 +0530
+@@ -77,6 +77,9 @@
+ %token       ACCEL
+ %token <num>   ACCELNAME
+ 
++%token       USER
++%token <num>   USERNAME USERCOMMAND USERTITLE
++
+ %token       COLOR
+ %token <num>   COLORNAME BACK FORE
+ 
+@@ -141,6 +144,7 @@
+ 
+ /* typed rules */
+ %type <num> colorbf
++%type <num> userct
+ %type <num> boolkwd
+ 
+ %start xxdiffrc
+@@ -158,6 +162,7 @@
+ 		| prefgeometry
+ 		| style
+ 		| accel
++                | user
+ 		| color
+ 		| boolopt
+ 		| command
+@@ -235,6 +240,28 @@
+                 }
+ 		;
+ 
++user		: USER DOT USERNAME DOT userct COLON STRING
++		{
++		   /*printf( "==> User %d, %d: %s\n", $3, $5, $7 );*/
++		   if ($5 == USERCOMMAND)
++		      RESOURCES->setUserCommand( $3, $7 );
++		   else if ($5 == USERTITLE)
++		      RESOURCES->setUserCommandTitle( $3, $7 );
++		   else {
++                      char buf[2048];
++                      ::snprintf( buf, 2048,
++                                  "Unrecognized user command: %s\n", $7 );
++                      yyerror( buf );
++                   }
++
++                }
++		;
++
++userct          : USERCOMMAND
++		| USERTITLE
++		;
++
++
+ color		: COLOR DOT COLORNAME COLON STRING
+ 		{
+                    /*printf( "==> color %d back: %s\n", $3, $5 );*/
+diff -urNad xxdiff-3.2~/src/resources.cpp xxdiff-3.2/src/resources.cpp
+--- xxdiff-3.2~/src/resources.cpp	2009-04-29 18:34:35.000000000 +0530
++++ xxdiff-3.2/src/resources.cpp	2009-04-29 18:44:24.000000000 +0530
+@@ -802,6 +802,28 @@
+ 
+ //------------------------------------------------------------------------------
+ //
++void XxResources::setUserCommand( unsigned int n, const QString& fn )
++{
++   if (n < USER_COMMAND_LAST) {
++      _userCommand[n] = fn;
++      emit changed();
++   }
++   /* Fail silently */
++}
++
++//------------------------------------------------------------------------------
++//
++void XxResources::setUserCommandTitle( unsigned int n, const QString& fn )
++{
++   if (n < USER_COMMAND_LAST) {
++      _userCommandTitle[n] = fn;
++      emit changed();
++   }
++   /* Fail silently */
++}
++
++//------------------------------------------------------------------------------
++//
+ bool XxResources::compareFonts( const QFont& f1, const QFont& f2 )
+ {
+    if ( f1.rawMode() || f2.rawMode() ) {
+diff -urNad xxdiff-3.2~/src/resources.h xxdiff-3.2/src/resources.h
+--- xxdiff-3.2~/src/resources.h	2009-04-29 18:34:35.000000000 +0530
++++ xxdiff-3.2/src/resources.h	2009-04-29 18:44:24.000000000 +0530
+@@ -203,6 +203,7 @@
+    ACCEL_IGNORE_FILE_LEFT,
+    ACCEL_IGNORE_FILE_MIDDLE,
+    ACCEL_IGNORE_FILE_RIGHT,
++   ACCEL_USER_ADD_NEW,
+    ACCEL_HELP_MAN_PAGE,
+    ACCEL_HELP_ON_CONTEXT,
+    ACCEL_HELP_ABOUT,
+@@ -337,6 +338,13 @@
+    HD_MULTIPLE
+ };
+ 
++enum XxUserCommand {
++   USER_COMMAND1,
++   USER_COMMAND2,
++   USER_COMMAND3,
++   USER_COMMAND_LAST, // Not a real resource
++};
++
+ /*==============================================================================
+  * CLASS XxResources
+  *============================================================================*/
+@@ -550,6 +558,14 @@
+    void setMergedFilename( const QString& fn );
+    // </group>
+ 
++   // Get/set user command.
++   // <group>
++   const QString& getUserCommand( unsigned int n) const;
++   void setUserCommand( unsigned n, const QString& fn );
++   const QString& getUserCommandTitle( unsigned int n) const;
++   void setUserCommandTitle( unsigned int n, const QString& fn );
++   // </group>
++
+ 
+    // Return a table for the dynamic programming algorithm, if the maximum size
+    // of the table allows it.  If not, then return 0.
+@@ -627,6 +643,8 @@
+    uint         _hordiffContext;
+    uint         _showPaneMergedViewPercent;
+    QString      _mergedFilename;
++   QString      _userCommand[ USER_COMMAND_LAST ];
++   QString      _userCommandTitle[ USER_COMMAND_LAST ];
+ 
+    // Dynamic programming table used for horizontal diffs computation.
+    // <group>
+diff -urNad xxdiff-3.2~/src/resources.inline.h xxdiff-3.2/src/resources.inline.h
+--- xxdiff-3.2~/src/resources.inline.h	2009-04-29 18:44:24.000000000 +0530
++++ xxdiff-3.2/src/resources.inline.h	2009-04-29 18:44:24.000000000 +0530
+@@ -242,6 +242,24 @@
+ 
+ //------------------------------------------------------------------------------
+ //
++inline const QString& XxResources::getUserCommand(unsigned int n) const
++{
++   if (n < USER_COMMAND_LAST)
++      return _userCommand[n];
++   return _userCommand[USER_COMMAND_LAST-1];
++}
++
++//------------------------------------------------------------------------------
++//
++inline const QString& XxResources::getUserCommandTitle(unsigned int n) const
++{
++   if (n < USER_COMMAND_LAST)
++      return _userCommandTitle[n];
++   return _userCommandTitle[USER_COMMAND_LAST-1];
++}
++
++//------------------------------------------------------------------------------
++//
+ inline void XxResources::setFbColors(
+    XxColor     color,
+    const char* backstr,
--- xxdiff-3.2.orig/debian/patches/07_subversion_externals.dpatch
+++ xxdiff-3.2/debian/patches/07_subversion_externals.dpatch
@@ -0,0 +1,164 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 07_svn_externals.dpatch by  <Joseph Rawson <umeboshi3@gmail.com>>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: xx-svn-diff should not fail when it encounters an external item
+
+@DPATCH@
+diff -urNad xxdiff-3.2~/lib/python/xxdiff/scm/subversion.py xxdiff-3.2/lib/python/xxdiff/scm/subversion.py
+--- xxdiff-3.2~/lib/python/xxdiff/scm/subversion.py	2006-06-11 18:31:29.000000000 -0500
++++ xxdiff-3.2/lib/python/xxdiff/scm/subversion.py	2008-09-09 20:31:21.000000000 -0500
+@@ -88,6 +88,72 @@
+     Status result for a file in a subversion repository.
+     """
+ 
++def _parse_status_line(line):
++    status = SvnStatus()
++    status.parsed_line = line
++    
++    # The first six columns in the output are each one character wide:
++    lc = iter(line)
++    
++    #   First column: Says if item was added, deleted, or otherwise
++    #   changed
++    #     ' ' no modifications
++    #     'A' Added
++    #     'C' Conflicted
++    #     'D' Deleted
++    #     'G' Merged
++    #     'I' Ignored
++    #     'M' Modified
++    #     'R' Replaced
++    #     'X' item is unversioned, but is used by an externals
++    #         definition
++    #     '?' item is not under version control
++    #     '!' item is missing (removed by non-svn command) or incomplete
++    #     '~' versioned item obstructed by some item of a different kind
++    status.status = lc.next()
++    
++    #   Second column: Modifications of a file's or directory's
++    #   properties
++    #     ' ' no modifications
++    #     'C' Conflicted
++    #     'M' Modified
++    status.modprops = lc.next()
++    
++    #   Third column: Whether the working copy directory is locked
++    #     ' ' not locked
++    #     'L' locked
++    status.dirlocked = lc.next()
++    
++    #   Fourth column: Scheduled commit will contain
++    #   addition-with-history
++    #     ' ' no history scheduled with commit
++    #     '+' history scheduled with commit
++    status.withhist = lc.next()
++    
++    #   Fifth column: Whether the item is switched relative to its
++    #   parent
++    #     ' ' normal
++    #     'S' switched
++    status.switched = lc.next()
++    
++    #   Sixth column: Repository lock token
++    #     (without -u)
++    #     ' ' no lock token
++    #     'K' lock token present
++    #     (with -u)
++    #     ' ' not locked in repository, no lock token
++    #     'K' locked in repository, lock toKen present
++    #     'O' locked in repository, lock token in some Other working
++    #          copy
++    #     'T' locked in repository, lock token present but sTolen
++    #     'B' not locked in repository, lock token present but Broken
++    status.locktoken = lc.next()
++    
++    # There is a space and the rest is a filename:
++    status.filename = line[7:].strip()
++    assert isabs(status.filename)
++    return status
++
+ def status(rootdirs):
+     """
+     Obtains the status from all the given root directories.
+@@ -106,72 +172,14 @@
+ 
+     statii = []
+     for line in stdout.splitlines():
+-        status = SvnStatus()
+-        status.parsed_line = line
+-        
+-        # The first six columns in the output are each one character wide:
+-        lc = iter(line)
+-
+-        #   First column: Says if item was added, deleted, or otherwise
+-        #   changed
+-        #     ' ' no modifications
+-        #     'A' Added
+-        #     'C' Conflicted
+-        #     'D' Deleted
+-        #     'G' Merged
+-        #     'I' Ignored
+-        #     'M' Modified
+-        #     'R' Replaced
+-        #     'X' item is unversioned, but is used by an externals
+-        #         definition
+-        #     '?' item is not under version control
+-        #     '!' item is missing (removed by non-svn command) or incomplete
+-        #     '~' versioned item obstructed by some item of a different kind
+-        status.status = lc.next()
+-
+-        #   Second column: Modifications of a file's or directory's
+-        #   properties
+-        #     ' ' no modifications
+-        #     'C' Conflicted
+-        #     'M' Modified
+-        status.modprops = lc.next()
+-
+-        #   Third column: Whether the working copy directory is locked
+-        #     ' ' not locked
+-        #     'L' locked
+-        status.dirlocked = lc.next()
+-
+-        #   Fourth column: Scheduled commit will contain
+-        #   addition-with-history
+-        #     ' ' no history scheduled with commit
+-        #     '+' history scheduled with commit
+-        status.withhist = lc.next()
+-
+-        #   Fifth column: Whether the item is switched relative to its
+-        #   parent
+-        #     ' ' normal
+-        #     'S' switched
+-        status.switched = lc.next()
+-
+-        #   Sixth column: Repository lock token
+-        #     (without -u)
+-        #     ' ' no lock token
+-        #     'K' lock token present
+-        #     (with -u)
+-        #     ' ' not locked in repository, no lock token
+-        #     'K' locked in repository, lock toKen present
+-        #     'O' locked in repository, lock token in some Other working
+-        #          copy
+-        #     'T' locked in repository, lock token present but sTolen
+-        #     'B' not locked in repository, lock token present but Broken
+-        status.locktoken = lc.next()
+-
+-        # There is a space and the rest is a filename:
+-        status.filename = line[7:].strip()
+-        assert isabs(status.filename)
+-
+-        statii.append(status)
+-
++        ignore = False
++        if not line:
++            ignore = True
++        if line.startswith('Performing status on external item'):
++            ignore = True
++        if not ignore:
++            status = _parse_status_line(line)
++            statii.append(status)
+ 
+     # Note: we could parse this information, but this requires server access:
+     # -----------------------------------------------------------------------
--- xxdiff-3.2.orig/debian/patches/08_516143_xml_is_text.dpatch
+++ xxdiff-3.2/debian/patches/08_516143_xml_is_text.dpatch
@@ -0,0 +1,28 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 08_516143_xml_is_text.dpatch by Y Giridhar Appaji Nag <appaji@debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Don't classify XML files as non-text, thanks "J.P. Delport"
+## DP: <jpdelport@csir.co.za> for the bug report #516143 and the patch.
+
+@DPATCH@
+diff -urNad xxdiff-3.2~/lib/python/xxdiff/utils.py xxdiff-3.2/lib/python/xxdiff/utils.py
+--- xxdiff-3.2~/lib/python/xxdiff/utils.py	2008-09-30 18:03:57.000000000 +0530
++++ xxdiff-3.2/lib/python/xxdiff/utils.py	2009-02-24 14:48:08.000000000 +0530
+@@ -59,6 +59,7 @@
+ # options were taken from Ian F. Darwin's file implementation.
+ guesscmd = ['file', '-b', '-L']
+ text_re = re.compile('\\btext\\b')
++xml_re = re.compile('\\bXML\\b')
+ empty_re = re.compile('^empty$')
+ 
+ def istextfile(fn):
+@@ -75,7 +76,7 @@
+     if p.returncode != 0 or stderr or stdout.startswith('cannot open'):
+         raise RuntimeError("Error: Running 'file' on '%s'." % fn)
+ 
+-    return bool(text_re.search(stdout) or empty_re.match(stdout))
++    return bool(text_re.search(stdout) or xml_re.search(stdout) or empty_re.match(stdout))
+ 
+ 
+ #-------------------------------------------------------------------------------