diff --git a/src/hash/crc16.c b/src/hash/crc16.c index 5576391e4c6985238cc8a5b1bf0d26e1657b72df..52a759ce68b3dd6c8e6cfb7a6a701ce8fa3cb48b 100644 --- a/src/hash/crc16.c +++ b/src/hash/crc16.c @@ -73,7 +73,7 @@ uint16_t crc16tbl[] = { 0x6E17, 0x7E36, 0x4E55, 0x5E74, 0x2E93, 0x3EB2, 0x0ED1, 0x1EF0 }; -uint16_t crc16(char* data, unsigned long len) +uint16_t crc16(const char* data, unsigned long len) { uint16_t crc = 0; unsigned long l; diff --git a/src/hash/crc16.h b/src/hash/crc16.h index 364599cffcfd77a128e16df250018475fbad48bf..b21695dc3684b4a75f158a0d13ed3d124d3c5bf8 100644 --- a/src/hash/crc16.h +++ b/src/hash/crc16.h @@ -46,7 +46,7 @@ extern "C" { extern uint16_t crc16tbl[]; -uint16_t crc16(char* data, unsigned long len); +uint16_t crc16(const char* data, unsigned long len); #ifdef __cplusplus } diff --git a/src/hash/crc32.c b/src/hash/crc32.c index 1b472b2a98c7c09a8421495b7fc0f7ef4cfd04e7..43d7c0d22d96437a7cb94ddc002bf52b111bfb49 100644 --- a/src/hash/crc32.c +++ b/src/hash/crc32.c @@ -78,7 +78,7 @@ int32_t crc32tbl[]={ /* CRC polynomial 0xedb88320 */ /* Pass len of 0 to auto-determine ASCIIZ string length */ /* or non-zero for arbitrary binary data */ /****************************************************************************/ -uint32_t crc32i(uint32_t crc, char *buf, unsigned long len) +uint32_t crc32i(uint32_t crc, const char *buf, unsigned long len) { unsigned long l; diff --git a/src/hash/crc32.h b/src/hash/crc32.h index ee1597400e56d7995509c990b03487c2088b18cd..e00519aa290856bedbce73d16e4837c676709ec6 100644 --- a/src/hash/crc32.h +++ b/src/hash/crc32.h @@ -47,7 +47,7 @@ extern "C" { extern int32_t crc32tbl[]; -uint32_t crc32i(uint32_t crc, char* buf, unsigned long len); +uint32_t crc32i(uint32_t crc, const char* buf, unsigned long len); uint32_t fcrc32(FILE* fp, unsigned long len); #ifdef __cplusplus diff --git a/src/sbbs3/addfiles.c b/src/sbbs3/addfiles.c index 9a02b5f3135f512a8b4c3044b2dd113d9da516be..c98c2c7097ada4640952809421bce1f0585b928b 100644 --- a/src/sbbs3/addfiles.c +++ b/src/sbbs3/addfiles.c @@ -66,7 +66,7 @@ char lib[LEN_GSNAME+1]; /****************************************************************************/ /* This is needed by load_cfg.c */ /****************************************************************************/ -int lprintf(int level, char *fmat, ...) +int lprintf(int level, const char *fmat, ...) { va_list argptr; char sbuf[512]; diff --git a/src/sbbs3/ansiterm.cpp b/src/sbbs3/ansiterm.cpp index 0073c68e4fea1985672d4f3d1e06111c3fe96218..5e776200ce4171b580ad59325bdbccbbd05f0eca 100644 --- a/src/sbbs3/ansiterm.cpp +++ b/src/sbbs3/ansiterm.cpp @@ -44,7 +44,7 @@ /* high intensity colors, or background/forground cobinations don't work. */ /* A call to attr is more appropriate, being it is intelligent */ /****************************************************************************/ -char *sbbs_t::ansi(int atr) +const char *sbbs_t::ansi(int atr) { switch(atr) { diff --git a/src/sbbs3/atcodes.cpp b/src/sbbs3/atcodes.cpp index c2a27fb2cb7495cd0239a9b850734ad96d7e48cf..3620750b925a58f7af06084b23cdc40bcdd55f1e 100644 --- a/src/sbbs3/atcodes.cpp +++ b/src/sbbs3/atcodes.cpp @@ -48,13 +48,14 @@ /****************************************************************************/ /* Returns 0 if invalid @ code. Returns length of @ code if valid. */ /****************************************************************************/ -int sbbs_t::show_atcode(char *instr) +int sbbs_t::show_atcode(const char *instr) { - char str[128],str2[128],*p,*tp,*sp; + char str[128],str2[128],*tp,*sp,*p; int len; int disp_len; bool padded_left=false; bool padded_right=false; + const char *cp; sprintf(str,"%.80s",instr); tp=strchr(str+1,'@'); @@ -78,21 +79,21 @@ int sbbs_t::show_atcode(char *instr) *p=0; } - p=atcode(sp,str2,sizeof(str2)); - if(p==NULL) + cp=atcode(sp,str2,sizeof(str2)); + if(cp==NULL) return(0); if(padded_left) - rprintf("%-*.*s",disp_len,disp_len,p); + rprintf("%-*.*s",disp_len,disp_len,cp); else if(padded_right) - rprintf("%*.*s",disp_len,disp_len,p); + rprintf("%*.*s",disp_len,disp_len,cp); else - rputs(p); + rputs(cp); return(len); } -char* sbbs_t::atcode(char* sp, char* str, size_t maxlen) +const char* sbbs_t::atcode(char* sp, char* str, size_t maxlen) { char* tp; uint i; diff --git a/src/sbbs3/chk_ar.cpp b/src/sbbs3/chk_ar.cpp index 92d552982cff9752b335dcbc837d687c2df6c33b..67c9c780dfd47dada3d9de675d3c836d7de5e89b 100644 --- a/src/sbbs3/chk_ar.cpp +++ b/src/sbbs3/chk_ar.cpp @@ -37,7 +37,7 @@ #include "sbbs.h" -bool sbbs_t::ar_exp(uchar **ptrptr, user_t* user) +bool sbbs_t::ar_exp(const uchar **ptrptr, user_t* user) { bool result,_not,_or,equal; uint i,n,artype,age; @@ -582,9 +582,9 @@ bool sbbs_t::ar_exp(uchar **ptrptr, user_t* user) return(result); } -bool sbbs_t::chk_ar(uchar *ar, user_t* user) +bool sbbs_t::chk_ar(const uchar *ar, user_t* user) { - uchar *p; + const uchar *p; if(ar==NULL) return(true); diff --git a/src/sbbs3/client.h b/src/sbbs3/client.h index 10594ccab785219fa83235e7aaa0542df4263a1e..0167556d2dfc4d10cb245c106254da0a25e92617 100644 --- a/src/sbbs3/client.h +++ b/src/sbbs3/client.h @@ -49,7 +49,7 @@ typedef struct { WORD port; /* TCP port number */ time_t time; /* connect time */ const char* protocol; /* protocol description */ - char* user; /* user name */ + const char* user; /* user name */ char pad[32]; /* padding for future expansion */ } client_t; diff --git a/src/sbbs3/con_hi.cpp b/src/sbbs3/con_hi.cpp index 5f7453eabebb14ee0dd1d853011702bb2383c105..f1110f8e92d0f7187c7ce6a4a189657a9b1f2a0f 100644 --- a/src/sbbs3/con_hi.cpp +++ b/src/sbbs3/con_hi.cpp @@ -69,7 +69,7 @@ void sbbs_t::redrwstr(char *strin, int i, int l, long mode) } -int sbbs_t::uselect(int add, uint n, char *title, char *item, uchar *ar) +int sbbs_t::uselect(int add, uint n, const char *title, const char *item, const uchar *ar) { char str[128]; int i; diff --git a/src/sbbs3/con_out.cpp b/src/sbbs3/con_out.cpp index 5339a8b4bc01c3095df3d4ca725c0d36f273380a..6cbefc7ed97bba99a2196c4e7e12eee4d76b7c13 100644 --- a/src/sbbs3/con_out.cpp +++ b/src/sbbs3/con_out.cpp @@ -71,7 +71,7 @@ char* DLLCALL ascii_str(uchar* str) /* Outputs a NULL terminated string locally and remotely (if applicable) */ /* Handles ctrl-a characters */ /****************************************************************************/ -int sbbs_t::bputs(char *str) +int sbbs_t::bputs(const char *str) { int i; ulong l=0; @@ -115,7 +115,7 @@ int sbbs_t::bputs(char *str) /* Does not expand ctrl-a characters (raw) */ /* Max length of str is 64 kbytes */ /****************************************************************************/ -int sbbs_t::rputs(char *str) +int sbbs_t::rputs(const char *str) { ulong l=0; @@ -130,7 +130,7 @@ int sbbs_t::rputs(char *str) /****************************************************************************/ /* Performs printf() using bbs bputs function */ /****************************************************************************/ -int sbbs_t::bprintf(char *fmt, ...) +int sbbs_t::bprintf(const char *fmt, ...) { va_list argptr; char sbuf[4096]; @@ -147,7 +147,7 @@ int sbbs_t::bprintf(char *fmt, ...) /****************************************************************************/ /* Performs printf() using bbs rputs function */ /****************************************************************************/ -int sbbs_t::rprintf(char *fmt, ...) +int sbbs_t::rprintf(const char *fmt, ...) { va_list argptr; char sbuf[4096]; diff --git a/src/sbbs3/ctrl/MainFormUnit.cpp b/src/sbbs3/ctrl/MainFormUnit.cpp index 08060200edb5858afdc70cc1b50605501da02a3d..55b127a826053f035b4ec2176090f730d56990a2 100644 --- a/src/sbbs3/ctrl/MainFormUnit.cpp +++ b/src/sbbs3/ctrl/MainFormUnit.cpp @@ -254,7 +254,7 @@ static void client_on(void* p, BOOL on, int sock, client_t* client, BOOL update) ReleaseMutex(ClientForm->ListMutex); } -static int bbs_lputs(void* p, int level, char *str) +static int bbs_lputs(void* p, int level, const char *str) { static HANDLE mutex; @@ -272,7 +272,7 @@ static int bbs_lputs(void* p, int level, char *str) return(Line.Length()); } -static void bbs_status(void* p, char *str) +static void bbs_status(void* p, const char *str) { static HANDLE mutex; @@ -341,7 +341,7 @@ static void bbs_start(void) Application->ProcessMessages(); } -static int event_lputs(int level, char *str) +static int event_lputs(int level, const char *str) { static HANDLE mutex; @@ -359,7 +359,7 @@ static int event_lputs(int level, char *str) return(Line.Length()); } -static int service_lputs(void* p, int level, char *str) +static int service_lputs(void* p, int level, const char *str) { static HANDLE mutex; @@ -377,7 +377,7 @@ static int service_lputs(void* p, int level, char *str) return(Line.Length()); } -static void services_status(void* p, char *str) +static void services_status(void* p, const char *str) { static HANDLE mutex; @@ -411,7 +411,7 @@ static void services_clients(void* p, int clients) { } -static int mail_lputs(void* p, int level, char *str) +static int mail_lputs(void* p, int level, const char *str) { static HANDLE mutex; static FILE* LogStream; @@ -463,7 +463,7 @@ static int mail_lputs(void* p, int level, char *str) return(Line.Length()); } -static void mail_status(void* p, char *str) +static void mail_status(void* p, const char *str) { static HANDLE mutex; @@ -527,7 +527,7 @@ static void mail_start(void) Application->ProcessMessages(); } -static int ftp_lputs(void* p, int level, char *str) +static int ftp_lputs(void* p, int level, const char *str) { static HANDLE mutex; static FILE* LogStream; @@ -580,7 +580,7 @@ static int ftp_lputs(void* p, int level, char *str) return(Line.Length()); } -static void ftp_status(void* p, char *str) +static void ftp_status(void* p, const char *str) { static HANDLE mutex; @@ -644,7 +644,7 @@ static void ftp_start(void) Application->ProcessMessages(); } //--------------------------------------------------------------------------- -static int web_lputs(void* p, int level, char *str) +static int web_lputs(void* p, int level, const char *str) { static HANDLE mutex; static FILE* LogStream; @@ -697,7 +697,7 @@ static int web_lputs(void* p, int level, char *str) return(Line.Length()); } -static void web_status(void* p, char *str) +static void web_status(void* p, const char *str) { static HANDLE mutex; diff --git a/src/sbbs3/dat_rec.c b/src/sbbs3/dat_rec.c index d5c8b3ef6bb924f4b0990e279418d35a709af675..5ab06c8414e5fc2b231e1c60c683156a58f283cb 100644 --- a/src/sbbs3/dat_rec.c +++ b/src/sbbs3/dat_rec.c @@ -41,7 +41,7 @@ /* Places into 'strout' CR or ETX terminated string starting at */ /* 'start' and ending at 'start'+'length' or terminator from 'strin' */ /****************************************************************************/ -void DLLCALL getrec(char *strin,int start,int length,char *strout) +void DLLCALL getrec(const char *strin,int start,int length,char *strout) { int i=0,stop; diff --git a/src/sbbs3/dat_rec.h b/src/sbbs3/dat_rec.h index 0f118c054af1e1b29786dd1f1e5484dc084dbfb1..1b2975c2e2996ffad593b7c89636ee7158a72b66 100644 --- a/src/sbbs3/dat_rec.h +++ b/src/sbbs3/dat_rec.h @@ -65,7 +65,7 @@ extern "C" { #endif -DLLEXPORT void DLLCALL getrec(char *instr,int start,int length,char *outstr); /* Retrieve a record from a string */ +DLLEXPORT void DLLCALL getrec(const char *instr,int start,int length,char *outstr); /* Retrieve a record from a string */ DLLEXPORT void DLLCALL putrec(char *outstr,int start,int length,char *instr); /* Place a record into a string */ #ifdef __cplusplus diff --git a/src/sbbs3/delfiles.c b/src/sbbs3/delfiles.c index 8719132b682a8776fc8823ccc57bfc663b6b16b9..c75622d5b7c208c3d0b1a42d289104440193b227 100644 --- a/src/sbbs3/delfiles.c +++ b/src/sbbs3/delfiles.c @@ -73,7 +73,7 @@ long lputs(char *str) /* Performs printf() through local assembly routines */ /* Called from everywhere */ /****************************************************************************/ -int lprintf(char *fmat, ...) +int lprintf(const char *fmat, ...) { va_list argptr; char sbuf[256]; diff --git a/src/sbbs3/download.cpp b/src/sbbs3/download.cpp index 5b484617df66dcd0acb28553c3e339e881b61380..83363885c11d6394bfd37e72f749f713df67be65 100644 --- a/src/sbbs3/download.cpp +++ b/src/sbbs3/download.cpp @@ -171,7 +171,7 @@ void sbbs_t::notdownloaded(ulong size, time_t start, time_t end) } } -char* sbbs_t::protcmdline(prot_t* prot, enum XFER_TYPE type) +const char* sbbs_t::protcmdline(prot_t* prot, enum XFER_TYPE type) { switch(type) { case XFER_UPLOAD: diff --git a/src/sbbs3/dupefind.c b/src/sbbs3/dupefind.c index 3d41d251b59f27bc4cdf043ea80f0c1bfb817c0a..620955ebfe7eda400261ca42ccd65bd33900a918 100644 --- a/src/sbbs3/dupefind.c +++ b/src/sbbs3/dupefind.c @@ -31,7 +31,7 @@ return(fputs(tmp,stderr)); /* Performs printf() through local assembly routines */ /* Called from everywhere */ /****************************************************************************/ -int lprintf(char *fmat, ...) +int lprintf(const char *fmat, ...) { va_list argptr; char sbuf[256]; diff --git a/src/sbbs3/email.cpp b/src/sbbs3/email.cpp index 57c6a3e6c352a23975c3088b1f3684647dc07785..b51c37e3ff309412d2f231f5796577480723a462 100644 --- a/src/sbbs3/email.cpp +++ b/src/sbbs3/email.cpp @@ -43,7 +43,7 @@ /* of message. */ /* Called from functions main_sec, newuser, readmail and scanposts */ /****************************************************************************/ -bool sbbs_t::email(int usernumber, char *top, char *subj, long mode) +bool sbbs_t::email(int usernumber, const char *top, const char *subj, long mode) { char str[256],str2[256],msgpath[256],title[LEN_TITLE+1],ch ,buf[SDT_BLOCK_LEN]; diff --git a/src/sbbs3/execnet.cpp b/src/sbbs3/execnet.cpp index a32af9ba40a0a0824caead72095b74d5f94b55da..0c19b3b2b7d9d88d670e46cd5fe8d6564782391c 100644 --- a/src/sbbs3/execnet.cpp +++ b/src/sbbs3/execnet.cpp @@ -450,7 +450,7 @@ int sbbs_t::exec_net(csi_t* csi) } /* FTP Command/Response function */ -bool sbbs_t::ftp_cmd(csi_t* csi, SOCKET sock, char* cmdsrc, char* rsp) +bool sbbs_t::ftp_cmd(csi_t* csi, SOCKET sock, const char* cmdsrc, char* rsp) { char cmd[512]; int len; diff --git a/src/sbbs3/fido.cpp b/src/sbbs3/fido.cpp index 257edc5f5577a3f6b03b661f4981651a13bac4b5..b366f88a589d67ee93d19cd8adc3419349d398e1 100644 --- a/src/sbbs3/fido.cpp +++ b/src/sbbs3/fido.cpp @@ -96,7 +96,7 @@ bool sbbs_t::lookup_netuser(char *into) /****************************************************************************/ /* Send FidoNet/QWK/Internet NetMail from BBS */ /****************************************************************************/ -bool sbbs_t::netmail(char *into, char *title, long mode) +bool sbbs_t::netmail(const char *into, const char *title, long mode) { char str[256],subj[128],to[256],fname[128],*buf,*p,ch; char tmp[512]; diff --git a/src/sbbs3/file.cpp b/src/sbbs3/file.cpp index 62d9f037031dab437857ffa25f5d3e7e0e5b5b68..7f75af03c3c596a86c0437866694c6b047f866dc 100644 --- a/src/sbbs3/file.cpp +++ b/src/sbbs3/file.cpp @@ -239,7 +239,7 @@ char * sbbs_t::getfilespec(char *str) /****************************************************************************/ /* Checks to see if filename matches filespec. Returns 1 if yes, 0 if no */ /****************************************************************************/ -extern "C" BOOL filematch(char *filename, char *filespec) +extern "C" BOOL filematch(const char *filename, const char *filespec) { char c; diff --git a/src/sbbs3/filedat.c b/src/sbbs3/filedat.c index 13d70dbf950da8ba8e88b47ffe9d64058f2278c7..bf212ce5042f7192e07128142fefb193b482aecc 100644 --- a/src/sbbs3/filedat.c +++ b/src/sbbs3/filedat.c @@ -531,7 +531,7 @@ BOOL DLLCALL findfile(scfg_t* cfg, uint dirnum, char *filename) /****************************************************************************/ /* Turns FILE.EXT into FILE .EXT */ /****************************************************************************/ -char* DLLCALL padfname(char *filename, char *str) +char* DLLCALL padfname(const char *filename, char *str) { int c,d; @@ -558,7 +558,7 @@ char* DLLCALL padfname(char *filename, char *str) /****************************************************************************/ /* Turns FILE .EXT into FILE.EXT */ /****************************************************************************/ -char* DLLCALL unpadfname(char *filename, char *str) +char* DLLCALL unpadfname(const char *filename, char *str) { int c,d; diff --git a/src/sbbs3/filelist.c b/src/sbbs3/filelist.c index 9bb7d77364f0a53fdc7e39f1097e948b56515527..0ce732474d5f0fb67861563b8626f327b114f3c5 100644 --- a/src/sbbs3/filelist.c +++ b/src/sbbs3/filelist.c @@ -49,7 +49,7 @@ char *crlf="\r\n"; /****************************************************************************/ /****************************************************************************/ -int lprintf(int level, char *fmat, ...) +int lprintf(int level, const char *fmat, ...) { va_list argptr; char sbuf[256]; diff --git a/src/sbbs3/ftpsrvr.c b/src/sbbs3/ftpsrvr.c index 1b13b4b58dea8ebbcb041c7ed88774f0efe1ec64..d740f231dd587870c5f8b7d5f18ee15621059a0f 100644 --- a/src/sbbs3/ftpsrvr.c +++ b/src/sbbs3/ftpsrvr.c @@ -126,7 +126,7 @@ BOOL dir_op(scfg_t* cfg, user_t* user, uint dirnum) || (cfg->dir[dirnum]->op_ar[0] && chk_ar(cfg,cfg->dir[dirnum]->op_ar,user))); } -static int lprintf(int level, char *fmt, ...) +static int lprintf(int level, const char *fmt, ...) { int result; va_list argptr; diff --git a/src/sbbs3/ftpsrvr.h b/src/sbbs3/ftpsrvr.h index dcfff76cb4703317511152b9990cf120141cfb56..24d072e1fd481b0bc2ecfe32d57f118c049680ee 100644 --- a/src/sbbs3/ftpsrvr.h +++ b/src/sbbs3/ftpsrvr.h @@ -57,8 +57,8 @@ typedef struct { void* cbdata; /* Private data passed to callbacks */ /* Callbacks (NULL if unused) */ - int (*lputs)(void*, int, char*); - void (*status)(void*, char*); + int (*lputs)(void*, int, const char*); + void (*status)(void*, const char*); void (*started)(void*); void (*recycle)(void*); void (*terminated)(void*, int code); diff --git a/src/sbbs3/getkey.cpp b/src/sbbs3/getkey.cpp index 8eef58b4391079aaf7d0dd22f156ca9666e610d8..8d9294fdec5a7c164b46ab564d132fe91357ad17 100644 --- a/src/sbbs3/getkey.cpp +++ b/src/sbbs3/getkey.cpp @@ -299,7 +299,7 @@ char sbbs_t::getkey(long mode) /****************************************************************************/ /* Outputs a string highlighting characters preceeded by a tilde */ /****************************************************************************/ -void sbbs_t::mnemonics(char *str) +void sbbs_t::mnemonics(const char *str) { char *ctrl_a_codes; long l; @@ -351,7 +351,7 @@ void sbbs_t::mnemonics(char *str) /* Returns 1 for Y or 0 for N */ /* Called from quite a few places */ /****************************************************************************/ -bool sbbs_t::yesno(char *str) +bool sbbs_t::yesno(const char *str) { char ch; @@ -389,7 +389,7 @@ bool sbbs_t::yesno(char *str) /* Returns 1 for N or 0 for Y */ /* Called from quite a few places */ /****************************************************************************/ -bool sbbs_t::noyes(char *str) +bool sbbs_t::noyes(const char *str) { char ch; @@ -428,7 +428,7 @@ bool sbbs_t::noyes(char *str) /* it is echoed (upper case) and is the return value. */ /* Called from quite a few functions */ /****************************************************************************/ -long sbbs_t::getkeys(char *keys, ulong max) +long sbbs_t::getkeys(const char *keys, ulong max) { char str[81]; uchar ch,n=0,c=0; diff --git a/src/sbbs3/js_bbs.cpp b/src/sbbs3/js_bbs.cpp index 61053af6fd340aecdeb674c8262e53785646f35f..266941eb44c2080a01646f6e25cd4a6b6573e51d 100644 --- a/src/sbbs3/js_bbs.cpp +++ b/src/sbbs3/js_bbs.cpp @@ -246,8 +246,8 @@ enum { static JSBool js_bbs_get(JSContext *cx, JSObject *obj, jsval id, jsval *vp) { - char* p=NULL; - char* nulstr=""; + const char* p=NULL; + const char* nulstr=""; ulong val=0; jsint tiny; sbbs_t* sbbs; @@ -1263,6 +1263,7 @@ js_atcode(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) int disp_len; bool padded_left=false; bool padded_right=false; + const char *cp; if((sbbs=(sbbs_t*)JS_GetContextPrivate(cx))==NULL) return(JS_FALSE); @@ -1285,17 +1286,17 @@ js_atcode(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) if(disp_len >= sizeof(str)) disp_len=sizeof(str)-1; - p=sbbs->atcode(instr,str2,sizeof(str2)); + cp=sbbs->atcode(instr,str2,sizeof(str2)); free(instr); - if(p==NULL) + if(cp==NULL) *rval = JSVAL_NULL; else { if(padded_left) - sprintf(str,"%-*.*s",disp_len,disp_len,p); + sprintf(str,"%-*.*s",disp_len,disp_len,cp); else if(padded_right) - sprintf(str,"%*.*s",disp_len,disp_len,p); + sprintf(str,"%*.*s",disp_len,disp_len,cp); else - SAFECOPY(str,p); + SAFECOPY(str,cp); JSString* js_str = JS_NewStringCopyZ(cx, str); if(js_str==NULL) @@ -1931,8 +1932,8 @@ js_email(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { int32 usernumber=1; long mode=WM_EMAIL; - char* top=""; - char* subj=""; + const char* top=""; + const char* subj=""; JSString* js_top=NULL; JSString* js_subj=NULL; sbbs_t* sbbs; @@ -1963,7 +1964,7 @@ static JSBool js_netmail(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { long mode=0; - char* subj=""; + const char* subj=""; JSString* js_to; JSString* js_subj=NULL; sbbs_t* sbbs; @@ -2259,8 +2260,8 @@ static JSBool js_cmdstr(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { char* p; - char* fpath=""; - char* fspec=""; + const char* fpath=""; + const char* fspec=""; JSString* js_str; sbbs_t* sbbs; @@ -2318,7 +2319,7 @@ static JSBool js_listfiles(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { long mode=0; - char* fspec=ALLFILES; + const char* fspec=ALLFILES; char buf[MAX_PATH+1]; uint dirnum; JSString* js_str; @@ -2355,7 +2356,7 @@ static JSBool js_listfileinfo(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { long mode=FI_INFO; - char* fspec=ALLFILES; + const char* fspec=ALLFILES; char buf[MAX_PATH+1]; uint dirnum; JSString* js_str; @@ -2526,7 +2527,7 @@ js_scandirs(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) static JSBool js_scanposts(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - char* find=""; + const char* find=""; long mode=0; uint subnum; sbbs_t* sbbs; @@ -2558,7 +2559,7 @@ js_scanposts(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) static JSBool js_listmsgs(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - char* find=""; + const char* find=""; long mode=0; long start=0; uint subnum; diff --git a/src/sbbs3/js_client.c b/src/sbbs3/js_client.c index faac6a968d6449187d20fd4134908016a35f49c0..1cad0cd0097821ad5faaed7f37df1db0e209944a 100644 --- a/src/sbbs3/js_client.c +++ b/src/sbbs3/js_client.c @@ -70,7 +70,7 @@ static JSBool js_client_set(JSContext *cx, JSObject *obj, jsval id, jsval *vp) static JSBool js_client_get(JSContext *cx, JSObject *obj, jsval id, jsval *vp) { - char* p=NULL; + const char* p=NULL; ulong val=0; jsint tiny; JSString* js_str; diff --git a/src/sbbs3/jsexec.c b/src/sbbs3/jsexec.c index ce40e47d5c85e1dd9d21331e61d2ee28f149573d..e83efb9668f18b6c322bd239bdc6bf258856830d 100644 --- a/src/sbbs3/jsexec.c +++ b/src/sbbs3/jsexec.c @@ -159,7 +159,7 @@ int mfprintf(FILE* fp, char *fmt, ...) } /* Log printf */ -int lprintf(int level, char *fmt, ...) +int lprintf(int level, const char *fmt, ...) { va_list argptr; char sbuf[1024]; diff --git a/src/sbbs3/listfile.cpp b/src/sbbs3/listfile.cpp index 2caf8758c8c7f1a67e3fba48ba82425691731cd6..1166c147e7e5309412c6c771a025b48945c950d2 100644 --- a/src/sbbs3/listfile.cpp +++ b/src/sbbs3/listfile.cpp @@ -48,7 +48,7 @@ int extdesclines(char *str); /* list the directory header. */ /* Returns -1 if the listing was aborted, otherwise total files listed */ /*****************************************************************************/ -int sbbs_t::listfiles(uint dirnum, char *filespec, int tofile, long mode) +int sbbs_t::listfiles(uint dirnum, const char *filespec, int tofile, long mode) { char str[256],hdr[256],c,d,letter='A',*p,*datbuf,ext[513]; char tmp[512]; @@ -372,8 +372,8 @@ int sbbs_t::listfiles(uint dirnum, char *filespec, int tofile, long mode) /* Prints one file's information on a single line */ /* Return 1 if displayed, 0 otherwise */ /****************************************************************************/ -bool sbbs_t::listfile(char *fname, char *buf, uint dirnum - , char *search, char letter, ulong datoffset) +bool sbbs_t::listfile(const char *fname, const char *buf, uint dirnum + , const char *search, const char letter, ulong datoffset) { char str[256],ext[513]="",*ptr,*cr,*lf,exist=1; char path[MAX_PATH+1]; @@ -390,7 +390,7 @@ bool sbbs_t::listfile(char *fname, char *buf, uint dirnum attr(cfg.color[clr_filename]); bputs(fname); - getrec((char *)buf,F_ALTPATH,2,str); + getrec(buf,F_ALTPATH,2,str); alt=(uchar)ahtoul(str); sprintf(path,"%s%s",alt>0 && alt<=cfg.altpaths ? cfg.altpath[alt-1]:cfg.dir[dirnum]->path ,unpadfname(fname,tmp)); @@ -410,7 +410,7 @@ bool sbbs_t::listfile(char *fname, char *buf, uint dirnum attr(cfg.color[clr_err]); } else attr(cfg.color[clr_filecdt]); - getrec((char *)buf,F_CDT,LEN_FCDT,str); + getrec(buf,F_CDT,LEN_FCDT,str); cdt=atol(str); if(useron.misc&BATCHFLAG) { if(!cdt) { @@ -435,7 +435,7 @@ bool sbbs_t::listfile(char *fname, char *buf, uint dirnum outchar(' '); else outchar('-'); - getrec((char *)buf,F_DESC,LEN_FDESC,str); + getrec(buf,F_DESC,LEN_FDESC,str); attr(cfg.color[clr_filedesc]); #ifdef _WIN32 diff --git a/src/sbbs3/load_cfg.c b/src/sbbs3/load_cfg.c index 898b975a0d5472e2154dac0b5a4d3913b1f4b717..9fcb6f6d337ce7e07da3cc1fe8313b3c01c0a187 100644 --- a/src/sbbs3/load_cfg.c +++ b/src/sbbs3/load_cfg.c @@ -42,7 +42,7 @@ static void prep_cfg(scfg_t* cfg); static void free_attr_cfg(scfg_t* cfg); char * readtext(long *line, FILE *stream); -int lprintf(int level, char *fmt, ...); /* log output */ +int lprintf(int level, const char *fmt, ...); /* log output */ /****************************************************************************/ /* Initializes system and node configuration information and data variables */ diff --git a/src/sbbs3/logfile.cpp b/src/sbbs3/logfile.cpp index 23e2ce85dac8ecd8a536c153a006e41ca8d61a1b..e486b3d870610892fa43d7f63b9ad4bbe60cf588 100644 --- a/src/sbbs3/logfile.cpp +++ b/src/sbbs3/logfile.cpp @@ -110,7 +110,7 @@ extern "C" BOOL DLLCALL spamlog(scfg_t* cfg, char* prot, char* action return(TRUE); } -void sbbs_t::logentry(char *code, char *entry) +void sbbs_t::logentry(const char *code, const char *entry) { char str[512]; @@ -138,7 +138,7 @@ void sbbs_t::log(char *str) logcol+=strlen(str); } -bool sbbs_t::syslog(char* code, char *entry) +bool sbbs_t::syslog(const char* code, const char *entry) { char fname[MAX_PATH+1]; char str[128]; @@ -166,7 +166,7 @@ bool sbbs_t::syslog(char* code, char *entry) /****************************************************************************/ /* Writes 'str' on it's own line in node.log */ /****************************************************************************/ -void sbbs_t::logline(char *code, char *str) +void sbbs_t::logline(const char *code, const char *str) { if(strchr(str,'\n')==NULL) { // Keep the console log pretty if(online==ON_LOCAL) @@ -342,7 +342,7 @@ void sbbs_t::errormsg(int line, const char *source, const char* action, const ch /*****************************************************************************/ /* Error logging to NODE.LOG and DATA\ERROR.LOG function */ /*****************************************************************************/ -void sbbs_t::errorlog(char *text) +void sbbs_t::errorlog(const char *text) { char hdr[256],str[256],tmp2[256]; int file; diff --git a/src/sbbs3/mailsrvr.c b/src/sbbs3/mailsrvr.c index 3b709c9c9c78dc22382fdd3dde8ea09443ed8cad..5bb693d971f663bebcb130e9d6ce34a5ef46a0a5 100644 --- a/src/sbbs3/mailsrvr.c +++ b/src/sbbs3/mailsrvr.c @@ -114,7 +114,7 @@ typedef struct { SOCKADDR_IN client_addr; } smtp_t,pop3_t; -static int lprintf(int level, char *fmt, ...) +static int lprintf(int level, const char *fmt, ...) { va_list argptr; char sbuf[1024]; diff --git a/src/sbbs3/mailsrvr.h b/src/sbbs3/mailsrvr.h index 8652ad105d971f52db6ab790672ead599fbbd4b7..c34a3c735447453983313c1cf82b8b400d334883 100644 --- a/src/sbbs3/mailsrvr.h +++ b/src/sbbs3/mailsrvr.h @@ -62,8 +62,8 @@ typedef struct { void* cbdata; /* Private data passed to callbacks */ /* Callbacks (NULL if unused) */ - int (*lputs)(void*, int, char*); - void (*status)(void*, char*); + int (*lputs)(void*, int, const char*); + void (*status)(void*, const char*); void (*started)(void*); void (*recycle)(void*); void (*terminated)(void*, int code); diff --git a/src/sbbs3/main.cpp b/src/sbbs3/main.cpp index b209c25518ea06fb1a09dc7dff3cdeedf0931f92..086ab657fd8bc9055e2e39a9169db49a245663d2 100644 --- a/src/sbbs3/main.cpp +++ b/src/sbbs3/main.cpp @@ -108,7 +108,7 @@ extern "C" { static bbs_startup_t* startup=NULL; -static void status(char* str) +static void status(const char* str) { if(startup!=NULL && startup->status!=NULL) startup->status(startup->cbdata,str); @@ -147,7 +147,7 @@ static void thread_down() startup->thread_up(startup->cbdata,FALSE,FALSE); } -int lputs(int level, char* str) +int lputs(int level, const char* str) { if(startup==NULL || startup->lputs==NULL || str==NULL) return(0); @@ -155,7 +155,7 @@ int lputs(int level, char* str) return(startup->lputs(startup->cbdata,level,str)); } -int lprintf(int level, char *fmt, ...) +int lprintf(int level, const char *fmt, ...) { va_list argptr; char sbuf[1024]; @@ -167,7 +167,7 @@ int lprintf(int level, char *fmt, ...) return(lputs(level,sbuf)); } -int eprintf(int level, char *fmt, ...) +int eprintf(int level, const char *fmt, ...) { va_list argptr; char sbuf[1024]; @@ -2644,7 +2644,7 @@ void event_thread(void* arg) //**************************************************************************** -sbbs_t::sbbs_t(ushort node_num, DWORD addr, char* name, SOCKET sd, +sbbs_t::sbbs_t(ushort node_num, DWORD addr, const char* name, SOCKET sd, scfg_t* global_cfg, char* global_text[], client_t* client_info) { char nodestr[32]; @@ -3274,7 +3274,7 @@ int sbbs_t::nopen(char *str, int access) return(file); } -void sbbs_t::spymsg(char* msg) +void sbbs_t::spymsg(const char* msg) { char str[512]; struct in_addr addr; @@ -3453,7 +3453,7 @@ int sbbs_t::outcom(uchar ch) return(0); } -void sbbs_t::putcom(char *str, int len) +void sbbs_t::putcom(const char *str, int len) { int i; @@ -4138,7 +4138,7 @@ static void cleanup(int code) void DLLCALL bbs_thread(void* arg) { - char* host_name; + const char* host_name; char* identity; char* p; char str[MAX_PATH+1]; diff --git a/src/sbbs3/makeuser.c b/src/sbbs3/makeuser.c index 657dbcb1d66267eb3f88b41fb772d2e1c7bb634c..f09a043c93c8a1a55590855cadde5ed8f67cb6e0 100644 --- a/src/sbbs3/makeuser.c +++ b/src/sbbs3/makeuser.c @@ -42,7 +42,7 @@ scfg_t scfg; /****************************************************************************/ /* This is needed by load_cfg.c */ /****************************************************************************/ -int lprintf(int level, char *fmat, ...) +int lprintf(int level, const char *fmat, ...) { va_list argptr; char sbuf[512]; diff --git a/src/sbbs3/netmail.cpp b/src/sbbs3/netmail.cpp index 508476daf560d08930b67e8424345ca9c291e81c..157496796385f6b993a652a83343f40e7e5faa3d 100644 --- a/src/sbbs3/netmail.cpp +++ b/src/sbbs3/netmail.cpp @@ -40,7 +40,7 @@ /****************************************************************************/ /****************************************************************************/ -bool sbbs_t::inetmail(char *into, char *subj, long mode) +bool sbbs_t::inetmail(const char *into, const char *subj, long mode) { char str[256],str2[256],msgpath[256],title[256],name[256],ch ,buf[SDT_BLOCK_LEN],*p,addr[256]; @@ -286,7 +286,7 @@ bool sbbs_t::inetmail(char *into, char *subj, long mode) return(true); } -bool sbbs_t::qnetmail(char *into, char *subj, long mode) +bool sbbs_t::qnetmail(const char *into, const char *subj, long mode) { char str[256],msgpath[128],title[128],to[128],fulladdr[128] ,buf[SDT_BLOCK_LEN],*addr; diff --git a/src/sbbs3/ntsvcs.c b/src/sbbs3/ntsvcs.c index 74f1bfaa0a3011b543feed5308684c95af94e9d0..de7fe14b40ffa3b73decc225f5477c08081745e5 100644 --- a/src/sbbs3/ntsvcs.c +++ b/src/sbbs3/ntsvcs.c @@ -274,7 +274,7 @@ static WORD event_type(int level) /**************************************/ /* Common Service Log Ouptut Function */ /**************************************/ -static int svc_lputs(void* p, int level, char* str) +static int svc_lputs(void* p, int level, const char* str) { char debug[1024]; char fname[256]; @@ -349,7 +349,7 @@ static int svc_lputs(void* p, int level, char* str) /****************************************************************************/ /* Event thread local/log print routine */ /****************************************************************************/ -static int event_lputs(int level, char *str) +static int event_lputs(int level, const char *str) { svc_lputs(&event,level,str); return(0); diff --git a/src/sbbs3/pack_qwk.cpp b/src/sbbs3/pack_qwk.cpp index 6abc0df7c562b0487532b89d4b2af634d51a5e8b..c68d2ad63480de1f6bbe44f1d4880f4e0f7153e2 100644 --- a/src/sbbs3/pack_qwk.cpp +++ b/src/sbbs3/pack_qwk.cpp @@ -43,10 +43,9 @@ /****************************************************************************/ bool sbbs_t::pack_qwk(char *packet, ulong *msgcnt, bool prepack) { - char str[MAX_PATH+1],ch,*p; + char str[MAX_PATH+1],ch; char tmp[MAX_PATH+1],tmp2[MAX_PATH+1]; char* fname; - char* fmode; int mode; uint i,j,k,conf; long l,size,msgndx,ex; @@ -68,6 +67,8 @@ bool sbbs_t::pack_qwk(char *packet, ulong *msgcnt, bool prepack) DIRENT* dirent; struct tm tm; smbmsg_t msg; + const char* p; + const char* fmode; ex=EX_OUTL|EX_OUTR; /* Need sh for wildcard expansion */ if(prepack) diff --git a/src/sbbs3/putmsg.cpp b/src/sbbs3/putmsg.cpp index 96d2d2a5f176891f6ff23db16c004e8ef79c9105..582d758daa7a8288e6ddba88dcd31193389a3a88 100644 --- a/src/sbbs3/putmsg.cpp +++ b/src/sbbs3/putmsg.cpp @@ -47,7 +47,7 @@ /* the attributes prior to diplaying the message are always restored. */ /* Ignores Ctrl-Z's */ /****************************************************************************/ -char sbbs_t::putmsg(char *str, long mode) +char sbbs_t::putmsg(const char *str, long mode) { char tmpatr,tmp2[256],tmp3[128]; uchar exatr=0; diff --git a/src/sbbs3/qwknodes.c b/src/sbbs3/qwknodes.c index 6d75cd98d2f795a1d65327d9bb9162dfdb508fa5..8192eb6828a179f38da5ba7f357b117a852576dc 100644 --- a/src/sbbs3/qwknodes.c +++ b/src/sbbs3/qwknodes.c @@ -76,7 +76,7 @@ int lputs(char* str) /* Performs printf() through local assembly routines */ /* Called from everywhere */ /****************************************************************************/ -int lprintf(char *fmat, ...) +int lprintf(const char *fmat, ...) { va_list argptr; char sbuf[256]; diff --git a/src/sbbs3/readmsgs.cpp b/src/sbbs3/readmsgs.cpp index 704de2d88fcedb0012324db2feb75c6267755a52..88c7b1624046147d704f3efdf544c1dc4c401cee 100644 --- a/src/sbbs3/readmsgs.cpp +++ b/src/sbbs3/readmsgs.cpp @@ -342,7 +342,7 @@ static int get_start_msg(sbbs_t* sbbs, smb_t* smb) /* Returns 0 if normal completion, 1 if aborted. */ /* Called from function main_sec */ /****************************************************************************/ -int sbbs_t::scanposts(uint subnum, long mode, char *find) +int sbbs_t::scanposts(uint subnum, long mode, const char *find) { char str[256],str2[256],do_find=true,mismatches=0 ,done=0,domsg=1,*buf,*p; @@ -1126,7 +1126,7 @@ int sbbs_t::scanposts(uint subnum, long mode, char *find) /* This function lists all messages in sub-board */ /* Returns number of messages found/displayed. */ /****************************************************************************/ -long sbbs_t::listsub(uint subnum, long mode, long start, char* search) +long sbbs_t::listsub(uint subnum, long mode, long start, const char* search) { int i; int32_t posts; @@ -1169,7 +1169,7 @@ long sbbs_t::listsub(uint subnum, long mode, long start, char* search) /* Returns number of messages found. */ /****************************************************************************/ long sbbs_t::searchposts(uint subnum, post_t *post, long start, long posts - , char *search) + , const char *search) { char *buf,ch; long l,found=0; diff --git a/src/sbbs3/sbbs.h b/src/sbbs3/sbbs.h index cb9ac4140f22b61fd6be9dfde65fd3ada5a078fa..73bfc395a024ecf41ffef5160807824b7e4d60d0 100644 --- a/src/sbbs3/sbbs.h +++ b/src/sbbs3/sbbs.h @@ -160,7 +160,7 @@ class sbbs_t public: - sbbs_t(ushort node_num, DWORD addr, char* host_name, SOCKET + sbbs_t(ushort node_num, DWORD addr, const char* host_name, SOCKET ,scfg_t*, char* text[], client_t* client_info); ~sbbs_t(); @@ -200,9 +200,9 @@ public: int outcom(uchar ch); // send character int incom(unsigned long timeout=0); // receive character - void spymsg(char *msg); // send message to active spies + void spymsg(const char *msg); // send message to active spies - void putcom(char *str, int len=0); // Send string + void putcom(const char *str, int len=0); // Send string void hangup(void); // Hangup modem uchar telnet_local_option[0x100]; @@ -377,7 +377,7 @@ public: uint sysvar_li; /* ansi_term.cpp */ - char * ansi(int atr); /* Returns ansi escape sequence for atr */ + const char * ansi(int atr); /* Returns ansi escape sequence for atr */ bool ansi_getxy(int* x, int* y); void ansi_getlines(void); @@ -395,7 +395,7 @@ public: int32_t* getintvar(csi_t *bin, int32_t name); char* copystrvar(csi_t *csi, char *p, char *str); void skipto(csi_t *csi, uchar inst); - bool ftp_cmd(csi_t* csi, SOCKET ctrl_sock, char* cmdsrc, char* rsp); + bool ftp_cmd(csi_t* csi, SOCKET ctrl_sock, const char* cmdsrc, char* rsp); bool ftp_put(csi_t* csi, SOCKET ctrl_sock, char* src, char* dest); bool ftp_get(csi_t* csi, SOCKET ctrl_sock, char* src, char* dest, bool dir=false); SOCKET ftp_data_sock(csi_t* csi, SOCKET ctrl_sock, SOCKADDR_IN*); @@ -441,7 +441,7 @@ public: char* timestr(time_t intime); char timestr_output[60]; void userlist(long mode); - size_t gettmplt(char *outstr, char *tmplt, long mode); + size_t gettmplt(char *outstr, const char *tmplt, long mode); void sif(char *fname, char *answers, long len); /* Synchronet Interface File */ void sof(char *fname, char *answers, long len); void create_sif_dat(char *siffile, char *datfile); @@ -450,26 +450,26 @@ public: bool inputnstime32(time32_t *dt); bool inputnstime(time_t *dt); bool chkpass(char *pass, user_t* user, bool unique); - char * cmdstr(char *instr, char *fpath, char *fspec, char *outstr); + char * cmdstr(const char *instr, const char *fpath, const char *fspec, char *outstr); char cmdstr_output[512]; void subinfo(uint subnum); void dirinfo(uint dirnum); - bool trashcan(char *insearch, char *name); + bool trashcan(const char *insearch, const char *name); void time_bank(void); void change_user(void); /* writemsg.cpp */ void automsg(void); - bool writemsg(char *str, char *top, char *title, long mode, int subnum - ,char *dest); + bool writemsg(const char *str, const char *top, char *title, long mode, int subnum + ,const char *dest); char* msg_tmp_fname(int xedit, char* fname, size_t len); - char putmsg(char *str, long mode); + char putmsg(const char *str, long mode); bool msgabort(void); - bool email(int usernumber, char *top, char *title, long mode); + bool email(int usernumber, const char *top, const char *title, long mode); void forwardmail(smbmsg_t* msg, int usernum); void removeline(char *str, char *str2, char num, char skip); - ulong msgeditor(char *buf, char *top, char *title); + ulong msgeditor(char *buf, const char *top, char *title); void editfile(char *path); int loadmsg(smbmsg_t *msg, ulong number); ushort chmsgattr(ushort attr); @@ -479,7 +479,7 @@ public: void msgtotxt(smbmsg_t* msg, char *str, int header, int tails); void quotemsg(smbmsg_t* msg, int tails); void editmsg(smbmsg_t* msg, uint subnum); - void editor_inf(int xeditnum,char *dest, char *title, long mode + void editor_inf(int xeditnum, const char *dest, const char *title, long mode ,uint subnum); void copyfattach(uint to, uint from, char *title); bool movemsg(smbmsg_t* msg, uint subnum); @@ -503,10 +503,10 @@ public: int bulkmailhdr(smb_t*, smbmsg_t*, uint usernum); /* con_out.cpp */ - int bputs(char *str); /* BBS puts function */ - int rputs(char *str); /* BBS raw puts function */ - int bprintf(char *fmt, ...); /* BBS printf function */ - int rprintf(char *fmt, ...); /* BBS raw printf function */ + int bputs(const char *str); /* BBS puts function */ + int rputs(const char *str); /* BBS raw puts function */ + int bprintf(const char *fmt, ...); /* BBS printf function */ + int rprintf(const char *fmt, ...); /* BBS raw printf function */ void backspace(void); /* Output a destructive backspace via outchar */ void outchar(char ch); /* Output a char - check echo and emu. */ void center(char *str); @@ -527,14 +527,14 @@ public: /* getkey.cpp */ char getkey(long mode); /* Waits for a key hit local or remote */ - long getkeys(char *str, ulong max); + long getkeys(const char *str, ulong max); void ungetkey(char ch); /* Places 'ch' into the input buffer */ char question[128]; - bool yesno(char *str); - bool noyes(char *str); + bool yesno(const char *str); + bool noyes(const char *str); void pause(void); - char * mnestr; - void mnemonics(char *str); + const char * mnestr; + void mnemonics(const char *str); /* inkey.cpp */ char inkey(long mode, unsigned long timeout=0); @@ -545,7 +545,7 @@ public: void printtail(char *str, int lines, long mode); void menu(const char *code); - int uselect(int add, uint n, char *title, char *item, uchar *ar); + int uselect(int add, uint n, const char *title, const char *item, const uchar *ar); uint uselect_total, uselect_num[500]; void redrwstr(char *strin, int i, int l, long mode); @@ -553,8 +553,8 @@ public: void ctrl_a(char x); /* Peforms the Ctrl-Ax attribute changes */ /* atcodes.cpp */ - int show_atcode(char *code); - char* atcode(char* sp, char* str, size_t maxlen); + int show_atcode(const char *code); + const char* atcode(char* sp, char* str, size_t maxlen); /* getnode.cpp */ int getsmsg(int usernumber); @@ -584,10 +584,10 @@ public: int text_sec(void); /* Text sections */ /* readmsgs.cpp */ - int scanposts(uint subnum, long mode, char* find); /* Scan sub-board */ - long listsub(uint subnum, long mode, long start, char* search); + int scanposts(uint subnum, long mode, const char* find); /* Scan sub-board */ + long listsub(uint subnum, long mode, long start, const char* search); long listmsgs(uint subnum, long mode, post_t* post, long start, long posts); - long searchposts(uint subnum, post_t* post, long start, long msgs, char* find); + long searchposts(uint subnum, post_t* post, long start, long msgs, const char* find); long showposts_toyou(post_t* post, ulong start, long posts); void msghdr(smbmsg_t* msg); @@ -616,8 +616,8 @@ public: int nopen(char *str, int access); int mv(char *src, char *dest, char copy); /* fast file move/copy function */ bool chksyspass(void); - bool chk_ar(uchar * str, user_t * user); /* checks access requirements */ - bool ar_exp(uchar ** ptrptr, user_t * user); + bool chk_ar(const uchar * str, user_t * user); /* checks access requirements */ + bool ar_exp(const uchar ** ptrptr, user_t * user); void daily_maint(void); /* upload.cpp */ @@ -631,7 +631,7 @@ public: void downloadfile(file_t* f); void notdownloaded(ulong size, time_t start, time_t end); int protocol(prot_t* prot, enum XFER_TYPE, char *fpath, char *fspec, bool cd); - char* protcmdline(prot_t* prot, enum XFER_TYPE type); + const char* protcmdline(prot_t* prot, enum XFER_TYPE type); void seqwait(uint devnum); void autohangup(void); bool checkdszlog(file_t*); @@ -651,9 +651,9 @@ public: bool addtobatdl(file_t* f); /* listfile.cpp */ - bool listfile(char *fname, char *buf, uint dirnum - ,char *search, char letter, ulong datoffset); - int listfiles(uint dirnum, char *filespec, int tofile, long mode); + bool listfile(const char *fname, const char *buf, uint dirnum + ,const char *search, const char letter, ulong datoffset); + int listfiles(uint dirnum, const char *filespec, int tofile, long mode); int listfileinfo(uint dirnum, char *filespec, long mode); void listfiletofile(char *fname, char *buf, uint dirnum, int file); int batchflagprompt(uint dirnum, file_t bf[], uint total, long totalfiles); @@ -673,7 +673,7 @@ public: void temp_xfer(void); void extract(uint dirnum); char * temp_cmd(void); /* Returns temp file command line */ - ulong create_filelist(char *name, long mode); + ulong create_filelist(const char *name, long mode); /* viewfile.cpp */ int viewfile(file_t* f, int ext); @@ -696,13 +696,13 @@ public: void moduserdat(uint xtrnnum); /* logfile.cpp */ - void logentry(char *code,char *entry); + void logentry(const char *code,const char *entry); void log(char *str); /* Writes 'str' to node log */ void logch(char ch, bool comma); /* Writes 'ch' to node log */ - void logline(char *code,char *str); /* Writes 'str' on it's own line in log */ + void logline(const char *code,const char *str); /* Writes 'str' on it's own line in log */ void logofflist(void); /* List of users logon activity */ - bool syslog(char* code, char *entry); - void errorlog(char *text); /* Logs errors to ERROR.LOG and NODE.LOG */ + bool syslog(const char* code, const char *entry); + void errorlog(const char *text); /* Logs errors to ERROR.LOG and NODE.LOG */ bool errorlog_inside; bool errormsg_inside; void errormsg(int line, const char *file, const char* action, const char *object @@ -740,12 +740,12 @@ public: ,uint touser, smbmsg_t* msg); /* fido.cpp */ - bool netmail(char *into, char *subj, long mode); + bool netmail(const char *into, const char *subj, long mode); void qwktonetmail(FILE *rep, char *block, char *into, uchar fromhub); bool lookup_netuser(char *into); - bool inetmail(char *into, char *subj, long mode); - bool qnetmail(char *into, char *subj, long mode); + bool inetmail(const char *into, const char *subj, long mode); + bool qnetmail(const char *into, const char *subj, long mode); /* useredit.cpp */ void useredit(int usernumber); @@ -838,8 +838,8 @@ extern "C" { DLLEXPORT BOOL DLLCALL removefiledat(scfg_t* cfg, file_t* f); DLLEXPORT BOOL DLLCALL addfiledat(scfg_t* cfg, file_t* f); DLLEXPORT BOOL DLLCALL findfile(scfg_t* cfg, uint dirnum, char *filename); - DLLEXPORT char * DLLCALL padfname(char *filename, char *str); - DLLEXPORT char * DLLCALL unpadfname(char *filename, char *str); + DLLEXPORT char * DLLCALL padfname(const char *filename, char *str); + DLLEXPORT char * DLLCALL unpadfname(const char *filename, char *str); DLLEXPORT BOOL DLLCALL rmuserxfers(scfg_t* cfg, int fromuser, int destuser, char *fname); DLLEXPORT int DLLCALL update_uldate(scfg_t* cfg, file_t* f); @@ -1087,9 +1087,9 @@ BOOL md(char *path); #ifdef SBBS /* These aren't exported */ /* main.c */ - int lputs(int level, char *); /* log output */ - int lprintf(int level, char *fmt, ...); /* log output */ - int eprintf(int level, char *fmt, ...); /* event log */ + int lputs(int level, const char *); /* log output */ + int lprintf(int level, const char *fmt, ...); /* log output */ + int eprintf(int level, const char *fmt, ...); /* event log */ SOCKET open_socket(int type, const char* protocol); SOCKET accept_socket(SOCKET s, SOCKADDR* addr, socklen_t* addrlen); int close_socket(SOCKET); @@ -1107,7 +1107,7 @@ BOOL md(char *path); int fdatecmp_d(uchar **buf1, uchar **buf2); /* file.cpp */ - BOOL filematch(char *filename, char *filespec); + BOOL filematch(const char *filename, const char *filespec); /* sbbscon.c */ #if defined(__unix__) && defined(NEEDS_DAEMON) diff --git a/src/sbbs3/sbbscon.c b/src/sbbs3/sbbscon.c index 6be476864a8917d46fc788a724d214c109084987..4f5734f39106d6ee5aed4098fb5640a9f49ac139 100644 --- a/src/sbbs3/sbbscon.c +++ b/src/sbbs3/sbbscon.c @@ -266,7 +266,7 @@ static int lputs(int level, char *str) return(prompt_len); } -static int lprintf(int level, char *fmt, ...) +static int lprintf(int level, const char *fmt, ...) { va_list argptr; char sbuf[1024]; @@ -599,7 +599,7 @@ static void client_on(void* p, BOOL on, int sock, client_t* client, BOOL update) /****************************************************************************/ /* BBS local/log print routine */ /****************************************************************************/ -static int bbs_lputs(void* p, int level, char *str) +static int bbs_lputs(void* p, int level, const char *str) { char logline[512]; char tstr[64]; @@ -657,7 +657,7 @@ static void bbs_terminated(void* p, int code) /****************************************************************************/ /* FTP local/log print routine */ /****************************************************************************/ -static int ftp_lputs(void* p, int level, char *str) +static int ftp_lputs(void* p, int level, const char *str) { char logline[512]; char tstr[64]; @@ -719,7 +719,7 @@ static void ftp_terminated(void* p, int code) /****************************************************************************/ /* Mail Server local/log print routine */ /****************************************************************************/ -static int mail_lputs(void* p, int level, char *str) +static int mail_lputs(void* p, int level, const char *str) { char logline[512]; char tstr[64]; @@ -777,7 +777,7 @@ static void mail_terminated(void* p, int code) /****************************************************************************/ /* Services local/log print routine */ /****************************************************************************/ -static int services_lputs(void* p, int level, char *str) +static int services_lputs(void* p, int level, const char *str) { char logline[512]; char tstr[64]; @@ -835,7 +835,7 @@ static void services_terminated(void* p, int code) /****************************************************************************/ /* Event thread local/log print routine */ /****************************************************************************/ -static int event_lputs(int level, char *str) +static int event_lputs(int level, const char *str) { char logline[512]; char tstr[64]; @@ -875,7 +875,7 @@ static int event_lputs(int level, char *str) /****************************************************************************/ /* web local/log print routine */ /****************************************************************************/ -static int web_lputs(void* p, int level, char *str) +static int web_lputs(void* p, int level, const char *str) { char logline[512]; char tstr[64]; diff --git a/src/sbbs3/services.c b/src/sbbs3/services.c index d58eb94de3bf0a13d97f99069ee4b754fa73f35f..69ed74c6ed645fc1c3e2a222c0b2f177cc144aef 100644 --- a/src/sbbs3/services.c +++ b/src/sbbs3/services.c @@ -112,7 +112,7 @@ typedef struct { static service_t *service=NULL; static uint32_t services=0; -static int lprintf(int level, char *fmt, ...) +static int lprintf(int level, const char *fmt, ...) { va_list argptr; char sbuf[1024]; diff --git a/src/sbbs3/services.h b/src/sbbs3/services.h index 3dd367f080fd7a5c85dec0731d541cb7575ff945..5df4291a298edf23e6e158bf3e6cabfe381d16a4 100644 --- a/src/sbbs3/services.h +++ b/src/sbbs3/services.h @@ -50,8 +50,8 @@ typedef struct { void* cbdata; /* Private data passed to callbacks */ /* Callbacks (NULL if unused) */ - int (*lputs)(void*, int, char*); /* Log - put string */ - void (*status)(void*, char*); + int (*lputs)(void*, int, const char*); /* Log - put string */ + void (*status)(void*, const char*); void (*started)(void*); void (*recycle)(void*); void (*terminated)(void*, int code); diff --git a/src/sbbs3/smbactiv.c b/src/sbbs3/smbactiv.c index ceab82e8f50b7bbd99ad949e889d7aaffea721af..79db8d6c24fdacf101507d301f35c414f2865ea6 100644 --- a/src/sbbs3/smbactiv.c +++ b/src/sbbs3/smbactiv.c @@ -43,7 +43,7 @@ return(fputs(tmp,stderr)); /* Performs printf() through local assembly routines */ /* Called from everywhere */ /****************************************************************************/ -int lprintf(char *fmat, ...) +int lprintf(const char *fmat, ...) { va_list argptr; char sbuf[256]; diff --git a/src/sbbs3/startup.h b/src/sbbs3/startup.h index 7613347f598b23a7e00fedecb664c5cb504e4654..0c7be71defc008f165d8dad5d2febf90d92cdfab 100644 --- a/src/sbbs3/startup.h +++ b/src/sbbs3/startup.h @@ -90,9 +90,9 @@ typedef struct { void* cbdata; /* Private data passed to callbacks */ /* Callbacks (NULL if unused) */ - int (*lputs)(void*, int, char*); /* Log - put string */ - int (*event_lputs)(int, char*); /* Event log - put string */ - void (*status)(void*, char*); + int (*lputs)(void*, int, const char*); /* Log - put string */ + int (*event_lputs)(int, const char*); /* Event log - put string */ + void (*status)(void*, const char*); void (*started)(void*); void (*recycle)(void*); void (*terminated)(void*, int code); diff --git a/src/sbbs3/str.cpp b/src/sbbs3/str.cpp index 1ff7201808bf45a415073e83000ee487b66ec0b2..d928d619f7d4686074ecdbeebe792c1e419effd4 100644 --- a/src/sbbs3/str.cpp +++ b/src/sbbs3/str.cpp @@ -486,7 +486,7 @@ void sbbs_t::read_sif_dat(char *siffile, char *datfile) /* First character MUST be an A,N or !. */ /* Modes - K_LINE and K_UPPER are supported. */ /****************************************************************************/ -size_t sbbs_t::gettmplt(char *strout,char *templt, long mode) +size_t sbbs_t::gettmplt(char *strout, const char *templt, long mode) { char ch,str[256]; char tmplt[128]; @@ -819,7 +819,7 @@ void sbbs_t::dirinfo(uint dirnum) /* Returns TRUE if found in list, FALSE if not. */ /* Displays bad<name>.can in text directory if found. */ /****************************************************************************/ -bool sbbs_t::trashcan(char *insearchof, char *name) +bool sbbs_t::trashcan(const char *insearchof, const char *name) { char str[MAX_PATH+1]; bool result; diff --git a/src/sbbs3/tmp_xfer.cpp b/src/sbbs3/tmp_xfer.cpp index a1996b193d0a614f7ee587ac38ade33989cdcf1a..6939160135ad648963c609e97548307a8cef25e8 100644 --- a/src/sbbs3/tmp_xfer.cpp +++ b/src/sbbs3/tmp_xfer.cpp @@ -412,7 +412,7 @@ void sbbs_t::extract(uint dirnum) /* Creates a text file named NEWFILES.DAT in the temp directory that */ /* all new files since p-date. Returns number of files in list. */ /****************************************************************************/ -ulong sbbs_t::create_filelist(char *name, long mode) +ulong sbbs_t::create_filelist(const char *name, long mode) { char str[256]; int file; diff --git a/src/sbbs3/un_rep.cpp b/src/sbbs3/un_rep.cpp index 05afc0fbf01d2e5e70d744229aa12a526f840463..f701edba0e3d285f8b16f416642be48f37727167 100644 --- a/src/sbbs3/un_rep.cpp +++ b/src/sbbs3/un_rep.cpp @@ -43,8 +43,7 @@ /****************************************************************************/ bool sbbs_t::unpack_rep(char* repfile) { - char str[MAX_PATH+1],fname[MAX_PATH+1] - ,*AttemptedToUploadREPpacket="Attempted to upload REP packet"; + char str[MAX_PATH+1],fname[MAX_PATH+1]; char rep_fname[MAX_PATH+1]; char msg_fname[MAX_PATH+1]; char tmp[512]; @@ -68,6 +67,7 @@ bool sbbs_t::unpack_rep(char* repfile) str_list_t host_can=NULL; str_list_t subject_can=NULL; str_list_t twit_list=NULL; + const char* AttemptedToUploadREPpacket="Attempted to upload REP packet"; memset(&msg,0,sizeof(msg)); diff --git a/src/sbbs3/userdat.c b/src/sbbs3/userdat.c index 8bb7b2147ea57b53255c68430818b040fab18bae..cc8c706f2ea45e475fa673c88bdb737ffa9aa7c8 100644 --- a/src/sbbs3/userdat.c +++ b/src/sbbs3/userdat.c @@ -1860,7 +1860,7 @@ int DLLCALL getuserrec(scfg_t* cfg, int usernumber,int start, int length, char * /* Places into user.dat at the offset for usernumber+start for length bytes */ /* Called from various locations */ /****************************************************************************/ -int DLLCALL putuserrec(scfg_t* cfg, int usernumber,int start, uint length, char *str) +int DLLCALL putuserrec(scfg_t* cfg, int usernumber,int start, uint length, const char *str) { char str2[256]; int file; diff --git a/src/sbbs3/userdat.h b/src/sbbs3/userdat.h index 308f2db7031ed023d76f1e376e09cc7b96053a2c..7058fb15189b9c1436869ed5eea8eb5a903251e7 100644 --- a/src/sbbs3/userdat.h +++ b/src/sbbs3/userdat.h @@ -100,7 +100,7 @@ DLLEXPORT uint DLLCALL userdatdupe(scfg_t* cfg, uint usernumber, uint offset, ui DLLEXPORT BOOL DLLCALL chk_ar(scfg_t* cfg, uchar* str, user_t* user); /* checks access requirements */ DLLEXPORT int DLLCALL getuserrec(scfg_t*, int usernumber, int start, int length, char *str); -DLLEXPORT int DLLCALL putuserrec(scfg_t*, int usernumber, int start, uint length, char *str); +DLLEXPORT int DLLCALL putuserrec(scfg_t*, int usernumber, int start, uint length, const char *str); DLLEXPORT ulong DLLCALL adjustuserrec(scfg_t*, int usernumber, int start, int length, long adj); DLLEXPORT BOOL DLLCALL logoutuserdat(scfg_t*, user_t*, time_t now, time_t logontime); DLLEXPORT void DLLCALL resetdailyuserdat(scfg_t*, user_t*); diff --git a/src/sbbs3/websrvr.c b/src/sbbs3/websrvr.c index 0dc44ec98185f67e2770333a3be3bd0d39c69eee..109a38979084324494ce6f79ebe8fe4cece6db0f 100644 --- a/src/sbbs3/websrvr.c +++ b/src/sbbs3/websrvr.c @@ -100,6 +100,7 @@ static BOOL terminate_server=FALSE; static BOOL terminate_http_logging_thread=FALSE; static uint thread_count=0; static SOCKET server_socket=INVALID_SOCKET; +static SOCKET server_socket6=INVALID_SOCKET; static char revision[16]; static char root_dir[MAX_PATH+1]; static char error_dir[MAX_PATH+1]; @@ -228,6 +229,8 @@ typedef struct { typedef struct { SOCKET socket; SOCKADDR_IN addr; + SOCKET socket6; + SOCKADDR_IN addr6; http_request_t req; char host_ip[64]; char host_name[128]; /* Resolved remote host */ @@ -473,7 +476,7 @@ time_gm(struct tm *tm) return (t < 0 ? (time_t) -1 : t); } -static int lprintf(int level, char *fmt, ...) +static int lprintf(int level, const char *fmt, ...) { va_list argptr; char sbuf[1024]; diff --git a/src/sbbs3/websrvr.h b/src/sbbs3/websrvr.h index fb44812e7c7cf7f74054662bceef68012175783e..461a8d4079211b285e5537851284d5a29c2f3054 100644 --- a/src/sbbs3/websrvr.h +++ b/src/sbbs3/websrvr.h @@ -55,8 +55,8 @@ typedef struct { void* cbdata; /* Private data passed to callbacks */ /* Callbacks (NULL if unused) */ - int (*lputs)(void*, int, char*); - void (*status)(void*, char*); + int (*lputs)(void*, int, const char*); + void (*status)(void*, const char*); void (*started)(void*); void (*recycle)(void*); void (*terminated)(void*, int code); diff --git a/src/sbbs3/writemsg.cpp b/src/sbbs3/writemsg.cpp index b9b3758e2bebcbc0e407a84caac7217acde80fb6..edec86022a38d2c7533c0aba7d77bed10a6d1ca8 100644 --- a/src/sbbs3/writemsg.cpp +++ b/src/sbbs3/writemsg.cpp @@ -65,8 +65,8 @@ char* sbbs_t::msg_tmp_fname(int xedit, char* fname, size_t len) /* message and 'title' is the title (70chars max) for the message. */ /* 'dest' contains a text description of where the message is going. */ /****************************************************************************/ -bool sbbs_t::writemsg(char *fname, char *top, char *title, long mode, int subnum - ,char *dest) +bool sbbs_t::writemsg(const char *fname, const char *top, char *title, long mode, int subnum + ,const char *dest) { char str[256],quote[128],c,*buf,*p,*tp ,useron_level; @@ -489,7 +489,7 @@ void quotestr(char *str) remove_ctrl_a(str,NULL); } -void sbbs_t::editor_inf(int xeditnum,char *dest, char *title, long mode +void sbbs_t::editor_inf(int xeditnum, const char *dest, const char *title, long mode ,uint subnum) { char str[MAX_PATH+1]; @@ -605,7 +605,7 @@ void sbbs_t::removeline(char *str, char *str2, char num, char skip) /* The Synchronet editor. */ /* Returns the number of lines edited. */ /*****************************************************************************/ -ulong sbbs_t::msgeditor(char *buf, char *top, char *title) +ulong sbbs_t::msgeditor(char *buf, const char *top, char *title) { int i,j,line,lines=0,maxlines; char strin[256],**str,done=0; diff --git a/src/sbbs3/xtrn.cpp b/src/sbbs3/xtrn.cpp index 5877f2bbd71642efcb55fb766a8617528ebf6c05..cf51c9c6972d1047c9c8bdf44252205672f61c78 100644 --- a/src/sbbs3/xtrn.cpp +++ b/src/sbbs3/xtrn.cpp @@ -2008,7 +2008,7 @@ const char* quoted_string(const char* str, char* buf, size_t maxlen) /*****************************************************************************/ /* Returns command line generated from instr with %c replacments */ /*****************************************************************************/ -char* sbbs_t::cmdstr(char *instr, char *fpath, char *fspec, char *outstr) +char* sbbs_t::cmdstr(const char *instr, const char *fpath, const char *fspec, char *outstr) { char str[MAX_PATH+1],*cmd; int i,j,len; diff --git a/src/sbbs3/xtrn_sec.cpp b/src/sbbs3/xtrn_sec.cpp index 76bf89b2d16a73524b7bf88df7d06ce589989a93..14d6f45fd5a77728f5448aed4ea6d1cd37029ae0 100644 --- a/src/sbbs3/xtrn_sec.cpp +++ b/src/sbbs3/xtrn_sec.cpp @@ -193,7 +193,7 @@ int sbbs_t::xtrn_sec() } -char *hungupstr="\1n\1h%s\1n hung up on \1h%s\1n %s\r\n"; +const char *hungupstr="\1n\1h%s\1n hung up on \1h%s\1n %s\r\n"; /****************************************************************************/ /* Convert C string to pascal string */ diff --git a/src/xpdev/dirwrap.c b/src/xpdev/dirwrap.c index eec35b1982785d222bff0cacfcc2bd0b2c8d58e1..3000ea863ba7e8f4caa732aa1f0fd8f2b18a8553 100644 --- a/src/xpdev/dirwrap.c +++ b/src/xpdev/dirwrap.c @@ -663,7 +663,7 @@ int removecase(char *path) /****************************************************************************/ /* Deletes all files in dir 'path' that match file spec 'spec' */ /****************************************************************************/ -ulong DLLCALL delfiles(char *inpath, char *spec) +ulong DLLCALL delfiles(const char *inpath, const char *spec) { char path[MAX_PATH+1]; char lastch; diff --git a/src/xpdev/dirwrap.h b/src/xpdev/dirwrap.h index e68de1b3370e87465bc2c79a1f67b8092ff71f26..aad2f84f135a58d43aaf7597f1eae882d5395946 100644 --- a/src/xpdev/dirwrap.h +++ b/src/xpdev/dirwrap.h @@ -229,7 +229,7 @@ DLLEXPORT char* DLLCALL getfext(const char* path); DLLEXPORT int DLLCALL getfattr(const char* filename); DLLEXPORT ulong DLLCALL getdisksize(const char* path, ulong unit); DLLEXPORT ulong DLLCALL getfreediskspace(const char* path, ulong unit); -DLLEXPORT ulong DLLCALL delfiles(char *inpath, char *spec); +DLLEXPORT ulong DLLCALL delfiles(const char *inpath, const char *spec); DLLEXPORT char* DLLCALL backslash(char* path); DLLEXPORT BOOL DLLCALL wildmatch(const char *fname, const char *spec, BOOL path); DLLEXPORT BOOL DLLCALL wildmatchi(const char *fname, const char *spec, BOOL path); diff --git a/src/xpdev/sockwrap.c b/src/xpdev/sockwrap.c index f6379e0cc8f7341cf44c2315858f28ed9474473a..4d5dab12a654f65e26168b65a921a9547254e5e7 100644 --- a/src/xpdev/sockwrap.c +++ b/src/xpdev/sockwrap.c @@ -337,7 +337,7 @@ BOOL socket_check(SOCKET sock, BOOL* rd_p, BOOL* wr_p, DWORD timeout) int retry_bind(SOCKET s, const struct sockaddr *addr, socklen_t addrlen ,uint retries, uint wait_secs ,const char* prot - ,int (*lprintf)(int level, char *fmt, ...)) + ,int (*lprintf)(int level, const char *fmt, ...)) { char port_str[128]; int result=-1; diff --git a/src/xpdev/sockwrap.h b/src/xpdev/sockwrap.h index c2b073aa1cca309ab30b779a40b174aaa1bcc025..4fd2cc40baca463a791b35c746820dfa3680009c 100644 --- a/src/xpdev/sockwrap.h +++ b/src/xpdev/sockwrap.h @@ -172,7 +172,7 @@ int recvfilesocket(int sock, int file, long *offset, long count); BOOL socket_check(SOCKET sock, BOOL* rd_p, BOOL* wr_p, DWORD timeout); int retry_bind(SOCKET s, const struct sockaddr *addr, socklen_t addrlen ,uint retries, uint wait_secs, const char* prot - ,int (*lprintf)(int level, char *fmt, ...)); + ,int (*lprintf)(int level, const char *fmt, ...)); #ifdef __cplusplus }