wordpad: Add replace dialog.
diff --git a/programs/wordpad/De.rc b/programs/wordpad/De.rc
index 809864e..1b333fd 100644
--- a/programs/wordpad/De.rc
+++ b/programs/wordpad/De.rc
@@ -35,7 +35,7 @@
     END
     POPUP "&Bearbeiten"
     BEGIN
-        MENUITEM "&Rückgängig\tCtrl+Z",         ID_EDIT_UNDO
+        MENUITEM "Rü&ckgängig\tCtrl+Z",         ID_EDIT_UNDO
         MENUITEM "&Wiederholen\tCtrl+Y",        ID_EDIT_REDO
         MENUITEM SEPARATOR
         MENUITEM "Aus&schneiden\tCtrl+X",       ID_EDIT_CUT
@@ -46,6 +46,7 @@
         MENUITEM SEPARATOR
         MENUITEM "&Find . . .\tCrtl+F",         ID_FIND
         MENUITEM "Find &next\tF3",              ID_FIND_NEXT
+        MENUITEM "&Replace . . .\tCtrl+H",      ID_REPLACE
         MENUITEM SEPARATOR
         MENUITEM "Schreibgeschü&tzt",           ID_EDIT_READONLY
         MENUITEM "&Geändert",                   ID_EDIT_MODIFIED
diff --git a/programs/wordpad/En.rc b/programs/wordpad/En.rc
index 3c06dda..e0724fb 100644
--- a/programs/wordpad/En.rc
+++ b/programs/wordpad/En.rc
@@ -36,7 +36,7 @@
     POPUP "&Edit"
     BEGIN
         MENUITEM "&Undo\tCtrl+Z",               ID_EDIT_UNDO
-        MENUITEM "&Redo\tCtrl+Y",               ID_EDIT_REDO
+        MENUITEM "R&edo\tCtrl+Y",               ID_EDIT_REDO
         MENUITEM SEPARATOR
         MENUITEM "Cu&t\tCtrl+X",                ID_EDIT_CUT
         MENUITEM "&Copy\tCtrl+C",               ID_EDIT_COPY
@@ -46,11 +46,12 @@
         MENUITEM SEPARATOR
         MENUITEM "&Find . . .\tCrtl+F",         ID_FIND
         MENUITEM "Find &next\tF3",              ID_FIND_NEXT
+        MENUITEM "&Replace . . .\tCtrl+H",      ID_REPLACE
         MENUITEM SEPARATOR
         MENUITEM "Read-&only",                  ID_EDIT_READONLY
         MENUITEM "&Modified",                   ID_EDIT_MODIFIED
         MENUITEM SEPARATOR
-        POPUP "&Extras"
+        POPUP "E&xtras"
         BEGIN
             MENUITEM "Selection &info",             ID_EDIT_SELECTIONINFO
             MENUITEM "Character &format",           ID_EDIT_CHARFORMAT
diff --git a/programs/wordpad/Fr.rc b/programs/wordpad/Fr.rc
index bde211d..dcf80ec 100644
--- a/programs/wordpad/Fr.rc
+++ b/programs/wordpad/Fr.rc
@@ -36,7 +36,7 @@
     POPUP "É&dition"
     BEGIN
         MENUITEM "&Annuler\tCtrl+Z",                ID_EDIT_UNDO
-        MENUITEM "&Répéter\tCtrl+Y",                ID_EDIT_REDO
+        MENUITEM "Ré&péter\tCtrl+Y",                ID_EDIT_REDO
         MENUITEM SEPARATOR
         MENUITEM "&Couper\tCtrl+X",                 ID_EDIT_CUT
         MENUITEM "Co&pier\tCtrl+C",                 ID_EDIT_COPY
@@ -46,6 +46,7 @@
         MENUITEM SEPARATOR
         MENUITEM "&Find . . .\tCrtl+F",             ID_FIND
         MENUITEM "Find &next\tF3",                  ID_FIND_NEXT
+        MENUITEM "&Replace . . .\tCtrl+H",          ID_REPLACE
         MENUITEM SEPARATOR
         MENUITEM "Lecture-&seule",                  ID_EDIT_READONLY
         MENUITEM "&Modifié",                        ID_EDIT_MODIFIED
diff --git a/programs/wordpad/Hu.rc b/programs/wordpad/Hu.rc
index 2840495..feca301 100644
--- a/programs/wordpad/Hu.rc
+++ b/programs/wordpad/Hu.rc
@@ -46,6 +46,7 @@
         MENUITEM SEPARATOR
         MENUITEM "&Find . . .\tCrtl+F",         ID_FIND
         MENUITEM "Find &next\tF3",              ID_FIND_NEXT
+        MENUITEM "&Replace . . .\tCtrl+H",      ID_REPLACE
         MENUITEM SEPARATOR
         MENUITEM "Csak &olvasható",             ID_EDIT_READONLY
         MENUITEM "Mó&dosítva",                  ID_EDIT_MODIFIED
diff --git a/programs/wordpad/Ko.rc b/programs/wordpad/Ko.rc
index fac4733..571dbfb 100644
--- a/programs/wordpad/Ko.rc
+++ b/programs/wordpad/Ko.rc
@@ -37,7 +37,7 @@
     POPUP "ÆíÁý(&E)"
     BEGIN
         MENUITEM "µÇµ¹¸®±â(&U)\tCtrl+Z",               ID_EDIT_UNDO
-        MENUITEM "´Ù½Ã ½ÇÇà(&R)\tCtrl+Y",               ID_EDIT_REDO
+        MENUITEM "´Ù½Ã ½ÇÇà(&E)\tCtrl+Y",               ID_EDIT_REDO
         MENUITEM SEPARATOR
         MENUITEM "À߶󳻱â(&T)\tCtrl+X",                ID_EDIT_CUT
         MENUITEM "º¹»ç(&C)\tCtrl+C",               ID_EDIT_COPY
@@ -47,11 +47,12 @@
         MENUITEM SEPARATOR
         MENUITEM "ã±â(&F). . .\tCrtl+F",         ID_FIND
         MENUITEM "´ÙÀ½ ã±â(&N)\tF3",              ID_FIND_NEXT
+        MENUITEM "&Replace . . .\tCtrl+H",      ID_REPLACE
         MENUITEM SEPARATOR
         MENUITEM "Àбâ Àü¿ë(&O)",                  ID_EDIT_READONLY
         MENUITEM "¼öÁ¤ °¡´É(&M)",                   ID_EDIT_MODIFIED
         MENUITEM SEPARATOR
-        POPUP "±âŸ(&E)"
+        POPUP "±âŸ(&X)"
         BEGIN
             MENUITEM "¼±Åà ¿µ¿ª Á¤º¸(&I)",             ID_EDIT_SELECTIONINFO
             MENUITEM "¹®ÀÚ Çü½Ä(&F)",           ID_EDIT_CHARFORMAT
diff --git a/programs/wordpad/Nl.rc b/programs/wordpad/Nl.rc
index 73dc641..d6c5346 100644
--- a/programs/wordpad/Nl.rc
+++ b/programs/wordpad/Nl.rc
@@ -46,6 +46,7 @@
         MENUITEM SEPARATOR
         MENUITEM "&Find . . .\tCrtl+F",         ID_FIND
         MENUITEM "Find &next\tF3",              ID_FIND_NEXT
+        MENUITEM "&Replace . . .\tCtrl+H",      ID_REPLACE
         MENUITEM SEPARATOR
         MENUITEM "Alleen &lezen",               ID_EDIT_READONLY
         MENUITEM "&Gewijzigd",                  ID_EDIT_MODIFIED
diff --git a/programs/wordpad/No.rc b/programs/wordpad/No.rc
index 3bf663d..3bebdf9 100644
--- a/programs/wordpad/No.rc
+++ b/programs/wordpad/No.rc
@@ -46,8 +46,9 @@
         MENUITEM SEPARATOR
         MENUITEM "&Søk etter . . .\tCrtl+F",  ID_FIND
         MENUITEM "Søk etter &neste\tF3",      ID_FIND_NEXT
+        MENUITEM "E&rstatt . . .\tCtrl+H",    ID_REPLACE
         MENUITEM SEPARATOR
-        MENUITEM "Sk&rivebeskyttet",          ID_EDIT_READONLY
+        MENUITEM "S&krivebeskyttet",          ID_EDIT_READONLY
         MENUITEM "E&ndret",                   ID_EDIT_MODIFIED
         MENUITEM SEPARATOR
         POPUP "&Ekstra"
diff --git a/programs/wordpad/Pl.rc b/programs/wordpad/Pl.rc
index f212fc3..3b05326 100644
--- a/programs/wordpad/Pl.rc
+++ b/programs/wordpad/Pl.rc
@@ -47,6 +47,7 @@
         MENUITEM SEPARATOR
         MENUITEM "&Find . . .\tCrtl+F",           ID_FIND
         MENUITEM "Find &next\tF3",                ID_FIND_NEXT
+        MENUITEM "&Replace . . .\tCtrl+H",        ID_REPLACE
         MENUITEM SEPARATOR
         MENUITEM "Tylko do &odczytu",                  ID_EDIT_READONLY
         MENUITEM "&Zmodifykowany",                   ID_EDIT_MODIFIED
diff --git a/programs/wordpad/Ru.rc b/programs/wordpad/Ru.rc
index daceaf8..17828cc 100644
--- a/programs/wordpad/Ru.rc
+++ b/programs/wordpad/Ru.rc
@@ -45,6 +45,7 @@
         MENUITEM SEPARATOR
         MENUITEM "&Find . . .\tCrtl+F",         ID_FIND
         MENUITEM "Find &next\tF3",              ID_FIND_NEXT
+        MENUITEM "&Replace . . .\tCtrl+H",      ID_REPLACE
         MENUITEM SEPARATOR
         MENUITEM "&Òîëüêî äëÿ ÷òåíèÿ",          ID_EDIT_READONLY
         MENUITEM "&Èçìåíåí",                    ID_EDIT_MODIFIED
diff --git a/programs/wordpad/Tr.rc b/programs/wordpad/Tr.rc
index b748666..65cb31f 100644
--- a/programs/wordpad/Tr.rc
+++ b/programs/wordpad/Tr.rc
@@ -49,6 +49,7 @@
         MENUITEM SEPARATOR
         MENUITEM "&Find . . .\tCrtl+F",         ID_FIND
         MENUITEM "Find &next\tF3",              ID_FIND_NEXT
+        MENUITEM "&Replace . . .\tCtrl+H",      ID_REPLACE
         MENUITEM SEPARATOR
         MENUITEM "Salt-&okunur",                ID_EDIT_READONLY
         MENUITEM "&Deðiþmiþ",                   ID_EDIT_MODIFIED
diff --git a/programs/wordpad/resource.h b/programs/wordpad/resource.h
index 615c30c..b08ec85 100644
--- a/programs/wordpad/resource.h
+++ b/programs/wordpad/resource.h
@@ -36,9 +36,10 @@
 
 #define ID_FIND 1014
 #define ID_FIND_NEXT 1015
+#define ID_REPLACE 1016
 
-#define ID_PREVIEW_NEXTPAGE 1016
-#define ID_PREVIEW_PREVPAGE 1017
+#define ID_PREVIEW_NEXTPAGE 1017
+#define ID_PREVIEW_PREVPAGE 1018
 
 #define ID_ALIGN_LEFT 1100
 #define ID_ALIGN_CENTER 1101
diff --git a/programs/wordpad/rsrc.rc b/programs/wordpad/rsrc.rc
index 92bad34..142bd06 100644
--- a/programs/wordpad/rsrc.rc
+++ b/programs/wordpad/rsrc.rc
@@ -31,6 +31,7 @@
     "R",          ID_ALIGN_RIGHT,     VIRTKEY, CONTROL    
     "F",          ID_FIND,            VIRTKEY, CONTROL
     VK_F3,        ID_FIND_NEXT,       VIRTKEY
+    "H",          ID_REPLACE,         VIRTKEY, CONTROL
     "A",          ID_EDIT_SELECTALL,  VIRTKEY, CONTROL    
     "X",          ID_EDIT_CUT,        VIRTKEY, CONTROL    
     "C",          ID_EDIT_COPY,       VIRTKEY, CONTROL    
diff --git a/programs/wordpad/wordpad.c b/programs/wordpad/wordpad.c
index 20052bb..968f8d5 100644
--- a/programs/wordpad/wordpad.c
+++ b/programs/wordpad/wordpad.c
@@ -1844,7 +1844,9 @@
         hFindWnd = 0;
         pFr->Flags = FR_FINDNEXT;
         return 0;
-    } else if(pFr->Flags & FR_FINDNEXT)
+    }
+
+    if(pFr->Flags & FR_FINDNEXT || pFr->Flags & FR_REPLACE || pFr->Flags & FR_REPLACEALL)
     {
         DWORD flags = FR_DOWN;
         FINDTEXTW ft;
@@ -1918,13 +1920,19 @@
             cr.cpMin = end;
             SendMessageW(hEditorWnd, EM_SETSEL, (WPARAM)ret, (LPARAM)end);
             SendMessageW(hEditorWnd, EM_SCROLLCARET, 0, 0);
+
+            if(pFr->Flags & FR_REPLACE || pFr->Flags & FR_REPLACEALL)
+                SendMessageW(hEditorWnd, EM_REPLACESEL, TRUE, (LPARAM)pFr->lpstrReplaceWith);
+
+            if(pFr->Flags & FR_REPLACEALL)
+                handle_findmsg(pFr);
         }
     }
 
     return 0;
 }
 
-static void dialog_find(LPFINDREPLACEW fr)
+static void dialog_find(LPFINDREPLACEW fr, BOOL replace)
 {
     static WCHAR findBuffer[MAX_STRING_LEN];
 
@@ -1936,7 +1944,10 @@
     fr->lCustData = -1;
     fr->wFindWhatLen = MAX_STRING_LEN*sizeof(WCHAR);
 
-    hFindWnd = FindTextW(fr);
+    if(replace)
+        hFindWnd = ReplaceTextW(fr);
+    else
+        hFindWnd = FindTextW(fr);
 }
 
 static void registry_read_options(void)
@@ -2716,13 +2727,17 @@
         break;
 
     case ID_FIND:
-        dialog_find(&findreplace);
+        dialog_find(&findreplace, FALSE);
         break;
 
     case ID_FIND_NEXT:
         handle_findmsg(&findreplace);
         break;
 
+    case ID_REPLACE:
+        dialog_find(&findreplace, TRUE);
+        break;
+
     case ID_FONTSETTINGS:
         dialog_choose_font();
         break;
@@ -3048,6 +3063,9 @@
 
     EnableMenuItem(hMenu, ID_FIND_NEXT, MF_BYCOMMAND|((textLength && mi.dwItemData) ?
                    MF_ENABLED : MF_GRAYED));
+
+    EnableMenuItem(hMenu, ID_REPLACE, MF_BYCOMMAND|(textLength ? MF_ENABLED : MF_GRAYED));
+
     return 0;
 }