diff --git a/cfgs/config/goldkeys.cfg b/cfgs/config/goldkeys.cfg
index 138cd9e..058566a 100644
--- a/cfgs/config/goldkeys.cfg
+++ b/cfgs/config/goldkeys.cfg
@@ -304,6 +304,7 @@ M READcopymoveforward
D READdeletemsg
@D READdeletemsg
Del READdeletemsg
+#Del READforcedeletemsg ; Don't move to AreaRecycleBin.
; READdirquotemsg
O READdosshell
@O READdosshell
diff --git a/cfgs/config/goldkeys.rus b/cfgs/config/goldkeys.rus
index d07ace4..ed2b2c1 100644
--- a/cfgs/config/goldkeys.rus
+++ b/cfgs/config/goldkeys.rus
@@ -308,6 +308,7 @@ M READcopymoveforward
@D READdeletemsg
D READdeletemsg
Del READdeletemsg
+#Del READforcedeletemsg ; Удалить минуя AreaRecycleBin.
@O READdosshell
O READdosshell
^F10 READdosshell
diff --git a/docs/notework.rus b/docs/notework.rus
index 5b948e0..700276f 100644
--- a/docs/notework.rus
+++ b/docs/notework.rus
@@ -10,6 +10,8 @@ _____________________________________________________________________________
Заметки для GoldED+ 1.1.5, /snapshot/
_____________________________________________________________________________
++ Добавлен ReadForceDeleteMsg (по умолчанию #Del) в goldkeys.cfg для удаления
+ сообщений минуя AreaRecicleBin.
! Изменены параметры AreaRecycleBin на AreaRecycleBin [NoAsk/Ask].
NoAsk - не спрашивать (по умолчанию)
Аск - спрашивать разрешение удалить
diff --git a/docs/notework.txt b/docs/notework.txt
index 78a2723..fd57467 100644
--- a/docs/notework.txt
+++ b/docs/notework.txt
@@ -10,6 +10,9 @@ ______________________________________________________________________
Notes for GoldED+ 1.1.5, /snapshot/
______________________________________________________________________
++ Added ReadForceDeleteMsg (default is #Del) to the goldkeys.cfg used to
+ delete messages without moving them to AreaRecicleBin.
+
! Token AreaRecycleBin changed to AreaRecycleBin [NoAsk/Ask]
Default is to not ask.
diff --git a/golded3/gckeys.cpp b/golded3/gckeys.cpp
index d1544f4..41cd234 100644
--- a/golded3/gckeys.cpp
+++ b/golded3/gckeys.cpp
@@ -227,6 +227,7 @@ CmdKey DefaultKeyset[] = {
{ Key_A_Z , KK_ReadFindHeader , KT_R },
{ Key_F6 , KK_ReadFindHeader , KT_R },
{ Key_A_F6 , KK_ReadFindNext , KT_R },
+ { Key_S_Del , KK_ReadForceDeleteMsg , KT_R },
{ Key_S_Tab , KK_ReadGotoBookMark , KT_R },
{ Key_BS , KK_ReadGotoBookMark , KT_R },
{ Key_Lsr , KK_ReadGotoFirstMsg , KT_R },
@@ -808,6 +809,7 @@ tglobalkey globalkeys[] = {
{ CRC_EDITTOUPPER , KK_EditToUpper , KT_E }, // 0xD3DD
{ CRC_FILEASKEXIT , KK_FileAskExit , KT_F }, // 0xD40C
{ CRC_EDITBLOCKDOWN , KK_EditBlockDown , KT_E }, // 0xD4E4
+ { CRC_READFORCEDELETEMSG , KK_ReadForceDeleteMsg , KT_R }, // 0xD57A
{ CRC_READMESSAGELIST , KK_ReadMessageList , KT_R }, // 0xD5D8
{ CRC_EDITGOUP , KK_EditGoUp , KT_E }, // 0xD6BA
{ CRC_EDITDOSSHELL , KK_EditDosShell , KT_E }, // 0xD6C5
diff --git a/golded3/gckeys.h b/golded3/gckeys.h
index 12acdeb..12968ef 100644
--- a/golded3/gckeys.h
+++ b/golded3/gckeys.h
@@ -233,6 +233,7 @@ const word CRC_READFILEREQUEST = 0x0A07;
const word CRC_READFINDALL = 0xEF19;
const word CRC_READFINDHEADER = 0x6343;
const word CRC_READFINDNEXT = 0x8082;
+const word CRC_READFORCEDELETEMSG = 0xD57A;
const word CRC_READGOTOBOOKMARK = 0x4383;
const word CRC_READGOTOFIRSTMSG = 0x392F;
const word CRC_READGOTOLASTMSG = 0x9E72;
diff --git a/golded3/gecmfd.cpp b/golded3/gecmfd.cpp
index 47fb884..571e7ec 100644
--- a/golded3/gecmfd.cpp
+++ b/golded3/gecmfd.cpp
@@ -145,12 +145,12 @@ void Area::DeleteMsg(GMsg* msg, int direction) {
// ------------------------------------------------------------------
-void Area::DelMsgs(GMsg* msg)
+void Area::DelMsgs(GMsg* msg, bool force)
{
GFTRK("DelMsgs");
GMenuDelete MenuDelete;
- if (CFG->arearecyclebin[0])
+ if (!force && CFG->arearecyclebin[0])
{
int areano = AL.AreaEchoToNo(CFG->arearecyclebin);
int currno = AL.AreaIdToNo(CurrArea);
@@ -287,10 +287,10 @@ void TwitDeleteMsg(GMsg* msg) {
// ------------------------------------------------------------------
-void Area::DelMsg() {
-
+void Area::DelMsg(bool force)
+{
if(Msgn.Count())
- DelMsgs(reader_msg);
+ DelMsgs(reader_msg, force);
}
diff --git a/golded3/gekeys.h b/golded3/gekeys.h
index 8831f51..c1a6b38 100644
--- a/golded3/gekeys.h
+++ b/golded3/gekeys.h
@@ -336,7 +336,7 @@ const gkey KK_ReadQuoteMsg = 0xFF8A;
const gkey KK_ReadReplyMsg = 0xFF8B;
const gkey KK_ReadSearch = 0xFF8C;
const gkey KK_ReadSoundkill = 0xFF8D;
- // = 0xFE8E;
+const gkey KK_ReadForceDeleteMsg = 0xFF8E;
const gkey KK_ReadThreadtree = 0xFF8F;
const gkey KK_ReadToggleBookMark = 0xFF90;
const gkey KK_ReadToggleHexdump = 0xFF91;
diff --git a/golded3/geread.cpp b/golded3/geread.cpp
index eba866e..151d2f8 100644
--- a/golded3/geread.cpp
+++ b/golded3/geread.cpp
@@ -884,13 +884,14 @@ void Reader() {
CopyMoveForward();
break;
+ case KK_ReadForceDeleteMsg:
case KK_ReadDeleteMsg:
if(AA->attr().r_o()) {
GMenuReadonly MenuReadonly;
if(not MenuReadonly.Run())
break;
}
- AA->DelMsg();
+ AA->DelMsg(reader_keycode == KK_ReadForceDeleteMsg);
break;
case KK_ReadMakeUserlist:
diff --git a/golded3/gmarea.h b/golded3/gmarea.h
index fc36431..e8b6fd0 100644
--- a/golded3/gmarea.h
+++ b/golded3/gmarea.h
@@ -488,8 +488,8 @@ public:
void SetBookmark(uint __relno);
void DeleteMsg(GMsg* msg, int direction);
- void DelMsg();
- void DelMsgs(GMsg* msg);
+ void DelMsg(bool force = false);
+ void DelMsgs(GMsg* msg, bool force = false);
void SigExportlistUpdate();
void UpdateAreadata();