From 2a12b926745b8b61c192ad3c6e204c706d2f402d Mon Sep 17 00:00:00 2001 From: Elias Benali Date: Wed, 22 Oct 2008 21:30:26 -0400 Subject: wordpad: Fill the "Find What" field in the Search/Replace dialogs with the currently selected text, if any. --- programs/wordpad/wordpad.c | 16 +++++++++++++++- 1 files changed, 15 insertions(+), 1 deletions(-) diff --git a/programs/wordpad/wordpad.c b/programs/wordpad/wordpad.c index ab65008..f692f4a 100644 --- a/programs/wordpad/wordpad.c +++ b/programs/wordpad/wordpad.c @@ -49,6 +49,10 @@ # define U3(x) (x) #endif +#ifndef MIN +#define MIN(a,b) ((a) < (b) ? (a) : (b)) +#endif + /* use LoadString */ static const WCHAR wszAppTitle[] = {'W','i','n','e',' ','W','o','r','d','p','a','d',0}; @@ -1263,8 +1267,18 @@ static void dialog_find(LPFINDREPLACEW fr, BOOL replace) { static WCHAR findBuffer[MAX_STRING_LEN]; static WCHAR replaceBuffer[MAX_STRING_LEN]; + CHARRANGE cr; + TEXTRANGE tr; + + SendMessage(hEditorWnd, EM_EXGETSEL, 0, (LPARAM)&cr); + if (cr.cpMax > cr.cpMin) { + cr.cpMax = cr.cpMin + MIN(sizeof(findBuffer)/sizeof(WCHAR)-1, cr.cpMax-cr.cpMin); + tr.chrg = cr; + tr.lpstrText = (LPSTR)findBuffer; + SendMessage(hEditorWnd, EM_GETTEXTRANGE, 0, (LPARAM)&tr); + } else + findBuffer[0] = '\0'; - findBuffer[0] = '\0'; replaceBuffer[0] = '\0'; ZeroMemory(fr, sizeof(FINDREPLACEW)); -- 1.6.0.2