Artifact
c4467365eaa0ff95f2cda042484e18456292fca4:
- File
dvcs/diff_doc.js
— part of check-in
[9f736b6e17]
at
2012-03-20 21:04:01
on branch dvcs
— добавлен ввод коментария для commit, рефакторинг
(user:
sosnae
size: 6074)
[more...]
0000: 24 65 6e 67 69 6e 65 20 4a 53 63 72 69 70 74 0d $engine JScript.
0010: 0a 24 75 6e 61 6d 65 20 64 69 66 66 5f 64 6f 63 .$uname diff_doc
0020: 5f 66 69 6c 65 0d 0a 24 64 6e 61 6d 65 20 42 61 _file..$dname Ba
0030: 63 6b 65 6e 64 20 ea 20 64 69 66 66 20 ef f0 ee ckend . diff ...
0040: f1 ec ee f2 f0 f3 20 28 64 6f 63 2c 64 6f 63 78 ...... (doc,docx
0050: 29 0d 0a 0d 0a 0d 0a 76 61 72 20 6f 62 6a 41 72 )......var objAr
0060: 67 73 2c 6e 75 6d 2c 73 42 61 73 65 44 6f 63 2c gs,num,sBaseDoc,
0070: 73 4e 65 77 44 6f 63 2c 73 54 65 6d 70 44 6f 63 sNewDoc,sTempDoc
0080: 2c 6f 62 6a 53 63 72 69 70 74 2c 77 6f 72 64 2c ,objScript,word,
0090: 64 65 73 74 69 6e 61 74 69 6f 6e 3b 0d 0a 2f 2f destination;..//
00a0: 20 4d 69 63 72 6f 73 6f 66 74 20 4f 66 66 69 63 Microsoft Offic
00b0: 65 20 76 65 72 73 69 6f 6e 73 20 66 6f 72 20 4d e versions for M
00c0: 69 63 72 6f 73 6f 66 74 20 57 69 6e 64 6f 77 73 icrosoft Windows
00d0: 20 4f 53 0d 0a 76 61 72 20 76 4f 66 66 69 63 65 OS..var vOffice
00e0: 32 30 30 30 20 3d 20 39 3b 0d 0a 76 61 72 20 76 2000 = 9;..var v
00f0: 4f 66 66 69 63 65 32 30 30 32 20 3d 20 31 30 3b Office2002 = 10;
0100: 0d 0a 76 61 72 20 76 4f 66 66 69 63 65 32 30 30 ..var vOffice200
0110: 33 20 3d 20 31 31 3b 0d 0a 76 61 72 20 76 4f 66 3 = 11;..var vOf
0120: 66 69 63 65 32 30 30 37 20 3d 20 31 32 3b 0d 0a fice2007 = 12;..
0130: 2f 2f 20 57 64 43 6f 6d 70 61 72 65 54 61 72 67 // WdCompareTarg
0140: 65 74 0d 0a 76 61 72 20 77 64 43 6f 6d 70 61 72 et..var wdCompar
0150: 65 54 61 72 67 65 74 53 65 6c 65 63 74 65 64 20 eTargetSelected
0160: 3d 20 30 3b 0d 0a 76 61 72 20 77 64 43 6f 6d 70 = 0;..var wdComp
0170: 61 72 65 54 61 72 67 65 74 43 75 72 72 65 6e 74 areTargetCurrent
0180: 20 3d 20 31 3b 0d 0a 76 61 72 20 77 64 43 6f 6d = 1;..var wdCom
0190: 70 61 72 65 54 61 72 67 65 74 4e 65 77 20 3d 20 pareTargetNew =
01a0: 32 3b 0d 0a 2f 2f 20 57 64 56 69 65 77 54 79 70 2;..// WdViewTyp
01b0: 65 0d 0a 76 61 72 20 77 64 4d 61 73 74 65 72 56 e..var wdMasterV
01c0: 69 65 77 20 3d 20 35 3b 0d 0a 76 61 72 20 77 64 iew = 5;..var wd
01d0: 4e 6f 72 6d 61 6c 56 69 65 77 20 3d 20 31 3b 0d NormalView = 1;.
01e0: 0a 76 61 72 20 77 64 4f 75 74 6c 69 6e 65 56 69 .var wdOutlineVi
01f0: 65 77 20 3d 20 32 3b 0d 0a 2f 2f 20 57 64 53 61 ew = 2;..// WdSa
0200: 76 65 4f 70 74 69 6f 6e 73 0d 0a 76 61 72 20 77 veOptions..var w
0210: 64 44 6f 4e 6f 74 53 61 76 65 43 68 61 6e 67 65 dDoNotSaveChange
0220: 73 20 3d 20 30 3b 0d 0a 76 61 72 20 77 64 50 72 s = 0;..var wdPr
0230: 6f 6d 70 74 54 6f 53 61 76 65 43 68 61 6e 67 65 omptToSaveChange
0240: 73 20 3d 20 2d 32 3b 0d 0a 76 61 72 20 77 64 53 s = -2;..var wdS
0250: 61 76 65 43 68 61 6e 67 65 73 20 3d 20 2d 31 3b aveChanges = -1;
0260: 0d 0a 0d 0a 2f 2f 6f 62 6a 41 72 67 73 20 3d 20 ....//objArgs =
0270: 57 53 63 72 69 70 74 2e 41 72 67 75 6d 65 6e 74 WScript.Argument
0280: 73 3b 0d 0a 2f 2f 6e 75 6d 20 3d 20 6f 62 6a 41 s;..//num = objA
0290: 72 67 73 2e 6c 65 6e 67 74 68 3b 0d 0a 2f 2f 69 rgs.length;..//i
02a0: 66 20 28 6e 75 6d 20 3c 20 32 29 0d 0a 2f 2f 7b f (num < 2)..//{
02b0: 0d 0a 2f 2f 20 20 20 4d 65 73 73 61 67 65 28 22 ..// Message("
02c0: 55 73 61 67 65 3a 20 5b 43 53 63 72 69 70 74 20 Usage: [CScript
02d0: 7c 20 57 53 63 72 69 70 74 5d 20 64 69 66 66 2d | WScript] diff-
02e0: 64 6f 63 2e 6a 73 20 62 61 73 65 2e 64 6f 63 20 doc.js base.doc
02f0: 6e 65 77 2e 64 6f 63 22 29 3b 0d 0a 2f 2f 20 20 new.doc");..//
0300: 20 2f 2f 20 57 53 63 72 69 70 74 2e 51 75 69 74 // WScript.Quit
0310: 28 31 29 3b 20 0d 0a 20 2f 2f 7d 0d 0a 0d 0a 2f (1); .. //}..../
0320: 2f 73 42 61 73 65 44 6f 63 20 3d 20 6f 62 6a 41 /sBaseDoc = objA
0330: 72 67 73 28 30 29 3b 0d 0a 2f 2f 73 4e 65 77 44 rgs(0);..//sNewD
0340: 6f 63 20 3d 20 6f 62 6a 41 72 67 73 28 31 29 3b oc = objArgs(1);
0350: 0d 0a 0d 0a 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e ........function
0360: 20 64 69 66 66 20 28 73 42 61 73 65 44 6f 63 2c diff (sBaseDoc,
0370: 20 73 4e 65 77 44 6f 63 29 20 7b 0d 0a 2f 2f 20 sNewDoc) {..//
0380: 65 78 74 65 6e 73 69 6f 6e 73 3a 20 64 6f 63 3b extensions: doc;
0390: 64 6f 63 78 3b 64 6f 63 6d 0d 0a 2f 2f 0d 0a 2f docx;docm..//../
03a0: 2f 20 54 6f 72 74 6f 69 73 65 53 56 4e 20 44 69 / TortoiseSVN Di
03b0: 66 66 20 73 63 72 69 70 74 20 66 6f 72 20 57 6f ff script for Wo
03c0: 72 64 20 44 6f 63 20 66 69 6c 65 73 0d 0a 2f 2f rd Doc files..//
03d0: 0d 0a 2f 2f 20 43 6f 70 79 72 69 67 68 74 20 28 ..// Copyright (
03e0: 43 29 20 32 30 30 34 2d 32 30 30 38 20 74 68 65 C) 2004-2008 the
03f0: 20 54 6f 72 74 6f 69 73 65 53 56 4e 20 74 65 61 TortoiseSVN tea
0400: 6d 0d 0a 2f 2f 20 54 68 69 73 20 66 69 6c 65 20 m..// This file
0410: 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 75 is distributed u
0420: 6e 64 65 72 20 74 68 65 20 73 61 6d 65 20 6c 69 nder the same li
0430: 63 65 6e 73 65 20 61 73 20 54 6f 72 74 6f 69 73 cense as Tortois
0440: 65 53 56 4e 0d 0a 2f 2f 0d 0a 2f 2f 20 4c 61 73 eSVN..//..// Las
0450: 74 20 63 6f 6d 6d 69 74 20 62 79 3a 0d 0a 2f 2f t commit by:..//
0460: 20 24 41 75 74 68 6f 72 3a 20 74 6f 72 74 6f 69 $Author: tortoi
0470: 73 65 73 76 6e 20 24 0d 0a 2f 2f 20 24 44 61 74 sesvn $..// $Dat
0480: 65 3a 20 32 30 31 31 2d 30 34 2d 30 31 20 32 32 e: 2011-04-01 22
0490: 3a 32 38 3a 31 30 20 2b 30 32 30 30 20 28 46 72 :28:10 +0200 (Fr
04a0: 2c 20 30 31 2e 20 41 70 72 20 32 30 31 31 29 20 , 01. Apr 2011)
04b0: 24 0d 0a 2f 2f 20 24 52 65 76 3a 20 32 31 30 39 $..// $Rev: 2109
04c0: 35 20 24 0d 0a 2f 2f 0d 0a 2f 2f 20 41 75 74 68 5 $..//..// Auth
04d0: 6f 72 73 3a 0d 0a 2f 2f 20 53 74 65 66 61 6e 20 ors:..// Stefan
04e0: 4b 75 65 6e 67 2c 20 32 30 31 31 0d 0a 2f 2f 20 Kueng, 2011..//
04f0: 4a 61 72 65 64 20 53 69 6c 76 61 2c 20 32 30 30 Jared Silva, 200
0500: 38 0d 0a 2f 2f 20 44 61 76 69 64 65 20 4f 72 6c 8..// Davide Orl
0510: 61 6e 64 69 20 61 6e 64 20 48 61 6e 73 2d 45 6d andi and Hans-Em
0520: 69 6c 20 53 6b 6f 67 68 2c 20 32 30 30 35 0d 0a il Skogh, 2005..
0530: 2f 2f 0d 0a 0d 0a 0d 0a 6f 62 6a 53 63 72 69 70 //......objScrip
0540: 74 20 3d 20 6e 65 77 20 41 63 74 69 76 65 58 4f t = new ActiveXO
0550: 62 6a 65 63 74 28 22 53 63 72 69 70 74 69 6e 67 bject("Scripting
0560: 2e 46 69 6c 65 53 79 73 74 65 6d 4f 62 6a 65 63 .FileSystemObjec
0570: 74 22 29 3b 0d 0a 69 66 20 28 20 21 20 6f 62 6a t");..if ( ! obj
0580: 53 63 72 69 70 74 2e 46 69 6c 65 45 78 69 73 74 Script.FileExist
0590: 73 28 73 42 61 73 65 44 6f 63 29 29 0d 0a 7b 0d s(sBaseDoc))..{.
05a0: 0a 20 20 20 20 4d 65 73 73 61 67 65 28 22 46 69 . Message("Fi
05b0: 6c 65 20 22 20 2b 20 73 42 61 73 65 44 6f 63 20 le " + sBaseDoc
05c0: 2b 20 22 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 + " does not exi
05d0: 73 74 2e 20 20 43 61 6e 6e 6f 74 20 63 6f 6d 70 st. Cannot comp
05e0: 61 72 65 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 are the document
05f0: 73 2e 22 29 3b 0d 0a 20 20 20 20 2f 2f 20 57 53 s.");.. // WS
0600: 63 72 69 70 74 2e 51 75 69 74 28 31 29 3b 20 0d cript.Quit(1); .
0610: 0a 20 72 65 74 75 72 6e 0d 0a 7d 0d 0a 69 66 20 . return..}..if
0620: 28 20 21 20 6f 62 6a 53 63 72 69 70 74 2e 46 69 ( ! objScript.Fi
0630: 6c 65 45 78 69 73 74 73 28 73 4e 65 77 44 6f 63 leExists(sNewDoc
0640: 29 29 0d 0a 7b 0d 0a 20 20 20 20 4d 65 73 73 61 ))..{.. Messa
0650: 67 65 28 22 46 69 6c 65 20 22 20 2b 20 73 4e 65 ge("File " + sNe
0660: 77 44 6f 63 20 2b 20 22 20 64 6f 65 73 20 6e 6f wDoc + " does no
0670: 74 20 65 78 69 73 74 2e 20 20 43 61 6e 6e 6f 74 t exist. Cannot
0680: 20 63 6f 6d 70 61 72 65 20 74 68 65 20 64 6f 63 compare the doc
0690: 75 6d 65 6e 74 73 2e 22 29 3b 0d 0a 20 20 20 20 uments.");..
06a0: 2f 2f 20 57 53 63 72 69 70 74 2e 51 75 69 74 28 // WScript.Quit(
06b0: 31 29 3b 20 0d 0a 20 72 65 74 75 72 6e 0d 0a 7d 1); .. return..}
06c0: 0d 0a 0d 0a 74 72 79 0d 0a 7b 0d 0a 20 20 20 77 ....try..{.. w
06d0: 6f 72 64 20 3d 20 6e 65 77 20 41 63 74 69 76 65 ord = new Active
06e0: 58 4f 62 6a 65 63 74 28 22 57 6f 72 64 2e 41 70 XObject("Word.Ap
06f0: 70 6c 69 63 61 74 69 6f 6e 22 29 3b 0d 0a 7d 0d plication");..}.
0700: 0a 63 61 74 63 68 28 65 29 0d 0a 7b 0d 0a 09 2f .catch(e)..{.../
0710: 2f 20 62 65 66 6f 72 65 20 67 69 76 69 6e 67 20 / before giving
0720: 75 70 2c 20 74 72 79 20 77 69 74 68 20 4f 70 65 up, try with Ope
0730: 6e 4f 66 66 69 63 65 0d 0a 09 74 72 79 0d 0a 09 nOffice...try...
0740: 7b 0d 0a 09 09 76 61 72 20 4f 4f 3b 0d 0a 09 09 {....var OO;....
0750: 4f 4f 20 3d 20 6e 65 77 20 41 63 74 69 76 65 58 OO = new ActiveX
0760: 4f 62 6a 65 63 74 28 22 63 6f 6d 2e 73 75 6e 2e Object("com.sun.
0770: 73 74 61 72 2e 53 65 72 76 69 63 65 4d 61 6e 61 star.ServiceMana
0780: 67 65 72 22 29 3b 0d 0a 09 7d 0d 0a 09 63 61 74 ger");...}...cat
0790: 63 68 28 65 29 0d 0a 09 7b 0d 0a 09 09 4d 65 73 ch(e)...{....Mes
07a0: 73 61 67 65 28 22 59 6f 75 20 6d 75 73 74 20 68 sage("You must h
07b0: 61 76 65 20 4d 69 63 72 6f 73 6f 66 74 20 57 6f ave Microsoft Wo
07c0: 72 64 20 6f 72 20 4f 70 65 6e 4f 66 66 69 63 65 rd or OpenOffice
07d0: 20 69 6e 73 74 61 6c 6c 65 64 20 74 6f 20 70 65 installed to pe
07e0: 72 66 6f 72 6d 20 74 68 69 73 20 6f 70 65 72 61 rform this opera
07f0: 74 69 6f 6e 2e 22 29 3b 0d 0a 09 09 2f 2f 57 53 tion.");....//WS
0800: 63 72 69 70 74 2e 51 75 69 74 28 31 29 3b 0d 0a cript.Quit(1);..
0810: 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 3b 0d return;.
0820: 0a 09 7d 0d 0a 09 2f 2f 20 79 65 73 2c 20 4f 4f ..}...// yes, OO
0830: 20 69 73 20 69 6e 73 74 61 6c 6c 65 64 20 2d 20 is installed -
0840: 64 6f 20 74 68 65 20 64 69 66 66 20 77 69 74 68 do the diff with
0850: 20 74 68 61 74 20 6f 6e 65 20 69 6e 73 74 65 61 that one instea
0860: 64 0d 0a 09 76 61 72 20 6f 62 6a 46 69 6c 65 20 d...var objFile
0870: 3d 20 6f 62 6a 53 63 72 69 70 74 2e 47 65 74 46 = objScript.GetF
0880: 69 6c 65 28 73 4e 65 77 44 6f 63 29 3b 0d 0a 09 ile(sNewDoc);...
0890: 69 66 20 28 28 6f 62 6a 46 69 6c 65 2e 41 74 74 if ((objFile.Att
08a0: 72 69 62 75 74 65 73 20 26 20 31 29 3d 3d 31 29 ributes & 1)==1)
08b0: 0d 0a 09 7b 0d 0a 09 09 2f 2f 20 72 65 73 65 74 ...{....// reset
08c0: 20 74 68 65 20 72 65 61 64 6f 6e 6c 79 20 61 74 the readonly at
08d0: 74 72 69 62 75 74 65 0d 0a 09 09 6f 62 6a 46 69 tribute....objFi
08e0: 6c 65 2e 41 74 74 72 69 62 75 74 65 73 20 3d 20 le.Attributes =
08f0: 6f 62 6a 46 69 6c 65 2e 41 74 74 72 69 62 75 74 objFile.Attribut
0900: 65 73 20 26 20 28 7e 31 29 3b 0d 0a 09 7d 0d 0a es & (~1);...}..
0910: 09 2f 2f 43 72 65 61 74 65 20 74 68 65 20 44 65 .//Create the De
0920: 73 6b 74 6f 70 53 65 74 20 0d 0a 09 76 61 72 20 sktopSet ...var
0930: 6f 62 6a 44 65 73 6b 74 6f 70 20 3d 20 4f 4f 2e objDesktop = OO.
0940: 63 72 65 61 74 65 49 6e 73 74 61 6e 63 65 28 22 createInstance("
0950: 63 6f 6d 2e 73 75 6e 2e 73 74 61 72 2e 66 72 61 com.sun.star.fra
0960: 6d 65 2e 44 65 73 6b 74 6f 70 22 29 3b 0d 0a 09 me.Desktop");...
0970: 76 61 72 20 6f 62 6a 55 72 69 54 72 61 6e 73 6c var objUriTransl
0980: 61 74 6f 72 20 3d 20 4f 4f 2e 63 72 65 61 74 65 ator = OO.create
0990: 49 6e 73 74 61 6e 63 65 28 22 63 6f 6d 2e 73 75 Instance("com.su
09a0: 6e 2e 73 74 61 72 2e 75 72 69 2e 45 78 74 65 72 n.star.uri.Exter
09b0: 6e 61 6c 55 72 69 52 65 66 65 72 65 6e 63 65 54 nalUriReferenceT
09c0: 72 61 6e 73 6c 61 74 6f 72 22 29 3b 0d 0a 09 2f ranslator");.../
09d0: 2f 41 64 6a 75 73 74 20 74 68 65 20 70 61 74 68 /Adjust the path
09e0: 73 20 66 6f 72 20 4f 4f 0d 0a 09 73 42 61 73 65 s for OO...sBase
09f0: 44 6f 63 20 3d 20 73 42 61 73 65 44 6f 63 2e 72 Doc = sBaseDoc.r
0a00: 65 70 6c 61 63 65 28 2f 5c 5c 2f 67 2c 20 22 2f eplace(/\\/g, "/
0a10: 22 29 3b 0d 0a 09 73 42 61 73 65 44 6f 63 20 3d ");...sBaseDoc =
0a20: 20 73 42 61 73 65 44 6f 63 2e 72 65 70 6c 61 63 sBaseDoc.replac
0a30: 65 28 2f 3a 2f 67 2c 20 22 7c 22 29 3b 0d 0a 09 e(/:/g, "|");...
0a40: 73 42 61 73 65 44 6f 63 20 3d 20 73 42 61 73 65 sBaseDoc = sBase
0a50: 44 6f 63 2e 72 65 70 6c 61 63 65 28 2f 20 2f 67 Doc.replace(/ /g
0a60: 2c 20 22 25 32 30 22 29 3b 0d 0a 09 73 42 61 73 , "%20");...sBas
0a70: 65 44 6f 63 3d 22 66 69 6c 65 3a 2f 2f 2f 22 20 eDoc="file:///"
0a80: 2b 20 73 42 61 73 65 44 6f 63 3b 0d 0a 09 73 42 + sBaseDoc;...sB
0a90: 61 73 65 44 6f 63 3d 6f 62 6a 55 72 69 54 72 61 aseDoc=objUriTra
0aa0: 6e 73 6c 61 74 6f 72 2e 74 72 61 6e 73 6c 61 74 nslator.translat
0ab0: 65 54 6f 49 6e 74 65 72 6e 61 6c 28 73 42 61 73 eToInternal(sBas
0ac0: 65 44 6f 63 29 3b 0d 0a 09 73 4e 65 77 44 6f 63 eDoc);...sNewDoc
0ad0: 20 3d 20 73 4e 65 77 44 6f 63 2e 72 65 70 6c 61 = sNewDoc.repla
0ae0: 63 65 28 2f 5c 5c 2f 67 2c 20 22 2f 22 29 3b 0d ce(/\\/g, "/");.
0af0: 0a 09 73 4e 65 77 44 6f 63 20 3d 20 73 4e 65 77 ..sNewDoc = sNew
0b00: 44 6f 63 2e 72 65 70 6c 61 63 65 28 2f 3a 2f 67 Doc.replace(/:/g
0b10: 2c 20 22 7c 22 29 3b 0d 0a 09 73 4e 65 77 44 6f , "|");...sNewDo
0b20: 63 20 3d 20 73 4e 65 77 44 6f 63 2e 72 65 70 6c c = sNewDoc.repl
0b30: 61 63 65 28 2f 20 2f 67 2c 20 22 25 32 30 22 29 ace(/ /g, "%20")
0b40: 3b 0d 0a 09 73 4e 65 77 44 6f 63 3d 22 66 69 6c ;...sNewDoc="fil
0b50: 65 3a 2f 2f 2f 22 20 2b 20 73 4e 65 77 44 6f 63 e:///" + sNewDoc
0b60: 3b 0d 0a 09 73 4e 65 77 44 6f 63 3d 6f 62 6a 55 ;...sNewDoc=objU
0b70: 72 69 54 72 61 6e 73 6c 61 74 6f 72 2e 74 72 61 riTranslator.tra
0b80: 6e 73 6c 61 74 65 54 6f 49 6e 74 65 72 6e 61 6c nslateToInternal
0b90: 28 73 4e 65 77 44 6f 63 29 3b 0d 0a 0d 0a 09 2f (sNewDoc);...../
0ba0: 2f 4f 70 65 6e 20 74 68 65 20 25 62 61 73 65 20 /Open the %base
0bb0: 64 6f 63 75 6d 65 6e 74 0d 0a 09 76 61 72 20 6f document...var o
0bc0: 50 72 6f 70 65 72 74 79 56 61 6c 75 65 20 3d 20 PropertyValue =
0bd0: 6e 65 77 20 41 72 72 61 79 28 29 3b 0d 0a 09 6f new Array();...o
0be0: 50 72 6f 70 65 72 74 79 56 61 6c 75 65 5b 30 5d PropertyValue[0]
0bf0: 20 3d 20 4f 4f 2e 42 72 69 64 67 65 5f 47 65 74 = OO.Bridge_Get
0c00: 53 74 72 75 63 74 28 22 63 6f 6d 2e 73 75 6e 2e Struct("com.sun.
0c10: 73 74 61 72 2e 62 65 61 6e 73 2e 50 72 6f 70 65 star.beans.Prope
0c20: 72 74 79 56 61 6c 75 65 22 29 3b 0d 0a 09 6f 50 rtyValue");...oP
0c30: 72 6f 70 65 72 74 79 56 61 6c 75 65 5b 30 5d 2e ropertyValue[0].
0c40: 4e 61 6d 65 20 3d 20 22 53 68 6f 77 54 72 61 63 Name = "ShowTrac
0c50: 6b 65 64 43 68 61 6e 67 65 73 22 3b 0d 0a 09 6f kedChanges";...o
0c60: 50 72 6f 70 65 72 74 79 56 61 6c 75 65 5b 30 5d PropertyValue[0]
0c70: 2e 56 61 6c 75 65 20 3d 20 74 72 75 65 3b 0d 0a .Value = true;..
0c80: 09 76 61 72 20 6f 62 6a 44 6f 63 75 6d 65 6e 74 .var objDocument
0c90: 3d 6f 62 6a 44 65 73 6b 74 6f 70 2e 6c 6f 61 64 =objDesktop.load
0ca0: 43 6f 6d 70 6f 6e 65 6e 74 46 72 6f 6d 55 52 4c ComponentFromURL
0cb0: 28 73 4e 65 77 44 6f 63 2c 22 5f 62 6c 61 6e 6b (sNewDoc,"_blank
0cc0: 22 2c 20 30 2c 20 6f 50 72 6f 70 65 72 74 79 56 ", 0, oPropertyV
0cd0: 61 6c 75 65 29 3b 0d 0a 09 0d 0a 09 2f 2f 53 65 alue);......//Se
0ce0: 74 20 74 68 65 20 66 72 61 6d 65 0d 0a 09 76 61 t the frame...va
0cf0: 72 20 46 72 61 6d 65 20 3d 20 6f 62 6a 44 65 73 r Frame = objDes
0d00: 6b 74 6f 70 2e 67 65 74 43 75 72 72 65 6e 74 46 ktop.getCurrentF
0d10: 72 61 6d 65 28 29 3b 0d 0a 09 0d 0a 09 76 61 72 rame();......var
0d20: 20 64 69 73 70 61 74 63 68 65 72 3d 4f 4f 2e 43 dispatcher=OO.C
0d30: 72 65 61 74 65 49 6e 73 74 61 6e 63 65 28 22 63 reateInstance("c
0d40: 6f 6d 2e 73 75 6e 2e 73 74 61 72 2e 66 72 61 6d om.sun.star.fram
0d50: 65 2e 44 69 73 70 61 74 63 68 48 65 6c 70 65 72 e.DispatchHelper
0d60: 22 29 3b 0d 0a 09 0d 0a 09 2f 2f 45 78 65 63 75 ");......//Execu
0d70: 74 65 20 74 68 65 20 63 6f 6d 70 61 72 69 73 6f te the compariso
0d80: 6e 0d 0a 09 64 69 73 70 61 74 63 68 65 72 2e 65 n...dispatcher.e
0d90: 78 65 63 75 74 65 44 69 73 70 61 74 63 68 28 46 xecuteDispatch(F
0da0: 72 61 6d 65 2c 20 22 2e 75 6e 6f 3a 53 68 6f 77 rame, ".uno:Show
0db0: 54 72 61 63 6b 65 64 43 68 61 6e 67 65 73 22 2c TrackedChanges",
0dc0: 20 22 22 2c 20 30 2c 20 6f 50 72 6f 70 65 72 74 "", 0, oPropert
0dd0: 79 56 61 6c 75 65 29 3b 0d 0a 09 6f 50 72 6f 70 yValue);...oProp
0de0: 65 72 74 79 56 61 6c 75 65 5b 30 5d 2e 4e 61 6d ertyValue[0].Nam
0df0: 65 20 3d 20 22 55 52 4c 22 3b 0d 0a 09 6f 50 72 e = "URL";...oPr
0e00: 6f 70 65 72 74 79 56 61 6c 75 65 5b 30 5d 2e 56 opertyValue[0].V
0e10: 61 6c 75 65 20 3d 20 73 42 61 73 65 44 6f 63 3b alue = sBaseDoc;
0e20: 0d 0a 09 64 69 73 70 61 74 63 68 65 72 2e 65 78 ...dispatcher.ex
0e30: 65 63 75 74 65 44 69 73 70 61 74 63 68 28 46 72 ecuteDispatch(Fr
0e40: 61 6d 65 2c 20 22 2e 75 6e 6f 3a 43 6f 6d 70 61 ame, ".uno:Compa
0e50: 72 65 44 6f 63 75 6d 65 6e 74 73 22 2c 20 22 22 reDocuments", ""
0e60: 2c 20 30 2c 20 6f 50 72 6f 70 65 72 74 79 56 61 , 0, oPropertyVa
0e70: 6c 75 65 29 3b 0d 0a 20 20 20 20 72 65 74 75 72 lue);.. retur
0e80: 6e 0d 0a 09 2f 2f 57 53 63 72 69 70 74 2e 51 75 n...//WScript.Qu
0e90: 69 74 28 30 29 3b 0d 0a 7d 0d 0a 0d 0a 69 66 20 it(0);..}....if
0ea0: 28 70 61 72 73 65 49 6e 74 28 77 6f 72 64 2e 56 (parseInt(word.V
0eb0: 65 72 73 69 6f 6e 29 20 3e 3d 20 76 4f 66 66 69 ersion) >= vOffi
0ec0: 63 65 32 30 30 37 29 0d 0a 7b 0d 0a 09 73 54 65 ce2007)..{...sTe
0ed0: 6d 70 44 6f 63 20 3d 20 73 4e 65 77 44 6f 63 3b mpDoc = sNewDoc;
0ee0: 0d 0a 09 73 4e 65 77 44 6f 63 20 3d 20 73 42 61 ...sNewDoc = sBa
0ef0: 73 65 44 6f 63 3b 0d 0a 09 73 42 61 73 65 44 6f seDoc;...sBaseDo
0f00: 63 20 3d 20 73 54 65 6d 70 44 6f 63 3b 0d 0a 7d c = sTempDoc;..}
0f10: 0d 0a 0d 0a 6f 62 6a 53 63 72 69 70 74 20 3d 20 ....objScript =
0f20: 6e 75 6c 6c 3b 0d 0a 0d 0a 77 6f 72 64 2e 76 69 null;....word.vi
0f30: 73 69 62 6c 65 20 3d 20 74 72 75 65 3b 0d 0a 0d sible = true;...
0f40: 0a 2f 2f 20 4f 70 65 6e 20 74 68 65 20 6e 65 77 .// Open the new
0f50: 20 64 6f 63 75 6d 65 6e 74 0d 0a 74 72 79 0d 0a document..try..
0f60: 7b 0d 0a 20 20 20 20 64 65 73 74 69 6e 61 74 69 {.. destinati
0f70: 6f 6e 20 3d 20 77 6f 72 64 2e 44 6f 63 75 6d 65 on = word.Docume
0f80: 6e 74 73 2e 4f 70 65 6e 28 73 4e 65 77 44 6f 63 nts.Open(sNewDoc
0f90: 2c 20 74 72 75 65 2c 20 74 72 75 65 29 3b 0d 0a , true, true);..
0fa0: 7d 0d 0a 63 61 74 63 68 28 65 29 0d 0a 7b 0d 0a }..catch(e)..{..
0fb0: 20 20 20 20 74 72 79 0d 0a 20 20 20 20 7b 0d 0a try.. {..
0fc0: 20 20 20 20 20 20 20 20 2f 2f 20 6f 70 65 6e 20 // open
0fd0: 65 6d 70 74 79 20 64 6f 63 75 6d 65 6e 74 20 74 empty document t
0fe0: 6f 20 70 72 65 76 65 6e 74 20 62 75 67 20 77 68 o prevent bug wh
0ff0: 65 72 65 20 66 69 72 73 74 20 4f 70 65 6e 28 29 ere first Open()
1000: 20 63 61 6c 6c 20 66 61 69 6c 73 0d 0a 20 20 20 call fails..
1010: 20 20 20 20 20 77 6f 72 64 2e 44 6f 63 75 6d 65 word.Docume
1020: 6e 74 73 2e 41 64 64 28 29 3b 0d 0a 20 20 20 20 nts.Add();..
1030: 20 20 20 20 64 65 73 74 69 6e 61 74 69 6f 6e 20 destination
1040: 3d 20 77 6f 72 64 2e 44 6f 63 75 6d 65 6e 74 73 = word.Documents
1050: 2e 4f 70 65 6e 28 73 4e 65 77 44 6f 63 2c 20 74 .Open(sNewDoc, t
1060: 72 75 65 2c 20 74 72 75 65 29 3b 0d 0a 20 20 20 rue, true);..
1070: 20 7d 0d 0a 20 20 20 20 63 61 74 63 68 28 65 29 }.. catch(e)
1080: 0d 0a 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 .. {..
1090: 20 4d 65 73 73 61 67 65 28 22 45 72 72 6f 72 20 Message("Error
10a0: 6f 70 65 6e 69 6e 67 20 22 20 2b 20 73 4e 65 77 opening " + sNew
10b0: 44 6f 63 29 3b 0d 0a 20 20 20 20 20 20 20 20 2f Doc);.. /
10c0: 2f 20 51 75 69 74 0d 0a 20 20 20 20 20 20 20 20 / Quit..
10d0: 2f 2f 20 57 53 63 72 69 70 74 2e 51 75 69 74 28 // WScript.Quit(
10e0: 31 29 3b 20 0d 0a 20 72 65 74 75 72 6e 0d 0a 20 1); .. return..
10f0: 20 20 20 7d 0d 0a 7d 0d 0a 0d 0a 2f 2f 20 49 66 }..}....// If
1100: 20 74 68 65 20 54 79 70 65 20 70 72 6f 70 65 72 the Type proper
1110: 74 79 20 72 65 74 75 72 6e 73 20 65 69 74 68 65 ty returns eithe
1120: 72 20 77 64 4f 75 74 6c 69 6e 65 56 69 65 77 20 r wdOutlineView
1130: 6f 72 20 77 64 4d 61 73 74 65 72 56 69 65 77 20 or wdMasterView
1140: 61 6e 64 20 74 68 65 20 43 6f 75 6e 74 20 70 72 and the Count pr
1150: 6f 70 65 72 74 79 20 72 65 74 75 72 6e 73 20 7a operty returns z
1160: 65 72 6f 2c 20 74 68 65 20 63 75 72 72 65 6e 74 ero, the current
1170: 20 64 6f 63 75 6d 65 6e 74 20 69 73 20 61 6e 20 document is an
1180: 6f 75 74 6c 69 6e 65 2e 0d 0a 69 66 20 28 28 28 outline...if (((
1190: 64 65 73 74 69 6e 61 74 69 6f 6e 2e 41 63 74 69 destination.Acti
11a0: 76 65 57 69 6e 64 6f 77 2e 56 69 65 77 2e 54 79 veWindow.View.Ty
11b0: 70 65 20 3d 3d 20 77 64 4f 75 74 6c 69 6e 65 56 pe == wdOutlineV
11c0: 69 65 77 29 20 7c 7c 20 28 64 65 73 74 69 6e 61 iew) || (destina
11d0: 74 69 6f 6e 2e 41 63 74 69 76 65 57 69 6e 64 6f tion.ActiveWindo
11e0: 77 2e 56 69 65 77 2e 54 79 70 65 20 3d 3d 20 77 w.View.Type == w
11f0: 64 4d 61 73 74 65 72 56 69 65 77 29 29 20 26 26 dMasterView)) &&
1200: 20 28 64 65 73 74 69 6e 61 74 69 6f 6e 2e 53 75 (destination.Su
1210: 62 64 6f 63 75 6d 65 6e 74 73 2e 43 6f 75 6e 74 bdocuments.Count
1220: 20 3d 3d 20 30 29 29 0d 0a 7b 0d 0a 20 20 20 20 == 0))..{..
1230: 2f 2f 20 43 68 61 6e 67 65 20 74 68 65 20 54 79 // Change the Ty
1240: 70 65 20 70 72 6f 70 65 72 74 79 20 6f 66 20 74 pe property of t
1250: 68 65 20 63 75 72 72 65 6e 74 20 64 6f 63 75 6d he current docum
1260: 65 6e 74 20 74 6f 20 6e 6f 72 6d 61 6c 0d 0a 20 ent to normal..
1270: 20 20 20 64 65 73 74 69 6e 61 74 69 6f 6e 2e 41 destination.A
1280: 63 74 69 76 65 57 69 6e 64 6f 77 2e 56 69 65 77 ctiveWindow.View
1290: 2e 54 79 70 65 20 3d 20 77 64 4e 6f 72 6d 61 6c .Type = wdNormal
12a0: 56 69 65 77 3b 0d 0a 7d 0d 0a 0d 0a 2f 2f 20 43 View;..}....// C
12b0: 6f 6d 70 61 72 65 20 74 6f 20 74 68 65 20 62 61 ompare to the ba
12c0: 73 65 20 64 6f 63 75 6d 65 6e 74 0d 0a 69 66 20 se document..if
12d0: 28 70 61 72 73 65 49 6e 74 28 77 6f 72 64 2e 56 (parseInt(word.V
12e0: 65 72 73 69 6f 6e 29 20 3c 3d 20 76 4f 66 66 69 ersion) <= vOffi
12f0: 63 65 32 30 30 30 29 0d 0a 7b 0d 0a 20 20 20 20 ce2000)..{..
1300: 2f 2f 20 43 6f 6d 70 61 72 65 20 66 6f 72 20 4f // Compare for O
1310: 66 66 69 63 65 20 32 30 30 30 20 61 6e 64 20 65 ffice 2000 and e
1320: 61 72 6c 69 65 72 0d 0a 20 20 20 20 74 72 79 0d arlier.. try.
1330: 0a 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 . {..
1340: 64 65 73 74 69 6e 61 74 69 6f 6e 2e 43 6f 6d 70 destination.Comp
1350: 61 72 65 28 73 42 61 73 65 44 6f 63 29 3b 0d 0a are(sBaseDoc);..
1360: 20 20 20 20 7d 0d 0a 20 20 20 20 63 61 74 63 68 }.. catch
1370: 28 65 29 0d 0a 20 20 20 20 7b 0d 0a 20 20 20 20 (e).. {..
1380: 20 20 20 20 4d 65 73 73 61 67 65 28 22 45 72 72 Message("Err
1390: 6f 72 20 63 6f 6d 70 61 72 69 6e 67 20 22 20 2b or comparing " +
13a0: 20 73 42 61 73 65 44 6f 63 20 2b 20 22 20 61 6e sBaseDoc + " an
13b0: 64 20 22 20 2b 20 73 4e 65 77 44 6f 63 29 3b 0d d " + sNewDoc);.
13c0: 0a 20 20 20 20 20 20 20 20 2f 2f 20 51 75 69 74 . // Quit
13d0: 0d 0a 20 20 20 20 20 20 20 20 2f 2f 57 53 63 72 .. //WScr
13e0: 69 70 74 2e 51 75 69 74 28 31 29 3b 0d 0a 20 20 ipt.Quit(1);..
13f0: 20 20 20 20 20 20 72 65 74 75 72 6e 0d 0a 20 20 return..
1400: 20 20 7d 0d 0a 7d 0d 0a 65 6c 73 65 0d 0a 7b 0d }..}..else..{.
1410: 0a 20 20 20 20 2f 2f 20 43 6f 6d 70 61 72 65 20 . // Compare
1420: 66 6f 72 20 4f 66 66 69 63 65 20 58 50 20 28 32 for Office XP (2
1430: 30 30 32 29 20 61 6e 64 20 6c 61 74 65 72 0d 0a 002) and later..
1440: 20 20 20 20 74 72 79 0d 0a 20 20 20 20 7b 0d 0a try.. {..
1450: 20 20 20 20 20 20 20 20 64 65 73 74 69 6e 61 74 destinat
1460: 69 6f 6e 2e 43 6f 6d 70 61 72 65 28 73 42 61 73 ion.Compare(sBas
1470: 65 44 6f 63 2c 20 22 43 6f 6d 70 61 72 69 73 6f eDoc, "Compariso
1480: 6e 22 2c 20 77 64 43 6f 6d 70 61 72 65 54 61 72 n", wdCompareTar
1490: 67 65 74 4e 65 77 2c 20 74 72 75 65 2c 20 74 72 getNew, true, tr
14a0: 75 65 29 3b 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 ue);.. }..
14b0: 20 63 61 74 63 68 28 65 29 0d 0a 20 20 20 20 7b catch(e).. {
14c0: 0d 0a 20 20 20 20 20 20 20 20 4d 65 73 73 61 67 .. Messag
14d0: 65 28 22 45 72 72 6f 72 20 63 6f 6d 70 61 72 69 e("Error compari
14e0: 6e 67 20 22 20 2b 20 73 42 61 73 65 44 6f 63 20 ng " + sBaseDoc
14f0: 2b 20 22 20 61 6e 64 20 22 20 2b 20 73 4e 65 77 + " and " + sNew
1500: 44 6f 63 29 3b 0d 0a 20 20 20 20 20 20 20 20 2f Doc);.. /
1510: 2f 20 43 6c 6f 73 65 20 74 68 65 20 66 69 72 73 / Close the firs
1520: 74 20 64 6f 63 75 6d 65 6e 74 20 61 6e 64 20 71 t document and q
1530: 75 69 74 0d 0a 20 20 20 20 20 20 20 20 64 65 73 uit.. des
1540: 74 69 6e 61 74 69 6f 6e 2e 43 6c 6f 73 65 28 77 tination.Close(w
1550: 64 44 6f 4e 6f 74 53 61 76 65 43 68 61 6e 67 65 dDoNotSaveChange
1560: 73 29 3b 0d 0a 20 20 20 20 20 20 20 20 2f 2f 20 s);.. //
1570: 57 53 63 72 69 70 74 2e 51 75 69 74 28 31 29 3b WScript.Quit(1);
1580: 20 0d 0a 20 72 65 74 75 72 6e 0d 0a 20 20 20 20 .. return..
1590: 7d 0d 0a 7d 0d 0a 20 20 20 20 0d 0a 2f 2f 20 53 }..}.. ..// S
15a0: 68 6f 77 20 74 68 65 20 63 6f 6d 70 61 72 69 73 how the comparis
15b0: 6f 6e 20 72 65 73 75 6c 74 0d 0a 69 66 20 28 70 on result..if (p
15c0: 61 72 73 65 49 6e 74 28 77 6f 72 64 2e 56 65 72 arseInt(word.Ver
15d0: 73 69 6f 6e 29 20 3c 20 76 4f 66 66 69 63 65 32 sion) < vOffice2
15e0: 30 30 37 29 0d 0a 7b 0d 0a 09 77 6f 72 64 2e 41 007)..{...word.A
15f0: 63 74 69 76 65 44 6f 63 75 6d 65 6e 74 2e 57 69 ctiveDocument.Wi
1600: 6e 64 6f 77 73 28 31 29 2e 56 69 73 69 62 6c 65 ndows(1).Visible
1610: 20 3d 20 31 3b 0d 0a 7d 0d 0a 20 20 20 20 0d 0a = 1;..}.. ..
1620: 2f 2f 20 4d 61 72 6b 20 74 68 65 20 63 6f 6d 70 // Mark the comp
1630: 61 72 69 73 6f 6e 20 64 6f 63 75 6d 65 6e 74 20 arison document
1640: 61 73 20 73 61 76 65 64 20 74 6f 20 70 72 65 76 as saved to prev
1650: 65 6e 74 20 74 68 65 20 61 6e 6e 6f 79 69 6e 67 ent the annoying
1660: 0d 0a 2f 2f 20 22 53 61 76 65 20 61 73 22 20 64 ..// "Save as" d
1670: 69 61 6c 6f 67 20 66 72 6f 6d 20 61 70 70 65 61 ialog from appea
1680: 72 69 6e 67 2e 0d 0a 77 6f 72 64 2e 41 63 74 69 ring...word.Acti
1690: 76 65 44 6f 63 75 6d 65 6e 74 2e 53 61 76 65 64 veDocument.Saved
16a0: 20 3d 20 31 3b 0d 0a 20 20 20 20 0d 0a 2f 2f 20 = 1;.. ..//
16b0: 43 6c 6f 73 65 20 74 68 65 20 66 69 72 73 74 20 Close the first
16c0: 64 6f 63 75 6d 65 6e 74 0d 0a 69 66 20 28 70 61 document..if (pa
16d0: 72 73 65 49 6e 74 28 77 6f 72 64 2e 56 65 72 73 rseInt(word.Vers
16e0: 69 6f 6e 29 20 3e 3d 20 76 4f 66 66 69 63 65 32 ion) >= vOffice2
16f0: 30 30 32 29 0d 0a 7b 0d 0a 20 20 20 20 64 65 73 002)..{.. des
1700: 74 69 6e 61 74 69 6f 6e 2e 43 6c 6f 73 65 28 77 tination.Close(w
1710: 64 44 6f 4e 6f 74 53 61 76 65 43 68 61 6e 67 65 dDoNotSaveChange
1720: 73 29 3b 0d 0a 7d 0d 0a 7d 20 2f 2f 64 69 66 66 s);..}..} //diff
1730: 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 47 65 74 ....function Get
1740: 45 78 74 65 6e 73 69 6f 6e 20 28 29 20 7b 0d 0a Extension () {..
1750: 20 20 20 20 72 65 74 75 72 6e 20 22 64 6f 63 7c return "doc|
1760: 64 6f 63 78 22 3b 0d 0a 7d 20 2f 2f 47 65 74 45 docx";..} //GetE
1770: 78 74 65 6e 73 69 6f 6e 0d 0a 0d 0a 66 75 6e 63 xtension....func
1780: 74 69 6f 6e 20 47 65 74 42 61 63 6b 65 6e 64 28 tion GetBackend(
1790: 29 20 7b 0d 0a 20 20 20 20 72 65 74 75 72 6e 20 ) {.. return
17a0: 64 69 66 66 0d 0a 7d 20 2f 2f 47 65 74 42 61 63 diff..} //GetBac
17b0: 6b 65 6e 64 0d 0a 0d 0a 0d 0a kend......