diff --git a/src/sbbs3/getmsg.cpp b/src/sbbs3/getmsg.cpp index 1c2313c32100b1d6a0cf586a2069647864c33a14..0923a4269d0c1b3503ad64a3a1c459346ffed616 100644 --- a/src/sbbs3/getmsg.cpp +++ b/src/sbbs3/getmsg.cpp @@ -75,7 +75,7 @@ int sbbs_t::loadmsg(smbmsg_t *msg, ulong number) } /* Synchronized with atcode()! */ -void sbbs_t::show_msgattr(smbmsg_t* msg) +void sbbs_t::show_msgattr(const smbmsg_t* msg) { uint16_t attr = msg->hdr.attr; uint16_t poll = attr&MSG_POLL_VOTE_MASK; @@ -163,7 +163,7 @@ const char* sbbs_t::msghdr_field(const smbmsg_t* msg, const char* str, char* buf /****************************************************************************/ /* Displays a message header to the screen */ /****************************************************************************/ -void sbbs_t::show_msghdr(smb_t* smb, smbmsg_t* msg, const char* subject, const char* from, const char* to) +void sbbs_t::show_msghdr(smb_t* smb, const smbmsg_t* msg, const char* subject, const char* from, const char* to) { char str[MAX_PATH+1]; char age[64]; diff --git a/src/sbbs3/js_bbs.cpp b/src/sbbs3/js_bbs.cpp index a28b9ed1fadea950f368d2b972110992291c2287..aa6044f596ce92778ba661557de51e1ddab90e70 100644 --- a/src/sbbs3/js_bbs.cpp +++ b/src/sbbs3/js_bbs.cpp @@ -3948,7 +3948,7 @@ js_change_msg_attr(JSContext *cx, uintN argc, jsval *arglist) return JS_TRUE; rc=JS_SUSPENDREQUEST(cx); - int32 attr = sbbs->chmsgattr(*msg); + int32 attr = sbbs->chmsgattr(msg); JS_RESUMEREQUEST(cx, rc); JS_SET_RVAL(cx, arglist, INT_TO_JSVAL(attr)); diff --git a/src/sbbs3/readmail.cpp b/src/sbbs3/readmail.cpp index e6deffd55da923b8ad603ac906367fb2e934e28f..9c177e98a2595c2cf5eac63eefa035efd30221ee 100644 --- a/src/sbbs3/readmail.cpp +++ b/src/sbbs3/readmail.cpp @@ -503,7 +503,7 @@ void sbbs_t::readmail(uint usernumber, int which, long lm_mode) done=1; break; case 'C': /* Change attributes of last piece */ - i=chmsgattr(msg); + i=chmsgattr(&msg); if(msg.hdr.attr==i) break; if(msg.total_hfields) diff --git a/src/sbbs3/readmsgs.cpp b/src/sbbs3/readmsgs.cpp index 76c45a583c0eb872ed7ace82b10863c04d15f242..13c94fa2989d9ba734e41cef04358fe585df625f 100644 --- a/src/sbbs3/readmsgs.cpp +++ b/src/sbbs3/readmsgs.cpp @@ -1214,7 +1214,7 @@ int sbbs_t::scanposts(uint subnum, long mode, const char *find) : matchuser(&cfg,msg.from,FALSE)); break; case 'C': /* Change message attributes */ - i=chmsgattr(msg); + i=chmsgattr(&msg); if(msg.hdr.attr==i) break; if(msg.total_hfields) diff --git a/src/sbbs3/sbbs.h b/src/sbbs3/sbbs.h index f07fa53584afe073ce911c8fbed0a0d0178b55ac..dabf50743ab04a08bff0ce846f58d1dc4f644a89 100644 --- a/src/sbbs3/sbbs.h +++ b/src/sbbs3/sbbs.h @@ -614,7 +614,7 @@ public: csi_t main_csi; /* Main Command Shell Image */ - smbmsg_t* current_msg; /* For message header @-codes */ + const smbmsg_t* current_msg; /* For message header @-codes */ const char* current_msg_subj; const char* current_msg_from; const char* current_msg_to; @@ -745,7 +745,7 @@ public: void removeline(char *str, char *str2, char num, char skip); ulong msgeditor(char *buf, const char *top, char *title); bool editfile(char *path, bool msg=false); - ushort chmsgattr(smbmsg_t); + ushort chmsgattr(const smbmsg_t*); bool quotemsg(smb_t*, smbmsg_t*, bool tails = false); bool editmsg(smb_t*, smbmsg_t*); void editor_inf(int xeditnum, const char *to, const char* from, const char *subj, long mode @@ -767,8 +767,8 @@ public: /* getmsg.cpp */ int loadmsg(smbmsg_t *msg, ulong number); - void show_msgattr(smbmsg_t*); - void show_msghdr(smb_t*, smbmsg_t*, const char *subj = NULL, const char* from = NULL, const char* to = NULL); + void show_msgattr(const smbmsg_t*); + void show_msghdr(smb_t*, const smbmsg_t*, const char *subj = NULL, const char* from = NULL, const char* to = NULL); bool show_msg(smb_t*, smbmsg_t*, long p_mode = 0, post_t* post = NULL); bool msgtotxt(smb_t*, smbmsg_t*, const char *fname, bool header = true, ulong gettxt_mode = GETMSGTXT_ALL); const char* msghdr_text(const smbmsg_t*, uint index); diff --git a/src/sbbs3/writemsg.cpp b/src/sbbs3/writemsg.cpp index c7f39e459f75e34f1883900af42df68e012cf4bd..5c3434602390a873ed862b8a5c0e947783a7d94e 100644 --- a/src/sbbs3/writemsg.cpp +++ b/src/sbbs3/writemsg.cpp @@ -1845,57 +1845,58 @@ bool sbbs_t::movemsg(smbmsg_t* msg, uint subnum) return(true); } -ushort sbbs_t::chmsgattr(smbmsg_t msg) +ushort sbbs_t::chmsgattr(const smbmsg_t* msg) { int ch; + uint16_t attr = msg->hdr.attr; while(online && !(sys_status&SS_ABORT)) { CRLF; - show_msgattr(&msg); + show_msgattr(msg); menu("msgattr"); ch=getkey(K_UPPER); if(ch) bprintf("%c\r\n",ch); switch(ch) { case 'P': - msg.hdr.attr^=MSG_PRIVATE; + attr^=MSG_PRIVATE; break; case 'S': - msg.hdr.attr^=MSG_SPAM; + attr^=MSG_SPAM; break; case 'R': - msg.hdr.attr^=MSG_READ; + attr^=MSG_READ; break; case 'K': - msg.hdr.attr^=MSG_KILLREAD; + attr^=MSG_KILLREAD; break; case 'A': - msg.hdr.attr^=MSG_ANONYMOUS; + attr^=MSG_ANONYMOUS; break; case 'N': /* Non-purgeable */ - msg.hdr.attr^=MSG_PERMANENT; + attr^=MSG_PERMANENT; break; case 'M': - msg.hdr.attr^=MSG_MODERATED; + attr^=MSG_MODERATED; break; case 'V': - msg.hdr.attr^=MSG_VALIDATED; + attr^=MSG_VALIDATED; break; case 'D': - msg.hdr.attr^=MSG_DELETE; + attr^=MSG_DELETE; break; case 'L': - msg.hdr.attr^=MSG_LOCKED; + attr^=MSG_LOCKED; break; case 'C': - msg.hdr.attr^=MSG_NOREPLY; + attr^=MSG_NOREPLY; break; case 'E': - msg.hdr.attr^=MSG_REPLIED; + attr^=MSG_REPLIED; break; default: - return(msg.hdr.attr); + return(attr); } } - return(msg.hdr.attr); + return(attr); } diff --git a/src/smblib/smblib.h b/src/smblib/smblib.h index 1b00516d7112575deb8515074d6b3fba8aef3f7a..eb2f37760a16c2b32bf562882d7c33a190ac1528 100644 --- a/src/smblib/smblib.h +++ b/src/smblib/smblib.h @@ -243,8 +243,8 @@ SMBEXPORT char* smb_hfieldtype(uint16_t type); SMBEXPORT uint16_t smb_hfieldtypelookup(const char*); SMBEXPORT char* smb_dfieldtype(uint16_t type); SMBEXPORT char* smb_faddrtoa(fidoaddr_t* addr, char* outstr); -SMBEXPORT char* smb_netaddr(net_t* net); -SMBEXPORT char* smb_netaddrstr(net_t* net, char* fidoaddr_buf); +SMBEXPORT char* smb_netaddr(const net_t* net); +SMBEXPORT char* smb_netaddrstr(const net_t* net, char* fidoaddr_buf); SMBEXPORT char* smb_nettype(enum smb_net_type); SMBEXPORT char* smb_zonestr(int16_t zone, char* outstr); SMBEXPORT char* smb_msgattrstr(int16_t attr, char* outstr, size_t maxlen); diff --git a/src/smblib/smbstr.c b/src/smblib/smbstr.c index 9d9e894e0ffa262b026f04d820cee891d8ccf5aa..6d4a2ef5e40ee32306482d4e080dbeed5f55f71c 100644 --- a/src/smblib/smbstr.c +++ b/src/smblib/smbstr.c @@ -309,7 +309,7 @@ fidoaddr_t smb_atofaddr(const fidoaddr_t* sys_addr, const char *str) /* Returns ASCIIZ representation of network address (net_t) */ /* NOT THREAD-SAFE! */ /****************************************************************************/ -char* smb_netaddr(net_t* net) +char* smb_netaddr(const net_t* net) { return(smb_netaddrstr(net, NULL)); } @@ -317,7 +317,7 @@ char* smb_netaddr(net_t* net) /****************************************************************************/ /* Copies ASCIIZ representation of network address (net_t) into buf */ /****************************************************************************/ -char* smb_netaddrstr(net_t* net, char* fidoaddr_buf) +char* smb_netaddrstr(const net_t* net, char* fidoaddr_buf) { if(net->type==NET_FIDO) return(smb_faddrtoa((fidoaddr_t*)net->addr,fidoaddr_buf));