-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

This patch improves the flexibility of the conflict dialogue setting for
starting an external conflict util.

It no longer uses a list argument for popen because this constrains you
into using MSVC style args on Windows, and not all applications support
this.

Instead, you are permitted substitutions for

$base
$this
$other
$merged

More subs would be good too (window titles, etc).

If $ character is not detected in command line, it appends the standard
args internally.

Use cases

 * TortoiseMerge
   * Requires merge target path
   * Requires arguments in the /merged:"quoted path" style which popen
cannot generate
   * e.g. tortoisemerge.exe /base:$base /theirs:$other /mine:$this
/merged:$merged
 * Beyond Compare 3
   * Requires merge target path
   * e.g. BCompare.exe $other $this $base $merged


(resend of earlier merge, languishing in the non-subscribers bin)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFIEMbncP1uebIhWSYRAq70AJ9Am2oH2dXHyjOnuo3FadSW/P0clACeKEwV
0dPVEwzm50W24pNxQkrUXiw=
=8G71
-----END PGP SIGNATURE-----
# Bazaar merge directive format 2 (Bazaar 0.90)
# revision_id: [EMAIL PROTECTED]
#   iylhzjaz5g9e0pdq
# target_branch: http://bazaar.launchpad.net/%7Ebzr-gtk/bzr-gtk/trunk/
# testament_sha1: 6133e36a8a511e0e33d55a07b64cdbbfca707bfc
# timestamp: 2008-04-23 15:23:13 +0100
# base_revision_id: [EMAIL PROTECTED]
#   vr1kbqqg4sg5ayzq
# 
# Begin patch
=== modified file 'conflicts.py'
--- conflicts.py        2008-03-07 15:56:36 +0000
+++ conflicts.py        2008-04-23 13:51:18 +0000
@@ -25,11 +25,14 @@
 import gtk
 import gobject
 
+from bzrlib import osutils
 from bzrlib.config import GlobalConfig
 
 from dialog import error_dialog, warning_dialog
 from errors import show_bzr_error
 
+from string import Template
+
 class ConflictsDialog(gtk.Dialog):
     """ This dialog displays the list of conflicts. """
     def __init__(self, wt, parent=None):
@@ -164,11 +167,19 @@
                          _('Please select a file from the list.'))
             return
         elif self._get_selected_type() == 'text conflict':
-            base = self.wt.abspath(selected) + '.BASE'
-            this = self.wt.abspath(selected) + '.THIS'
-            other = self.wt.abspath(selected) + '.OTHER'
+            base = osutils.quotefn(self.wt.abspath(selected) + '.BASE')
+            this = osutils.quotefn(self.wt.abspath(selected) + '.THIS')
+            other = osutils.quotefn(self.wt.abspath(selected) + '.OTHER')
+            merged = osutils.quotefn(self.wt.abspath(selected))
             try:
-                p = subprocess.Popen([ self._entry_diff3.get_text(), base, 
this, other ])
+                args = self._entry_diff3.get_text()
+                
+                if args.find("$") == -1:
+                    args = args + " $base $this $other"
+                
+                args = Template(self._entry_diff3.get_text())
+                args = args.substitute(base=base, this=this, other=other, 
merged=merged)       
+                p = subprocess.Popen(args)
                 p.wait()
             except OSError, e:
                 warning_dialog(_('Call to external utility failed'), str(e))

# Begin bundle
IyBCYXphYXIgcmV2aXNpb24gYnVuZGxlIHY0CiMKQlpoOTFBWSZTWYIkFbAAAg7/gAB0QABV////
cmDcoL////BQBW9d24wXTpXQOnR0IZITUwjTamJHqehPU9TTI0aZGRpo00xGjQSUCMBU/U9VPyoD
IAaAADQ0AAGk9SMVPMqaGT0IxMmTQwAmnoTTJhDDmjJiYAJiMCNMCDEYJkwCMEkjQhMENCT9FT9T
0p40jEam0NRpiaBoHgItG6aet4b1Q/W8NpvPlySJUp1eoRyJGjpDGELErssW6RbHlrenTpnDqptB
IoAMHHG/LTpIjSWiqphk7jigGpyFEO7YaOD1l0qxKywsTrasIy6pVsyzKnThLhIoUj3MLrH/9xte
s02wlcnHlJBT3NU0vHGJZljj374SMUCqPkdGEbPlqcQRq595LGs6Mw5usfvEuq6QGvHH4tbR9gQW
m1X+12irpmRT3Ui82W6SyulYAtXUJoT52+6zRcoCqGZhCIS6d/ktceclgz2JG+osxH9BAR5lgr4e
pbXwLG4moP7SL5cBgMkphgQwxz/RF1dEF7Y9wKXH0rWRccgkUKmEPuPaTrxIl3fYYCs88CDBe0b9
DuUu/AuNmHU1aL5RKptlbgamozmmKBlP6fBlyxQoPWnLVQiCuVoLJFTHhEaVtq40jAfuJw9Z9cCb
2CzXRzSpBjiKRsTHB6DcyeJSnOhFNFfkG8B+xmgUXlP8JpfJMpvJUNqt2UCxMzsbqxFjF1Km++7L
LolJ0mle+LiHkRiwMiXwbmttNTaWmWqy6ITlWPgbBWOzMTrVE95QJR5Hku9hfBhgmQDPDvcCbFyZ
FhTSYvTx1i6tbCHKKyLaKCVJIqDBmZuXh7H+v8DVBPY1Pt9v3eYtJA0q5DY+MtwU5jhNd1YZyJ2f
HoNqa49Ae4F7ao3GD6GSebz38IXot8CbNm1ArShGV9uHxInbHzlBv8jADMzOeIOPmnGYaxu8J3DU
Gqs+mSzhvBiS70rj4mZ4nuJ6ImohX9eg8jj1TwaHakaA0822BMGCpqXdkYsiwy2jqCaoJQvPeU8I
YVx8RWPVcKwX2kzSYcgESn78uMtxXH4AyDADrHLBqAj8bSvYej8S65wx3dQ4PVnDWxUDYa2IhMR5
mejBVL+rjJol18F3NGN6DXSRaoYhTZnVoZkn8SuBKSJZVbPhMTnWfI9peOXlRzoOWSGDd9OyFG1h
WDQSc98UcluX0MBZ9gtyC0+6RriKxl9/nBdhlvBi8ICxZB+LL4bxZCjWgjXGFrtAOoLJHn1olrSO
Aesn/n/JQF0McAZT3BOvTjeWN20A9/KlswLSgu0DnFmLVyFOGIvLJ+BTT4Ls3Wm/MLgJJFi7jVEO
YW5wF8xX0cKFFcwDacbX8WR1xhFbRhHgkHVRghlSVJ5/idnz5dYg+qCGPPuKYaMo7SxhJjmAWiik
6qIyaKGYcTJP6YxZkpIGZJlPMyJMdCRUynxZL0u4RKT+TBXNhwhpiuAOt8kZozzahknLBaEFzutv
3r1JXUAjx0g2iFCVAgplGSKII0ZzGN7B+EDyVSkF/EL0xdCCOpMQDhSURuxkYeqvFlGtEgBsAKcX
wsWt7icRTkmqIMMTG6PY50kOoINFeHdEeZOdUpa98XVAhKbjU0MKNDN0zDd4bMRycyYZNOzmNgIQ
osBcKppMGrrMGzR8BukbWIY+tnZ7o/z3m4Nm2g5YbTBnZsml3hpC19+x9pYWzCAnQ3rO7ujKTWFy
TmSg8cDTlFRCaZliDFTKS+IxFmsJhy7enQuaJFoZNBmCDDFqrNe4Dadq4pSGDy2E9cCCOW20hlA6
1CDLaLTMRA69TBS8am/c/4u5IpwoSEESCtgA

Attachment: gtk-465.patch.sig
Description: Binary data

-- 
bzr-gtk mailing list
[email protected]
Modify settings or unsubscribe at: 
https://lists.canonical.com/mailman/listinfo/bzr-gtk

Reply via email to