diff --git a/docs/notework.txt b/docs/notework.txt index a2f5fa7..f4ebd4f 100644 --- a/docs/notework.txt +++ b/docs/notework.txt @@ -12,6 +12,12 @@ ______________________________________________________________________ Notes for GoldED+ 1.1.5, /snapshot/ ______________________________________________________________________ +- Fixed some problems with readonly areas: it is now not possible to + change messages in R/O areas, it is possible to set group of areas + to R/O using ATTRIBUTES keyword in Random System Group. + +- Fixed small reflow bug in message viewer. + - Fixed recently introduced bug with replying on gated messages in echo and following change of destination name. There's still some work to be done in this field. diff --git a/golded3/gecmfd.cpp b/golded3/gecmfd.cpp index 2b3febe..a5a7e95 100644 --- a/golded3/gecmfd.cpp +++ b/golded3/gecmfd.cpp @@ -344,6 +344,8 @@ void CmfMsgs(GMsg* msg) { AL.SetActiveAreaId(destarea); Area* AAdest = AA; + AA->RandomizeData(); + // Is it readonly? if(AA->attr().r_o()) { GMenuReadonly MenuReadonly; diff --git a/golded3/geprot.h b/golded3/geprot.h index 01e3aa3..5f684da 100644 --- a/golded3/geprot.h +++ b/golded3/geprot.h @@ -433,10 +433,10 @@ inline bool issoftcr(char c) { inline char *spanspaces(const char *str) { if(CFG->switches.get(dispsoftcr)) - while(isspace(*str)) + while(isspace(*str) and (*str != CR)) str++; else - while(isspace(*str) or (*str == SOFTCR)) + while((isspace(*str) and (*str != CR)) or (*str == SOFTCR)) str++; return (char *)str; } diff --git a/golded3/gerand.cpp b/golded3/gerand.cpp index 4bdb7df..e6ae626 100644 --- a/golded3/gerand.cpp +++ b/golded3/gerand.cpp @@ -421,11 +421,15 @@ void Area::RandomizeData(int mode) { } std::vector::iterator z; - for(z = CFG->mailinglist.begin(); z != CFG->mailinglist.end(); z++) + for(z = CFG->mailinglist.begin(); z != CFG->mailinglist.end(); z++) { if(strieql(echoid(), z->echoid)) { strcpy(adat->whoto, *z->contribution ? z->contribution : z->sender); break; } + } + + if(adat->attributes.r_o()) + area->attr().r_o1(); } diff --git a/golded3/getpls.cpp b/golded3/getpls.cpp index fac36d4..3aeb144 100644 --- a/golded3/getpls.cpp +++ b/golded3/getpls.cpp @@ -865,6 +865,13 @@ void ChangeMsg() { if(AA->Msgn.Count()) { + if(AA->attr().r_o()) { + GMenuReadonly MenuReadonly; + reader_keyok = not MenuReadonly.Run(); + if(reader_keyok) + return; + } + reader_keyok = YES; if(AA->attr().hex()) {