Hex Artifact Content Вы: nobody
Вход

Artifact c4467365eaa0ff95f2cda042484e18456292fca4:


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......