0000: 0d 0a 23 69 6e 63 6c 75 64 65 20 22 73 74 64 61 ..#include "stda
0010: 66 78 2e 68 22 0d 0a 23 69 6e 63 6c 75 64 65 20 fx.h"..#include
0020: 22 72 73 72 63 2f 72 65 73 6f 75 72 63 65 2e 68 "rsrc/resource.h
0030: 22 0d 0a 23 69 6e 63 6c 75 64 65 20 22 53 65 61 "..#include "Sea
0040: 72 63 68 2e 68 22 0d 0a 23 69 6e 63 6c 75 64 65 rch.h"..#include
0050: 20 22 4e 53 65 61 72 63 68 2e 68 22 0d 0a 23 69 "NSearch.h"..#i
0060: 6e 63 6c 75 64 65 20 22 52 53 65 61 72 63 68 2e nclude "RSearch.
0070: 68 22 0d 0a 75 73 69 6e 67 20 6e 61 6d 65 73 70 h"..using namesp
0080: 61 63 65 20 6b 69 3b 0d 0a 75 73 69 6e 67 20 6e ace ki;..using n
0090: 61 6d 65 73 70 61 63 65 20 65 64 69 74 77 69 6e amespace editwin
00a0: 67 3b 0d 0a 75 73 69 6e 67 20 76 69 65 77 3a 3a g;..using view::
00b0: 56 50 6f 73 3b 0d 0a 0d 0a 0d 0a 0d 0a 2f 2f 2d VPos;........//-
00c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
00d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
00e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
00f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0100: 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 53 65 61 72 --------....Sear
0110: 63 68 4d 61 6e 61 67 65 72 3a 3a 53 65 61 72 63 chManager::Searc
0120: 68 4d 61 6e 61 67 65 72 28 20 6b 69 3a 3a 57 69 hManager( ki::Wi
0130: 6e 64 6f 77 26 20 77 2c 20 65 64 69 74 77 69 6e ndow& w, editwin
0140: 67 3a 3a 45 77 45 64 69 74 26 20 65 20 29 0d 0a g::EwEdit& e )..
0150: 09 3a 20 73 65 61 72 63 68 65 72 5f 28 20 4e 55 .: searcher_( NU
0160: 4c 4c 20 29 0d 0a 09 2c 20 65 64 69 74 5f 28 20 LL )..., edit_(
0170: 65 20 29 0d 0a 09 2c 20 44 6c 67 49 6d 70 6c 28 e )..., DlgImpl(
0180: 20 49 44 44 5f 46 49 4e 44 52 45 50 4c 41 43 45 IDD_FINDREPLACE
0190: 20 29 0d 0a 09 2c 20 62 49 67 6e 6f 72 65 43 61 )..., bIgnoreCa
01a0: 73 65 5f 28 20 74 72 75 65 20 29 20 2f 2f 20 31 se_( true ) // 1
01b0: 2e 30 38 20 64 65 66 61 75 6c 74 20 74 72 75 65 .08 default true
01c0: 0d 0a 09 2c 20 62 52 65 67 45 78 70 5f 28 20 66 ..., bRegExp_( f
01d0: 61 6c 73 65 20 29 0d 0a 09 2c 20 62 44 6f 77 6e alse )..., bDown
01e0: 53 65 61 72 63 68 5f 28 20 74 72 75 65 20 29 0d Search_( true ).
01f0: 0a 09 2c 20 6d 61 69 6e 57 6e 64 5f 28 20 77 20 .., mainWnd_( w
0200: 29 0d 0a 7b 0d 0a 7d 0d 0a 0d 0a 53 65 61 72 63 )..{..}....Searc
0210: 68 4d 61 6e 61 67 65 72 3a 3a 7e 53 65 61 72 63 hManager::~Searc
0220: 68 4d 61 6e 61 67 65 72 28 29 0d 0a 7b 0d 0a 7d hManager()..{..}
0230: 0d 0a 0d 0a 76 6f 69 64 20 53 65 61 72 63 68 4d ....void SearchM
0240: 61 6e 61 67 65 72 3a 3a 53 61 76 65 54 6f 49 4e anager::SaveToIN
0250: 49 28 20 6b 69 3a 3a 49 6e 69 46 69 6c 65 26 20 I( ki::IniFile&
0260: 69 6e 69 20 29 0d 0a 7b 0d 0a 09 69 6e 69 2e 53 ini )..{...ini.S
0270: 65 74 53 65 63 74 69 6f 6e 41 73 55 73 65 72 4e etSectionAsUserN
0280: 61 6d 65 28 29 3b 0d 0a 09 69 6e 69 2e 50 75 74 ame();...ini.Put
0290: 42 6f 6f 6c 28 20 54 45 58 54 28 22 53 65 61 72 Bool( TEXT("Sear
02a0: 63 68 49 67 6e 6f 72 65 43 61 73 65 22 29 2c 20 chIgnoreCase"),
02b0: 62 49 67 6e 6f 72 65 43 61 73 65 5f 20 29 3b 0d bIgnoreCase_ );.
02c0: 0a 09 69 6e 69 2e 50 75 74 42 6f 6f 6c 28 20 54 ..ini.PutBool( T
02d0: 45 58 54 28 22 53 65 61 72 63 68 52 65 67 45 78 EXT("SearchRegEx
02e0: 70 22 29 2c 20 62 52 65 67 45 78 70 5f 20 29 3b p"), bRegExp_ );
02f0: 0d 0a 7d 0d 0a 0d 0a 76 6f 69 64 20 53 65 61 72 ..}....void Sear
0300: 63 68 4d 61 6e 61 67 65 72 3a 3a 4c 6f 61 64 46 chManager::LoadF
0310: 72 6f 6d 49 4e 49 28 20 6b 69 3a 3a 49 6e 69 46 romINI( ki::IniF
0320: 69 6c 65 26 20 69 6e 69 20 29 0d 0a 7b 0d 0a 09 ile& ini )..{...
0330: 69 6e 69 2e 53 65 74 53 65 63 74 69 6f 6e 41 73 ini.SetSectionAs
0340: 55 73 65 72 4e 61 6d 65 28 29 3b 0d 0a 09 62 49 UserName();...bI
0350: 67 6e 6f 72 65 43 61 73 65 5f 20 3d 20 69 6e 69 gnoreCase_ = ini
0360: 2e 47 65 74 42 6f 6f 6c 28 20 54 45 58 54 28 22 .GetBool( TEXT("
0370: 53 65 61 72 63 68 49 67 6e 6f 72 65 43 61 73 65 SearchIgnoreCase
0380: 22 29 2c 20 62 49 67 6e 6f 72 65 43 61 73 65 5f "), bIgnoreCase_
0390: 20 29 3b 0d 0a 09 62 52 65 67 45 78 70 5f 20 20 );...bRegExp_
03a0: 20 20 20 3d 20 69 6e 69 2e 47 65 74 42 6f 6f 6c = ini.GetBool
03b0: 28 20 54 45 58 54 28 22 53 65 61 72 63 68 52 65 ( TEXT("SearchRe
03c0: 67 45 78 70 22 29 2c 20 62 52 65 67 45 78 70 5f gExp"), bRegExp_
03d0: 20 29 3b 0d 0a 7d 0d 0a 0d 0a 2f 2f 2d 2d 2d 2d );..}....//----
03e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
03f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0400: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0410: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0420: 2d 2d 2d 2d 2d 0d 0a 2f 2f 20 83 5f 83 43 83 41 -----..// ._.C.A
0430: 83 8d 83 4f 8a d6 8c 57 0d 0a 2f 2f 2d 2d 2d 2d ...O...W..//----
0440: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0450: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0460: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0470: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0480: 2d 2d 2d 2d 2d 0d 0a 0d 0a 76 6f 69 64 20 53 65 -----....void Se
0490: 61 72 63 68 4d 61 6e 61 67 65 72 3a 3a 53 68 6f archManager::Sho
04a0: 77 44 6c 67 28 29 0d 0a 7b 0d 0a 2f 2f 09 47 6f wDlg()..{..//.Go
04b0: 4d 6f 64 61 6c 28 20 3a 3a 47 65 74 50 61 72 65 Modal( ::GetPare
04c0: 6e 74 28 65 64 69 74 5f 2e 68 77 6e 64 28 29 29 nt(edit_.hwnd())
04d0: 20 29 3b 0d 0a 09 69 66 28 20 69 73 41 6c 69 76 );...if( isAliv
04e0: 65 28 29 20 29 0d 0a 09 7b 0d 0a 09 09 53 65 74 e() )...{....Set
04f0: 46 72 6f 6e 74 28 29 3b 0d 0a 09 7d 0d 0a 09 65 Front();...}...e
0500: 6c 73 65 0d 0a 09 7b 0d 0a 09 09 47 6f 4d 6f 64 lse...{....GoMod
0510: 65 6c 65 73 73 28 20 3a 3a 47 65 74 50 61 72 65 eless( ::GetPare
0520: 6e 74 28 65 64 69 74 5f 2e 68 77 6e 64 28 29 29 nt(edit_.hwnd())
0530: 20 29 3b 0d 0a 09 09 53 68 6f 77 55 70 28 29 3b );....ShowUp();
0540: 0d 0a 09 7d 0d 0a 7d 0d 0a 0d 0a 62 6f 6f 6c 20 ...}..}....bool
0550: 53 65 61 72 63 68 4d 61 6e 61 67 65 72 3a 3a 54 SearchManager::T
0560: 72 61 70 4d 73 67 28 4d 53 47 2a 20 6d 73 67 29 rapMsg(MSG* msg)
0570: 0d 0a 7b 0d 0a 09 69 66 28 20 21 20 69 73 41 6c ..{...if( ! isAl
0580: 69 76 65 28 29 20 7c 7c 20 74 79 70 65 28 29 3d ive() || type()=
0590: 3d 4d 4f 44 41 4c 20 29 0d 0a 09 09 72 65 74 75 =MODAL )....retu
05a0: 72 6e 20 66 61 6c 73 65 3b 0d 0a 09 72 65 74 75 rn false;...retu
05b0: 72 6e 20 44 6c 67 49 6d 70 6c 3a 3a 50 72 65 54 rn DlgImpl::PreT
05c0: 72 61 6e 73 6c 61 74 65 4d 65 73 73 61 67 65 28 ranslateMessage(
05d0: 6d 73 67 29 3b 0d 0a 7d 0d 0a 0d 0a 76 6f 69 64 msg);..}....void
05e0: 20 53 65 61 72 63 68 4d 61 6e 61 67 65 72 3a 3a SearchManager::
05f0: 6f 6e 5f 69 6e 69 74 28 29 0d 0a 7b 0d 0a 09 69 on_init()..{...i
0600: 66 28 20 62 49 67 6e 6f 72 65 43 61 73 65 5f 20 f( bIgnoreCase_
0610: 29 0d 0a 09 09 53 65 6e 64 4d 73 67 54 6f 49 74 )....SendMsgToIt
0620: 65 6d 28 20 49 44 43 5f 49 47 4e 4f 52 45 43 41 em( IDC_IGNORECA
0630: 53 45 2c 20 42 4d 5f 53 45 54 43 48 45 43 4b 2c SE, BM_SETCHECK,
0640: 20 42 53 54 5f 43 48 45 43 4b 45 44 20 29 3b 0d BST_CHECKED );.
0650: 0a 09 69 66 28 20 62 52 65 67 45 78 70 5f 20 29 ..if( bRegExp_ )
0660: 0d 0a 09 09 53 65 6e 64 4d 73 67 54 6f 49 74 65 ....SendMsgToIte
0670: 6d 28 20 49 44 43 5f 52 45 47 45 58 50 2c 20 42 m( IDC_REGEXP, B
0680: 4d 5f 53 45 54 43 48 45 43 4b 2c 20 42 53 54 5f M_SETCHECK, BST_
0690: 43 48 45 43 4b 45 44 20 29 3b 0d 0a 0d 0a 09 69 CHECKED );.....i
06a0: 66 28 20 65 64 69 74 5f 2e 67 65 74 43 75 72 73 f( edit_.getCurs
06b0: 6f 72 28 29 2e 69 73 53 65 6c 65 63 74 65 64 28 or().isSelected(
06c0: 29 20 29 0d 0a 09 7b 0d 0a 09 09 2f 2f 20 91 49 ) )...{....// .I
06d0: 91 f0 82 b3 82 ea 82 c4 82 a2 82 e9 8f f3 91 d4 ................
06e0: 82 c5 82 cd 81 41 8a ee 96 7b 93 49 82 c9 82 bb .....A...{.I....
06f0: 82 ea 82 f0 83 7b 83 62 83 4e 83 58 82 c9 95 5c .....{.b.N.X...\
0700: 8e a6 0d 0a 09 09 75 6c 6f 6e 67 20 64 6d 79 3b ......ulong dmy;
0710: 0d 0a 09 09 61 61 72 72 3c 75 6e 69 63 6f 64 65 ....aarr<unicode
0720: 3e 20 73 74 72 20 3d 20 65 64 69 74 5f 2e 67 65 > str = edit_.ge
0730: 74 43 75 72 73 6f 72 28 29 2e 67 65 74 53 65 6c tCursor().getSel
0740: 65 63 74 65 64 53 74 72 28 29 3b 0d 0a 0d 0a 09 ectedStr();.....
0750: 09 75 6c 6f 6e 67 20 6c 65 6e 3d 30 3b 0d 0a 09 .ulong len=0;...
0760: 09 66 6f 72 28 20 3b 20 73 74 72 5b 6c 65 6e 5d .for( ; str[len]
0770: 21 3d 4c 27 5c 30 27 20 26 26 20 73 74 72 5b 6c !=L'\0' && str[l
0780: 65 6e 5d 21 3d 4c 27 5c 6e 27 3b 20 2b 2b 6c 65 en]!=L'\n'; ++le
0790: 6e 20 29 3b 0d 0a 09 09 73 74 72 5b 6c 65 6e 5d n );....str[len]
07a0: 20 3d 20 4c 27 5c 30 27 3b 0d 0a 0d 0a 09 09 69 = L'\0';......i
07b0: 66 28 20 73 65 61 72 63 68 65 72 5f 2e 69 73 56 f( searcher_.isV
07c0: 61 6c 69 64 28 29 20 26 26 0d 0a 09 09 20 20 20 alid() &&....
07d0: 20 73 65 61 72 63 68 65 72 5f 2d 3e 53 65 61 72 searcher_->Sear
07e0: 63 68 28 20 73 74 72 2e 67 65 74 28 29 2c 20 6c ch( str.get(), l
07f0: 65 6e 2c 20 30 2c 20 26 64 6d 79 2c 20 26 64 6d en, 0, &dmy, &dm
0800: 79 20 29 20 29 0d 0a 09 09 7b 0d 0a 09 09 09 53 y ) )....{.....S
0810: 65 6e 64 4d 73 67 54 6f 49 74 65 6d 28 20 49 44 endMsgToItem( ID
0820: 43 5f 46 49 4e 44 42 4f 58 2c 20 57 4d 5f 53 45 C_FINDBOX, WM_SE
0830: 54 54 45 58 54 2c 20 30 2c 0d 0a 09 09 09 09 72 TTEXT, 0,......r
0840: 65 69 6e 74 65 72 70 72 65 74 5f 63 61 73 74 3c einterpret_cast<
0850: 4c 50 41 52 41 4d 3e 28 66 69 6e 64 53 74 72 5f LPARAM>(findStr_
0860: 2e 63 5f 73 74 72 28 29 29 20 29 3b 0d 0a 09 09 .c_str()) );....
0870: 7d 0d 0a 09 09 65 6c 73 65 0d 0a 09 09 7b 0d 0a }....else....{..
0880: 09 09 23 69 66 64 65 66 20 5f 55 4e 49 43 4f 44 ..#ifdef _UNICOD
0890: 45 0d 0a 09 09 09 53 65 6e 64 4d 73 67 54 6f 49 E.....SendMsgToI
08a0: 74 65 6d 28 20 49 44 43 5f 46 49 4e 44 42 4f 58 tem( IDC_FINDBOX
08b0: 2c 20 57 4d 5f 53 45 54 54 45 58 54 2c 20 30 2c , WM_SETTEXT, 0,
08c0: 0d 0a 09 09 09 09 72 65 69 6e 74 65 72 70 72 65 ......reinterpre
08d0: 74 5f 63 61 73 74 3c 4c 50 41 52 41 4d 3e 28 73 t_cast<LPARAM>(s
08e0: 74 72 2e 67 65 74 28 29 29 20 29 3b 0d 0a 09 09 tr.get()) );....
08f0: 23 65 6c 73 65 0d 0a 09 09 09 6b 69 3a 3a 61 61 #else.....ki::aa
0900: 72 72 3c 63 68 61 72 3e 20 61 62 28 20 6e 65 77 rr<char> ab( new
0910: 20 54 43 48 41 52 5b 28 6c 65 6e 2b 31 29 2a 33 TCHAR[(len+1)*3
0920: 5d 20 29 3b 0d 0a 09 09 09 3a 3a 57 69 64 65 43 ] );.....::WideC
0930: 68 61 72 54 6f 4d 75 6c 74 69 42 79 74 65 28 20 harToMultiByte(
0940: 43 50 5f 41 43 50 2c 20 30 2c 20 73 74 72 2e 67 CP_ACP, 0, str.g
0950: 65 74 28 29 2c 20 2d 31 2c 0d 0a 09 09 09 09 61 et(), -1,......a
0960: 62 2e 67 65 74 28 29 2c 20 28 6c 65 6e 2b 31 29 b.get(), (len+1)
0970: 2a 33 2c 20 4e 55 4c 4c 2c 20 4e 55 4c 4c 20 29 *3, NULL, NULL )
0980: 3b 0d 0a 09 09 09 53 65 6e 64 4d 73 67 54 6f 49 ;.....SendMsgToI
0990: 74 65 6d 28 20 49 44 43 5f 46 49 4e 44 42 4f 58 tem( IDC_FINDBOX
09a0: 2c 20 57 4d 5f 53 45 54 54 45 58 54 2c 20 30 2c , WM_SETTEXT, 0,
09b0: 0d 0a 09 09 09 09 72 65 69 6e 74 65 72 70 72 65 ......reinterpre
09c0: 74 5f 63 61 73 74 3c 4c 50 41 52 41 4d 3e 28 61 t_cast<LPARAM>(a
09d0: 62 2e 67 65 74 28 29 29 20 29 3b 0d 0a 09 09 23 b.get()) );....#
09e0: 65 6e 64 69 66 0d 0a 09 09 7d 0d 0a 09 7d 0d 0a endif....}...}..
09f0: 09 65 6c 73 65 0d 0a 09 7b 0d 0a 09 09 53 65 6e .else...{....Sen
0a00: 64 4d 73 67 54 6f 49 74 65 6d 28 20 49 44 43 5f dMsgToItem( IDC_
0a10: 46 49 4e 44 42 4f 58 2c 20 57 4d 5f 53 45 54 54 FINDBOX, WM_SETT
0a20: 45 58 54 2c 20 30 2c 0d 0a 09 09 09 72 65 69 6e EXT, 0,.....rein
0a30: 74 65 72 70 72 65 74 5f 63 61 73 74 3c 4c 50 41 terpret_cast<LPA
0a40: 52 41 4d 3e 28 66 69 6e 64 53 74 72 5f 2e 63 5f RAM>(findStr_.c_
0a50: 73 74 72 28 29 29 20 29 3b 0d 0a 09 7d 0d 0a 0d str()) );...}...
0a60: 0a 09 53 65 6e 64 4d 73 67 54 6f 49 74 65 6d 28 ..SendMsgToItem(
0a70: 20 49 44 43 5f 52 45 50 4c 41 43 45 42 4f 58 2c IDC_REPLACEBOX,
0a80: 20 57 4d 5f 53 45 54 54 45 58 54 2c 20 30 2c 0d WM_SETTEXT, 0,.
0a90: 0a 09 09 72 65 69 6e 74 65 72 70 72 65 74 5f 63 ...reinterpret_c
0aa0: 61 73 74 3c 4c 50 41 52 41 4d 3e 28 72 65 70 6c ast<LPARAM>(repl
0ab0: 53 74 72 5f 2e 63 5f 73 74 72 28 29 29 20 29 3b Str_.c_str()) );
0ac0: 0d 0a 0d 0a 09 3a 3a 53 65 74 46 6f 63 75 73 28 .....::SetFocus(
0ad0: 20 69 74 65 6d 28 49 44 43 5f 46 49 4e 44 42 4f item(IDC_FINDBO
0ae0: 58 29 20 29 3b 0d 0a 09 53 65 6e 64 4d 73 67 54 X) );...SendMsgT
0af0: 6f 49 74 65 6d 28 20 49 44 43 5f 46 49 4e 44 42 oItem( IDC_FINDB
0b00: 4f 58 2c 20 45 4d 5f 53 45 54 53 45 4c 2c 20 30 OX, EM_SETSEL, 0
0b10: 2c 0d 0a 09 09 3a 3a 47 65 74 57 69 6e 64 6f 77 ,....::GetWindow
0b20: 54 65 78 74 4c 65 6e 67 74 68 28 69 74 65 6d 28 TextLength(item(
0b30: 49 44 43 5f 46 49 4e 44 42 4f 58 29 29 20 29 3b IDC_FINDBOX)) );
0b40: 0d 0a 7d 0d 0a 0d 0a 76 6f 69 64 20 53 65 61 72 ..}....void Sear
0b50: 63 68 4d 61 6e 61 67 65 72 3a 3a 6f 6e 5f 64 65 chManager::on_de
0b60: 73 74 72 6f 79 28 29 0d 0a 7b 0d 0a 09 62 43 68 stroy()..{...bCh
0b70: 61 6e 67 65 64 5f 20 3d 20 66 61 6c 73 65 3b 0d anged_ = false;.
0b80: 0a 7d 0d 0a 0d 0a 62 6f 6f 6c 20 53 65 61 72 63 .}....bool Searc
0b90: 68 4d 61 6e 61 67 65 72 3a 3a 6f 6e 5f 63 6f 6d hManager::on_com
0ba0: 6d 61 6e 64 28 20 55 49 4e 54 20 63 6d 64 2c 20 mand( UINT cmd,
0bb0: 55 49 4e 54 20 69 64 2c 20 48 57 4e 44 20 63 74 UINT id, HWND ct
0bc0: 72 6c 20 29 0d 0a 7b 0d 0a 09 69 66 28 20 63 6d rl )..{...if( cm
0bd0: 64 3d 3d 45 4e 5f 43 48 41 4e 47 45 20 29 0d 0a d==EN_CHANGE )..
0be0: 09 7b 0d 0a 09 09 2f 2f 20 95 b6 8e 9a 97 f1 95 .{....// .......
0bf0: cf 8d 58 82 aa 82 a0 82 c1 82 bd 82 b1 82 c6 82 ..X.............
0c00: f0 8b 4c 89 af 0d 0a 09 09 62 43 68 61 6e 67 65 ..L......bChange
0c10: 64 5f 20 3d 20 74 72 75 65 3b 0d 0a 09 7d 0d 0a d_ = true;...}..
0c20: 09 65 6c 73 65 20 69 66 28 20 63 6d 64 3d 3d 42 .else if( cmd==B
0c30: 4e 5f 43 4c 49 43 4b 45 44 20 29 0d 0a 09 7b 0d N_CLICKED )...{.
0c40: 0a 09 09 73 77 69 74 63 68 28 20 69 64 20 29 0d ...switch( id ).
0c50: 0a 09 09 7b 0d 0a 09 09 2f 2f 20 83 60 83 46 83 ...{....// .`.F.
0c60: 62 83 4e 83 7b 83 62 83 4e 83 58 82 cc 95 cf 8d b.N.{.b.N.X.....
0c70: 58 82 aa 82 a0 82 c1 82 bd 82 b1 82 c6 82 f0 8b X...............
0c80: 4c 89 af 0d 0a 09 09 63 61 73 65 20 49 44 43 5f L......case IDC_
0c90: 49 47 4e 4f 52 45 43 41 53 45 3a 0d 0a 09 09 63 IGNORECASE:....c
0ca0: 61 73 65 20 49 44 43 5f 52 45 47 45 58 50 3a 0d ase IDC_REGEXP:.
0cb0: 0a 09 09 09 62 43 68 61 6e 67 65 64 5f 20 3d 20 ....bChanged_ =
0cc0: 74 72 75 65 3b 0d 0a 09 09 09 62 72 65 61 6b 3b true;.....break;
0cd0: 0d 0a 09 09 2f 2f 20 83 7b 83 5e 83 93 82 aa 89 ....// .{.^.....
0ce0: 9f 82 b3 82 ea 82 bd 8f ea 8d 87 0d 0a 09 09 63 ...............c
0cf0: 61 73 65 20 49 44 5f 46 49 4e 44 4e 45 58 54 3a ase ID_FINDNEXT:
0d00: 0d 0a 09 09 09 6f 6e 5f 66 69 6e 64 6e 65 78 74 .....on_findnext
0d10: 28 29 3b 0d 0a 09 09 09 62 72 65 61 6b 3b 0d 0a ();.....break;..
0d20: 09 09 63 61 73 65 20 49 44 5f 46 49 4e 44 50 52 ..case ID_FINDPR
0d30: 45 56 3a 0d 0a 09 09 09 6f 6e 5f 66 69 6e 64 70 EV:.....on_findp
0d40: 72 65 76 28 29 3b 0d 0a 09 09 09 62 72 65 61 6b rev();.....break
0d50: 3b 0d 0a 09 09 63 61 73 65 20 49 44 5f 52 45 50 ;....case ID_REP
0d60: 4c 41 43 45 4e 45 58 54 3a 0d 0a 09 09 09 6f 6e LACENEXT:.....on
0d70: 5f 72 65 70 6c 61 63 65 6e 65 78 74 28 29 3b 0d _replacenext();.
0d80: 0a 09 09 09 62 72 65 61 6b 3b 0d 0a 09 09 63 61 ....break;....ca
0d90: 73 65 20 49 44 5f 52 45 50 4c 41 43 45 41 4c 4c se ID_REPLACEALL
0da0: 3a 0d 0a 09 09 09 6f 6e 5f 72 65 70 6c 61 63 65 :.....on_replace
0db0: 61 6c 6c 28 29 3b 0d 0a 09 09 09 62 72 65 61 6b all();.....break
0dc0: 3b 0d 0a 09 09 7d 0d 0a 09 7d 0d 0a 09 65 6c 73 ;....}...}...els
0dd0: 65 0d 0a 09 7b 0d 0a 09 09 72 65 74 75 72 6e 20 e...{....return
0de0: 66 61 6c 73 65 3b 0d 0a 09 7d 0d 0a 09 72 65 74 false;...}...ret
0df0: 75 72 6e 20 74 72 75 65 3b 0d 0a 7d 0d 0a 0d 0a urn true;..}....
0e00: 76 6f 69 64 20 53 65 61 72 63 68 4d 61 6e 61 67 void SearchManag
0e10: 65 72 3a 3a 6f 6e 5f 66 69 6e 64 6e 65 78 74 28 er::on_findnext(
0e20: 29 0d 0a 7b 0d 0a 09 55 70 64 61 74 65 44 61 74 )..{...UpdateDat
0e30: 61 28 29 3b 0d 0a 09 43 6f 6e 73 74 72 75 63 74 a();...Construct
0e40: 53 65 61 72 63 68 65 72 28 29 3b 0d 0a 09 69 66 Searcher();...if
0e50: 28 20 69 73 52 65 61 64 79 28 29 20 29 0d 0a 09 ( isReady() )...
0e60: 7b 0d 0a 09 09 46 69 6e 64 4e 65 78 74 49 6d 70 {....FindNextImp
0e70: 6c 28 29 3b 0d 0a 2f 2f 09 09 45 6e 64 28 20 49 l();..//..End( I
0e80: 44 4f 4b 20 29 3b 0d 0a 09 7d 0d 0a 7d 0d 0a 0d DOK );...}..}...
0e90: 0a 76 6f 69 64 20 53 65 61 72 63 68 4d 61 6e 61 .void SearchMana
0ea0: 67 65 72 3a 3a 6f 6e 5f 66 69 6e 64 70 72 65 76 ger::on_findprev
0eb0: 28 29 0d 0a 7b 0d 0a 09 55 70 64 61 74 65 44 61 ()..{...UpdateDa
0ec0: 74 61 28 29 3b 0d 0a 09 43 6f 6e 73 74 72 75 63 ta();...Construc
0ed0: 74 53 65 61 72 63 68 65 72 28 20 66 61 6c 73 65 tSearcher( false
0ee0: 20 29 3b 0d 0a 09 69 66 28 20 69 73 52 65 61 64 );...if( isRead
0ef0: 79 28 29 20 29 0d 0a 09 09 46 69 6e 64 50 72 65 y() )....FindPre
0f00: 76 49 6d 70 6c 28 29 3b 0d 0a 7d 0d 0a 0d 0a 76 vImpl();..}....v
0f10: 6f 69 64 20 53 65 61 72 63 68 4d 61 6e 61 67 65 oid SearchManage
0f20: 72 3a 3a 6f 6e 5f 72 65 70 6c 61 63 65 6e 65 78 r::on_replacenex
0f30: 74 28 29 0d 0a 7b 0d 0a 09 55 70 64 61 74 65 44 t()..{...UpdateD
0f40: 61 74 61 28 29 3b 0d 0a 09 43 6f 6e 73 74 72 75 ata();...Constru
0f50: 63 74 53 65 61 72 63 68 65 72 28 29 3b 0d 0a 09 ctSearcher();...
0f60: 69 66 28 20 69 73 52 65 61 64 79 28 29 20 29 0d if( isReady() ).
0f70: 0a 09 09 52 65 70 6c 61 63 65 49 6d 70 6c 28 29 ...ReplaceImpl()
0f80: 3b 0d 0a 7d 0d 0a 0d 0a 76 6f 69 64 20 53 65 61 ;..}....void Sea
0f90: 72 63 68 4d 61 6e 61 67 65 72 3a 3a 6f 6e 5f 72 rchManager::on_r
0fa0: 65 70 6c 61 63 65 61 6c 6c 28 29 0d 0a 7b 0d 0a eplaceall()..{..
0fb0: 09 55 70 64 61 74 65 44 61 74 61 28 29 3b 0d 0a .UpdateData();..
0fc0: 09 43 6f 6e 73 74 72 75 63 74 53 65 61 72 63 68 .ConstructSearch
0fd0: 65 72 28 29 3b 0d 0a 09 69 66 28 20 69 73 52 65 er();...if( isRe
0fe0: 61 64 79 28 29 20 29 0d 0a 09 09 52 65 70 6c 61 ady() )....Repla
0ff0: 63 65 41 6c 6c 49 6d 70 6c 28 29 3b 0d 0a 7d 0d ceAllImpl();..}.
1000: 0a 0d 0a 76 6f 69 64 20 53 65 61 72 63 68 4d 61 ...void SearchMa
1010: 6e 61 67 65 72 3a 3a 55 70 64 61 74 65 44 61 74 nager::UpdateDat
1020: 61 28 29 0d 0a 7b 0d 0a 09 2f 2f 20 83 5f 83 43 a()..{...// ._.C
1030: 83 41 83 8d 83 4f 82 a9 82 e7 95 cf 8d 58 93 5f .A...O.......X._
1040: 82 f0 8e e6 82 e8 8d 9e 82 dd 0d 0a 09 62 49 67 .............bIg
1050: 6e 6f 72 65 43 61 73 65 5f 20 3d 0d 0a 09 09 28 noreCase_ =....(
1060: 42 53 54 5f 43 48 45 43 4b 45 44 3d 3d 53 65 6e BST_CHECKED==Sen
1070: 64 4d 73 67 54 6f 49 74 65 6d 28 20 49 44 43 5f dMsgToItem( IDC_
1080: 49 47 4e 4f 52 45 43 41 53 45 2c 20 42 4d 5f 47 IGNORECASE, BM_G
1090: 45 54 43 48 45 43 4b 20 29 29 3b 0d 0a 09 62 52 ETCHECK ));...bR
10a0: 65 67 45 78 70 5f 20 3d 0d 0a 09 09 28 42 53 54 egExp_ =....(BST
10b0: 5f 43 48 45 43 4b 45 44 3d 3d 53 65 6e 64 4d 73 _CHECKED==SendMs
10c0: 67 54 6f 49 74 65 6d 28 20 49 44 43 5f 52 45 47 gToItem( IDC_REG
10d0: 45 58 50 2c 20 42 4d 5f 47 45 54 43 48 45 43 4b EXP, BM_GETCHECK
10e0: 20 29 29 3b 0d 0a 0d 0a 09 54 43 48 41 52 2a 20 ));.....TCHAR*
10f0: 73 74 72 3b 0d 0a 09 4c 52 45 53 55 4c 54 20 6e str;...LRESULT n
1100: 20 3d 20 53 65 6e 64 4d 73 67 54 6f 49 74 65 6d = SendMsgToItem
1110: 28 20 49 44 43 5f 46 49 4e 44 42 4f 58 2c 20 57 ( IDC_FINDBOX, W
1120: 4d 5f 47 45 54 54 45 58 54 4c 45 4e 47 54 48 20 M_GETTEXTLENGTH
1130: 29 3b 0d 0a 09 73 74 72 20 3d 20 6e 65 77 20 54 );...str = new T
1140: 43 48 41 52 5b 6e 2b 31 5d 3b 0d 0a 09 53 65 6e CHAR[n+1];...Sen
1150: 64 4d 73 67 54 6f 49 74 65 6d 28 20 49 44 43 5f dMsgToItem( IDC_
1160: 46 49 4e 44 42 4f 58 2c 20 57 4d 5f 47 45 54 54 FINDBOX, WM_GETT
1170: 45 58 54 2c 0d 0a 09 09 6e 2b 31 2c 20 72 65 69 EXT,....n+1, rei
1180: 6e 74 65 72 70 72 65 74 5f 63 61 73 74 3c 4c 50 nterpret_cast<LP
1190: 41 52 41 4d 3e 28 73 74 72 29 20 29 3b 0d 0a 09 ARAM>(str) );...
11a0: 66 69 6e 64 53 74 72 5f 20 3d 20 73 74 72 3b 0d findStr_ = str;.
11b0: 0a 09 64 65 6c 65 74 65 20 5b 5d 20 73 74 72 3b ..delete [] str;
11c0: 0d 0a 0d 0a 09 6e 20 3d 20 53 65 6e 64 4d 73 67 .....n = SendMsg
11d0: 54 6f 49 74 65 6d 28 20 49 44 43 5f 52 45 50 4c ToItem( IDC_REPL
11e0: 41 43 45 42 4f 58 2c 20 57 4d 5f 47 45 54 54 45 ACEBOX, WM_GETTE
11f0: 58 54 4c 45 4e 47 54 48 20 29 3b 0d 0a 09 73 74 XTLENGTH );...st
1200: 72 20 3d 20 6e 65 77 20 54 43 48 41 52 5b 6e 2b r = new TCHAR[n+
1210: 31 5d 3b 0d 0a 09 53 65 6e 64 4d 73 67 54 6f 49 1];...SendMsgToI
1220: 74 65 6d 28 20 49 44 43 5f 52 45 50 4c 41 43 45 tem( IDC_REPLACE
1230: 42 4f 58 2c 20 57 4d 5f 47 45 54 54 45 58 54 2c BOX, WM_GETTEXT,
1240: 0d 0a 09 09 6e 2b 31 2c 20 72 65 69 6e 74 65 72 ....n+1, reinter
1250: 70 72 65 74 5f 63 61 73 74 3c 4c 50 41 52 41 4d pret_cast<LPARAM
1260: 3e 28 73 74 72 29 20 29 3b 0d 0a 09 72 65 70 6c >(str) );...repl
1270: 53 74 72 5f 20 3d 20 73 74 72 3b 0d 0a 09 64 65 Str_ = str;...de
1280: 6c 65 74 65 20 5b 5d 20 73 74 72 3b 0d 0a 7d 0d lete [] str;..}.
1290: 0a 0d 0a 76 6f 69 64 20 53 65 61 72 63 68 4d 61 ...void SearchMa
12a0: 6e 61 67 65 72 3a 3a 43 6f 6e 73 74 72 75 63 74 nager::Construct
12b0: 53 65 61 72 63 68 65 72 28 20 62 6f 6f 6c 20 64 Searcher( bool d
12c0: 6f 77 6e 20 29 0d 0a 7b 0d 0a 09 62 43 68 61 6e own )..{...bChan
12d0: 67 65 64 5f 20 3d 20 28 62 43 68 61 6e 67 65 64 ged_ = (bChanged
12e0: 5f 20 7c 7c 20 28 62 44 6f 77 6e 53 65 61 72 63 _ || (bDownSearc
12f0: 68 5f 20 21 3d 20 64 6f 77 6e 29 29 3b 0d 0a 09 h_ != down));...
1300: 69 66 28 20 28 62 43 68 61 6e 67 65 64 5f 20 7c if( (bChanged_ |
1310: 7c 20 21 69 73 52 65 61 64 79 28 29 29 20 26 26 | !isReady()) &&
1320: 20 66 69 6e 64 53 74 72 5f 2e 6c 65 6e 28 29 21 findStr_.len()!
1330: 3d 30 20 29 0d 0a 09 7b 0d 0a 09 09 2f 2f 20 8c =0 )...{....// .
1340: 9f 8d f5 8e d2 8d ec 90 ac 0d 0a 09 09 62 44 6f .............bDo
1350: 77 6e 53 65 61 72 63 68 5f 20 3d 20 64 6f 77 6e wnSearch_ = down
1360: 3b 0d 0a 09 09 63 6f 6e 73 74 20 75 6e 69 63 6f ;....const unico
1370: 64 65 20 2a 75 20 3d 20 66 69 6e 64 53 74 72 5f de *u = findStr_
1380: 2e 43 6f 6e 76 54 6f 57 43 68 61 72 28 29 3b 0d .ConvToWChar();.
1390: 0a 0d 0a 09 09 69 66 28 20 62 52 65 67 45 78 70 .....if( bRegExp
13a0: 5f 20 29 0d 0a 09 09 09 73 65 61 72 63 68 65 72 _ ).....searcher
13b0: 5f 20 3d 20 6e 65 77 20 52 53 65 61 72 63 68 28 _ = new RSearch(
13c0: 20 75 2c 20 21 62 49 67 6e 6f 72 65 43 61 73 65 u, !bIgnoreCase
13d0: 5f 2c 20 62 44 6f 77 6e 53 65 61 72 63 68 5f 20 _, bDownSearch_
13e0: 29 3b 0d 0a 09 09 65 6c 73 65 0d 0a 09 09 09 69 );....else.....i
13f0: 66 28 20 62 44 6f 77 6e 53 65 61 72 63 68 5f 20 f( bDownSearch_
1400: 29 0d 0a 09 09 09 09 69 66 28 20 62 49 67 6e 6f )......if( bIgno
1410: 72 65 43 61 73 65 5f 20 29 0d 0a 09 09 09 09 09 reCase_ ).......
1420: 73 65 61 72 63 68 65 72 5f 20 3d 20 6e 65 77 20 searcher_ = new
1430: 4e 53 65 61 72 63 68 3c 49 67 6e 6f 72 65 43 61 NSearch<IgnoreCa
1440: 73 65 3e 28 75 29 3b 0d 0a 09 09 09 09 65 6c 73 se>(u);......els
1450: 65 0d 0a 09 09 09 09 09 73 65 61 72 63 68 65 72 e.......searcher
1460: 5f 20 3d 20 6e 65 77 20 4e 53 65 61 72 63 68 3c _ = new NSearch<
1470: 43 61 73 65 53 65 6e 73 69 74 69 76 65 3e 28 75 CaseSensitive>(u
1480: 29 3b 0d 0a 09 09 09 65 6c 73 65 0d 0a 09 09 09 );.....else.....
1490: 09 69 66 28 20 62 49 67 6e 6f 72 65 43 61 73 65 .if( bIgnoreCase
14a0: 5f 20 29 0d 0a 09 09 09 09 09 73 65 61 72 63 68 _ ).......search
14b0: 65 72 5f 20 3d 20 6e 65 77 20 4e 53 65 61 72 63 er_ = new NSearc
14c0: 68 52 65 76 3c 49 67 6e 6f 72 65 43 61 73 65 3e hRev<IgnoreCase>
14d0: 28 75 29 3b 0d 0a 09 09 09 09 65 6c 73 65 0d 0a (u);......else..
14e0: 09 09 09 09 09 73 65 61 72 63 68 65 72 5f 20 3d .....searcher_ =
14f0: 20 6e 65 77 20 4e 53 65 61 72 63 68 52 65 76 3c new NSearchRev<
1500: 43 61 73 65 53 65 6e 73 69 74 69 76 65 3e 28 75 CaseSensitive>(u
1510: 29 3b 0d 0a 0d 0a 09 09 66 69 6e 64 53 74 72 5f );......findStr_
1520: 2e 46 72 65 65 57 43 4d 65 6d 28 75 29 3b 0d 0a .FreeWCMem(u);..
1530: 0d 0a 09 09 2f 2f 20 95 cf 8d 58 8f 49 97 b9 83 ....// ...X.I...
1540: 74 83 89 83 4f 0d 0a 09 09 62 43 68 61 6e 67 65 t...O....bChange
1550: 64 5f 20 3d 20 66 61 6c 73 65 3b 0d 0a 09 7d 0d d_ = false;...}.
1560: 0a 7d 0d 0a 0d 0a 0d 0a 0d 0a 2f 2f 2d 2d 2d 2d .}........//----
1570: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
1580: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
1590: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
15a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
15b0: 2d 2d 2d 2d 2d 0d 0a 0d 0a 76 6f 69 64 20 53 65 -----....void Se
15c0: 61 72 63 68 4d 61 6e 61 67 65 72 3a 3a 46 69 6e archManager::Fin
15d0: 64 4e 65 78 74 28 29 0d 0a 7b 0d 0a 09 69 66 28 dNext()..{...if(
15e0: 20 21 69 73 52 65 61 64 79 28 29 20 29 0d 0a 09 !isReady() )...
15f0: 7b 0d 0a 09 09 53 68 6f 77 44 6c 67 28 29 3b 0d {....ShowDlg();.
1600: 0a 09 7d 0d 0a 09 65 6c 73 65 0d 0a 09 7b 0d 0a ..}...else...{..
1610: 09 09 43 6f 6e 73 74 72 75 63 74 53 65 61 72 63 ..ConstructSearc
1620: 68 65 72 28 29 3b 0d 0a 09 09 69 66 28 20 69 73 her();....if( is
1630: 52 65 61 64 79 28 29 20 29 0d 0a 09 09 09 46 69 Ready() ).....Fi
1640: 6e 64 4e 65 78 74 49 6d 70 6c 28 29 3b 0d 0a 09 ndNextImpl();...
1650: 7d 0d 0a 7d 0d 0a 0d 0a 76 6f 69 64 20 53 65 61 }..}....void Sea
1660: 72 63 68 4d 61 6e 61 67 65 72 3a 3a 46 69 6e 64 rchManager::Find
1670: 50 72 65 76 28 29 0d 0a 7b 0d 0a 09 69 66 28 20 Prev()..{...if(
1680: 21 69 73 52 65 61 64 79 28 29 20 29 0d 0a 09 7b !isReady() )...{
1690: 0d 0a 09 09 53 68 6f 77 44 6c 67 28 29 3b 0d 0a ....ShowDlg();..
16a0: 09 7d 0d 0a 09 65 6c 73 65 0d 0a 09 7b 0d 0a 09 .}...else...{...
16b0: 09 43 6f 6e 73 74 72 75 63 74 53 65 61 72 63 68 .ConstructSearch
16c0: 65 72 28 20 66 61 6c 73 65 20 29 3b 0d 0a 09 09 er( false );....
16d0: 69 66 28 20 69 73 52 65 61 64 79 28 29 20 29 0d if( isReady() ).
16e0: 0a 09 09 09 46 69 6e 64 50 72 65 76 49 6d 70 6c ....FindPrevImpl
16f0: 28 29 3b 0d 0a 09 7d 0d 0a 7d 0d 0a 0d 0a 0d 0a ();...}..}......
1700: 0d 0a 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ..//------------
1710: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
1720: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
1730: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
1740: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 2f -------------../
1750: 2f 20 8e c0 8d db 82 cc 8f 88 97 9d 82 cc 8e c0 / ..............
1760: 91 95 0d 0a 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ....//----------
1770: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
1780: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
1790: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
17a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d ---------------.
17b0: 0a 0d 0a 76 6f 69 64 20 53 65 61 72 63 68 4d 61 ...void SearchMa
17c0: 6e 61 67 65 72 3a 3a 46 69 6e 64 4e 65 78 74 49 nager::FindNextI
17d0: 6d 70 6c 28 29 0d 0a 7b 0d 0a 09 2f 2f 20 83 4a mpl()..{...// .J
17e0: 81 5b 83 5c 83 8b 88 ca 92 75 8e e6 93 be 0d 0a .[.\.....u......
17f0: 09 63 6f 6e 73 74 20 56 50 6f 73 20 2a 73 74 74 .const VPos *stt
1800: 2c 20 2a 65 6e 64 3b 0d 0a 09 65 64 69 74 5f 2e , *end;...edit_.
1810: 67 65 74 43 75 72 73 6f 72 28 29 2e 67 65 74 43 getCursor().getC
1820: 75 72 50 6f 73 28 20 26 73 74 74 2c 20 26 65 6e urPos( &stt, &en
1830: 64 20 29 3b 0d 0a 0d 0a 09 2f 2f 20 91 49 91 f0 d );.....// .I..
1840: 94 cd 88 cd 82 a0 82 e8 82 c8 82 e7 81 41 91 49 .............A.I
1850: 91 f0 94 cd 88 cd 90 e6 93 aa 82 cc 82 50 95 b6 .............P..
1860: 8e 9a 90 e6 82 a9 82 e7 8c 9f 8d f5 0d 0a 09 2f .............../
1870: 2f 20 82 bb 82 a4 82 c5 82 c8 82 af 82 ea 82 ce / ..............
1880: 83 4a 81 5b 83 5c 83 8b 88 ca 92 75 82 a9 82 e7 .J.[.\.....u....
1890: 8c 9f 8d f5 0d 0a 09 44 50 6f 73 20 73 20 3d 20 .......DPos s =
18a0: 2a 73 74 74 3b 0d 0a 09 69 66 28 20 2a 73 74 74 *stt;...if( *stt
18b0: 20 21 3d 20 2a 65 6e 64 20 29 0d 0a 09 09 69 66 != *end )....if
18c0: 28 20 73 74 74 2d 3e 61 64 20 3d 3d 20 65 64 69 ( stt->ad == edi
18d0: 74 5f 2e 67 65 74 44 6f 63 28 29 2e 6c 65 6e 28 t_.getDoc().len(
18e0: 73 74 74 2d 3e 74 6c 29 20 29 0d 0a 09 09 09 73 stt->tl) ).....s
18f0: 20 3d 20 44 50 6f 73 28 20 73 74 74 2d 3e 74 6c = DPos( stt->tl
1900: 2b 31 2c 20 30 20 29 3b 0d 0a 09 09 65 6c 73 65 +1, 0 );....else
1910: 0d 0a 09 09 09 73 20 3d 20 44 50 6f 73 28 20 73 .....s = DPos( s
1920: 74 74 2d 3e 74 6c 2c 20 73 74 74 2d 3e 61 64 2b tt->tl, stt->ad+
1930: 31 20 29 3b 0d 0a 0d 0a 09 2f 2f 20 8c 9f 8d f5 1 );.....// ....
1940: 0d 0a 09 44 50 6f 73 20 62 2c 20 65 3b 0d 0a 09 ...DPos b, e;...
1950: 69 66 28 20 46 69 6e 64 4e 65 78 74 46 72 6f 6d if( FindNextFrom
1960: 49 6d 70 6c 28 20 73 2c 20 26 62 2c 20 26 65 20 Impl( s, &b, &e
1970: 29 20 29 0d 0a 09 7b 0d 0a 09 09 2f 2f 20 8c a9 ) )...{....// ..
1980: 82 c2 82 a9 82 c1 82 bd 82 e7 91 49 91 f0 0d 0a ...........I....
1990: 09 09 65 64 69 74 5f 2e 67 65 74 43 75 72 73 6f ..edit_.getCurso
19a0: 72 28 29 2e 4d 6f 76 65 43 75 72 28 20 62 2c 20 r().MoveCur( b,
19b0: 66 61 6c 73 65 20 29 3b 0d 0a 09 09 65 64 69 74 false );....edit
19c0: 5f 2e 67 65 74 43 75 72 73 6f 72 28 29 2e 4d 6f _.getCursor().Mo
19d0: 76 65 43 75 72 28 20 65 2c 20 74 72 75 65 20 29 veCur( e, true )
19e0: 3b 0d 0a 09 09 72 65 74 75 72 6e 3b 0d 0a 09 7d ;....return;...}
19f0: 0d 0a 0d 0a 09 2f 2f 20 8c a9 82 c2 82 a9 82 e7 .....// ........
1a00: 82 c8 82 a9 82 c1 82 bd 8f ea 8d 87 0d 0a 09 4e ...............N
1a10: 6f 74 46 6f 75 6e 64 28 29 3b 0d 0a 7d 0d 0a 0d otFound();..}...
1a20: 0a 76 6f 69 64 20 53 65 61 72 63 68 4d 61 6e 61 .void SearchMana
1a30: 67 65 72 3a 3a 4e 6f 74 46 6f 75 6e 64 28 29 0d ger::NotFound().
1a40: 0a 7b 0d 0a 09 2f 2f 4d 73 67 42 6f 78 28 20 53 .{...//MsgBox( S
1a50: 74 72 69 6e 67 28 49 44 53 5f 4e 4f 54 46 4f 55 tring(IDS_NOTFOU
1a60: 4e 44 29 2e 63 5f 73 74 72 28 29 20 29 3b 0d 0a ND).c_str() );..
1a70: 09 3a 3a 4d 65 73 73 61 67 65 42 6f 78 28 20 4e .::MessageBox( N
1a80: 55 4c 4c 2c 20 53 74 72 69 6e 67 28 49 44 53 5f ULL, String(IDS_
1a90: 4e 4f 54 46 4f 55 4e 44 29 2e 63 5f 73 74 72 28 NOTFOUND).c_str(
1aa0: 29 2c 20 4e 55 4c 4c 2c 20 4d 42 5f 4f 4b 7c 4d ), NULL, MB_OK|M
1ab0: 42 5f 54 41 53 4b 4d 4f 44 41 4c 20 29 3b 0d 0a B_TASKMODAL );..
1ac0: 7d 0d 0a 0d 0a 76 6f 69 64 20 53 65 61 72 63 68 }....void Search
1ad0: 4d 61 6e 61 67 65 72 3a 3a 46 69 6e 64 50 72 65 Manager::FindPre
1ae0: 76 49 6d 70 6c 28 29 0d 0a 7b 0d 0a 09 2f 2f 20 vImpl()..{...//
1af0: 83 4a 81 5b 83 5c 83 8b 88 ca 92 75 8e e6 93 be .J.[.\.....u....
1b00: 0d 0a 09 63 6f 6e 73 74 20 56 50 6f 73 20 2a 73 ...const VPos *s
1b10: 74 74 2c 20 2a 65 6e 64 3b 0d 0a 09 65 64 69 74 tt, *end;...edit
1b20: 5f 2e 67 65 74 43 75 72 73 6f 72 28 29 2e 67 65 _.getCursor().ge
1b30: 74 43 75 72 50 6f 73 28 20 26 73 74 74 2c 20 26 tCurPos( &stt, &
1b40: 65 6e 64 20 29 3b 0d 0a 0d 0a 09 69 66 28 20 73 end );.....if( s
1b50: 74 74 2d 3e 61 64 21 3d 30 20 7c 7c 20 73 74 74 tt->ad!=0 || stt
1b60: 2d 3e 74 6c 21 3d 30 20 29 0d 0a 09 7b 0d 0a 09 ->tl!=0 )...{...
1b70: 09 2f 2f 20 91 49 91 f0 94 cd 88 cd 90 e6 93 aa .// .I..........
1b80: 82 cc 82 50 95 b6 8e 9a 91 4f 82 a9 82 e7 8c 9f ...P.....O......
1b90: 8d f5 0d 0a 09 09 44 50 6f 73 20 73 3b 0d 0a 09 ......DPos s;...
1ba0: 09 69 66 28 20 73 74 74 2d 3e 61 64 20 3d 3d 20 .if( stt->ad ==
1bb0: 30 20 29 0d 0a 09 09 09 73 20 3d 20 44 50 6f 73 0 ).....s = DPos
1bc0: 28 20 73 74 74 2d 3e 74 6c 2d 31 2c 20 65 64 69 ( stt->tl-1, edi
1bd0: 74 5f 2e 67 65 74 44 6f 63 28 29 2e 6c 65 6e 28 t_.getDoc().len(
1be0: 73 74 74 2d 3e 74 6c 2d 31 29 20 29 3b 0d 0a 09 stt->tl-1) );...
1bf0: 09 65 6c 73 65 0d 0a 09 09 09 73 20 3d 20 44 50 .else.....s = DP
1c00: 6f 73 28 20 73 74 74 2d 3e 74 6c 2c 20 73 74 74 os( stt->tl, stt
1c10: 2d 3e 61 64 2d 31 20 29 3b 0d 0a 0d 0a 09 09 2f ->ad-1 );....../
1c20: 2f 20 8c 9f 8d f5 0d 0a 09 09 44 50 6f 73 20 62 / ........DPos b
1c30: 2c 20 65 3b 0d 0a 09 09 69 66 28 20 46 69 6e 64 , e;....if( Find
1c40: 50 72 65 76 46 72 6f 6d 49 6d 70 6c 28 20 73 2c PrevFromImpl( s,
1c50: 20 26 62 2c 20 26 65 20 29 20 29 0d 0a 09 09 7b &b, &e ) )....{
1c60: 0d 0a 09 09 09 2f 2f 20 8c a9 82 c2 82 a9 82 c1 .....// ........
1c70: 82 bd 82 e7 91 49 91 f0 0d 0a 09 09 09 65 64 69 .....I.......edi
1c80: 74 5f 2e 67 65 74 43 75 72 73 6f 72 28 29 2e 4d t_.getCursor().M
1c90: 6f 76 65 43 75 72 28 20 62 2c 20 66 61 6c 73 65 oveCur( b, false
1ca0: 20 29 3b 0d 0a 09 09 09 65 64 69 74 5f 2e 67 65 );.....edit_.ge
1cb0: 74 43 75 72 73 6f 72 28 29 2e 4d 6f 76 65 43 75 tCursor().MoveCu
1cc0: 72 28 20 65 2c 20 74 72 75 65 20 29 3b 0d 0a 09 r( e, true );...
1cd0: 09 09 72 65 74 75 72 6e 3b 0d 0a 09 09 7d 0d 0a ..return;....}..
1ce0: 09 7d 0d 0a 0d 0a 09 2f 2f 20 8c a9 82 c2 82 a9 .}.....// ......
1cf0: 82 e7 82 c8 82 a9 82 c1 82 bd 8f ea 8d 87 0d 0a ................
1d00: 09 4e 6f 74 46 6f 75 6e 64 28 29 3b 0d 0a 7d 0d .NotFound();..}.
1d10: 0a 0d 0a 62 6f 6f 6c 20 53 65 61 72 63 68 4d 61 ...bool SearchMa
1d20: 6e 61 67 65 72 3a 3a 46 69 6e 64 4e 65 78 74 46 nager::FindNextF
1d30: 72 6f 6d 49 6d 70 6c 28 20 44 50 6f 73 20 73 2c romImpl( DPos s,
1d40: 20 44 50 6f 73 2a 20 62 65 67 2c 20 44 50 6f 73 DPos* beg, DPos
1d50: 2a 20 65 6e 64 20 29 0d 0a 7b 0d 0a 09 2f 2f 20 * end )..{...//
1d60: 82 50 8d 73 82 b8 82 c2 83 54 81 5b 83 60 0d 0a .P.s.....T.[.`..
1d70: 09 64 6f 63 3a 3a 44 6f 63 75 6d 65 6e 74 26 20 .doc::Document&
1d80: 64 20 3d 20 65 64 69 74 5f 2e 67 65 74 44 6f 63 d = edit_.getDoc
1d90: 28 29 3b 0d 0a 09 66 6f 72 28 20 75 6c 6f 6e 67 ();...for( ulong
1da0: 20 6d 62 67 2c 6d 65 64 2c 65 3d 64 2e 74 6c 6e mbg,med,e=d.tln
1db0: 28 29 3b 20 73 2e 74 6c 3c 65 3b 20 2b 2b 73 2e (); s.tl<e; ++s.
1dc0: 74 6c 2c 20 73 2e 61 64 3d 30 20 29 0d 0a 09 09 tl, s.ad=0 )....
1dd0: 69 66 28 20 73 65 61 72 63 68 65 72 5f 2d 3e 53 if( searcher_->S
1de0: 65 61 72 63 68 28 0d 0a 09 09 09 64 2e 74 6c 28 earch(.....d.tl(
1df0: 73 2e 74 6c 29 2c 20 64 2e 6c 65 6e 28 73 2e 74 s.tl), d.len(s.t
1e00: 6c 29 2c 20 73 2e 61 64 2c 20 26 6d 62 67 2c 20 l), s.ad, &mbg,
1e10: 26 6d 65 64 20 29 20 29 0d 0a 09 09 7b 0d 0a 09 &med ) )....{...
1e20: 09 09 62 65 67 2d 3e 74 6c 20 3d 20 65 6e 64 2d ..beg->tl = end-
1e30: 3e 74 6c 20 3d 20 73 2e 74 6c 3b 0d 0a 09 09 09 >tl = s.tl;.....
1e40: 62 65 67 2d 3e 61 64 20 3d 20 6d 62 67 3b 0d 0a beg->ad = mbg;..
1e50: 09 09 09 65 6e 64 2d 3e 61 64 20 3d 20 6d 65 64 ...end->ad = med
1e60: 3b 0d 0a 09 09 09 72 65 74 75 72 6e 20 74 72 75 ;.....return tru
1e70: 65 3b 20 2f 2f 20 94 ad 8c a9 0d 0a 09 09 7d 0d e; // ........}.
1e80: 0a 09 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0d ..return false;.
1e90: 0a 7d 0d 0a 0d 0a 62 6f 6f 6c 20 53 65 61 72 63 .}....bool Searc
1ea0: 68 4d 61 6e 61 67 65 72 3a 3a 46 69 6e 64 50 72 hManager::FindPr
1eb0: 65 76 46 72 6f 6d 49 6d 70 6c 28 20 44 50 6f 73 evFromImpl( DPos
1ec0: 20 73 2c 20 44 50 6f 73 2a 20 62 65 67 2c 20 44 s, DPos* beg, D
1ed0: 50 6f 73 2a 20 65 6e 64 20 29 0d 0a 7b 0d 0a 09 Pos* end )..{...
1ee0: 2f 2f 20 82 50 8d 73 82 b8 82 c2 83 54 81 5b 83 // .P.s.....T.[.
1ef0: 60 0d 0a 09 64 6f 63 3a 3a 44 6f 63 75 6d 65 6e `...doc::Documen
1f00: 74 26 20 64 20 3d 20 65 64 69 74 5f 2e 67 65 74 t& d = edit_.get
1f10: 44 6f 63 28 29 3b 0d 0a 09 66 6f 72 28 20 75 6c Doc();...for( ul
1f20: 6f 6e 67 20 6d 62 67 2c 6d 65 64 3b 20 3b 20 73 ong mbg,med; ; s
1f30: 2e 61 64 3d 64 2e 6c 65 6e 28 2d 2d 73 2e 74 6c .ad=d.len(--s.tl
1f40: 29 20 29 0d 0a 09 7b 0d 0a 09 09 69 66 28 20 73 ) )...{....if( s
1f50: 65 61 72 63 68 65 72 5f 2d 3e 53 65 61 72 63 68 earcher_->Search
1f60: 28 0d 0a 09 09 09 64 2e 74 6c 28 73 2e 74 6c 29 (.....d.tl(s.tl)
1f70: 2c 20 64 2e 6c 65 6e 28 73 2e 74 6c 29 2c 20 73 , d.len(s.tl), s
1f80: 2e 61 64 2c 20 26 6d 62 67 2c 20 26 6d 65 64 20 .ad, &mbg, &med
1f90: 29 20 29 0d 0a 09 09 7b 0d 0a 09 09 09 62 65 67 ) )....{.....beg
1fa0: 2d 3e 74 6c 20 3d 20 65 6e 64 2d 3e 74 6c 20 3d ->tl = end->tl =
1fb0: 20 73 2e 74 6c 3b 0d 0a 09 09 09 62 65 67 2d 3e s.tl;.....beg->
1fc0: 61 64 20 3d 20 6d 62 67 3b 0d 0a 09 09 09 65 6e ad = mbg;.....en
1fd0: 64 2d 3e 61 64 20 3d 20 6d 65 64 3b 0d 0a 09 09 d->ad = med;....
1fe0: 09 72 65 74 75 72 6e 20 74 72 75 65 3b 20 2f 2f .return true; //
1ff0: 20 94 ad 8c a9 0d 0a 09 09 7d 0d 0a 09 09 69 66 ........}....if
2000: 28 20 73 2e 74 6c 3d 3d 30 20 29 0d 0a 09 09 09 ( s.tl==0 ).....
2010: 62 72 65 61 6b 3b 0d 0a 09 7d 0d 0a 09 72 65 74 break;...}...ret
2020: 75 72 6e 20 66 61 6c 73 65 3b 0d 0a 7d 0d 0a 0d urn false;..}...
2030: 0a 76 6f 69 64 20 53 65 61 72 63 68 4d 61 6e 61 .void SearchMana
2040: 67 65 72 3a 3a 52 65 70 6c 61 63 65 49 6d 70 6c ger::ReplaceImpl
2050: 28 29 0d 0a 7b 0d 0a 09 2f 2f 20 83 4a 81 5b 83 ()..{...// .J.[.
2060: 5c 83 8b 88 ca 92 75 8e e6 93 be 0d 0a 09 63 6f \.....u.......co
2070: 6e 73 74 20 56 50 6f 73 20 2a 73 74 74 2c 20 2a nst VPos *stt, *
2080: 65 6e 64 3b 0d 0a 09 65 64 69 74 5f 2e 67 65 74 end;...edit_.get
2090: 43 75 72 73 6f 72 28 29 2e 67 65 74 43 75 72 50 Cursor().getCurP
20a0: 6f 73 28 20 26 73 74 74 2c 20 26 65 6e 64 20 29 os( &stt, &end )
20b0: 3b 0d 0a 0d 0a 09 2f 2f 20 91 49 91 f0 94 cd 88 ;.....// .I.....
20c0: cd 90 e6 93 aa 82 a9 82 e7 8c 9f 8d f5 0d 0a 09 ................
20d0: 44 50 6f 73 20 62 2c 20 65 3b 0d 0a 09 69 66 28 DPos b, e;...if(
20e0: 20 46 69 6e 64 4e 65 78 74 46 72 6f 6d 49 6d 70 FindNextFromImp
20f0: 6c 28 20 2a 73 74 74 2c 20 26 62 2c 20 26 65 20 l( *stt, &b, &e
2100: 29 20 29 0d 0a 09 09 69 66 28 20 65 20 3d 3d 20 ) )....if( e ==
2110: 2a 65 6e 64 20 29 0d 0a 09 09 7b 0d 0a 09 09 09 *end )....{.....
2120: 63 6f 6e 73 74 20 77 63 68 61 72 5f 74 2a 20 75 const wchar_t* u
2130: 73 74 72 20 3d 20 72 65 70 6c 53 74 72 5f 2e 43 str = replStr_.C
2140: 6f 6e 76 54 6f 57 43 68 61 72 28 29 3b 0d 0a 09 onvToWChar();...
2150: 09 09 63 6f 6e 73 74 20 75 6c 6f 6e 67 20 75 6c ..const ulong ul
2160: 65 6e 20 3d 20 6d 79 5f 6c 73 74 72 6c 65 6e 57 en = my_lstrlenW
2170: 28 20 75 73 74 72 20 29 3b 0d 0a 0d 0a 09 09 09 ( ustr );.......
2180: 2f 2f 20 92 75 8a b7 0d 0a 09 09 09 65 64 69 74 // .u.......edit
2190: 5f 2e 67 65 74 44 6f 63 28 29 2e 45 78 65 63 75 _.getDoc().Execu
21a0: 74 65 28 20 64 6f 63 3a 3a 52 65 70 6c 61 63 65 te( doc::Replace
21b0: 28 0d 0a 09 09 09 09 62 2c 20 65 2c 20 75 73 74 (......b, e, ust
21c0: 72 2c 20 75 6c 65 6e 0d 0a 09 09 09 29 20 29 3b r, ulen.....) );
21d0: 0d 0a 0d 0a 09 09 09 72 65 70 6c 53 74 72 5f 2e .......replStr_.
21e0: 46 72 65 65 57 43 4d 65 6d 28 20 75 73 74 72 20 FreeWCMem( ustr
21f0: 29 3b 0d 0a 0d 0a 09 09 09 69 66 28 20 46 69 6e );.......if( Fin
2200: 64 4e 65 78 74 46 72 6f 6d 49 6d 70 6c 28 20 44 dNextFromImpl( D
2210: 50 6f 73 28 62 2e 74 6c 2c 62 2e 61 64 2b 75 6c Pos(b.tl,b.ad+ul
2220: 65 6e 29 2c 20 26 62 2c 20 26 65 20 29 20 29 0d en), &b, &e ) ).
2230: 0a 09 09 09 7b 0d 0a 09 09 09 09 2f 2f 20 8e 9f ....{......// ..
2240: 82 f0 91 49 91 f0 0d 0a 09 09 09 09 65 64 69 74 ...I........edit
2250: 5f 2e 67 65 74 43 75 72 73 6f 72 28 29 2e 4d 6f _.getCursor().Mo
2260: 76 65 43 75 72 28 20 62 2c 20 66 61 6c 73 65 20 veCur( b, false
2270: 29 3b 0d 0a 09 09 09 09 65 64 69 74 5f 2e 67 65 );......edit_.ge
2280: 74 43 75 72 73 6f 72 28 29 2e 4d 6f 76 65 43 75 tCursor().MoveCu
2290: 72 28 20 65 2c 20 74 72 75 65 20 29 3b 0d 0a 09 r( e, true );...
22a0: 09 09 09 72 65 74 75 72 6e 3b 0d 0a 09 09 09 7d ...return;.....}
22b0: 0d 0a 09 09 7d 0d 0a 09 09 65 6c 73 65 0d 0a 09 ....}....else...
22c0: 09 7b 0d 0a 09 09 09 2f 2f 20 82 bb 82 a4 82 c5 .{.....// ......
22d0: 82 c8 82 af 82 ea 82 ce 82 c6 82 e8 82 a0 82 a6 ................
22e0: 82 b8 91 49 91 f0 0d 0a 09 09 09 65 64 69 74 5f ...I.......edit_
22f0: 2e 67 65 74 43 75 72 73 6f 72 28 29 2e 4d 6f 76 .getCursor().Mov
2300: 65 43 75 72 28 20 62 2c 20 66 61 6c 73 65 20 29 eCur( b, false )
2310: 3b 0d 0a 09 09 09 65 64 69 74 5f 2e 67 65 74 43 ;.....edit_.getC
2320: 75 72 73 6f 72 28 29 2e 4d 6f 76 65 43 75 72 28 ursor().MoveCur(
2330: 20 65 2c 20 74 72 75 65 20 29 3b 0d 0a 09 09 09 e, true );.....
2340: 72 65 74 75 72 6e 3b 0d 0a 09 09 7d 0d 0a 0d 0a return;....}....
2350: 09 2f 2f 20 8c a9 82 c2 82 a9 82 e7 82 c8 82 a9 .// ............
2360: 82 c1 82 bd 8f ea 8d 87 0d 0a 09 4e 6f 74 46 6f ...........NotFo
2370: 75 6e 64 28 29 3b 0d 0a 7d 0d 0a 0d 0a 76 6f 69 und();..}....voi
2380: 64 20 53 65 61 72 63 68 4d 61 6e 61 67 65 72 3a d SearchManager:
2390: 3a 52 65 70 6c 61 63 65 41 6c 6c 49 6d 70 6c 28 :ReplaceAllImpl(
23a0: 29 0d 0a 7b 0d 0a 09 2f 2f 20 82 dc 82 b8 81 41 )..{...// .....A
23b0: 8e c0 8d 73 82 b7 82 e9 92 75 8a b7 82 f0 91 53 ...s.....u.....S
23c0: 82 c4 82 b1 82 b1 82 c9 93 6f 98 5e 82 b7 82 e9 .........o.^....
23d0: 0d 0a 09 64 6f 63 3a 3a 4d 61 63 72 6f 43 6f 6d ...doc::MacroCom
23e0: 6d 61 6e 64 20 6d 63 72 3b 0d 0a 0d 0a 09 2f 2f mand mcr;.....//
23f0: 20 92 75 8a b7 8c e3 95 b6 8e 9a 97 f1 0d 0a 09 .u.............
2400: 63 6f 6e 73 74 20 77 63 68 61 72 5f 74 2a 20 75 const wchar_t* u
2410: 73 74 72 20 3d 20 72 65 70 6c 53 74 72 5f 2e 43 str = replStr_.C
2420: 6f 6e 76 54 6f 57 43 68 61 72 28 29 3b 0d 0a 09 onvToWChar();...
2430: 63 6f 6e 73 74 20 75 6c 6f 6e 67 20 75 6c 65 6e const ulong ulen
2440: 20 3d 20 6d 79 5f 6c 73 74 72 6c 65 6e 57 28 20 = my_lstrlenW(
2450: 75 73 74 72 20 29 3b 0d 0a 0d 0a 09 2f 2f 20 95 ustr );.....// .
2460: b6 8f 91 82 cc 93 aa 82 a9 82 e7 8c 9f 8d f5 0d ................
2470: 0a 09 69 6e 74 20 64 69 66 3d 30 3b 0d 0a 09 44 ..int dif=0;...D
2480: 50 6f 73 20 73 28 30 2c 30 29 2c 20 62 2c 20 65 Pos s(0,0), b, e
2490: 3b 0d 0a 09 77 68 69 6c 65 28 20 46 69 6e 64 4e ;...while( FindN
24a0: 65 78 74 46 72 6f 6d 49 6d 70 6c 28 20 73 2c 20 extFromImpl( s,
24b0: 26 62 2c 20 26 65 20 29 20 29 0d 0a 09 7b 0d 0a &b, &e ) )...{..
24c0: 09 09 69 66 28 20 73 2e 74 6c 20 21 3d 20 62 2e ..if( s.tl != b.
24d0: 74 6c 20 29 20 64 69 66 20 3d 20 30 3b 0d 0a 09 tl ) dif = 0;...
24e0: 09 73 20 3d 20 65 3b 0d 0a 0d 0a 09 09 2f 2f 20 .s = e;......//
24f0: 92 75 8a b7 83 52 83 7d 83 93 83 68 82 f0 93 6f .u...R.}...h...o
2500: 98 5e 0d 0a 09 09 62 2e 61 64 20 2b 3d 20 64 69 .^....b.ad += di
2510: 66 2c 20 65 2e 61 64 20 2b 3d 20 64 69 66 3b 0d f, e.ad += dif;.
2520: 0a 09 09 6d 63 72 2e 41 64 64 28 20 6e 65 77 20 ...mcr.Add( new
2530: 64 6f 63 3a 3a 52 65 70 6c 61 63 65 28 62 2c 65 doc::Replace(b,e
2540: 2c 75 73 74 72 2c 75 6c 65 6e 29 20 29 3b 0d 0a ,ustr,ulen) );..
2550: 09 09 64 69 66 20 2d 3d 20 65 2e 61 64 2d 62 2e ..dif -= e.ad-b.
2560: 61 64 2d 75 6c 65 6e 3b 0d 0a 09 7d 0d 0a 0d 0a ad-ulen;...}....
2570: 09 69 66 28 20 6d 63 72 2e 73 69 7a 65 28 29 20 .if( mcr.size()
2580: 3e 20 30 20 29 0d 0a 09 7b 0d 0a 09 09 2f 2f 20 > 0 )...{....//
2590: 82 b1 82 b1 82 c5 98 41 91 b1 92 75 8a b7 0d 0a .......A...u....
25a0: 09 09 65 64 69 74 5f 2e 67 65 74 44 6f 63 28 29 ..edit_.getDoc()
25b0: 2e 45 78 65 63 75 74 65 28 20 6d 63 72 20 29 3b .Execute( mcr );
25c0: 0d 0a 09 09 2f 2f 20 83 4a 81 5b 83 5c 83 8b 88 ....// .J.[.\...
25d0: da 93 ae 0d 0a 09 09 65 2e 61 64 20 3d 20 62 2e .......e.ad = b.
25e0: 61 64 20 2b 20 75 6c 65 6e 3b 0d 0a 09 09 65 64 ad + ulen;....ed
25f0: 69 74 5f 2e 67 65 74 43 75 72 73 6f 72 28 29 2e it_.getCursor().
2600: 4d 6f 76 65 43 75 72 28 20 65 2c 20 66 61 6c 73 MoveCur( e, fals
2610: 65 20 29 3b 0d 0a 09 09 2f 2f 20 95 c2 82 b6 82 e );....// .....
2620: e9 81 48 0d 0a 09 09 45 6e 64 28 20 49 44 4f 4b ..H....End( IDOK
2630: 20 29 3b 0d 0a 09 7d 0d 0a 0d 0a 09 54 43 48 41 );...}.....TCHA
2640: 52 20 73 74 72 5b 32 35 35 5d 3b 0d 0a 09 3a 3a R str[255];...::
2650: 77 73 70 72 69 6e 74 66 28 20 73 74 72 2c 20 53 wsprintf( str, S
2660: 74 72 69 6e 67 28 49 44 53 5f 52 45 50 4c 41 43 tring(IDS_REPLAC
2670: 45 41 4c 4c 44 4f 4e 45 29 2e 63 5f 73 74 72 28 EALLDONE).c_str(
2680: 29 2c 20 6d 63 72 2e 73 69 7a 65 28 29 20 29 3b ), mcr.size() );
2690: 0d 0a 09 4d 73 67 42 6f 78 28 20 73 74 72 2c 20 ...MsgBox( str,
26a0: 53 74 72 69 6e 67 28 49 44 53 5f 41 50 50 4e 41 String(IDS_APPNA
26b0: 4d 45 29 2e 63 5f 73 74 72 28 29 2c 20 4d 42 5f ME).c_str(), MB_
26c0: 49 43 4f 4e 49 4e 46 4f 52 4d 41 54 49 4f 4e 20 ICONINFORMATION
26d0: 29 3b 0d 0a 0d 0a 09 72 65 70 6c 53 74 72 5f 2e );.....replStr_.
26e0: 46 72 65 65 57 43 4d 65 6d 28 20 75 73 74 72 20 FreeWCMem( ustr
26f0: 29 3b 0d 0a 7d 0d 0a );..}..