diff --git a/cfgs/config/advanced.cfg b/cfgs/config/advanced.cfg index 151f383..884f430 100644 --- a/cfgs/config/advanced.cfg +++ b/cfgs/config/advanced.cfg @@ -446,6 +446,11 @@ AREAREPLYTO E-MAIL // ;AREAYOUWROTETO MY_MAILS +// If enabled, GoldED+ will move messages to this area. +// Press ReadForceDeleteMsg to delete messages without moving to recycle bin. +;AreaRecycleBin RECYCLE_BIN Ask +;AreaRecycleBin RECYCLE_BIN NoAsk + ---------------------------------------------------------------------- -- STATUSLINE diff --git a/cfgs/config/advanced.rus b/cfgs/config/advanced.rus index 29a4fcc..37b613f 100644 --- a/cfgs/config/advanced.rus +++ b/cfgs/config/advanced.rus @@ -468,6 +468,11 @@ AreaCopyTo ZZZ.MY.ARCHIVE // В группах этот параметр работает с версии 3.00.a5. AreaCopyAddId No +// Если включено, то GoldED+ переместит удаленные сообщения в эту арию. +// Нажмите ReadForceDeleteMsg для того чтобы удалить минуя корзину. +;AreaRecycleBin RECYCLE_BIN Ask ; спрашивать подтверждение +;AreaRecycleBin RECYCLE_BIN NoAsk ; не спрашивать + ---------------------------------------------------------------------- -- СТРОКА СОСТОЯНИЯ diff --git a/docs/notework.rus b/docs/notework.rus index 7d74271..2634aa8 100644 --- a/docs/notework.rus +++ b/docs/notework.rus @@ -10,6 +10,8 @@ _____________________________________________________________________________ Заметки для GoldED+ 1.1.5, /snapshot/ _____________________________________________________________________________ ++ Когда сообщение перемещается из корзины, то выбирается по умолчанию ария + из клуджа AREA. - uudecoder: теперь будет игнорировано все после строки что начинается на "sum -r/size ". - Win32: Исправлено частое чтение реестра когда включен MCI звук. diff --git a/docs/notework.txt b/docs/notework.txt index 7992cd0..7784100 100644 --- a/docs/notework.txt +++ b/docs/notework.txt @@ -10,6 +10,8 @@ ______________________________________________________________________ Notes for GoldED+ 1.1.5, /snapshot/ ______________________________________________________________________ ++ When moving from recyclebin, area from AREA: kludge is selected by default. + - uudecoder: now are skipped all lines which follows line that starts with "sum -r/size ". diff --git a/golded3/gecmfd.cpp b/golded3/gecmfd.cpp index 39ac26e..fb8059c 100644 --- a/golded3/gecmfd.cpp +++ b/golded3/gecmfd.cpp @@ -419,24 +419,41 @@ void CmfMsgs(GMsg* msg, bool torecycle) } // Pick the destination area + bool fromrecycle = false; int destarea = CurrArea; const char* cmfptr; if (torecycle) cmfptr = CFG->arearecyclebin; else - cmfptr = cmf == MODE_FORWARD ? AA->Areareplyto() : AA->Areacopyto(); + { + if (CFG->arearecyclebin[0]) + { + int areano = AL.AreaEchoToNo(CFG->arearecyclebin); + int currno = AL.AreaIdToNo(CurrArea); - if(*cmfptr) { + if ((areano == currno) && (areano >= 0)) + fromrecycle = true; + } + + if (fromrecycle) + cmfptr = msg->areakludgeid; + else + cmfptr = (cmf == MODE_FORWARD) ? AA->Areareplyto() : AA->Areacopyto(); + } + + if (cmfptr[0]) + { int a = AL.AreaEchoToNo(cmfptr); - if(a != -1) + if (a != -1) destarea = AL.AreaNoToId(a); } if (!torecycle && (cmf == MODE_FORWARD ? not AA->Areaforwarddirect() : not AA->Areacopydirect())) destarea = AreaPick(pickstr, 6, &destarea); - if(destarea == -1) { + if (destarea == -1) + { GFTRK(0); return; }