diff --git a/src/sbbs3/con_out.cpp b/src/sbbs3/con_out.cpp index 7f37acf629a6a42ddb6a72c1cf08bf82778dd67a..8f6bb2a3af9b0adb3a1528148c31bf4f930243b6 100644 --- a/src/sbbs3/con_out.cpp +++ b/src/sbbs3/con_out.cpp @@ -25,15 +25,15 @@ #include "petdefs.h" #include "cp437defs.h" -char* sbbs_t::auto_utf8(const char* str, long* mode) +char* sbbs_t::auto_utf8(const char* str, long& mode) { if(strncmp(str, "\xEF\xBB\xBF", 3) == 0) { - *mode |= P_UTF8; + mode |= P_UTF8; return (char*)(str + 3); } - if((*mode)&P_AUTO_UTF8) { + if(mode & P_AUTO_UTF8) { if(!str_is_ascii(str) && utf8_str_is_valid(str)) - *mode |= P_UTF8; + mode |= P_UTF8; } return (char*)str; } @@ -61,7 +61,7 @@ int sbbs_t::bputs(const char *str, long mode) if(online==ON_LOCAL && console&CON_L_ECHO) /* script running as event */ return(lputs(LOG_INFO, str)); - str = auto_utf8(str, &mode); + str = auto_utf8(str, mode); size_t len = strlen(str); while(l < len && online) { switch(str[l]) { @@ -137,7 +137,7 @@ int sbbs_t::bputs(const char *str, long mode) /****************************************************************************/ size_t sbbs_t::bstrlen(const char *str, long mode) { - str = auto_utf8(str, &mode); + str = auto_utf8(str, mode); size_t count = 0; const char* end = str + strlen(str); while (str < end) { diff --git a/src/sbbs3/prntfile.cpp b/src/sbbs3/prntfile.cpp index d50d21071015351a1b3a83d82773ab38bcd12c7c..866581f9b60955f66a275caca345c213216c82c0 100644 --- a/src/sbbs3/prntfile.cpp +++ b/src/sbbs3/prntfile.cpp @@ -131,7 +131,7 @@ bool sbbs_t::printfile(const char* fname, long mode, long org_cols, JSObject* ob break; if((mode&P_UTF8) && !term_supports(UTF8)) utf8_normalize_str(buf); - if(putmsgfrag(buf, &mode, org_cols, obj) != '\0') // early-EOF? + if(putmsgfrag(buf, mode, org_cols, obj) != '\0') // early-EOF? break; } free(buf); diff --git a/src/sbbs3/putmsg.cpp b/src/sbbs3/putmsg.cpp index 483f2d7f092929cc787075422203fc0f3b398d53..01b9b918faef80ad6fee2ac7d73e7957c3bdee60 100644 --- a/src/sbbs3/putmsg.cpp +++ b/src/sbbs3/putmsg.cpp @@ -64,7 +64,7 @@ char sbbs_t::putmsg(const char *buf, long mode, long org_cols, JSObject* obj) if(mode&P_NOPAUSE) sys_status|=SS_PAUSEOFF; - char ret = putmsgfrag(buf, &mode, org_cols, obj); + char ret = putmsgfrag(buf, mode, org_cols, obj); if(!(mode&P_SAVEATR)) { console=orgcon; attr(tmpatr); @@ -84,7 +84,7 @@ char sbbs_t::putmsg(const char *buf, long mode, long org_cols, JSObject* obj) } // Print a message fragment, doesn't save/restore any console states (e.g. attributes, auto-pause) -char sbbs_t::putmsgfrag(const char* buf, long* mode, long org_cols, JSObject* obj) +char sbbs_t::putmsgfrag(const char* buf, long& mode, long org_cols, JSObject* obj) { char tmp2[256],tmp3[128]; char* str=(char*)buf; @@ -102,13 +102,13 @@ char sbbs_t::putmsgfrag(const char* buf, long* mode, long org_cols, JSObject* ob size_t len = strlen(str); long term = term_supports(); - if(!((*mode)&P_NOATCODES) && memcmp(str, "@WRAPOFF@", 9) == 0) { - (*mode) &= ~P_WORDWRAP; + if(!(mode&P_NOATCODES) && memcmp(str, "@WRAPOFF@", 9) == 0) { + mode &= ~P_WORDWRAP; l += 9; } - if((*mode)&P_WORDWRAP) { + if(mode&P_WORDWRAP) { char* wrapoff = NULL; - if(!((*mode)&P_NOATCODES)) { + if(!(mode&P_NOATCODES)) { wrapoff = strstr((char*)str+l, "@WRAPOFF@"); if(wrapoff != NULL) *wrapoff = 0; @@ -117,11 +117,11 @@ char sbbs_t::putmsgfrag(const char* buf, long* mode, long org_cols, JSObject* ob if(org_cols < TERM_COLS_MIN) org_cols = TERM_COLS_DEFAULT; if((wrapped=::wordwrap((char*)str+l, cols - 1, org_cols - 1, /* handle_quotes: */TRUE - ,/* is_utf8: */INT_TO_BOOL((*mode)&P_UTF8))) == NULL) + ,/* is_utf8: */INT_TO_BOOL(mode&P_UTF8))) == NULL) errormsg(WHERE,ERR_ALLOC,"wordwrap buffer",0); else { truncsp_lines(wrapped); - (*mode) &= ~P_WORDWRAP; + mode &= ~P_WORDWRAP; putmsgfrag(wrapped, mode); free(wrapped); l=strlen(str); @@ -130,7 +130,7 @@ char sbbs_t::putmsgfrag(const char* buf, long* mode, long org_cols, JSObject* ob } } - while(l < len && ((*mode)&P_NOABORT || !msgabort()) && online) { + while(l < len && (mode&P_NOABORT || !msgabort()) && online) { switch(str[l]) { case '\r': case '\n': @@ -144,12 +144,12 @@ char sbbs_t::putmsgfrag(const char* buf, long* mode, long org_cols, JSObject* ob } // fallthrough default: // printing char - if(((*mode) & P_INDENT) && column < col) + if((mode & P_INDENT) && column < col) cursor_right(col - column); - else if(((*mode)&P_TRUNCATE) && column >= (cols - 1)) { + else if((mode&P_TRUNCATE) && column >= (cols - 1)) { l++; continue; - } else if((*mode)&P_WRAP) { + } else if(mode&P_WRAP) { if(org_cols) { if(column > (org_cols - 1)) { CRLF; @@ -162,7 +162,7 @@ char sbbs_t::putmsgfrag(const char* buf, long* mode, long org_cols, JSObject* ob } break; } - if((*mode) & P_MARKUP) { + if(mode & P_MARKUP) { const char* marks = "*/_#"; if(((mark == 0) && strchr(marks, str[l]) != NULL) || str[l] == mark) { char* next = NULL; @@ -182,7 +182,7 @@ char sbbs_t::putmsgfrag(const char* buf, long* mode, long org_cols, JSObject* ob mark = str[l]; else { mark = 0; - if(!((*mode) & P_HIDEMARKS)) + if(!(mode & P_HIDEMARKS)) outchar(str[l]); } switch(str[l]) { @@ -199,7 +199,7 @@ char sbbs_t::putmsgfrag(const char* buf, long* mode, long org_cols, JSObject* ob attr(((curatr&0x0f) << 4) | ((curatr&0xf0) >> 4)); break; } - if(mark != 0 && !((*mode) & P_HIDEMARKS)) + if(mark != 0 && !(mode & P_HIDEMARKS)) outchar(str[l]); l++; continue; @@ -207,7 +207,7 @@ char sbbs_t::putmsgfrag(const char* buf, long* mode, long org_cols, JSObject* ob } } if(str[l]==CTRL_A && str[l+1]!=0) { - if(str[l+1]=='"' && !(sys_status&SS_NEST_PF) && !((*mode)&P_NOATCODES)) { /* Quote a file */ + if(str[l+1]=='"' && !(sys_status&SS_NEST_PF) && !(mode&P_NOATCODES)) { /* Quote a file */ l+=2; i=0; while(i<(int)sizeof(tmp2)-1 && IS_PRINTABLE(str[l]) && str[l]!='\\' && str[l]!='/') @@ -241,7 +241,7 @@ char sbbs_t::putmsgfrag(const char* buf, long* mode, long org_cols, JSObject* ob l+=2; } } - else if(!((*mode)&P_NOXATTRS) + else if(!(mode&P_NOXATTRS) && (cfg.sys_misc&SM_PCBOARD) && str[l]=='@' && str[l+1]=='X' && IS_HEXDIGIT(str[l+2]) && IS_HEXDIGIT(str[l+3])) { sprintf(tmp2,"%.2s",str+l+2); @@ -262,7 +262,7 @@ char sbbs_t::putmsgfrag(const char* buf, long* mode, long org_cols, JSObject* ob exatr=1; l+=4; } - else if(!((*mode)&P_NOXATTRS) + else if(!(mode&P_NOXATTRS) && (cfg.sys_misc&SM_WILDCAT) && str[l]=='@' && str[l+3]=='@' && IS_HEXDIGIT(str[l+1]) && IS_HEXDIGIT(str[l+2])) { sprintf(tmp2,"%.2s",str+l+1); @@ -270,7 +270,7 @@ char sbbs_t::putmsgfrag(const char* buf, long* mode, long org_cols, JSObject* ob // exatr=1; l+=4; } - else if(!((*mode)&P_NOXATTRS) + else if(!(mode&P_NOXATTRS) && (cfg.sys_misc&SM_RENEGADE) && str[l]=='|' && IS_DIGIT(str[l+1]) && IS_DIGIT(str[l+2]) && !(useron.misc&RIP)) { sprintf(tmp2,"%.2s",str+l+1); @@ -286,7 +286,7 @@ char sbbs_t::putmsgfrag(const char* buf, long* mode, long org_cols, JSObject* ob exatr=1; l+=3; /* Skip |xx */ } - else if(!((*mode)&P_NOXATTRS) + else if(!(mode&P_NOXATTRS) && (cfg.sys_misc&SM_CELERITY) && str[l]=='|' && IS_ALPHA(str[l+1]) && !(useron.misc&RIP)) { switch(str[l+1]) { @@ -345,7 +345,7 @@ char sbbs_t::putmsgfrag(const char* buf, long* mode, long org_cols, JSObject* ob exatr=1; l+=2; /* Skip |x */ } /* Skip second digit if it exists */ - else if(!((*mode)&P_NOXATTRS) + else if(!(mode&P_NOXATTRS) && (cfg.sys_misc&SM_WWIV) && str[l]==CTRL_C && IS_DIGIT(str[l+1])) { exatr=1; switch(str[l+1]) { @@ -403,7 +403,7 @@ char sbbs_t::putmsgfrag(const char* buf, long* mode, long org_cols, JSObject* ob } if(str[l]=='!' && str[l+1]=='|' && useron.misc&RIP) /* RIP */ lncntr=0; /* so defeat pause */ - if(str[l]=='@' && !((*mode)&P_NOATCODES)) { + if(str[l]=='@' && !(mode&P_NOATCODES)) { if(memcmp(str+l, "@EOF@", 5) == 0) break; if(memcmp(str+l, "@CLEAR@", 7) == 0) { @@ -436,17 +436,17 @@ char sbbs_t::putmsgfrag(const char* buf, long* mode, long org_cols, JSObject* ob } if(memcmp(str+l, "@WORDWRAP@", 10) == 0) { l += 10; - (*mode) |= P_WORDWRAP; + mode |= P_WORDWRAP; return putmsgfrag(str+l, mode, org_cols); } if(memcmp(str+l, "@QON@", 5) == 0) { // Allow the file display to be aborted (PCBoard) l += 5; - (*mode) &= ~P_NOABORT; + mode &= ~P_NOABORT; continue; } if(memcmp(str+l, "@QOFF@", 6) == 0) { // Do not allow the display of teh file to be aborted (PCBoard) l += 6; - (*mode) |= P_NOABORT; + mode |= P_NOABORT; continue; } bool was_tos = (row == 0); @@ -457,7 +457,7 @@ char sbbs_t::putmsgfrag(const char* buf, long* mode, long org_cols, JSObject* ob if(i) /* if valid string, go to top */ continue; } - if((*mode)&P_CPM_EOF && str[l]==CTRL_Z) + if(mode&P_CPM_EOF && str[l]==CTRL_Z) break; if(hot_attr) { if(curatr == hot_attr && str[l] > ' ') { @@ -473,12 +473,12 @@ char sbbs_t::putmsgfrag(const char* buf, long* mode, long org_cols, JSObject* ob } } size_t skip = sizeof(char); - if((*mode)&P_PETSCII) { + if(mode&P_PETSCII) { if(term&PETSCII) outcom(str[l]); else petscii_to_ansibbs(str[l]); - } else if((str[l]&0x80) && ((*mode)&P_UTF8)) { + } else if((str[l]&0x80) && (mode&P_UTF8)) { if(term&UTF8) outcom(str[l]); else diff --git a/src/sbbs3/sbbs.h b/src/sbbs3/sbbs.h index 83f92c799882961f9d1fd031fcf80ea8d2f61a80..54cbdf1432ba1525d9930291d44da03090e2614b 100644 --- a/src/sbbs3/sbbs.h +++ b/src/sbbs3/sbbs.h @@ -736,7 +736,7 @@ public: char* quotes_fname(int xedit, char* buf, size_t len); char* msg_tmp_fname(int xedit, char* fname, size_t len); char putmsg(const char *str, long mode, long org_cols = 0, JSObject* obj = NULL); - char putmsgfrag(const char* str, long* mode, long org_cols = 0, JSObject* obj = NULL); + char putmsgfrag(const char* str, long& mode, long org_cols = 0, JSObject* obj = NULL); bool msgabort(void); bool email(int usernumber, const char *top = NULL, const char *title = NULL , long mode = WM_NONE, smb_t* resmb = NULL, smbmsg_t* remsg = NULL); @@ -851,7 +851,7 @@ public: size_t print_utf8_as_cp437(const char*, size_t); int attr(int); /* Change text color/attributes */ void ctrl_a(char); /* Performs Ctrl-Ax attribute changes */ - char* auto_utf8(const char*, long* mode); + char* auto_utf8(const char*, long& mode); enum output_rate { output_rate_unlimited, output_rate_300 = 300,