OSDN Git Service

Share resource file between TortoiseGitBlame and TortoiseProc
[tortoisegit/TortoiseGitJp.git] / contrib / other / diff-scripts / merge-doc.js
1 //\r
2 // TortoiseSVN Merge script for Word Doc files\r
3 //\r
4 // Copyright (C) 2004-2008 the TortoiseSVN team\r
5 // This file is distributed under the same license as TortoiseSVN\r
6 //\r
7 // Last commit by:\r
8 // $Author: luebbe $\r
9 // $Date: 2008-06-13 21:52:53 +0800 (Fri, 13 Jun 2008) $\r
10 // $Rev: 13247 $\r
11 //\r
12 // Authors:\r
13 // Dan Sheridan, 2008\r
14 // Davide Orlandi and Hans-Emil Skogh, 2005\r
15 //\r
16 \r
17 var objArgs,num,sTheirDoc,sMyDoc,sBaseDoc,sMergedDoc,objScript,word,baseDoc,WSHShell;\r
18 \r
19 // Microsoft Office versions for Microsoft Windows OS\r
20 var vOffice2000 = 9;\r
21 var vOffice2002 = 10;\r
22 var vOffice2003 = 11;\r
23 var vOffice2007 = 12;\r
24 // WdCompareTarget\r
25 var wdCompareTargetSelected = 0;\r
26 var wdCompareTargetCurrent = 1;\r
27 var wdCompareTargetNew = 2;\r
28 \r
29 objArgs = WScript.Arguments;\r
30 num = objArgs.length;\r
31 if (num < 4)\r
32 {\r
33    WScript.Echo("Usage: [CScript | WScript] merge-doc.js merged.doc theirs.doc mine.doc base.doc");\r
34    WScript.Quit(1);\r
35 }\r
36 \r
37 sMergedDoc=objArgs(0);\r
38 sTheirDoc=objArgs(1);\r
39 sMyDoc=objArgs(2);\r
40 sBaseDoc=objArgs(3);\r
41 \r
42 objScript = new ActiveXObject("Scripting.FileSystemObject")\r
43 if ( ! objScript.FileExists(sTheirDoc))\r
44 {\r
45     WScript.Echo("File " + sTheirDoc +" does not exist.  Cannot compare the documents.", vbExclamation, "File not found");\r
46     WScript.Quit(1);\r
47 }\r
48 if ( ! objScript.FileExists(sMergedDoc))\r
49 {\r
50     WScript.Echo("File " + sMergedDoc +" does not exist.  Cannot compare the documents.", vbExclamation, "File not found");\r
51     WScript.Quit(1);\r
52 }\r
53 \r
54 objScript = null\r
55 \r
56 try\r
57 {\r
58         word = WScript.CreateObject("Word.Application");\r
59 }\r
60 catch(e)\r
61 {\r
62    WScript.Echo("You must have Microsoft Word installed to perform this operation.");\r
63    WScript.Quit(1);\r
64 }\r
65 \r
66 word.visible = true\r
67 \r
68 // Open the base document\r
69 baseDoc = word.Documents.Open(sTheirDoc);\r
70 \r
71 // Merge into the "My" document\r
72 if (Number(word.Version) < vOffice2000)\r
73 {\r
74         baseDoc.Compare(sMergedDoc);\r
75 }\r
76 else if (Number(word.Version) < vOffice2007)\r
77 {\r
78         baseDoc.Compare(sMergedDoc, "Comparison", wdCompareTargetNew, true, true);\r
79 } else {\r
80         baseDoc.Merge(sMergedDoc);\r
81 }\r
82 \r
83 // Show the merge result\r
84 if (Number(word.Version) < 12)\r
85 {\r
86         word.ActiveDocument.Windows(1).Visible = 1;\r
87 }\r
88 \r
89 // Close the first document\r
90 if (Number(word.Version) >= 10)\r
91 {\r
92    baseDoc.Close();\r
93 }\r
94 \r
95 // Show usage hint message\r
96 WSHShell = WScript.CreateObject("WScript.Shell");\r
97 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
98 {\r
99     WSHShell.Run("http://office.microsoft.com/en-us/assistance/HP030823691033.aspx");\r
100 }\r