diff --git a/PowerEditor/installer/nativeLang/english.xml b/PowerEditor/installer/nativeLang/english.xml
index 1f340a039..314b505d9 100644
--- a/PowerEditor/installer/nativeLang/english.xml
+++ b/PowerEditor/installer/nativeLang/english.xml
@@ -28,6 +28,7 @@
+
diff --git a/PowerEditor/installer/nativeLang/french.xml b/PowerEditor/installer/nativeLang/french.xml
index b16121420..93af8c63a 100644
--- a/PowerEditor/installer/nativeLang/french.xml
+++ b/PowerEditor/installer/nativeLang/french.xml
@@ -22,7 +22,7 @@
-
+
diff --git a/PowerEditor/src/Notepad_plus.rc b/PowerEditor/src/Notepad_plus.rc
index 33c6b659f..19f03d9ae 100644
--- a/PowerEditor/src/Notepad_plus.rc
+++ b/PowerEditor/src/Notepad_plus.rc
@@ -255,14 +255,19 @@ BEGIN
POPUP "Blank Operations"
BEGIN
MENUITEM "Trim Trailing Space", IDM_EDIT_TRIMTRAILING
- MENUITEM "Trim Leading Space", IDM_EDIT_TRIMLINEHEAD
- MENUITEM "Trim Leading and Trailing Space", IDM_EDIT_TRIM_BOTH
+ MENUITEM "Trim Leading Space", IDM_EDIT_TRIMLINEHEAD
+ MENUITEM "Trim Leading and Trailing Space", IDM_EDIT_TRIM_BOTH
MENUITEM "EOL to Space", IDM_EDIT_EOL2WS
MENUITEM "Remove Unnecessary Blank and EOL", IDM_EDIT_TRIMALL
MENUITEM SEPARATOR
MENUITEM "TAB to Space", IDM_EDIT_TAB2SW
MENUITEM "Space to TAB", IDM_EDIT_SW2TAB
END
+ POPUP "Paste Special"
+ BEGIN
+ MENUITEM "Paste HTML Content", IDM_EDIT_PASTE_AS_HTML
+ MENUITEM "Paste RTF Content", IDM_EDIT_PASTE_AS_RTF
+ END
MENUITEM SEPARATOR
MENUITEM "Column Mode...", IDM_EDIT_COLUMNMODETIP
MENUITEM "Column Editor...", IDM_EDIT_COLUMNMODE
diff --git a/PowerEditor/src/NppCommands.cpp b/PowerEditor/src/NppCommands.cpp
index 751c17736..143b5b7ec 100644
--- a/PowerEditor/src/NppCommands.cpp
+++ b/PowerEditor/src/NppCommands.cpp
@@ -21,6 +21,10 @@
#include "ShortcutMapper.h"
#include "TaskListDlg.h"
+#define CF_HTML TEXT("HTML Format")
+#define CF_RTF TEXT("Rich Text Format")
+
+
void Notepad_plus::macroPlayback(Macro macro)
{
_pEditView->execute(SCI_BEGINUNDOACTION);
@@ -142,6 +146,35 @@ void Notepad_plus::command(int id)
}
break;
+ case IDM_EDIT_PASTE_AS_RTF:
+ case IDM_EDIT_PASTE_AS_HTML:
+ {
+ UINT f = RegisterClipboardFormat(id==IDM_EDIT_PASTE_AS_HTML?CF_HTML:CF_RTF);
+
+ if (!IsClipboardFormatAvailable(f))
+ return;
+
+ if (!OpenClipboard(NULL))
+ return;
+
+ HGLOBAL hglb = GetClipboardData(f);
+ if (hglb != NULL)
+ {
+ LPSTR lptstr = (LPSTR)GlobalLock(hglb);
+ if (lptstr != NULL)
+ {
+ // Call the application-defined ReplaceSelection
+ // function to insert the text and repaint the
+ // window.
+ _pEditView->execute(SCI_REPLACESEL, 0, (LPARAM)lptstr);
+
+ GlobalUnlock(hglb);
+ }
+ }
+ CloseClipboard();
+ }
+ break;
+
case IDM_EDIT_DELETE:
_pEditView->execute(WM_CLEAR);
break;
diff --git a/PowerEditor/src/localizationString.h b/PowerEditor/src/localizationString.h
index 8d187bc07..a2c6c59d7 100644
Binary files a/PowerEditor/src/localizationString.h and b/PowerEditor/src/localizationString.h differ
diff --git a/PowerEditor/src/menuCmdID.h b/PowerEditor/src/menuCmdID.h
index 90474d041..cfa3b7156 100644
--- a/PowerEditor/src/menuCmdID.h
+++ b/PowerEditor/src/menuCmdID.h
@@ -99,6 +99,9 @@
#define IDM_EDIT_BLOCK_COMMENT_SET (IDM_EDIT + 35)
#define IDM_EDIT_BLOCK_UNCOMMENT (IDM_EDIT + 36)
#define IDM_EDIT_COLUMNMODETIP (IDM_EDIT + 37)
+ #define IDM_EDIT_PASTE_AS_HTML (IDM_EDIT + 38)
+ #define IDM_EDIT_PASTE_AS_RTF (IDM_EDIT + 39)
+
#define IDM_EDIT_AUTOCOMPLETE (50000 + 0)
#define IDM_EDIT_AUTOCOMPLETE_CURRENTFILE (50000 + 1)