2 ' TortoiseSVN Merge script for Open Office Text files
\r
4 ' Copyright (C) 2004-2008 the TortoiseSVN team
\r
5 ' This file is distributed under the same license as TortoiseSVN
\r
8 ' $Author: steveking $
\r
9 ' $Date: 2008-06-17 03:36:28 +0800 (Tue, 17 Jun 2008) $
\r
13 ' Jonathan Ashley, 2007
\r
17 dim objArgs,num,sBaseDoc,sMergedDoc,sTheirDoc,sMyDoc,objScript,word,destination
\r
19 Set objArgs = WScript.Arguments
\r
22 MsgBox "Usage: [CScript | WScript] merge-odt.vbs %merged %theirs %mine %base", vbExclamation, "Invalid arguments"
\r
26 sMergedDoc=objArgs(0)
\r
27 sTheirDoc=objArgs(1)
\r
31 Set objScript = CreateObject("Scripting.FileSystemObject")
\r
32 If objScript.FileExists(sMyDoc) = False Then
\r
33 MsgBox "File " + sMyDoc +" does not exist. Cannot compare the documents.", vbExclamation, "File not found"
\r
36 If objScript.FileExists(sTheirDoc) = False Then
\r
37 MsgBox "File " + sTheirDoc +" does not exist. Cannot compare the documents.", vbExclamation, "File not found"
\r
41 Set objScript = Nothing
\r
43 On Error Resume Next
\r
44 'The service manager is always the starting point
\r
45 'If there is no office running then an office is started
\r
46 Set objServiceManager= Wscript.CreateObject("com.sun.star.ServiceManager")
\r
47 If Err.Number <> 0 Then
\r
48 Wscript.Echo "You must have OpenOffice installed to perform this operation."
\r
53 'Create the DesktopSet
\r
54 Set objDesktop = objServiceManager.createInstance("com.sun.star.frame.Desktop")
\r
55 'Adjust the paths for OO
\r
56 sMyDoc=Replace(sMyDoc, "\", "/")
\r
57 sMyDoc=Replace(sMyDoc, ":", "|")
\r
58 sMyDoc=Replace(sMyDoc, "%", "%25")
\r
59 sMyDoc=Replace(sMyDoc, " ", "%20")
\r
60 sMyDoc="file:///"&sMyDoc
\r
61 sTheirDoc=Replace(sTheirDoc, "\", "/")
\r
62 sTheirDoc=Replace(sTheirDoc, ":", "|")
\r
63 sTheirDoc=Replace(sTheirDoc, "%", "%25")
\r
64 sTheirDoc=Replace(sTheirDoc, " ", "%20")
\r
65 sTheirDoc="file:///"&sTheirDoc
\r
67 'Open the %mine document
\r
68 Dim oPropertyValue(0)
\r
69 Set oPropertyValue(0) = objServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue")
\r
70 oPropertyValue(0).Name = "ShowTrackedChanges"
\r
71 oPropertyValue(0).Value = true
\r
72 Set objDocument=objDesktop.loadComponentFromURL(sMyDoc,"_blank", 0, oPropertyValue)
\r
75 Set Frame = objDesktop.getCurrentFrame
\r
77 Set dispatcher=objServiceManager.CreateInstance("com.sun.star.frame.DispatchHelper")
\r
79 'Execute the comparison
\r
80 Dispatcher.executeDispatch Frame, ".uno:ShowTrackedChanges", "", 0, oPropertyValue
\r
81 oPropertyValue(0).Name = "URL"
\r
82 oPropertyValue(0).Value = sTheirDoc
\r
83 Dispatcher.executeDispatch Frame, ".uno:CompareDocuments", "", 0, oPropertyValue
\r