Synced diff-scripts with TortoiseSVN
authorSven Strickroth <email@cs-ware.de>
Sun, 24 Mar 2013 16:51:03 +0000 (24 17:51 +0100)
committerSven Strickroth <email@cs-ware.de>
Sun, 24 Mar 2013 16:56:11 +0000 (24 17:56 +0100)
Based on revision #24048.

Signed-off-by: Sven Strickroth <email@cs-ware.de>
contrib/diff-scripts/diff-dll.vbs
contrib/diff-scripts/diff-doc.js
contrib/diff-scripts/diff-nb.vbs
contrib/diff-scripts/diff-odt.vbs
contrib/diff-scripts/diff-ppt.js
contrib/diff-scripts/diff-sxw.vbs
contrib/diff-scripts/diff-xls.js
contrib/diff-scripts/merge-doc.js
contrib/diff-scripts/merge-ods.vbs

index 11d05e5..3bda809 100644 (file)
-' extensions: dll;exe
-'
-' TortoiseSVN Diff script for binary files
-'
-' Copyright (C) 2010 the TortoiseSVN team
-' This file is distributed under the same license as TortoiseSVN
-'
-' Last commit by:
-' $Author$
-' $Date$
-' $Rev$
-'
-' Authors:
-' Casey Barton, 2010
-' Hans-Emil Skogh, 2011
-'
-dim objArgs, objFileSystem, sBaseVer, sNewVer, sMessage, sBaseMessage, sNewMessage, bDiffers
-
-bDiffers = False
-
-Set objArgs = WScript.Arguments
-num = objArgs.Count
-if num < 2 then
-    MsgBox "Usage: [CScript | WScript] compare.vbs base.doc new.doc", vbCritical, "Invalid arguments"
-    WScript.Quit 1
-end if
-
-sBaseDoc = objArgs(0)
-sNewDoc = objArgs(1)
-
-Set objFileSystem = CreateObject("Scripting.FileSystemObject")
-If objFileSystem.FileExists(sBaseDoc) = False Then
-    MsgBox "File " + sBaseDoc +" does not exist.  Cannot compare the files.", vbCritical, "File not found"
-    Wscript.Quit 1
-End If
-If objFileSystem.FileExists(sNewDoc) = False Then
-    MsgBox "File " + sNewDoc +" does not exist.  Cannot compare the files.", vbCritical, "File not found"
-    Wscript.Quit 1
-End If
-
-' Compare file size
-dim fBaseFile, fNewFile
-Set fBaseFile = objFileSystem.GetFile(sBaseDoc)
-Set fNewFile = objFileSystem.GetFile(sNewDoc)
-
-If fBaseFile.size <> fNewFile.size Then
-    bDiffers = True
-    sBaseMessage = sBaseMessage + "  Size: " + CStr(fBaseFile.Size) + " bytes" + vbCrLf
-    sNewMessage = sNewMessage + "  Size: " + CStr(fNewFile.Size) + " bytes" + vbCrLf
-Else
-    sMessage = sMessage + "File sizes: " + CStr(fNewFile.Size) + " bytes" + vbCrLf
-End If
-
-' Compare files using fc.exe
-If bDiffers = False Then
-    Set WshShell = WScript.CreateObject("WScript.Shell")
-    exitStatus = WshShell.Run("fc.exe "+sBaseDoc+" "+sNewDoc, 0, True)
-    If exitStatus = 1 Then
-        bDiffers = True
-        sMessage = sMessage + "File content differs!" + vbCrLf
-    ElseIf exitStatus > 1 Then
-        ' Todo: Handle error!
-    End If
-End If
-
-' Only compare versions if we are comparing exe:s or dll:s
-If LCase(Right(sBaseDoc, 3)) = "exe" or LCase(Right(sNewDoc, 3)) = "exe" or _
-    LCase(Right(sBaseDoc, 3)) = "dll" or LCase(Right(sNewDoc, 3)) = "dll" Then
-
-    ' Compare version
-    sBaseVer = objFileSystem.GetFileVersion(sBaseDoc)
-    sNewVer = objFileSystem.GetFileVersion(sNewDoc)
-
-    If Len(sBaseVer) = 0 and Len(sNewVer) = 0 Then
-          sMessage = sMessage + "No version information available."
-    ElseIf sBaseVer = sNewVer Then
-        sMessage = sMessage + "Version: " + sBaseVer
-    Else
-        sBaseMessage = sBaseMessage + "  Version: " + sBaseVer + vbCrLf
-        sNewMessage = sNewMessage + "  Version: " + sNewVer + vbCrLf
-    End If
-End If
-
-' Generate result message
-sBaseMessage = "Base" + vbCrLf _
-    + "  File: " + sBaseDoc + vbCrLf _
-    + sBaseMessage
-sNewMessage = + "New" + vbCrLf _
-    + "  File: " + sNewDoc + vbCrLf _
-    + sNewMessage
-
-If bDiffers = True Then
-    sMessage = "Files differ!" + vbCrLf _
-        + vbCrLf _
-        + sBaseMessage + vbCrLf _
-        + sNewMessage + vbCrLf _
-        + sMessage
-
-    MsgBox sMessage, vbExclamation, "File Comparison - Differs"
-Else
-    sMessage = "Files are identical" + vbCrLf _
-        + vbCrLf _
-        + sMessage
-
-    MsgBox sMessage, vbInformation, "File Comparison - Identical"
-End If
-
-Wscript.Quit
+' extensions: dll;exe\r
+'\r
+' TortoiseSVN Diff script for binary files\r
+'\r
+' Copyright (C) 2010 the TortoiseSVN team\r
+' This file is distributed under the same license as TortoiseSVN\r
+'\r
+' Last commit by:\r
+' $Author$\r
+' $Date$\r
+' $Rev$\r
+'\r
+' Authors:\r
+' Casey Barton, 2010\r
+' Hans-Emil Skogh, 2011\r
+'\r
+dim objArgs, objFileSystem, sBaseVer, sNewVer, sMessage, sBaseMessage, sNewMessage, bDiffers\r
+\r
+bDiffers = False\r
+\r
+Set objArgs = WScript.Arguments\r
+num = objArgs.Count\r
+if num < 2 then\r
+    MsgBox "Usage: [CScript | WScript] compare.vbs base.doc new.doc", vbCritical, "Invalid arguments"\r
+    WScript.Quit 1\r
+end if\r
+\r
+sBaseDoc = objArgs(0)\r
+sNewDoc = objArgs(1)\r
+\r
+Set objFileSystem = CreateObject("Scripting.FileSystemObject")\r
+If objFileSystem.FileExists(sBaseDoc) = False Then\r
+    MsgBox "File " + sBaseDoc +" does not exist.  Cannot compare the files.", vbCritical, "File not found"\r
+    Wscript.Quit 1\r
+End If\r
+If objFileSystem.FileExists(sNewDoc) = False Then\r
+    MsgBox "File " + sNewDoc +" does not exist.  Cannot compare the files.", vbCritical, "File not found"\r
+    Wscript.Quit 1\r
+End If\r
+\r
+' Compare file size\r
+dim fBaseFile, fNewFile\r
+Set fBaseFile = objFileSystem.GetFile(sBaseDoc)\r
+Set fNewFile = objFileSystem.GetFile(sNewDoc)\r
+\r
+If fBaseFile.size <> fNewFile.size Then\r
+    bDiffers = True\r
+    sBaseMessage = sBaseMessage + "  Size: " + CStr(fBaseFile.Size) + " bytes" + vbCrLf\r
+    sNewMessage = sNewMessage + "  Size: " + CStr(fNewFile.Size) + " bytes" + vbCrLf\r
+Else\r
+    sMessage = sMessage + "File sizes: " + CStr(fNewFile.Size) + " bytes" + vbCrLf\r
+End If\r
+\r
+' Compare files using fc.exe\r
+If bDiffers = False Then\r
+    Set WshShell = WScript.CreateObject("WScript.Shell")\r
+    exitStatus = WshShell.Run("fc.exe "+sBaseDoc+" "+sNewDoc, 0, True)\r
+    If exitStatus = 1 Then\r
+        bDiffers = True\r
+        sMessage = sMessage + "File content differs!" + vbCrLf\r
+    ElseIf exitStatus > 1 Then\r
+        ' Todo: Handle error!\r
+    End If\r
+End If\r
+\r
+' Only compare versions if we are comparing exe:s or dll:s\r
+If LCase(Right(sBaseDoc, 3)) = "exe" or LCase(Right(sNewDoc, 3)) = "exe" or _\r
+    LCase(Right(sBaseDoc, 3)) = "dll" or LCase(Right(sNewDoc, 3)) = "dll" Then\r
+\r
+    ' Compare version\r
+    sBaseVer = objFileSystem.GetFileVersion(sBaseDoc)\r
+    sNewVer = objFileSystem.GetFileVersion(sNewDoc)\r
+\r
+    If Len(sBaseVer) = 0 and Len(sNewVer) = 0 Then\r
+          sMessage = sMessage + "No version information available."\r
+    ElseIf sBaseVer = sNewVer Then\r
+        sMessage = sMessage + "Version: " + sBaseVer\r
+    Else\r
+        sBaseMessage = sBaseMessage + "  Version: " + sBaseVer + vbCrLf\r
+        sNewMessage = sNewMessage + "  Version: " + sNewVer + vbCrLf\r
+    End If\r
+End If\r
+\r
+' Generate result message\r
+sBaseMessage = "Base" + vbCrLf _\r
+    + "  File: " + sBaseDoc + vbCrLf _\r
+    + sBaseMessage\r
+sNewMessage = + "New" + vbCrLf _\r
+    + "  File: " + sNewDoc + vbCrLf _\r
+    + sNewMessage\r
+\r
+If bDiffers = True Then\r
+    sMessage = "Files differ!" + vbCrLf _\r
+        + vbCrLf _\r
+        + sBaseMessage + vbCrLf _\r
+        + sNewMessage + vbCrLf _\r
+        + sMessage\r
+\r
+    MsgBox sMessage, vbExclamation, "File Comparison - Differs"\r
+Else\r
+    sMessage = "Files are identical" + vbCrLf _\r
+        + vbCrLf _\r
+        + sMessage\r
+\r
+    MsgBox sMessage, vbInformation, "File Comparison - Identical"\r
+End If\r
+\r
+Wscript.Quit\r
index 48443d0..993970c 100644 (file)
-// extensions: doc;docx;docm
-//
-// TortoiseSVN Diff script for Word Doc files
-//
-// Copyright (C) 2004-2008, 2011, 2013 the TortoiseSVN team
-// This file is distributed under the same license as TortoiseSVN
-//
-// Last commit by:
-// $Author$
-// $Date$
-// $Rev$
-//
-// Authors:
-// Stefan Kueng, 2011, 2013
-// Jared Silva, 2008
-// Davide Orlandi and Hans-Emil Skogh, 2005
-//
-
-var objArgs, num, sBaseDoc, sNewDoc, sTempDoc, objScript, word, destination;
-// Microsoft Office versions for Microsoft Windows OS
-var vOffice2000 = 9;
-var vOffice2002 = 10;
-//var vOffice2003 = 11;
-var vOffice2007 = 12;
-var vOffice2013 = 15;
-// WdCompareTarget
-//var wdCompareTargetSelected = 0;
-//var wdCompareTargetCurrent = 1;
-var wdCompareTargetNew = 2;
-// WdViewType
-var wdMasterView = 5;
-var wdNormalView = 1;
-var wdOutlineView = 2;
-// WdSaveOptions
-var wdDoNotSaveChanges = 0;
-//var wdPromptToSaveChanges = -2;
-//var wdSaveChanges = -1;
-
-objArgs = WScript.Arguments;
-num = objArgs.length;
-if (num < 2)
-{
-    WScript.Echo("Usage: [CScript | WScript] diff-doc.js base.doc new.doc");
-    WScript.Quit(1);
-}
-
-sBaseDoc = objArgs(0);
-sNewDoc = objArgs(1);
-
-objScript = new ActiveXObject("Scripting.FileSystemObject");
-
-if (!objScript.FileExists(sBaseDoc))
-{
-    WScript.Echo("File " + sBaseDoc + " does not exist.  Cannot compare the documents.");
-    WScript.Quit(1);
-}
-
-if (!objScript.FileExists(sNewDoc))
-{
-    WScript.Echo("File " + sNewDoc + " does not exist.  Cannot compare the documents.");
-    WScript.Quit(1);
-}
-
-try
-{
-    word = WScript.CreateObject("Word.Application");
-
-    if (parseInt(word.Version) >= vOffice2013)
-    {
-        var f = objScript.GetFile(sBaseDoc);
-        if (f.attributes & 1)
-        {
-            f.attributes = f.attributes - 1;
-        }
-    }
-}
-catch (e)
-{
-    // before giving up, try with OpenOffice
-    var OO;
-    try
-    {
-        OO = WScript.CreateObject("com.sun.star.ServiceManager");
-    }
-    catch (e)
-    {
-        WScript.Echo("You must have Microsoft Word or OpenOffice installed to perform this operation.");
-        WScript.Quit(1);
-    }
-    // yes, OO is installed - do the diff with that one instead
-    var objFile = objScript.GetFile(sNewDoc);
-    if ((objFile.Attributes & 1) === 1)
-    {
-        // reset the readonly attribute
-        objFile.Attributes = objFile.Attributes & (~1);
-    }
-    //Create the DesktopSet
-    var objDesktop = OO.createInstance("com.sun.star.frame.Desktop");
-    var objUriTranslator = OO.createInstance("com.sun.star.uri.ExternalUriReferenceTranslator");
-    //Adjust the paths for OO
-    sBaseDoc = sBaseDoc.replace(/\\/g, "/");
-    sBaseDoc = sBaseDoc.replace(/:/g, "|");
-    sBaseDoc = sBaseDoc.replace(/ /g, "%20");
-    sBaseDoc = sBaseDoc.replace(/#/g, "%23");
-    sBaseDoc = "file:///" + sBaseDoc;
-    sBaseDoc = objUriTranslator.translateToInternal(sBaseDoc);
-    sNewDoc = sNewDoc.replace(/\\/g, "/");
-    sNewDoc = sNewDoc.replace(/:/g, "|");
-    sNewDoc = sNewDoc.replace(/ /g, "%20");
-    sNewDoc = sNewDoc.replace(/#/g, "%23");
-    sNewDoc = "file:///" + sNewDoc;
-    sNewDoc = objUriTranslator.translateToInternal(sNewDoc);
-
-    //Open the %base document
-    var oPropertyValue = new Array();
-    oPropertyValue[0] = OO.Bridge_GetStruct("com.sun.star.beans.PropertyValue");
-    oPropertyValue[0].Name = "ShowTrackedChanges";
-    oPropertyValue[0].Value = true;
-    // objDocument is needed
-    var objDocument = objDesktop.loadComponentFromURL(sNewDoc,"_blank", 0, oPropertyValue);
-
-    //Set the frame
-    var Frame = objDesktop.getCurrentFrame();
-
-    var dispatcher = OO.CreateInstance("com.sun.star.frame.DispatchHelper");
-
-    //Execute the comparison
-    dispatcher.executeDispatch(Frame, ".uno:ShowTrackedChanges", "", 0, oPropertyValue);
-    oPropertyValue[0].Name = "URL";
-    oPropertyValue[0].Value = sBaseDoc;
-    dispatcher.executeDispatch(Frame, ".uno:CompareDocuments", "", 0, oPropertyValue);
-    WScript.Quit(0);
-}
-
-if (parseInt(word.Version) >= vOffice2007)
-{
-    sTempDoc = sNewDoc;
-    sNewDoc = sBaseDoc;
-    sBaseDoc = sTempDoc;
-}
-
-objScript = null;
-word.visible = true;
-
-// Open the new document
-try
-{
-    destination = word.Documents.Open(sNewDoc, true, (parseInt(word.Version) < vOffice2013));
-}
-catch (e)
-{
-    try
-    {
-        // open empty document to prevent bug where first Open() call fails
-        word.Documents.Add();
-        destination = word.Documents.Open(sNewDoc, true, (parseInt(word.Version) < vOffice2013));
-    }
-    catch (e)
-    {
-        WScript.Echo("Error opening " + sNewDoc);
-        // Quit
-        WScript.Quit(1);
-    }
-}
-
-// If the Type property returns either wdOutlineView or wdMasterView and the Count property returns zero, the current document is an outline.
-if (((destination.ActiveWindow.View.Type === wdOutlineView) || (destination.ActiveWindow.View.Type === wdMasterView)) && (destination.Subdocuments.Count === 0))
-{
-    // Change the Type property of the current document to normal
-    destination.ActiveWindow.View.Type = wdNormalView;
-}
-
-// Compare to the base document
-if (parseInt(word.Version) <= vOffice2000)
-{
-    // Compare for Office 2000 and earlier
-    try
-    {
-        destination.Compare(sBaseDoc);
-    }
-    catch (e)
-    {
-        WScript.Echo("Error comparing " + sBaseDoc + " and " + sNewDoc);
-        // Quit
-        WScript.Quit(1);
-    }
-}
-else
-{
-    // Compare for Office XP (2002) and later
-    try
-    {
-        destination.Compare(sBaseDoc, "Comparison", wdCompareTargetNew, true, true);
-    }
-    catch (e)
-    {
-        WScript.Echo("Error comparing " + sBaseDoc + " and " + sNewDoc);
-        // Close the first document and quit
-        destination.Close(wdDoNotSaveChanges);
-        WScript.Quit(1);
-    }
-}
-
-// Show the comparison result
-if (parseInt(word.Version) < vOffice2007)
-{
-    word.ActiveDocument.Windows(1).Visible = 1;
-}
-
-// Mark the comparison document as saved to prevent the annoying
-// "Save as" dialog from appearing.
-word.ActiveDocument.Saved = 1;
-
-// Close the first document
-if (parseInt(word.Version) >= vOffice2002)
-{
-    destination.Close(wdDoNotSaveChanges);
-}
+// extensions: doc;docx;docm\r
+//\r
+// TortoiseSVN Diff script for Word Doc files\r
+//\r
+// Copyright (C) 2004-2008, 2011, 2013 the TortoiseSVN team\r
+// This file is distributed under the same license as TortoiseSVN\r
+//\r
+// Last commit by:\r
+// $Author$\r
+// $Date$\r
+// $Rev$\r
+//\r
+// Authors:\r
+// Stefan Kueng, 2011, 2013\r
+// Jared Silva, 2008\r
+// Davide Orlandi and Hans-Emil Skogh, 2005\r
+//\r
+\r
+var objArgs, num, sBaseDoc, sNewDoc, sTempDoc, objScript, word, destination;\r
+// Microsoft Office versions for Microsoft Windows OS\r
+var vOffice2000 = 9;\r
+var vOffice2002 = 10;\r
+//var vOffice2003 = 11;\r
+var vOffice2007 = 12;\r
+var vOffice2013 = 15;\r
+// WdCompareTarget\r
+//var wdCompareTargetSelected = 0;\r
+//var wdCompareTargetCurrent = 1;\r
+var wdCompareTargetNew = 2;\r
+// WdViewType\r
+var wdMasterView = 5;\r
+var wdNormalView = 1;\r
+var wdOutlineView = 2;\r
+// WdSaveOptions\r
+var wdDoNotSaveChanges = 0;\r
+//var wdPromptToSaveChanges = -2;\r
+//var wdSaveChanges = -1;\r
+\r
+objArgs = WScript.Arguments;\r
+num = objArgs.length;\r
+if (num < 2)\r
+{\r
+    WScript.Echo("Usage: [CScript | WScript] diff-doc.js base.doc new.doc");\r
+    WScript.Quit(1);\r
+}\r
+\r
+sBaseDoc = objArgs(0);\r
+sNewDoc = objArgs(1);\r
+\r
+objScript = new ActiveXObject("Scripting.FileSystemObject");\r
+\r
+if (!objScript.FileExists(sBaseDoc))\r
+{\r
+    WScript.Echo("File " + sBaseDoc + " does not exist.  Cannot compare the documents.");\r
+    WScript.Quit(1);\r
+}\r
+\r
+if (!objScript.FileExists(sNewDoc))\r
+{\r
+    WScript.Echo("File " + sNewDoc + " does not exist.  Cannot compare the documents.");\r
+    WScript.Quit(1);\r
+}\r
+\r
+try\r
+{\r
+    word = WScript.CreateObject("Word.Application");\r
+\r
+    if (parseInt(word.Version, 10) >= vOffice2013)\r
+    {\r
+        var f = objScript.GetFile(sBaseDoc);\r
+        if (f.attributes & 1)\r
+        {\r
+            f.attributes = f.attributes - 1;\r
+        }\r
+    }\r
+}\r
+catch (e)\r
+{\r
+    // before giving up, try with OpenOffice\r
+    var OO;\r
+    try\r
+    {\r
+        OO = WScript.CreateObject("com.sun.star.ServiceManager");\r
+    }\r
+    catch (e)\r
+    {\r
+        WScript.Echo("You must have Microsoft Word or OpenOffice installed to perform this operation.");\r
+        WScript.Quit(1);\r
+    }\r
+    // yes, OO is installed - do the diff with that one instead\r
+    var objFile = objScript.GetFile(sNewDoc);\r
+    if ((objFile.Attributes & 1) === 1)\r
+    {\r
+        // reset the readonly attribute\r
+        objFile.Attributes = objFile.Attributes & (~1);\r
+    }\r
+    //Create the DesktopSet\r
+    var objDesktop = OO.createInstance("com.sun.star.frame.Desktop");\r
+    var objUriTranslator = OO.createInstance("com.sun.star.uri.ExternalUriReferenceTranslator");\r
+    //Adjust the paths for OO\r
+    sBaseDoc = sBaseDoc.replace(/\\/g, "/");\r
+    sBaseDoc = sBaseDoc.replace(/:/g, "|");\r
+    sBaseDoc = sBaseDoc.replace(/ /g, "%20");\r
+    sBaseDoc = sBaseDoc.replace(/#/g, "%23");\r
+    sBaseDoc = "file:///" + sBaseDoc;\r
+    sBaseDoc = objUriTranslator.translateToInternal(sBaseDoc);\r
+    sNewDoc = sNewDoc.replace(/\\/g, "/");\r
+    sNewDoc = sNewDoc.replace(/:/g, "|");\r
+    sNewDoc = sNewDoc.replace(/ /g, "%20");\r
+    sNewDoc = sNewDoc.replace(/#/g, "%23");\r
+    sNewDoc = "file:///" + sNewDoc;\r
+    sNewDoc = objUriTranslator.translateToInternal(sNewDoc);\r
+\r
+    //Open the %base document\r
+    var oPropertyValue = [];\r
+    oPropertyValue[0] = OO.Bridge_GetStruct("com.sun.star.beans.PropertyValue");\r
+    oPropertyValue[0].Name = "ShowTrackedChanges";\r
+    oPropertyValue[0].Value = true;\r
+    // objDocument is needed\r
+    var objDocument = objDesktop.loadComponentFromURL(sNewDoc,"_blank", 0, oPropertyValue);\r
+\r
+    //Set the frame\r
+    var Frame = objDesktop.getCurrentFrame();\r
+\r
+    var dispatcher = OO.CreateInstance("com.sun.star.frame.DispatchHelper");\r
+\r
+    //Execute the comparison\r
+    dispatcher.executeDispatch(Frame, ".uno:ShowTrackedChanges", "", 0, oPropertyValue);\r
+    oPropertyValue[0].Name = "URL";\r
+    oPropertyValue[0].Value = sBaseDoc;\r
+    dispatcher.executeDispatch(Frame, ".uno:CompareDocuments", "", 0, oPropertyValue);\r
+    WScript.Quit(0);\r
+}\r
+\r
+if (parseInt(word.Version, 10) >= vOffice2007)\r
+{\r
+    sTempDoc = sNewDoc;\r
+    sNewDoc = sBaseDoc;\r
+    sBaseDoc = sTempDoc;\r
+}\r
+\r
+objScript = null;\r
+word.visible = true;\r
+\r
+// Open the new document\r
+try\r
+{\r
+    destination = word.Documents.Open(sNewDoc, true, (parseInt(word.Version, 10) < vOffice2013));\r
+}\r
+catch (e)\r
+{\r
+    try\r
+    {\r
+        // open empty document to prevent bug where first Open() call fails\r
+        word.Documents.Add();\r
+        destination = word.Documents.Open(sNewDoc, true, (parseInt(word.Version, 10) < vOffice2013));\r
+    }\r
+    catch (e)\r
+    {\r
+        WScript.Echo("Error opening " + sNewDoc);\r
+        // Quit\r
+        WScript.Quit(1);\r
+    }\r
+}\r
+\r
+// If the Type property returns either wdOutlineView or wdMasterView and the Count property returns zero, the current document is an outline.\r
+if (((destination.ActiveWindow.View.Type === wdOutlineView) || (destination.ActiveWindow.View.Type === wdMasterView)) && (destination.Subdocuments.Count === 0))\r
+{\r
+    // Change the Type property of the current document to normal\r
+    destination.ActiveWindow.View.Type = wdNormalView;\r
+}\r
+\r
+// Compare to the base document\r
+if (parseInt(word.Version, 10) <= vOffice2000)\r
+{\r
+    // Compare for Office 2000 and earlier\r
+    try\r
+    {\r
+        destination.Compare(sBaseDoc);\r
+    }\r
+    catch (e)\r
+    {\r
+        WScript.Echo("Error comparing " + sBaseDoc + " and " + sNewDoc);\r
+        // Quit\r
+        WScript.Quit(1);\r
+    }\r
+}\r
+else\r
+{\r
+    // Compare for Office XP (2002) and later\r
+    try\r
+    {\r
+        destination.Compare(sBaseDoc, "Comparison", wdCompareTargetNew, true, true);\r
+    }\r
+    catch (e)\r
+    {\r
+        WScript.Echo("Error comparing " + sBaseDoc + " and " + sNewDoc);\r
+        // Close the first document and quit\r
+        destination.Close(wdDoNotSaveChanges);\r
+        WScript.Quit(1);\r
+    }\r
+}\r
+\r
+// Show the comparison result\r
+if (parseInt(word.Version, 10) < vOffice2007)\r
+{\r
+    word.ActiveDocument.Windows(1).Visible = 1;\r
+}\r
+\r
+// Mark the comparison document as saved to prevent the annoying\r
+// "Save as" dialog from appearing.\r
+word.ActiveDocument.Saved = 1;\r
+\r
+// Close the first document\r
+if (parseInt(word.Version, 10) >= vOffice2002)\r
+{\r
+    destination.Close(wdDoNotSaveChanges);\r
+}\r
index fe857b6..2a29540 100644 (file)
@@ -1,67 +1,67 @@
-'
-' TortoiseSVN Diff script for Mathematica notebooks
-'
-' Last commit by:
-' $Author$
-' $Date$
-' $Rev$
-'
-' Authors:
-' Szabolcs Horvát, 2008
-' Chris Rodgers http://rodgers.org.uk/, 2008
-' (Based on diff-xlsx.vbs)
-'
-
-dim objArgs, objScript, objDiffNotebook
-
-Set objArgs = WScript.Arguments
-num = objArgs.Count
-if num < 2 then
-    MsgBox "Usage: [CScript | WScript] compare.vbs base.nb new.nb", vbExclamation, "Invalid arguments"
-    WScript.Quit 1
-end if
-
-sBaseDoc = objArgs(0)
-sNewDoc = objArgs(1)
-
-Set objScript = CreateObject("Scripting.FileSystemObject")
-
-If objScript.FileExists(sBaseDoc) = False Then
-    MsgBox "File " + sBaseDoc +" does not exist.  Cannot compare the notebooks.", vbExclamation, "File not found"
-    Wscript.Quit 1
-Else
-    sBaseDoc = objScript.GetAbsolutePathName(sBaseDoc)
-End If
-
-If objScript.FileExists(sNewDoc) = False Then
-    MsgBox "File " + sNewDoc +" does not exist.  Cannot compare the notebooks.", vbExclamation, "File not found"
-    Wscript.Quit 1
-Else
-    sNewDoc = objScript.GetAbsolutePathName(sNewDoc)
-End If
-
-On Error Resume Next
-Dim tfolder, tname, tfile
-Const TemporaryFolder = 2
-
-Set tfolder = objScript.GetSpecialFolder(TemporaryFolder)
-
-tname = objScript.GetTempName + ".nb"
-Set objDiffNotebook = tfolder.CreateTextFile(tname)
-
-'Output a Mathematica notebook that will do the diff for us
-objDiffNotebook.WriteLine "Notebook[{" + vbCrLf + _
-"Cell[BoxData[ButtonBox[""\<\""Compare Notebooks\""\>""," + vbCrLf + _
-"ButtonFrame->""DialogBox"", Active->True, ButtonEvaluator->Automatic," + vbCrLf + _
-"ButtonFunction:>(Needs[""AuthorTools`""];" + vbCrLf + _
-"NotebookPut[Symbol[""NotebookDiff""][" + vbCrLf + _
-"""" + Replace(sBaseDoc,"\","\\") + """," + vbCrLf + _
-"""" + Replace(sNewDoc,"\","\\") + """" + vbCrLf + _
-"]])]], NotebookDefault]" + vbCrLf + _
-"}, Saveable->False, Editable->False, Selectable->False, WindowToolbars->{}, WindowFrame->ModelessDialog, WindowElements->{}, WindowFrameElements->CloseBox, WindowTitle->""Diff"", ShowCellBracket->False, WindowSize->{Fit,Fit}]"
-
-
-objDiffNotebook.Close
-
-Set objShell = CreateObject("WScript.Shell")
-objShell.Run tfolder + "\" + tname
+'\r
+' TortoiseSVN Diff script for Mathematica notebooks\r
+'\r
+' Last commit by:\r
+' $Author$\r
+' $Date$\r
+' $Rev$\r
+'\r
+' Authors:\r
+' Szabolcs Horvát, 2008\r
+' Chris Rodgers http://rodgers.org.uk/, 2008\r
+' (Based on diff-xlsx.vbs)\r
+'\r
+\r
+dim objArgs, objScript, objDiffNotebook\r
+\r
+Set objArgs = WScript.Arguments\r
+num = objArgs.Count\r
+if num < 2 then\r
+    MsgBox "Usage: [CScript | WScript] compare.vbs base.nb new.nb", vbExclamation, "Invalid arguments"\r
+    WScript.Quit 1\r
+end if\r
+\r
+sBaseDoc = objArgs(0)\r
+sNewDoc = objArgs(1)\r
+\r
+Set objScript = CreateObject("Scripting.FileSystemObject")\r
+\r
+If objScript.FileExists(sBaseDoc) = False Then\r
+    MsgBox "File " + sBaseDoc +" does not exist.  Cannot compare the notebooks.", vbExclamation, "File not found"\r
+    Wscript.Quit 1\r
+Else\r
+    sBaseDoc = objScript.GetAbsolutePathName(sBaseDoc)\r
+End If\r
+\r
+If objScript.FileExists(sNewDoc) = False Then\r
+    MsgBox "File " + sNewDoc +" does not exist.  Cannot compare the notebooks.", vbExclamation, "File not found"\r
+    Wscript.Quit 1\r
+Else\r
+    sNewDoc = objScript.GetAbsolutePathName(sNewDoc)\r
+End If\r
+\r
+On Error Resume Next\r
+Dim tfolder, tname, tfile\r
+Const TemporaryFolder = 2\r
+\r
+Set tfolder = objScript.GetSpecialFolder(TemporaryFolder)\r
+\r
+tname = objScript.GetTempName + ".nb"\r
+Set objDiffNotebook = tfolder.CreateTextFile(tname)\r
+\r
+'Output a Mathematica notebook that will do the diff for us\r
+objDiffNotebook.WriteLine "Notebook[{" + vbCrLf + _\r
+"Cell[BoxData[ButtonBox[""\<\""Compare Notebooks\""\>""," + vbCrLf + _\r
+"ButtonFrame->""DialogBox"", Active->True, ButtonEvaluator->Automatic," + vbCrLf + _\r
+"ButtonFunction:>(Needs[""AuthorTools`""];" + vbCrLf + _\r
+"NotebookPut[Symbol[""NotebookDiff""][" + vbCrLf + _\r
+"""" + Replace(sBaseDoc,"\","\\") + """," + vbCrLf + _\r
+"""" + Replace(sNewDoc,"\","\\") + """" + vbCrLf + _\r
+"]])]], NotebookDefault]" + vbCrLf + _\r
+"}, Saveable->False, Editable->False, Selectable->False, WindowToolbars->{}, WindowFrame->ModelessDialog, WindowElements->{}, WindowFrameElements->CloseBox, WindowTitle->""Diff"", ShowCellBracket->False, WindowSize->{Fit,Fit}]"\r
+\r
+\r
+objDiffNotebook.Close\r
+\r
+Set objShell = CreateObject("WScript.Shell")\r
+objShell.Run tfolder + "\" + tname\r
index 87bcd0c..0330a1d 100644 (file)
@@ -1,99 +1,99 @@
-' extensions: odt;ods
-'
-' TortoiseSVN Diff script for Open Office Text files
-'
-' Copyright (C) 2004-2009 the TortoiseSVN team
-' This file is distributed under the same license as TortoiseSVN
-'
-' Last commit by:
-' $Author$
-' $Date$
-' $Rev$
-'
-' Authors:
-' Jonathan Ashley, 2007
-' Stefan Küng, 2006, 2009
-'
-dim objArgs,num,sBaseDoc,sNewDoc,objScript,word,destination
-
-Set objArgs = WScript.Arguments
-num = objArgs.Count
-if num < 2 then
-    MsgBox "Usage: [CScript | WScript] diff-odt.vbs base.odt new.odt", vbExclamation, "Invalid arguments"
-    WScript.Quit 1
-end if
-
-sBaseDoc=objArgs(0)
-sNewDoc=objArgs(1)
-
-Set objScript = CreateObject("Scripting.FileSystemObject")
-If objScript.FileExists(sBaseDoc) = False Then
-    MsgBox "File " + sBaseDoc +" does not exist.  Cannot compare the documents.", vbExclamation, "File not found"
-    Wscript.Quit 1
-End If
-If objScript.FileExists(sNewDoc) = False Then
-    MsgBox "File " + sNewDoc +" does not exist.  Cannot compare the documents.", vbExclamation, "File not found"
-    Wscript.Quit 1
-End If
-'remove the file write protection
-objScript.GetFile(sBaseDoc).Attributes = objScript.GetFile(sBaseDoc).Attributes And Not 1
-objScript.GetFile(sNewDoc).Attributes = objScript.GetFile(sNewDoc).Attributes And Not 1
-
-Set objScript = Nothing
-
-On Error Resume Next
-'The service manager is always the starting point
-'If there is no office running then an office is started
-Set objServiceManager= Wscript.CreateObject("com.sun.star.ServiceManager")
-If Err.Number <> 0 Then
-    Wscript.Echo "You must have OpenOffice installed to perform this operation."
-    Wscript.Quit 1
-End If
-
-On Error Goto 0
-
-'Because this is a diff, TortoiseSVN marks the files as read-only.
-'However, OpenOffice will not compare any file with that flag set.
-'Make sure we un-set that flag.
-Set objFSO = CreateObject("Scripting.FileSystemObject")
-Set objFile = objFSO.GetFile(sNewDoc)
-If (objFile.Attributes AND 1)=1 Then
-    objFile.Attributes = objFile.Attributes XOR 1
-End If
-
-'Create the DesktopSet
-Set objDesktop = objServiceManager.createInstance("com.sun.star.frame.Desktop")
-Set objUriTranslator = objServiceManager.createInstance("com.sun.star.uri.ExternalUriReferenceTranslator")
-'Adjust the paths for OO
-sBaseDoc=Replace(sBaseDoc, "\", "/")
-sBaseDoc=Replace(sBaseDoc, ":", "|")
-sBaseDoc=Replace(sBaseDoc, "%", "%25")
-sBaseDoc=Replace(sBaseDoc, " ", "%20")
-sBaseDoc=Replace(sBaseDoc, "#", "%23")
-sBaseDoc="file:///"&sBaseDoc
-sBaseDoc=objUriTranslator.translateToInternal(sBaseDoc)
-sNewDoc=Replace(sNewDoc, "\", "/")
-sNewDoc=Replace(sNewDoc, ":", "|")
-sNewDoc=Replace(sNewDoc, "%", "%25")
-sNewDoc=Replace(sNewDoc, " ", "%20")
-sNewDoc=Replace(sNewDoc, "#", "%23")
-sNewDoc="file:///"&sNewDoc
-sNewDoc=objUriTranslator.translateToInternal(sNewDoc)
-
-'Open the %base document
-Dim oPropertyValue(0)
-Set oPropertyValue(0) = objServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue")
-oPropertyValue(0).Name = "ShowTrackedChanges"
-oPropertyValue(0).Value = true
-Set objDocument=objDesktop.loadComponentFromURL(sNewDoc,"_blank", 0, oPropertyValue)
-
-'Set the frame
-Set Frame = objDesktop.getCurrentFrame
-
-Set dispatcher=objServiceManager.CreateInstance("com.sun.star.frame.DispatchHelper")
-
-'Execute the comparison
-dispatcher.executeDispatch Frame, ".uno:ShowTrackedChanges", "", 0, oPropertyValue
-oPropertyValue(0).Name = "URL"
-oPropertyValue(0).Value = sBaseDoc
-dispatcher.executeDispatch Frame, ".uno:CompareDocuments", "", 0, oPropertyValue
+' extensions: odt;ods\r
+'\r
+' TortoiseSVN Diff script for Open Office Text files\r
+'\r
+' Copyright (C) 2004-2009 the TortoiseSVN team\r
+' This file is distributed under the same license as TortoiseSVN\r
+'\r
+' Last commit by:\r
+' $Author$\r
+' $Date$\r
+' $Rev$\r
+'\r
+' Authors:\r
+' Jonathan Ashley, 2007\r
+' Stefan Küng, 2006, 2009\r
+'\r
+dim objArgs,num,sBaseDoc,sNewDoc,objScript,word,destination\r
+\r
+Set objArgs = WScript.Arguments\r
+num = objArgs.Count\r
+if num < 2 then\r
+    MsgBox "Usage: [CScript | WScript] diff-odt.vbs base.odt new.odt", vbExclamation, "Invalid arguments"\r
+    WScript.Quit 1\r
+end if\r
+\r
+sBaseDoc=objArgs(0)\r
+sNewDoc=objArgs(1)\r
+\r
+Set objScript = CreateObject("Scripting.FileSystemObject")\r
+If objScript.FileExists(sBaseDoc) = False Then\r
+    MsgBox "File " + sBaseDoc +" does not exist.  Cannot compare the documents.", vbExclamation, "File not found"\r
+    Wscript.Quit 1\r
+End If\r
+If objScript.FileExists(sNewDoc) = False Then\r
+    MsgBox "File " + sNewDoc +" does not exist.  Cannot compare the documents.", vbExclamation, "File not found"\r
+    Wscript.Quit 1\r
+End If\r
+'remove the file write protection\r
+objScript.GetFile(sBaseDoc).Attributes = objScript.GetFile(sBaseDoc).Attributes And Not 1\r
+objScript.GetFile(sNewDoc).Attributes = objScript.GetFile(sNewDoc).Attributes And Not 1\r
+\r
+Set objScript = Nothing\r
+\r
+On Error Resume Next\r
+'The service manager is always the starting point\r
+'If there is no office running then an office is started\r
+Set objServiceManager= Wscript.CreateObject("com.sun.star.ServiceManager")\r
+If Err.Number <> 0 Then\r
+    Wscript.Echo "You must have OpenOffice installed to perform this operation."\r
+    Wscript.Quit 1\r
+End If\r
+\r
+On Error Goto 0\r
+\r
+'Because this is a diff, TortoiseSVN marks the files as read-only.\r
+'However, OpenOffice will not compare any file with that flag set.\r
+'Make sure we un-set that flag.\r
+Set objFSO = CreateObject("Scripting.FileSystemObject")\r
+Set objFile = objFSO.GetFile(sNewDoc)\r
+If (objFile.Attributes AND 1)=1 Then\r
+    objFile.Attributes = objFile.Attributes XOR 1\r
+End If\r
+\r
+'Create the DesktopSet\r
+Set objDesktop = objServiceManager.createInstance("com.sun.star.frame.Desktop")\r
+Set objUriTranslator = objServiceManager.createInstance("com.sun.star.uri.ExternalUriReferenceTranslator")\r
+'Adjust the paths for OO\r
+sBaseDoc=Replace(sBaseDoc, "\", "/")\r
+sBaseDoc=Replace(sBaseDoc, ":", "|")\r
+sBaseDoc=Replace(sBaseDoc, "%", "%25")\r
+sBaseDoc=Replace(sBaseDoc, " ", "%20")\r
+sBaseDoc=Replace(sBaseDoc, "#", "%23")\r
+sBaseDoc="file:///"&sBaseDoc\r
+sBaseDoc=objUriTranslator.translateToInternal(sBaseDoc)\r
+sNewDoc=Replace(sNewDoc, "\", "/")\r
+sNewDoc=Replace(sNewDoc, ":", "|")\r
+sNewDoc=Replace(sNewDoc, "%", "%25")\r
+sNewDoc=Replace(sNewDoc, " ", "%20")\r
+sNewDoc=Replace(sNewDoc, "#", "%23")\r
+sNewDoc="file:///"&sNewDoc\r
+sNewDoc=objUriTranslator.translateToInternal(sNewDoc)\r
+\r
+'Open the %base document\r
+Dim oPropertyValue(0)\r
+Set oPropertyValue(0) = objServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue")\r
+oPropertyValue(0).Name = "ShowTrackedChanges"\r
+oPropertyValue(0).Value = true\r
+Set objDocument=objDesktop.loadComponentFromURL(sNewDoc,"_blank", 0, oPropertyValue)\r
+\r
+'Set the frame\r
+Set Frame = objDesktop.getCurrentFrame\r
+\r
+Set dispatcher=objServiceManager.CreateInstance("com.sun.star.frame.DispatchHelper")\r
+\r
+'Execute the comparison\r
+dispatcher.executeDispatch Frame, ".uno:ShowTrackedChanges", "", 0, oPropertyValue\r
+oPropertyValue(0).Name = "URL"\r
+oPropertyValue(0).Value = sBaseDoc\r
+dispatcher.executeDispatch Frame, ".uno:CompareDocuments", "", 0, oPropertyValue\r
index 7878b69..49074a7 100644 (file)
-// extensions: ppt;pptx;pptm
-//
-// TortoiseSVN Diff script for Powerpoint files
-//
-// Copyright (C) 2004-2009 the TortoiseSVN team
-// This file is distributed under the same license as TortoiseSVN
-//
-// Last commit by:
-// $Author$
-// $Date$
-// $Rev$
-//
-// Authors:
-// Arne Moor, 2006
-//
-
-/*
-This script starts PowerPoint and compares the two given presentations.
-To better see the changes and get the highlighting feature of PowerPoint
-click on "Apply all changes to the presentation" on the reviewing toolbar.
-*/
-
-function PptAppMajorVersion(PowerPoint)
-{
-    var pptVersion;
-    try
-    {
-        pptVersion = PowerPoint.Version.toString();
-        if (pptVersion.indexOf(".") > 0)
-        {
-            pptVersion = pptVersion.substr(0, pptVersion.indexOf("."));
-        }
-        if (pptVersion === "")
-            return 0;
-        else
-            return parseInt(pptVersion);
-    }
-    catch (e)
-    {
-        return 0;
-    }
-}
-
-var objArgs, num, sBasePpt, sNewPpt, objScript, powerpoint, source;
-
-objArgs = WScript.Arguments;
-num = objArgs.length;
-if (num < 2)
-{
-    WScript.Echo("Usage: [CScript | WScript] diff-ppt.js base.ppt new.ppt");
-    WScript.Quit(1);
-}
-
-sBasePpt = objArgs(0);
-sNewPpt = objArgs(1);
-
-objScript = new ActiveXObject("Scripting.FileSystemObject");
-
-if (!objScript.FileExists(sBasePpt))
-{
-    WScript.Echo("File " + sBasePpt + " does not exist.  Cannot compare the presentations.");
-    WScript.Quit(1);
-}
-
-if (!objScript.FileExists(sNewPpt))
-{
-    WScript.Echo("File " + sNewPpt + " does not exist.  Cannot compare the presentations.");
-    WScript.Quit(1);
-}
-
-objScript = null;
-
-try
-{
-    powerpoint = WScript.CreateObject("Powerpoint.Application");
-}
-catch (e)
-{
-    WScript.Echo("You must have Microsoft Powerpoint installed to perform this operation.");
-    WScript.Quit(1);
-}
-
-if (PptAppMajorVersion(powerpoint) === 12)
-{
-    WScript.Echo("Microsoft Powerpoint 2007 doesn't provide the DIFF features any more. Sorry!");
-    WScript.Quit(1);
-}
-else
-{
-    powerpoint.visible = true;
-
-    // Open the original (base) document
-    source = powerpoint.Presentations.Open(sBasePpt);
-
-    // Merge the new document, to show the changes
-    source.Merge(sNewPpt);
-
-    // Mark the comparison presentation as saved to prevent the annoying
-    // "Save as" dialog from appearing.
-    powerpoint.ActivePresentation.Saved = 1;
-}
+// extensions: ppt;pptx;pptm\r
+//\r
+// TortoiseSVN Diff script for Powerpoint files\r
+//\r
+// Copyright (C) 2004-2009 the TortoiseSVN team\r
+// This file is distributed under the same license as TortoiseSVN\r
+//\r
+// Last commit by:\r
+// $Author$\r
+// $Date$\r
+// $Rev$\r
+//\r
+// Authors:\r
+// Arne Moor, 2006\r
+//\r
+\r
+/*\r
+This script starts PowerPoint and compares the two given presentations.\r
+To better see the changes and get the highlighting feature of PowerPoint\r
+click on "Apply all changes to the presentation" on the reviewing toolbar.\r
+*/\r
+\r
+function PptAppMajorVersion(PowerPoint)\r
+{\r
+    var pptVersion;\r
+    try\r
+    {\r
+        pptVersion = PowerPoint.Version.toString();\r
+        if (pptVersion.indexOf(".") > 0)\r
+        {\r
+            pptVersion = pptVersion.substr(0, pptVersion.indexOf("."));\r
+        }\r
+        if (pptVersion === "")\r
+        {\r
+            return 0;\r
+        }\r
+        else\r
+        {\r
+            return parseInt(pptVersion, 10);\r
+        }\r
+    }\r
+    catch (e)\r
+    {\r
+        return 0;\r
+    }\r
+}\r
+\r
+var objArgs, num, sBasePpt, sNewPpt, objScript, powerpoint, source;\r
+\r
+objArgs = WScript.Arguments;\r
+num = objArgs.length;\r
+if (num < 2)\r
+{\r
+    WScript.Echo("Usage: [CScript | WScript] diff-ppt.js base.ppt new.ppt");\r
+    WScript.Quit(1);\r
+}\r
+\r
+sBasePpt = objArgs(0);\r
+sNewPpt = objArgs(1);\r
+\r
+objScript = new ActiveXObject("Scripting.FileSystemObject");\r
+\r
+if (!objScript.FileExists(sBasePpt))\r
+{\r
+    WScript.Echo("File " + sBasePpt + " does not exist.  Cannot compare the presentations.");\r
+    WScript.Quit(1);\r
+}\r
+\r
+if (!objScript.FileExists(sNewPpt))\r
+{\r
+    WScript.Echo("File " + sNewPpt + " does not exist.  Cannot compare the presentations.");\r
+    WScript.Quit(1);\r
+}\r
+\r
+objScript = null;\r
+\r
+try\r
+{\r
+    powerpoint = WScript.CreateObject("Powerpoint.Application");\r
+}\r
+catch (e)\r
+{\r
+    WScript.Echo("You must have Microsoft Powerpoint installed to perform this operation.");\r
+    WScript.Quit(1);\r
+}\r
+\r
+if (PptAppMajorVersion(powerpoint) === 12)\r
+{\r
+    WScript.Echo("Microsoft Powerpoint 2007 doesn't provide the DIFF features any more. Sorry!");\r
+    WScript.Quit(1);\r
+}\r
+else\r
+{\r
+    powerpoint.visible = true;\r
+\r
+    // Open the original (base) document\r
+    source = powerpoint.Presentations.Open(sBasePpt);\r
+\r
+    // Merge the new document, to show the changes\r
+    source.Merge(sNewPpt);\r
+\r
+    // Mark the comparison presentation as saved to prevent the annoying\r
+    // "Save as" dialog from appearing.\r
+    powerpoint.ActivePresentation.Saved = 1;\r
+}\r
index a8663d6..87da944 100644 (file)
@@ -1,70 +1,70 @@
-'
-' TortoiseSVN Diff script for Open Office Calc files
-'
-' Copyright (C) 2004-2008 the TortoiseSVN team
-' This file is distributed under the same license as TortoiseSVN
-'
-' Last commit by:
-' $Author$
-' $Date$
-' $Rev$
-'
-' Authors:
-' Jonathan Ashley, 2007
-' Stefan Küng, 2006
-'
-dim objArgs,num,sBaseDoc,sNewDoc,objScript,word,destination
-
-Set objArgs = WScript.Arguments
-num = objArgs.Count
-if num < 2 then
-    MsgBox "Usage: [CScript | WScript] compare.vbs base.doc new.doc", vbExclamation, "Invalid arguments"
-    WScript.Quit 1
-end if
-
-sBaseDoc=objArgs(0)
-sNewDoc=objArgs(1)
-
-Set objScript = CreateObject("Scripting.FileSystemObject")
-If objScript.FileExists(sBaseDoc) = False Then
-    MsgBox "File " + sBaseDoc +" does not exist.  Cannot compare the documents.", vbExclamation, "File not found"
-    Wscript.Quit 1
-End If
-If objScript.FileExists(sNewDoc) = False Then
-    MsgBox "File " + sNewDoc +" does not exist.  Cannot compare the documents.", vbExclamation, "File not found"
-    Wscript.Quit 1
-End If
-
-Set objScript = Nothing
-
-On Error Resume Next
-'The service manager is always the starting point
-'If there is no office running then an office is started
-Set objServiceManager= Wscript.CreateObject("com.sun.star.ServiceManager")
-If Err.Number <> 0 Then
-    Wscript.Echo "You must have OpenOffice installed to perform this operation."
-    Wscript.Quit 1
-End If
-
-On Error Goto 0
-'Create the DesktopSet
-Set objDesktop = objServiceManager.createInstance("com.sun.star.frame.Desktop")
-'Adjust the paths for OO
-sBaseDoc=Replace(sBaseDoc, "\", "/")
-sBaseDoc=Replace(sBaseDoc, ":", "|")
-sBaseDoc=Replace(sBaseDoc, "%", "%25")
-sBaseDoc=Replace(sBaseDoc, " ", "%20")
-sBaseDoc="file:///"&sBaseDoc
-sNewDoc=Replace(sNewDoc, "\", "/")
-sNewDoc=Replace(sNewDoc, ":", "|")
-sNewDoc=Replace(sNewDoc, "%", "%25")
-sNewDoc=Replace(sNewDoc, " ", "%20")
-sNewDoc="file:///"&sNewDoc
-
-'Open the %base document
-Dim oPropertyValue(0)
-Set oPropertyValue(0) = objServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue")
-oPropertyValue(0).Name = "ShowTrackedChanges"
-oPropertyValue(0).Value = true
-Set objDocument=objDesktop.loadComponentFromURL(sNewDoc,"_blank", 0, oPropertyValue)
-Set objDocument2=objDesktop.loadComponentFromURL(sBaseDoc,"_blank",0, oPropertyValue)
+'\r
+' TortoiseSVN Diff script for Open Office Calc files\r
+'\r
+' Copyright (C) 2004-2008 the TortoiseSVN team\r
+' This file is distributed under the same license as TortoiseSVN\r
+'\r
+' Last commit by:\r
+' $Author$\r
+' $Date$\r
+' $Rev$\r
+'\r
+' Authors:\r
+' Jonathan Ashley, 2007\r
+' Stefan Küng, 2006\r
+'\r
+dim objArgs,num,sBaseDoc,sNewDoc,objScript,word,destination\r
+\r
+Set objArgs = WScript.Arguments\r
+num = objArgs.Count\r
+if num < 2 then\r
+    MsgBox "Usage: [CScript | WScript] compare.vbs base.doc new.doc", vbExclamation, "Invalid arguments"\r
+    WScript.Quit 1\r
+end if\r
+\r
+sBaseDoc=objArgs(0)\r
+sNewDoc=objArgs(1)\r
+\r
+Set objScript = CreateObject("Scripting.FileSystemObject")\r
+If objScript.FileExists(sBaseDoc) = False Then\r
+    MsgBox "File " + sBaseDoc +" does not exist.  Cannot compare the documents.", vbExclamation, "File not found"\r
+    Wscript.Quit 1\r
+End If\r
+If objScript.FileExists(sNewDoc) = False Then\r
+    MsgBox "File " + sNewDoc +" does not exist.  Cannot compare the documents.", vbExclamation, "File not found"\r
+    Wscript.Quit 1\r
+End If\r
+\r
+Set objScript = Nothing\r
+\r
+On Error Resume Next\r
+'The service manager is always the starting point\r
+'If there is no office running then an office is started\r
+Set objServiceManager= Wscript.CreateObject("com.sun.star.ServiceManager")\r
+If Err.Number <> 0 Then\r
+    Wscript.Echo "You must have OpenOffice installed to perform this operation."\r
+    Wscript.Quit 1\r
+End If\r
+\r
+On Error Goto 0\r
+'Create the DesktopSet\r
+Set objDesktop = objServiceManager.createInstance("com.sun.star.frame.Desktop")\r
+'Adjust the paths for OO\r
+sBaseDoc=Replace(sBaseDoc, "\", "/")\r
+sBaseDoc=Replace(sBaseDoc, ":", "|")\r
+sBaseDoc=Replace(sBaseDoc, "%", "%25")\r
+sBaseDoc=Replace(sBaseDoc, " ", "%20")\r
+sBaseDoc="file:///"&sBaseDoc\r
+sNewDoc=Replace(sNewDoc, "\", "/")\r
+sNewDoc=Replace(sNewDoc, ":", "|")\r
+sNewDoc=Replace(sNewDoc, "%", "%25")\r
+sNewDoc=Replace(sNewDoc, " ", "%20")\r
+sNewDoc="file:///"&sNewDoc\r
+\r
+'Open the %base document\r
+Dim oPropertyValue(0)\r
+Set oPropertyValue(0) = objServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue")\r
+oPropertyValue(0).Name = "ShowTrackedChanges"\r
+oPropertyValue(0).Value = true\r
+Set objDocument=objDesktop.loadComponentFromURL(sNewDoc,"_blank", 0, oPropertyValue)\r
+Set objDocument2=objDesktop.loadComponentFromURL(sBaseDoc,"_blank",0, oPropertyValue)\r
index ba148aa..79773f7 100644 (file)
-// extensions: xls;xlsx;xlsm;xlsb;xlam
-//
-// TortoiseSVN Diff script for Excel files
-//
-// Copyright (C) 2004-2008 the TortoiseSVN team
-// This file is distributed under the same license as TortoiseSVN
-//
-// Last commit by:
-// $Author$
-// $Date$
-// $Rev$
-//
-// Authors:
-// Hiroki Najima <h.najima at gmail.com>, 2013
-// Michael Joras <michael@joras.net>, 2008
-// Suraj Barkale, 2006
-//
-
-// ----- configuration -----
-// Fast mode switch
-// Fast mode does not copy Worksheets but require opened base document at the same time.
-var bFastMode = false;
-
-// ----- constants -----
-var vbCritical = 0x10;
-var vbExclamation = 0x30;
-//var vbInformation = 0x40;
-
-var xlNone = -4142;
-var xlMaximized = -4137;
-var xlArrangeStyleHorizontal = -4128;
-var xlCellValue = 1;
-//var xlExpression = 2;
-//var xlEqual = 3;
-var xlNotEqual = 4;
-
-//var vOffice95 = 7;
-//var vOffice97 = 8;
-//var vOffice2000 = 9;
-//var vOffice2002 = 10;
-var vOffice2003 = 11;
-//var vOffice2007 = 12;
-//var vOffice2010 = 14;
-//var vOffice2013 = 15;
-
-// ----- main -----
-
-var aWarningMessages = Array();
-
-var objArgs = WScript.Arguments;
-if (objArgs.length < 2)
-{
-    Abort("Usage: [CScript | WScript] diff-xls.js base.xls new.xls", "Invalid arguments");
-}
-
-var sBaseDoc = objArgs(0);
-var sNewDoc = objArgs(1);
-
-var objScript = new ActiveXObject("Scripting.FileSystemObject");
-
-if (objScript.GetBaseName(sBaseDoc) === objScript.GetBaseName(sNewDoc))
-{
-    Abort("File '" + sBaseDoc + "' and '" + sNewDoc + "' is same file name.\nCannot compare the documents.", "Same file name");
-}
-
-if (!objScript.FileExists(sBaseDoc))
-{
-    Abort("File '" + sBaseDoc + "' does not exist.\nCannot compare the documents.", "File not found");
-}
-
-if (!objScript.FileExists(sNewDoc))
-{
-    Abort("File '" + sNewDoc + "' does not exist.\nCannot compare the documents.", "File not found");
-}
-
-sBaseDoc = objScript.GetAbsolutePathName(sBaseDoc);
-sNewDoc = objScript.GetAbsolutePathName(sNewDoc);
-objScript = null;
-
-var objExcelApp;
-try
-{
-    objExcelApp = WScript.CreateObject("Excel.Application");
-}
-catch (e)
-{
-    Abort("You must have Excel installed to perform this operation.", "Excel Instantiation Failed");
-}
-var fExcelVersion = parseInt(objExcelApp.Version);
-
-// Open base Excel book
-var objBaseWorkbook;
-try
-{
-    objBaseWorkbook = objExcelApp.Workbooks.Open(sBaseDoc, null, true);
-}
-catch (e)
-{
-    Abort("Failed to open '" + sBaseDoc + "'\nIt might not be a valid Excel file.", "File open error");
-}
-
-// Open new Excel book
-var objNewWorkbook;
-try
-{
-    objNewWorkbook = objExcelApp.Workbooks.Open(sNewDoc, null, true);
-}
-catch (e)
-{
-    Abort("Failed to open '" + sNewDoc + "'\nIt might not be a valid Excel file.", "File open error");
-}
-
-// Show Excel window
-objExcelApp.Visible = true;
-
-// Arrange windows
-if (objBaseWorkbook.ProtectWindows || objNewWorkbook.ProtectWindows)
-{
-    StoreWarning("Unable to arrange windows because one or both workbooks are protected.");
-}
-else
-{
-    // Make windows a compare side by side view
-    if (fExcelVersion >= vOffice2003)
-    {
-        objExcelApp.Windows.CompareSideBySideWith(objExcelApp.Windows(2).Caption);
-    }
-    objExcelApp.Application.WindowState = xlMaximized;
-    objExcelApp.Windows.Arrange(xlArrangeStyleHorizontal);
-}
-
-if (!bFastMode && objNewWorkbook.ProtectWindows)
-{
-    StoreWarning("Fallback to fast mode bacause " + objNewWorkbook.Name + " is protected.");
-    bFastMode = true;
-}
-
-// Mark differences in sNewDoc red
-var length = objNewWorkbook.Worksheets.Count;
-for (var i = 1; i <= length; i++)
-{
-    var objBaseWorksheet = objBaseWorkbook.Worksheets(i);
-    var objNewWorksheet = objNewWorkbook.Worksheets(i);
-
-    UnhideWorksheet(objBaseWorksheet);
-    UnhideWorksheet(objNewWorksheet);
-
-    if (!bFastMode)
-    {
-        objBaseWorkbook.Sheets(i).Copy(null, objNewWorkbook.Sheets(objNewWorkbook.Sheets.Count));
-        var objDummyWorksheet = objNewWorkbook.Sheets(objNewWorkbook.Sheets.Count);
-        objDummyWorksheet.Name = "Dummy_for_Comparison" + i;
-        objDummyWorksheet.Visible = true;
-        if (fExcelVersion >= vOffice2003)
-        {
-            objDummyWorksheet.Tab.ColorIndex = 16;  // 16:Dark gray RGB(128,128,128)
-        }
-    }
-
-    if (objNewWorksheet.ProtectContents)
-    {
-        StoreWarning("Unable to mark differences to " +
-            ToAbsoluteReference(objNewWorksheet) +
-            " because the Worksheet is protected.");
-    }
-    else
-    {
-        objNewWorksheet.Cells.FormatConditions.Delete();
-        var sFormula;
-        if (bFastMode)
-        {
-            sFormula = "=INDIRECT(\"" + ToAbsoluteReference(objBaseWorksheet) + "!\"&ADDRESS(ROW(),COLUMN()))";
-        }
-        else
-        {
-            sFormula = "=INDIRECT(\"Dummy_for_Comparison" + i + "!\"&ADDRESS(ROW(),COLUMN()))";
-        }
-        objNewWorksheet.Cells.FormatConditions.Add(xlCellValue, xlNotEqual, sFormula);
-        objNewWorksheet.Cells.FormatConditions(1).Interior.ColorIndex = 3;  // 3:Red RGB(128,0,0)
-    }
-
-}
-
-// Activate first Worksheet
-objBaseWorkbook.Sheets(1).Activate();
-objNewWorkbook.Sheets(1).Activate();
-
-// Suppress save dialog if nothing changed
-objBaseWorkbook.Saved = true;
-objNewWorkbook.Saved = true;
-
-// Show warnings if exist
-ShowWarning();
-
-WScript.Quit(0);
-
-
-// ----- functions -----
-
-// Show Message Dialog
-// VBcript's MsgBox emulation
-function MsgBox(sMessage, iButtons, sTitle)
-{
-    var objShell = new ActiveXObject("WScript.Shell");
-    objShell.popup(sMessage, 0, sTitle, iButtons);
-}
-
-// Show an error message and quit script with cleanup Excel Application Object.
-function Abort(sMessage, sTitle)
-{
-    MsgBox(sMessage, vbCritical, sTitle);
-    if (objExcelApp)
-    {
-        objExcelApp.Quit();
-    }
-    WScript.Quit(1);
-}
-
-// Unhide the Worksheet if it is hidden.
-// This also sets color to the tab, if Office2003 or later.
-//  - 46(Orange)      : Hidden Worksheet
-//  - xlNone(default) : Not hidden Worksheet
-function UnhideWorksheet(objWorksheet)
-{
-    if (objWorksheet.Visible)
-    {
-        if (fExcelVersion >= vOffice2003)
-        {
-            if (objWorksheet.Tab.ColorIndex !== xlNone)
-            {
-                if (objWorksheet.Parent.ProtectStructure)
-                {
-                    StoreWarning("Unable to set tab color to " +
-                        ToAbsoluteReference(objWorksheet) +
-                        " because the Workbook's structure is protected.");
-                }
-                else
-                {
-                    objWorksheet.Tab.ColorIndex = xlNone;
-                }
-            }
-        }
-    }
-    else
-    {
-        if (objWorksheet.Parent.ProtectStructure)
-        {
-            StoreWarning("Unable to unhide " +
-                ToAbsoluteReference(objWorksheet) +
-                " because the Workbook's structure is protected.");
-        }
-        else
-        {
-            objWorksheet.Visible = true;
-            if (fExcelVersion >= vOffice2003)
-            {
-                objWorksheet.Tab.ColorIndex = 10;   // 10:Green RGB(0,128,0)
-            }
-        }
-    }
-}
-
-// Generate Absolute Reference Formula of Worksheet.
-function ToAbsoluteReference(objWorksheet)
-{
-    return "[" + objWorksheet.Parent.Name + "]" + objWorksheet.Name;
-}
-
-// Accumulate a warning message.
-function StoreWarning(sMessage)
-{
-    aWarningMessages[aWarningMessages.length] = sMessage;
-}
-
-// Show accumulated warning messages if exist.
-// To avoid make huge message dialog, this limits message count to show.
-function ShowWarning()
-{
-    if (aWarningMessages.length === 0)
-    {
-        return;
-    }
-    var sMessage = "The following warnings occurred while processing.\n";
-    for (var i = 0; i < aWarningMessages.length; i++)
-    {
-        if (i >= 10)
-        {
-            sMessage += "... And more " + (aWarningMessages.length - i) + " messages";
-            break;
-        }
-        sMessage += "[" + (i + 1) + "] " + aWarningMessages[i] + "\n";
-    }
-    MsgBox(sMessage, vbExclamation, "Warning");
-}
+// extensions: xls;xlsx;xlsm;xlsb;xlam\r
+//\r
+// TortoiseSVN Diff script for Excel files\r
+//\r
+// Copyright (C) 2004-2008 the TortoiseSVN team\r
+// This file is distributed under the same license as TortoiseSVN\r
+//\r
+// Last commit by:\r
+// $Author$\r
+// $Date$\r
+// $Rev$\r
+//\r
+// Authors:\r
+// Hiroki Najima <h.najima at gmail.com>, 2013\r
+// Michael Joras <michael@joras.net>, 2008\r
+// Suraj Barkale, 2006\r
+//\r
+\r
+// ----- configuration -----\r
+// Fast mode switch\r
+// Fast mode does not copy Worksheets but require opened base document at the same time.\r
+var bFastMode = false;\r
+\r
+// ----- constants -----\r
+var vbCritical = 0x10;\r
+var vbExclamation = 0x30;\r
+//var vbInformation = 0x40;\r
+\r
+var xlNone = -4142;\r
+var xlMaximized = -4137;\r
+var xlArrangeStyleHorizontal = -4128;\r
+var xlCellValue = 1;\r
+//var xlExpression = 2;\r
+//var xlEqual = 3;\r
+var xlNotEqual = 4;\r
+\r
+//var vOffice95 = 7;\r
+//var vOffice97 = 8;\r
+//var vOffice2000 = 9;\r
+//var vOffice2002 = 10;\r
+var vOffice2003 = 11;\r
+//var vOffice2007 = 12;\r
+//var vOffice2010 = 14;\r
+//var vOffice2013 = 15;\r
+\r
+// ----- main -----\r
+\r
+var aWarningMessages = Array();\r
+\r
+var objArgs = WScript.Arguments;\r
+if (objArgs.length < 2)\r
+{\r
+    Abort("Usage: [CScript | WScript] diff-xls.js base.xls new.xls", "Invalid arguments");\r
+}\r
+\r
+var sBaseDoc = objArgs(0);\r
+var sNewDoc = objArgs(1);\r
+\r
+var objScript = new ActiveXObject("Scripting.FileSystemObject");\r
+\r
+if (objScript.GetBaseName(sBaseDoc) === objScript.GetBaseName(sNewDoc))\r
+{\r
+    Abort("File '" + sBaseDoc + "' and '" + sNewDoc + "' is same file name.\nCannot compare the documents.", "Same file name");\r
+}\r
+\r
+if (!objScript.FileExists(sBaseDoc))\r
+{\r
+    Abort("File '" + sBaseDoc + "' does not exist.\nCannot compare the documents.", "File not found");\r
+}\r
+\r
+if (!objScript.FileExists(sNewDoc))\r
+{\r
+    Abort("File '" + sNewDoc + "' does not exist.\nCannot compare the documents.", "File not found");\r
+}\r
+\r
+sBaseDoc = objScript.GetAbsolutePathName(sBaseDoc);\r
+sNewDoc = objScript.GetAbsolutePathName(sNewDoc);\r
+objScript = null;\r
+\r
+var objExcelApp;\r
+try\r
+{\r
+    objExcelApp = WScript.CreateObject("Excel.Application");\r
+}\r
+catch (e)\r
+{\r
+    Abort("You must have Excel installed to perform this operation.", "Excel Instantiation Failed");\r
+}\r
+var fExcelVersion = parseInt(objExcelApp.Version, 10);\r
+\r
+// Open base Excel book\r
+var objBaseWorkbook;\r
+try\r
+{\r
+    objBaseWorkbook = objExcelApp.Workbooks.Open(sBaseDoc, null, true);\r
+}\r
+catch (e)\r
+{\r
+    Abort("Failed to open '" + sBaseDoc + "'\nIt might not be a valid Excel file.", "File open error");\r
+}\r
+\r
+// Open new Excel book\r
+var objNewWorkbook;\r
+try\r
+{\r
+    objNewWorkbook = objExcelApp.Workbooks.Open(sNewDoc, null, true);\r
+}\r
+catch (e)\r
+{\r
+    Abort("Failed to open '" + sNewDoc + "'\nIt might not be a valid Excel file.", "File open error");\r
+}\r
+\r
+// Show Excel window\r
+objExcelApp.Visible = true;\r
+\r
+// Arrange windows\r
+if (objBaseWorkbook.ProtectWindows || objNewWorkbook.ProtectWindows)\r
+{\r
+    StoreWarning("Unable to arrange windows because one or both Workbooks are protected.");\r
+}\r
+else\r
+{\r
+    // Make windows a compare side by side view\r
+    if (fExcelVersion >= vOffice2003)\r
+    {\r
+        objExcelApp.Windows.CompareSideBySideWith(objExcelApp.Windows(2).Caption);\r
+    }\r
+    objExcelApp.Application.WindowState = xlMaximized;\r
+    objExcelApp.Windows.Arrange(xlArrangeStyleHorizontal);\r
+}\r
+\r
+if (!bFastMode && objNewWorkbook.ProtectWindows)\r
+{\r
+    StoreWarning("Fall back to fast mode because " + objNewWorkbook.Name + " is protected.");\r
+    bFastMode = true;\r
+}\r
+\r
+// Mark differences in sNewDoc red\r
+var length = objNewWorkbook.Worksheets.Count;\r
+for (var i = 1; i <= length; i++)\r
+{\r
+    var objBaseWorksheet = objBaseWorkbook.Worksheets(i);\r
+    var objNewWorksheet = objNewWorkbook.Worksheets(i);\r
+\r
+    UnhideWorksheet(objBaseWorksheet);\r
+    UnhideWorksheet(objNewWorksheet);\r
+\r
+    if (!bFastMode)\r
+    {\r
+        objBaseWorkbook.Sheets(i).Copy(null, objNewWorkbook.Sheets(objNewWorkbook.Sheets.Count));\r
+        var objDummyWorksheet = objNewWorkbook.Sheets(objNewWorkbook.Sheets.Count);\r
+        objDummyWorksheet.Name = "Dummy_for_Comparison" + i;\r
+        objDummyWorksheet.Visible = true;\r
+        if (fExcelVersion >= vOffice2003)\r
+        {\r
+            objDummyWorksheet.Tab.ColorIndex = 16;  // 16:Dark gray RGB(128,128,128)\r
+        }\r
+    }\r
+\r
+    if (objNewWorksheet.ProtectContents)\r
+    {\r
+        StoreWarning("Unable to mark differences to " +\r
+            ToAbsoluteReference(objNewWorksheet) +\r
+            " because the Worksheet is protected.");\r
+    }\r
+    else\r
+    {\r
+        objNewWorksheet.Cells.FormatConditions.Delete();\r
+        var sFormula;\r
+        if (bFastMode)\r
+        {\r
+            sFormula = "=INDIRECT(\"" + ToAbsoluteReference(objBaseWorksheet) + "!\"&ADDRESS(ROW(),COLUMN()))";\r
+        }\r
+        else\r
+        {\r
+            sFormula = "=INDIRECT(\"Dummy_for_Comparison" + i + "!\"&ADDRESS(ROW(),COLUMN()))";\r
+        }\r
+        objNewWorksheet.Cells.FormatConditions.Add(xlCellValue, xlNotEqual, sFormula);\r
+        objNewWorksheet.Cells.FormatConditions(1).Interior.ColorIndex = 3;  // 3:Red RGB(128,0,0)\r
+    }\r
+\r
+}\r
+\r
+// Activate first Worksheet\r
+objBaseWorkbook.Sheets(1).Activate();\r
+objNewWorkbook.Sheets(1).Activate();\r
+\r
+// Suppress save dialog if nothing changed\r
+objBaseWorkbook.Saved = true;\r
+objNewWorkbook.Saved = true;\r
+\r
+// Show warnings if exist\r
+ShowWarning();\r
+\r
+WScript.Quit(0);\r
+\r
+\r
+// ----- functions -----\r
+\r
+// Show Message Dialog\r
+// VBcript's MsgBox emulation\r
+function MsgBox(sMessage, iButtons, sTitle)\r
+{\r
+    var objShell = new ActiveXObject("WScript.Shell");\r
+    objShell.popup(sMessage, 0, sTitle, iButtons);\r
+}\r
+\r
+// Show an error message and quit script with cleanup Excel Application Object.\r
+function Abort(sMessage, sTitle)\r
+{\r
+    MsgBox(sMessage, vbCritical, sTitle);\r
+    if (objExcelApp)\r
+    {\r
+        objExcelApp.Quit();\r
+    }\r
+    WScript.Quit(1);\r
+}\r
+\r
+// Unhide the Worksheet if it is hidden.\r
+// This also sets color to the tab, if Office2003 or later.\r
+//  - 46(Orange)      : Hidden Worksheet\r
+//  - xlNone(default) : Not hidden Worksheet\r
+function UnhideWorksheet(objWorksheet)\r
+{\r
+    if (objWorksheet.Visible)\r
+    {\r
+        if (fExcelVersion >= vOffice2003)\r
+        {\r
+            if (objWorksheet.Tab.ColorIndex !== xlNone)\r
+            {\r
+                if (objWorksheet.Parent.ProtectStructure)\r
+                {\r
+                    StoreWarning("Unable to set tab color to " +\r
+                        ToAbsoluteReference(objWorksheet) +\r
+                        " because the Workbook's structure is protected.");\r
+                }\r
+                else\r
+                {\r
+                    objWorksheet.Tab.ColorIndex = xlNone;\r
+                }\r
+            }\r
+        }\r
+    }\r
+    else\r
+    {\r
+        if (objWorksheet.Parent.ProtectStructure)\r
+        {\r
+            StoreWarning("Unable to unhide " +\r
+                ToAbsoluteReference(objWorksheet) +\r
+                " because the Workbook's structure is protected.");\r
+        }\r
+        else\r
+        {\r
+            objWorksheet.Visible = true;\r
+            if (fExcelVersion >= vOffice2003)\r
+            {\r
+                objWorksheet.Tab.ColorIndex = 10;   // 10:Green RGB(0,128,0)\r
+            }\r
+        }\r
+    }\r
+}\r
+\r
+// Generate Absolute Reference Formula of Worksheet.\r
+function ToAbsoluteReference(objWorksheet)\r
+{\r
+    return "[" + objWorksheet.Parent.Name + "]" + objWorksheet.Name;\r
+}\r
+\r
+// Accumulate a warning message.\r
+function StoreWarning(sMessage)\r
+{\r
+    aWarningMessages[aWarningMessages.length] = sMessage;\r
+}\r
+\r
+// Show accumulated warning messages if exist.\r
+// To avoid make huge message dialog, this limits message count to show.\r
+function ShowWarning()\r
+{\r
+    if (aWarningMessages.length === 0)\r
+    {\r
+        return;\r
+    }\r
+    var sMessage = "The following warnings occurred while processing.\n";\r
+    for (var i = 0; i < aWarningMessages.length; i++)\r
+    {\r
+        if (i >= 10)\r
+        {\r
+            sMessage += "... And more " + (aWarningMessages.length - i) + " messages";\r
+            break;\r
+        }\r
+        sMessage += "[" + (i + 1) + "] " + aWarningMessages[i] + "\n";\r
+    }\r
+    MsgBox(sMessage, vbExclamation, "Warning");\r
+}\r
index c4bea7c..c102638 100644 (file)
-// extensions: doc;docx;docm
-//
-// TortoiseSVN Merge script for Word Doc files
-//
-// Copyright (C) 2004-2008, 2011 the TortoiseSVN team
-// This file is distributed under the same license as TortoiseSVN
-//
-// Last commit by:
-// $Author$
-// $Date$
-// $Rev$
-//
-// Authors:
-// Dan Sheridan, 2008
-// Davide Orlandi and Hans-Emil Skogh, 2005
-// Richard Horton, 2011
-//
-
-var objArgs, num, sTheirDoc, sMyDoc, sBaseDoc, sMergedDoc,
-    objScript, word, baseDoc, myDoc, theirDoc, WSHShell;
-
-// Microsoft Office versions for Microsoft Windows OS
-var vOffice2000 = 9;
-var vOffice2002 = 10;
-//var vOffice2003 = 11;
-var vOffice2007 = 12;
-var vOffice2010 = 14;
-// WdCompareTarget
-var wdCompareTargetSelected = 0;
-//var wdCompareTargetCurrent = 1;
-var wdCompareTargetNew = 2;
-var wdMergeTargetCurrent = 1;
-
-objArgs = WScript.Arguments;
-num = objArgs.length;
-if (num < 4)
-{
-    WScript.Echo("Usage: [CScript | WScript] merge-doc.js merged.doc theirs.doc mine.doc base.doc");
-    WScript.Quit(1);
-}
-
-sMergedDoc = objArgs(0);
-sTheirDoc = objArgs(1);
-sMyDoc = objArgs(2);
-sBaseDoc = objArgs(3);
-
-objScript = new ActiveXObject("Scripting.FileSystemObject");
-
-if (!objScript.FileExists(sTheirDoc))
-{
-    WScript.Echo("File " + sTheirDoc + " does not exist.  Cannot compare the documents.", vbExclamation, "File not found");
-    WScript.Quit(1);
-}
-
-if (!objScript.FileExists(sMergedDoc))
-{
-    WScript.Echo("File " + sMergedDoc + " does not exist.  Cannot compare the documents.", vbExclamation, "File not found");
-    WScript.Quit(1);
-}
-
-objScript = null;
-
-try
-{
-    word = WScript.CreateObject("Word.Application");
-}
-catch (e)
-{
-    WScript.Echo("You must have Microsoft Word installed to perform this operation.");
-    WScript.Quit(1);
-}
-
-word.visible = true;
-
-// Open the base document
-baseDoc = word.Documents.Open(sTheirDoc);
-
-// Merge into the "My" document
-if (parseInt(word.Version) < vOffice2000)
-{
-    baseDoc.Compare(sMergedDoc);
-}
-else if (parseInt(word.Version) < vOffice2007)
-{
-    baseDoc.Compare(sMergedDoc, "Comparison", wdCompareTargetNew, true, true);
-}
-else if (parseInt(word.Version) < vOffice2010)
-{
-    baseDoc.Merge(sMergedDoc);
-}
-else
-{
-    //2010 - handle slightly differently as the basic merge isn't that good
-    //note this is designed specifically for svn 3 way merges, during the commit conflict resolution process
-    theirDoc = baseDoc;
-    baseDoc = word.Documents.Open(sBaseDoc);
-    myDoc = word.Documents.Open(sMyDoc);
-
-    baseDoc.Activate(); //required otherwise it compares the wrong docs !!!
-    baseDoc.Compare(sTheirDoc, "theirs", wdCompareTargetSelected, true, true);
-
-    baseDoc.Activate(); //required otherwise it compares the wrong docs !!!
-    baseDoc.Compare(sMyDoc, "mine", wdCompareTargetSelected, true, true);
-
-    //theirDoc.Save();
-    //myDoc.Save();
-    myDoc.Activate(); //required? just in case
-    myDoc.Merge(sTheirDoc, wdMergeTargetCurrent);
-}
-
-// Show the merge result
-if (parseInt(word.Version) < vOffice2007)
-{
-    word.ActiveDocument.Windows(1).Visible = 1;
-}
-
-// Close the first document
-if ((parseInt(word.Version) >= vOffice2002) && (parseInt(word.Version) < vOffice2010))
-{
-    baseDoc.Close();
-}
-
-// Show usage hint message
-WSHShell = WScript.CreateObject("WScript.Shell");
-if (WSHShell.Popup("You have to accept or reject the changes before\nsaving the document to prevent future problems.\n\nWould you like to see a help page on how to do this?", 0, "TSVN Word Merge", 4 + 64) === 6)
-{
-    WSHShell.Run("http://office.microsoft.com/en-us/assistance/HP030823691033.aspx");
-}
+// extensions: doc;docx;docm\r
+//\r
+// TortoiseSVN Merge script for Word Doc files\r
+//\r
+// Copyright (C) 2004-2008, 2011 the TortoiseSVN team\r
+// This file is distributed under the same license as TortoiseSVN\r
+//\r
+// Last commit by:\r
+// $Author$\r
+// $Date$\r
+// $Rev$\r
+//\r
+// Authors:\r
+// Dan Sheridan, 2008\r
+// Davide Orlandi and Hans-Emil Skogh, 2005\r
+// Richard Horton, 2011\r
+//\r
+\r
+var objArgs, num, sTheirDoc, sMyDoc, sBaseDoc, sMergedDoc,\r
+    objScript, word, baseDoc, myDoc, theirDoc, WSHShell;\r
+\r
+// Microsoft Office versions for Microsoft Windows OS\r
+var vOffice2000 = 9;\r
+var vOffice2002 = 10;\r
+//var vOffice2003 = 11;\r
+var vOffice2007 = 12;\r
+var vOffice2010 = 14;\r
+// WdCompareTarget\r
+var wdCompareTargetSelected = 0;\r
+//var wdCompareTargetCurrent = 1;\r
+var wdCompareTargetNew = 2;\r
+var wdMergeTargetCurrent = 1;\r
+\r
+objArgs = WScript.Arguments;\r
+num = objArgs.length;\r
+if (num < 4)\r
+{\r
+    WScript.Echo("Usage: [CScript | WScript] merge-doc.js merged.doc theirs.doc mine.doc base.doc");\r
+    WScript.Quit(1);\r
+}\r
+\r
+sMergedDoc = objArgs(0);\r
+sTheirDoc = objArgs(1);\r
+sMyDoc = objArgs(2);\r
+sBaseDoc = objArgs(3);\r
+\r
+objScript = new ActiveXObject("Scripting.FileSystemObject");\r
+\r
+if (!objScript.FileExists(sTheirDoc))\r
+{\r
+    WScript.Echo("File " + sTheirDoc + " does not exist.  Cannot compare the documents.", vbExclamation, "File not found");\r
+    WScript.Quit(1);\r
+}\r
+\r
+if (!objScript.FileExists(sMergedDoc))\r
+{\r
+    WScript.Echo("File " + sMergedDoc + " does not exist.  Cannot compare the documents.", vbExclamation, "File not found");\r
+    WScript.Quit(1);\r
+}\r
+\r
+objScript = null;\r
+\r
+try\r
+{\r
+    word = WScript.CreateObject("Word.Application");\r
+}\r
+catch (e)\r
+{\r
+    WScript.Echo("You must have Microsoft Word installed to perform this operation.");\r
+    WScript.Quit(1);\r
+}\r
+\r
+word.visible = true;\r
+\r
+// Open the base document\r
+baseDoc = word.Documents.Open(sTheirDoc);\r
+\r
+// Merge into the "My" document\r
+if (parseInt(word.Version, 10) < vOffice2000)\r
+{\r
+    baseDoc.Compare(sMergedDoc);\r
+}\r
+else if (parseInt(word.Version, 10) < vOffice2007)\r
+{\r
+    baseDoc.Compare(sMergedDoc, "Comparison", wdCompareTargetNew, true, true);\r
+}\r
+else if (parseInt(word.Version, 10) < vOffice2010)\r
+{\r
+    baseDoc.Merge(sMergedDoc);\r
+}\r
+else\r
+{\r
+    //2010 - handle slightly differently as the basic merge isn't that good\r
+    //note this is designed specifically for svn 3 way merges, during the commit conflict resolution process\r
+    theirDoc = baseDoc;\r
+    baseDoc = word.Documents.Open(sBaseDoc);\r
+    myDoc = word.Documents.Open(sMyDoc);\r
+\r
+    baseDoc.Activate(); //required otherwise it compares the wrong docs !!!\r
+    baseDoc.Compare(sTheirDoc, "theirs", wdCompareTargetSelected, true, true);\r
+\r
+    baseDoc.Activate(); //required otherwise it compares the wrong docs !!!\r
+    baseDoc.Compare(sMyDoc, "mine", wdCompareTargetSelected, true, true);\r
+\r
+    //theirDoc.Save();\r
+    //myDoc.Save();\r
+    myDoc.Activate(); //required? just in case\r
+    myDoc.Merge(sTheirDoc, wdMergeTargetCurrent);\r
+}\r
+\r
+// Show the merge result\r
+if (parseInt(word.Version, 10) < vOffice2007)\r
+{\r
+    word.ActiveDocument.Windows(1).Visible = 1;\r
+}\r
+\r
+// Close the first document\r
+if ((parseInt(word.Version, 10) >= vOffice2002) && (parseInt(word.Version, 10) < vOffice2010))\r
+{\r
+    baseDoc.Close();\r
+}\r
+\r
+// Show usage hint message\r
+WSHShell = WScript.CreateObject("WScript.Shell");\r
+if (WSHShell.Popup("You have to accept or reject the changes before\nsaving the document to prevent future problems.\n\nWould you like to see a help page on how to do this?", 0, "TSVN Word Merge", 4 + 64) === 6)\r
+{\r
+    WSHShell.Run("http://office.microsoft.com/en-us/assistance/HP030823691033.aspx");\r
+}\r
index b6596e7..8878055 100644 (file)
@@ -1,88 +1,88 @@
-' extensions: ods;odt;sxw
-'
-' TortoiseSVN Merge script for Open Office Calc files
-'
-' Copyright (C) 2004-2009 the TortoiseSVN team
-' This file is distributed under the same license as TortoiseSVN
-'
-' Last commit by:
-' $Author$
-' $Date$
-' $Rev$
-'
-' Authors:
-' Jonathan Ashley, 2007
-' Stefan Küng, 2006, 2009
-'
-dim objArgs,num,sBaseDoc,sMergedDoc,sTheirDoc,sMyDoc,objScript,word,destination
-
-Set objArgs = WScript.Arguments
-num = objArgs.Count
-if num < 4 then
-    MsgBox "Usage: [CScript | WScript] merge-ods.vbs %merged %theirs %mine %base", vbExclamation, "Invalid arguments"
-    WScript.Quit 1
-end if
-
-sMergedDoc=objArgs(0)
-sTheirDoc=objArgs(1)
-sMyDoc=objArgs(2)
-sBaseDoc=objArgs(3)
-
-Set objScript = CreateObject("Scripting.FileSystemObject")
-If objScript.FileExists(sMyDoc) = False Then
-    MsgBox "File " + sMyDoc +" does not exist.  Cannot compare the documents.", vbExclamation, "File not found"
-    Wscript.Quit 1
-End If
-If objScript.FileExists(sTheirDoc) = False Then
-    MsgBox "File " + sTheirDoc +" does not exist.  Cannot compare the documents.", vbExclamation, "File not found"
-    Wscript.Quit 1
-End If
-'remove the file write protection
-objScript.GetFile(sMyDoc).Attributes = objScript.GetFile(sMyDoc).Attributes And Not 1
-objScript.GetFile(sTheirDoc).Attributes = objScript.GetFile(sTheirDoc).Attributes And Not 1
-
-Set objScript = Nothing
-
-On Error Resume Next
-'The service manager is always the starting point
-'If there is no office running then an office is started
-Set objServiceManager= Wscript.CreateObject("com.sun.star.ServiceManager")
-If Err.Number <> 0 Then
-    Wscript.Echo "You must have OpenOffice installed to perform this operation."
-    Wscript.Quit 1
-End If
-
-On Error Goto 0
-'Create the DesktopSet
-Set objDesktop = objServiceManager.createInstance("com.sun.star.frame.Desktop")
-'Adjust the paths for OO
-sMyDoc=Replace(sMyDoc, "\", "/")
-sMyDoc=Replace(sMyDoc, ":", "|")
-sMyDoc=Replace(sMyDoc, "%", "%25")
-sMyDoc=Replace(sMyDoc, " ", "%20")
-sMyDoc=Replace(sMyDoc, "#", "%23")
-sMyDoc="file:///"&sMyDoc
-sTheirDoc=Replace(sTheirDoc, "\", "/")
-sTheirDoc=Replace(sTheirDoc, ":", "|")
-sTheirDoc=Replace(sTheirDoc, "%", "%25")
-sTheirDoc=Replace(sTheirDoc, " ", "%20")
-sTheirDoc=Replace(sTheirDoc, "#", "%23")
-sTheirDoc="file:///"&sTheirDoc
-
-'Open the %mine document
-Dim oPropertyValue(0)
-Set oPropertyValue(0) = objServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue")
-oPropertyValue(0).Name = "ShowTrackedChanges"
-oPropertyValue(0).Value = true
-Set objDocument=objDesktop.loadComponentFromURL(sMyDoc,"_blank", 0, oPropertyValue)
-
-'Set the frame
-Set Frame = objDesktop.getCurrentFrame
-
-Set dispatcher=objServiceManager.CreateInstance("com.sun.star.frame.DispatchHelper")
-
-'Execute the comparison
-Dispatcher.executeDispatch Frame, ".uno:ShowTrackedChanges", "", 0, oPropertyValue
-oPropertyValue(0).Name = "URL"
-oPropertyValue(0).Value = sTheirDoc
-Dispatcher.executeDispatch Frame, ".uno:CompareDocuments", "", 0, oPropertyValue
+' extensions: ods;odt;sxw\r
+'\r
+' TortoiseSVN Merge script for Open Office Calc files\r
+'\r
+' Copyright (C) 2004-2009 the TortoiseSVN team\r
+' This file is distributed under the same license as TortoiseSVN\r
+'\r
+' Last commit by:\r
+' $Author$\r
+' $Date$\r
+' $Rev$\r
+'\r
+' Authors:\r
+' Jonathan Ashley, 2007\r
+' Stefan Küng, 2006, 2009\r
+'\r
+dim objArgs,num,sBaseDoc,sMergedDoc,sTheirDoc,sMyDoc,objScript,word,destination\r
+\r
+Set objArgs = WScript.Arguments\r
+num = objArgs.Count\r
+if num < 4 then\r
+    MsgBox "Usage: [CScript | WScript] merge-ods.vbs %merged %theirs %mine %base", vbExclamation, "Invalid arguments"\r
+    WScript.Quit 1\r
+end if\r
+\r
+sMergedDoc=objArgs(0)\r
+sTheirDoc=objArgs(1)\r
+sMyDoc=objArgs(2)\r
+sBaseDoc=objArgs(3)\r
+\r
+Set objScript = CreateObject("Scripting.FileSystemObject")\r
+If objScript.FileExists(sMyDoc) = False Then\r
+    MsgBox "File " + sMyDoc +" does not exist.  Cannot compare the documents.", vbExclamation, "File not found"\r
+    Wscript.Quit 1\r
+End If\r
+If objScript.FileExists(sTheirDoc) = False Then\r
+    MsgBox "File " + sTheirDoc +" does not exist.  Cannot compare the documents.", vbExclamation, "File not found"\r
+    Wscript.Quit 1\r
+End If\r
+'remove the file write protection\r
+objScript.GetFile(sMyDoc).Attributes = objScript.GetFile(sMyDoc).Attributes And Not 1\r
+objScript.GetFile(sTheirDoc).Attributes = objScript.GetFile(sTheirDoc).Attributes And Not 1\r
+\r
+Set objScript = Nothing\r
+\r
+On Error Resume Next\r
+'The service manager is always the starting point\r
+'If there is no office running then an office is started\r
+Set objServiceManager= Wscript.CreateObject("com.sun.star.ServiceManager")\r
+If Err.Number <> 0 Then\r
+    Wscript.Echo "You must have OpenOffice installed to perform this operation."\r
+    Wscript.Quit 1\r
+End If\r
+\r
+On Error Goto 0\r
+'Create the DesktopSet\r
+Set objDesktop = objServiceManager.createInstance("com.sun.star.frame.Desktop")\r
+'Adjust the paths for OO\r
+sMyDoc=Replace(sMyDoc, "\", "/")\r
+sMyDoc=Replace(sMyDoc, ":", "|")\r
+sMyDoc=Replace(sMyDoc, "%", "%25")\r
+sMyDoc=Replace(sMyDoc, " ", "%20")\r
+sMyDoc=Replace(sMyDoc, "#", "%23")\r
+sMyDoc="file:///"&sMyDoc\r
+sTheirDoc=Replace(sTheirDoc, "\", "/")\r
+sTheirDoc=Replace(sTheirDoc, ":", "|")\r
+sTheirDoc=Replace(sTheirDoc, "%", "%25")\r
+sTheirDoc=Replace(sTheirDoc, " ", "%20")\r
+sTheirDoc=Replace(sTheirDoc, "#", "%23")\r
+sTheirDoc="file:///"&sTheirDoc\r
+\r
+'Open the %mine document\r
+Dim oPropertyValue(0)\r
+Set oPropertyValue(0) = objServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue")\r
+oPropertyValue(0).Name = "ShowTrackedChanges"\r
+oPropertyValue(0).Value = true\r
+Set objDocument=objDesktop.loadComponentFromURL(sMyDoc,"_blank", 0, oPropertyValue)\r
+\r
+'Set the frame\r
+Set Frame = objDesktop.getCurrentFrame\r
+\r
+Set dispatcher=objServiceManager.CreateInstance("com.sun.star.frame.DispatchHelper")\r
+\r
+'Execute the comparison\r
+Dispatcher.executeDispatch Frame, ".uno:ShowTrackedChanges", "", 0, oPropertyValue\r
+oPropertyValue(0).Name = "URL"\r
+oPropertyValue(0).Value = sTheirDoc\r
+Dispatcher.executeDispatch Frame, ".uno:CompareDocuments", "", 0, oPropertyValue\r