Skip to content
Snippets Groups Projects
Commit e3764692 authored by rswindell's avatar rswindell
Browse files

Updated brace style.

Using new console abstraction functions (e.g. cursor_left).
parent c012f02e
No related branches found
No related tags found
No related merge requests found
...@@ -51,9 +51,11 @@ void sbbs_t::userlist(long mode) ...@@ -51,9 +51,11 @@ void sbbs_t::userlist(long mode)
if(lastuser(&cfg)<=(sizeof(line)/sizeof(line[0]))) if(lastuser(&cfg)<=(sizeof(line)/sizeof(line[0])))
sort=yesno(text[SortAlphaQ]); sort=yesno(text[SortAlphaQ]);
if(sort) { if(sort) {
bputs(text[CheckingSlots]); } bputs(text[CheckingSlots]);
}
else { else {
CRLF; } CRLF;
}
j=0; j=0;
k=lastuser(&cfg); k=lastuser(&cfg);
for(i=1;i<=k && !msgabort();i++) { for(i=1;i<=k && !msgabort();i++) {
...@@ -72,7 +74,8 @@ void sbbs_t::userlist(long mode) ...@@ -72,7 +74,8 @@ void sbbs_t::userlist(long mode)
if(!chk_ar(cfg.sub[usrsub[curgrp][cursub[curgrp]]]->ar,&user) if(!chk_ar(cfg.sub[usrsub[curgrp][cursub[curgrp]]]->ar,&user)
|| (cfg.sub[usrsub[curgrp][cursub[curgrp]]]->read_ar[0] || (cfg.sub[usrsub[curgrp][cursub[curgrp]]]->read_ar[0]
&& !chk_ar(cfg.sub[usrsub[curgrp][cursub[curgrp]]]->read_ar,&user))) && !chk_ar(cfg.sub[usrsub[curgrp][cursub[curgrp]]]->read_ar,&user)))
continue; } continue;
}
else if(mode==UL_DIR) { else if(mode==UL_DIR) {
if(user.rest&FLAG('T')) if(user.rest&FLAG('T'))
continue; continue;
...@@ -81,32 +84,39 @@ void sbbs_t::userlist(long mode) ...@@ -81,32 +84,39 @@ void sbbs_t::userlist(long mode)
if(!chk_ar(cfg.lib[usrlib[curlib]]->ar,&user)) if(!chk_ar(cfg.lib[usrlib[curlib]]->ar,&user))
continue; continue;
if(!chk_ar(cfg.dir[usrdir[curlib][curdir[curlib]]]->ar,&user)) if(!chk_ar(cfg.dir[usrdir[curlib][curdir[curlib]]]->ar,&user))
continue; } continue;
}
if(sort) { if(sort) {
if((line[j]=(char *)MALLOC(128))==0) { if((line[j]=(char *)MALLOC(128))==0) {
errormsg(WHERE,ERR_ALLOC,nulstr,83); errormsg(WHERE,ERR_ALLOC,nulstr,83);
for(i=0;i<j;i++) for(i=0;i<j;i++)
FREE(line[i]); FREE(line[i]);
return; } return;
}
sprintf(name,"%s #%d",user.alias,i); sprintf(name,"%s #%d",user.alias,i);
sprintf(line[j],text[UserListFmt],name sprintf(line[j],text[UserListFmt],name
,cfg.sys_misc&SM_LISTLOC ? user.location : user.note ,cfg.sys_misc&SM_LISTLOC ? user.location : user.note
,unixtodstr(&cfg,user.laston,tmp) ,unixtodstr(&cfg,user.laston,tmp)
,user.modem); } ,user.modem);
}
else { else {
sprintf(name,"%s #%u",user.alias,i); sprintf(name,"%s #%u",user.alias,i);
bprintf(text[UserListFmt],name bprintf(text[UserListFmt],name
,cfg.sys_misc&SM_LISTLOC ? user.location : user.note ,cfg.sys_misc&SM_LISTLOC ? user.location : user.note
,unixtodstr(&cfg,user.laston,tmp) ,unixtodstr(&cfg,user.laston,tmp)
,user.modem); } ,user.modem);
j++; } }
j++;
}
if(i<=k) { /* aborted */ if(i<=k) { /* aborted */
if(sort) if(sort)
for(i=0;i<j;i++) for(i=0;i<j;i++)
FREE(line[i]); FREE(line[i]);
return; } return;
}
if(!sort) { if(!sort) {
CRLF; } CRLF;
}
bprintf(text[NTotalUsers],users); bprintf(text[NTotalUsers],users);
if(mode==UL_SUB) if(mode==UL_SUB)
bprintf(text[NUsersOnCurSub],j); bprintf(text[NUsersOnCurSub],j);
...@@ -137,18 +147,21 @@ void sbbs_t::sif(char *fname, char *answers, long len) ...@@ -137,18 +147,21 @@ void sbbs_t::sif(char *fname, char *answers, long len)
if((file=nopen(str,O_RDONLY))==-1) { if((file=nopen(str,O_RDONLY))==-1) {
errormsg(WHERE,ERR_OPEN,str,O_RDONLY); errormsg(WHERE,ERR_OPEN,str,O_RDONLY);
answers[0]=0; answers[0]=0;
return; } return;
}
length=filelength(file); length=filelength(file);
if((buf=(char *)MALLOC(length))==0) { if((buf=(char *)MALLOC(length))==0) {
close(file); close(file);
errormsg(WHERE,ERR_ALLOC,str,length); errormsg(WHERE,ERR_ALLOC,str,length);
answers[0]=0; answers[0]=0;
return; } return;
}
if(lread(file,buf,length)!=length) { if(lread(file,buf,length)!=length) {
close(file); close(file);
errormsg(WHERE,ERR_READ,str,length); errormsg(WHERE,ERR_READ,str,length);
answers[0]=0; answers[0]=0;
return; } return;
}
close(file); close(file);
while(l<length && online) { while(l<length && online) {
mode=min=max=t=cr=0; mode=min=max=t=cr=0;
...@@ -157,11 +170,13 @@ void sbbs_t::sif(char *fname, char *answers, long len) ...@@ -157,11 +170,13 @@ void sbbs_t::sif(char *fname, char *answers, long len)
for(m=l;m<length;m++) for(m=l;m<length;m++)
if(buf[m]==ETX || !buf[m]) { if(buf[m]==ETX || !buf[m]) {
buf[m]=0; buf[m]=0;
break; } break;
}
if(l>=length) break; if(l>=length) break;
if(online==ON_REMOTE) { if(online==ON_REMOTE) {
rioctl(IOCM|ABORT); rioctl(IOCM|ABORT);
rioctl(IOCS|ABORT); } rioctl(IOCS|ABORT);
}
putmsg(buf+l,P_SAVEATR); putmsg(buf+l,P_SAVEATR);
m++; m++;
if(toupper(buf[m])!='C' && toupper(buf[m])!='S') if(toupper(buf[m])!='C' && toupper(buf[m])!='S')
...@@ -171,91 +186,117 @@ void sbbs_t::sif(char *fname, char *answers, long len) ...@@ -171,91 +186,117 @@ void sbbs_t::sif(char *fname, char *answers, long len)
rioctl(IOSM|ABORT); rioctl(IOSM|ABORT);
if(a>=len) { if(a>=len) {
errormsg(WHERE,ERR_LEN,fname,len); errormsg(WHERE,ERR_LEN,fname,len);
break; } break;
}
if((buf[m]&0xdf)=='C') { if((buf[m]&0xdf)=='C') {
if((buf[m+1]&0xdf)=='U') { /* Uppercase only */ if((buf[m+1]&0xdf)=='U') { /* Uppercase only */
mode|=K_UPPER; mode|=K_UPPER;
m++; } m++;
}
else if((buf[m+1]&0xdf)=='N') { /* Numbers only */ else if((buf[m+1]&0xdf)=='N') { /* Numbers only */
mode|=K_NUMBER; mode|=K_NUMBER;
m++; } m++;
}
if((buf[m+1]&0xdf)=='L') { /* Draw line */ if((buf[m+1]&0xdf)=='L') { /* Draw line */
if(useron.misc&COLOR) if(useron.misc&COLOR)
attr(cfg.color[clr_inputline]); attr(cfg.color[clr_inputline]);
else else
attr(BLACK|BG_LIGHTGRAY); attr(BLACK|BG_LIGHTGRAY);
bputs(" \b"); bputs(" \b");
m++; } m++;
}
if((buf[m+1]&0xdf)=='R') { /* Add CRLF */ if((buf[m+1]&0xdf)=='R') { /* Add CRLF */
cr=1; cr=1;
m++; } m++;
}
if(buf[m+1]=='"') { if(buf[m+1]=='"') {
m+=2; m+=2;
for(l=m;l<length;l++) for(l=m;l<length;l++)
if(buf[l]=='"') { if(buf[l]=='"') {
buf[l]=0; buf[l]=0;
break; } break;
answers[a++]=(char)getkeys((char *)buf+m,0); } }
answers[a++]=(char)getkeys((char *)buf+m,0);
}
else { else {
answers[a]=getkey(mode); answers[a]=getkey(mode);
outchar(answers[a++]); outchar(answers[a++]);
attr(LIGHTGRAY); attr(LIGHTGRAY);
CRLF; } CRLF;
}
if(cr) { if(cr) {
answers[a++]=CR; answers[a++]=CR;
answers[a++]=LF; } } answers[a++]=LF;
}
}
else if((buf[m]&0xdf)=='S') { /* String */ else if((buf[m]&0xdf)=='S') { /* String */
if((buf[m+1]&0xdf)=='U') { /* Uppercase only */ if((buf[m+1]&0xdf)=='U') { /* Uppercase only */
mode|=K_UPPER; mode|=K_UPPER;
m++; } m++;
}
else if((buf[m+1]&0xdf)=='F') { /* Force Upper/Lowr case */ else if((buf[m+1]&0xdf)=='F') { /* Force Upper/Lowr case */
mode|=K_UPRLWR; mode|=K_UPRLWR;
m++; } m++;
}
else if((buf[m+1]&0xdf)=='N') { /* Numbers only */ else if((buf[m+1]&0xdf)=='N') { /* Numbers only */
mode|=K_NUMBER; mode|=K_NUMBER;
m++; } m++;
}
if((buf[m+1]&0xdf)=='L') { /* Draw line */ if((buf[m+1]&0xdf)=='L') { /* Draw line */
mode|=K_LINE; mode|=K_LINE;
m++; } m++;
}
if((buf[m+1]&0xdf)=='R') { /* Add CRLF */ if((buf[m+1]&0xdf)=='R') { /* Add CRLF */
cr=1; cr=1;
m++; } m++;
}
if(isdigit(buf[m+1])) { if(isdigit(buf[m+1])) {
max=buf[++m]&0xf; max=buf[++m]&0xf;
if(isdigit(buf[m+1])) if(isdigit(buf[m+1]))
max=max*10+(buf[++m]&0xf); } max=max*10+(buf[++m]&0xf);
}
if(buf[m+1]=='.' && isdigit(buf[m+2])) { if(buf[m+1]=='.' && isdigit(buf[m+2])) {
m++; m++;
min=buf[++m]&0xf; min=buf[++m]&0xf;
if(isdigit(buf[m+1])) if(isdigit(buf[m+1]))
min=min*10+(buf[++m]&0xf); } min=min*10+(buf[++m]&0xf);
}
if(buf[m+1]=='"') { if(buf[m+1]=='"') {
m++; m++;
mode&=~K_NUMBER; mode&=~K_NUMBER;
while(buf[++m]!='"' && t<80) while(buf[++m]!='"' && t<80)
tmplt[t++]=buf[m]; tmplt[t++]=buf[m];
tmplt[t]=0; tmplt[t]=0;
max=strlen(tmplt); } max=strlen(tmplt);
}
if(t) { if(t) {
if(gettmplt(str,tmplt,mode)<min) { if(gettmplt(str,tmplt,mode)<min) {
l=top; l=top;
continue; } } continue;
}
}
else { else {
if(!max) if(!max)
continue; continue;
if(getstr(str,max,mode)<min) { if(getstr(str,max,mode)<min) {
l=top; l=top;
continue; } } continue;
}
}
if(!cr) { if(!cr) {
for(cr=0;str[cr];cr++) for(cr=0;str[cr];cr++)
answers[a+cr]=str[cr]; answers[a+cr]=str[cr];
while(cr<max) while(cr<max)
answers[a+cr++]=ETX; answers[a+cr++]=ETX;
a+=max; } a+=max;
}
else { else {
putrec(answers,a,max,str); putrec(answers,a,max,str);
putrec(answers,a+max,2,crlf); putrec(answers,a+max,2,crlf);
a+=max+2; } } } a+=max+2;
}
}
}
answers[a]=0; answers[a]=0;
FREE((char *)buf); FREE((char *)buf);
} }
...@@ -273,18 +314,21 @@ void sbbs_t::sof(char *fname, char *answers, long len) ...@@ -273,18 +314,21 @@ void sbbs_t::sof(char *fname, char *answers, long len)
if((file=nopen(str,O_RDONLY))==-1) { if((file=nopen(str,O_RDONLY))==-1) {
errormsg(WHERE,ERR_OPEN,str,O_RDONLY); errormsg(WHERE,ERR_OPEN,str,O_RDONLY);
answers[0]=0; answers[0]=0;
return; } return;
}
length=filelength(file); length=filelength(file);
if((buf=(char *)MALLOC(length))==0) { if((buf=(char *)MALLOC(length))==0) {
close(file); close(file);
errormsg(WHERE,ERR_ALLOC,str,length); errormsg(WHERE,ERR_ALLOC,str,length);
answers[0]=0; answers[0]=0;
return; } return;
}
if(lread(file,buf,length)!=length) { if(lread(file,buf,length)!=length) {
close(file); close(file);
errormsg(WHERE,ERR_READ,str,length); errormsg(WHERE,ERR_READ,str,length);
answers[0]=0; answers[0]=0;
return; } return;
}
close(file); close(file);
while(l<length && online) { while(l<length && online) {
min=max=cr=0; min=max=cr=0;
...@@ -292,11 +336,13 @@ void sbbs_t::sof(char *fname, char *answers, long len) ...@@ -292,11 +336,13 @@ void sbbs_t::sof(char *fname, char *answers, long len)
for(m=l;m<length;m++) for(m=l;m<length;m++)
if(buf[m]==ETX || !buf[m]) { if(buf[m]==ETX || !buf[m]) {
buf[m]=0; buf[m]=0;
break; } break;
}
if(l>=length) break; if(l>=length) break;
if(online==ON_REMOTE) { if(online==ON_REMOTE) {
rioctl(IOCM|ABORT); rioctl(IOCM|ABORT);
rioctl(IOCS|ABORT); } rioctl(IOCS|ABORT);
}
putmsg(buf+l,P_SAVEATR); putmsg(buf+l,P_SAVEATR);
m++; m++;
if(toupper(buf[m])!='C' && toupper(buf[m])!='S') if(toupper(buf[m])!='C' && toupper(buf[m])!='S')
...@@ -307,7 +353,8 @@ void sbbs_t::sof(char *fname, char *answers, long len) ...@@ -307,7 +353,8 @@ void sbbs_t::sof(char *fname, char *answers, long len)
if(a>=len) { if(a>=len) {
bprintf("\r\nSOF: %s defined more data than buffer size " bprintf("\r\nSOF: %s defined more data than buffer size "
"(%lu bytes)\r\n",fname,len); "(%lu bytes)\r\n",fname,len);
break; } break;
}
if((buf[m]&0xdf)=='C') { if((buf[m]&0xdf)=='C') {
if((buf[m+1]&0xdf)=='U') /* Uppercase only */ if((buf[m+1]&0xdf)=='U') /* Uppercase only */
m++; m++;
...@@ -319,15 +366,18 @@ void sbbs_t::sof(char *fname, char *answers, long len) ...@@ -319,15 +366,18 @@ void sbbs_t::sof(char *fname, char *answers, long len)
else else
attr(BLACK|BG_LIGHTGRAY); attr(BLACK|BG_LIGHTGRAY);
bputs(" \b"); bputs(" \b");
m++; } m++;
}
if((buf[m+1]&0xdf)=='R') { /* Add CRLF */ if((buf[m+1]&0xdf)=='R') { /* Add CRLF */
cr=1; cr=1;
m++; } m++;
}
outchar(answers[a++]); outchar(answers[a++]);
attr(LIGHTGRAY); attr(LIGHTGRAY);
CRLF; CRLF;
if(cr) if(cr)
a+=2; } a+=2;
}
else if((buf[m]&0xdf)=='S') { /* String */ else if((buf[m]&0xdf)=='S') { /* String */
if((buf[m+1]&0xdf)=='U') if((buf[m+1]&0xdf)=='U')
m++; m++;
...@@ -340,24 +390,29 @@ void sbbs_t::sof(char *fname, char *answers, long len) ...@@ -340,24 +390,29 @@ void sbbs_t::sof(char *fname, char *answers, long len)
attr(cfg.color[clr_inputline]); attr(cfg.color[clr_inputline]);
else else
attr(BLACK|BG_LIGHTGRAY); attr(BLACK|BG_LIGHTGRAY);
m++; } m++;
}
if((buf[m+1]&0xdf)=='R') { if((buf[m+1]&0xdf)=='R') {
cr=1; cr=1;
m++; } m++;
}
if(isdigit(buf[m+1])) { if(isdigit(buf[m+1])) {
max=buf[++m]&0xf; max=buf[++m]&0xf;
if(isdigit(buf[m+1])) if(isdigit(buf[m+1]))
max=max*10+(buf[++m]&0xf); } max=max*10+(buf[++m]&0xf);
}
if(buf[m+1]=='.' && isdigit(buf[m+2])) { if(buf[m+1]=='.' && isdigit(buf[m+2])) {
m++; m++;
min=buf[++m]&0xf; min=buf[++m]&0xf;
if(isdigit(buf[m+1])) if(isdigit(buf[m+1]))
min=min*10+(buf[++m]&0xf); } min=min*10+(buf[++m]&0xf);
}
if(buf[m+1]=='"') { if(buf[m+1]=='"') {
max=0; max=0;
m++; m++;
while(buf[++m]!='"' && max<80) while(buf[++m]!='"' && max<80)
max++; } max++;
}
if(!max) if(!max)
continue; continue;
getrec(answers,a,max,str); getrec(answers,a,max,str);
...@@ -367,7 +422,9 @@ void sbbs_t::sof(char *fname, char *answers, long len) ...@@ -367,7 +422,9 @@ void sbbs_t::sof(char *fname, char *answers, long len)
if(!cr) if(!cr)
a+=max; a+=max;
else else
a+=max+2; } } a+=max+2;
}
}
FREE((char *)buf); FREE((char *)buf);
} }
...@@ -381,13 +438,15 @@ void sbbs_t::create_sif_dat(char *siffile, char *datfile) ...@@ -381,13 +438,15 @@ void sbbs_t::create_sif_dat(char *siffile, char *datfile)
if((buf=(char *)MALLOC(SIF_MAXBUF))==NULL) { if((buf=(char *)MALLOC(SIF_MAXBUF))==NULL) {
errormsg(WHERE,ERR_ALLOC,siffile,SIF_MAXBUF); errormsg(WHERE,ERR_ALLOC,siffile,SIF_MAXBUF);
return; } return;
}
memset(buf,SIF_MAXBUF,0); /* initialize to null */ memset(buf,SIF_MAXBUF,0); /* initialize to null */
sif(siffile,buf,SIF_MAXBUF); sif(siffile,buf,SIF_MAXBUF);
if((file=nopen(datfile,O_WRONLY|O_TRUNC|O_CREAT))==-1) { if((file=nopen(datfile,O_WRONLY|O_TRUNC|O_CREAT))==-1) {
FREE(buf); FREE(buf);
errormsg(WHERE,ERR_OPEN,datfile,O_WRONLY|O_TRUNC|O_CREAT); errormsg(WHERE,ERR_OPEN,datfile,O_WRONLY|O_TRUNC|O_CREAT);
return; } return;
}
write(file,buf,strlen(buf)); write(file,buf,strlen(buf));
close(file); close(file);
FREE(buf); FREE(buf);
...@@ -404,15 +463,18 @@ void sbbs_t::read_sif_dat(char *siffile, char *datfile) ...@@ -404,15 +463,18 @@ void sbbs_t::read_sif_dat(char *siffile, char *datfile)
if((file=nopen(datfile,O_RDONLY))==-1) { if((file=nopen(datfile,O_RDONLY))==-1) {
errormsg(WHERE,ERR_OPEN,datfile,O_RDONLY); errormsg(WHERE,ERR_OPEN,datfile,O_RDONLY);
return; } return;
}
length=filelength(file); length=filelength(file);
if(!length) { if(!length) {
close(file); close(file);
return; } return;
}
if((buf=(char *)MALLOC(length))==NULL) { if((buf=(char *)MALLOC(length))==NULL) {
close(file); close(file);
errormsg(WHERE,ERR_ALLOC,datfile,length); errormsg(WHERE,ERR_ALLOC,datfile,length);
return; } return;
}
read(file,buf,length); read(file,buf,length);
close(file); close(file);
sof(siffile,buf,length); sof(siffile,buf,length);
...@@ -438,19 +500,23 @@ uint sbbs_t::gettmplt(char *strout,char *templt, long mode) ...@@ -438,19 +500,23 @@ uint sbbs_t::gettmplt(char *strout,char *templt, long mode)
if(useron.misc&COLOR) if(useron.misc&COLOR)
attr(cfg.color[clr_inputline]); attr(cfg.color[clr_inputline]);
else else
attr(BLACK|BG_LIGHTGRAY); } attr(BLACK|BG_LIGHTGRAY);
}
while(c<t) { while(c<t) {
if(tmplt[c]=='N' || tmplt[c]=='A' || tmplt[c]=='!') if(tmplt[c]=='N' || tmplt[c]=='A' || tmplt[c]=='!')
outchar(SP); outchar(SP);
else else
outchar(tmplt[c]); outchar(tmplt[c]);
c++; } c++;
bprintf("\x1b[%dD",t); } }
cursor_left(t);
}
c=0; c=0;
if(mode&K_EDIT) { if(mode&K_EDIT) {
strcpy(str,strout); strcpy(str,strout);
bputs(str); bputs(str);
c=strlen(str); } c=strlen(str);
}
while((ch=getkey(mode))!=CR && online && !(sys_status&SS_ABORT)) { while((ch=getkey(mode))!=CR && online && !(sys_status&SS_ABORT)) {
if(ch==BS || ch==DEL) { if(ch==BS || ch==DEL) {
if(!c) if(!c)
...@@ -458,12 +524,10 @@ uint sbbs_t::gettmplt(char *strout,char *templt, long mode) ...@@ -458,12 +524,10 @@ uint sbbs_t::gettmplt(char *strout,char *templt, long mode)
for(ch=1,c--;c;c--,ch++) for(ch=1,c--;c;c--,ch++)
if(tmplt[c]=='N' || tmplt[c]=='A' || tmplt[c]=='!') if(tmplt[c]=='N' || tmplt[c]=='A' || tmplt[c]=='!')
break; break;
if(useron.misc&ANSI) cursor_left(ch);
bprintf("\x1b[%dD",ch);
else while(ch--)
outchar(BS);
bputs(" \b"); bputs(" \b");
continue; } continue;
}
if(ch==CTRL_X) { if(ch==CTRL_X) {
for(;c;c--) { for(;c;c--) {
outchar(BS); outchar(BS);
...@@ -480,7 +544,10 @@ uint sbbs_t::gettmplt(char *strout,char *templt, long mode) ...@@ -480,7 +544,10 @@ uint sbbs_t::gettmplt(char *strout,char *templt, long mode)
str[c++]=ch; str[c++]=ch;
while(c<t && tmplt[c]!='N' && tmplt[c]!='A' && tmplt[c]!='!'){ while(c<t && tmplt[c]!='N' && tmplt[c]!='A' && tmplt[c]!='!'){
str[c]=tmplt[c]; str[c]=tmplt[c];
outchar(tmplt[c++]); } } } outchar(tmplt[c++]);
}
}
}
str[c]=0; str[c]=0;
attr(LIGHTGRAY); attr(LIGHTGRAY);
CRLF; CRLF;
...@@ -512,77 +579,95 @@ bool sbbs_t::inputnstime(time_t *dt) ...@@ -512,77 +579,95 @@ bool sbbs_t::inputnstime(time_t *dt)
ultoa(tm.tm_year+1900,str,10); ultoa(tm.tm_year+1900,str,10);
if(!getstr(str,4,K_EDIT|K_AUTODEL|K_NUMBER|K_NOCRLF) || sys_status&SS_ABORT) { if(!getstr(str,4,K_EDIT|K_AUTODEL|K_NUMBER|K_NOCRLF) || sys_status&SS_ABORT) {
CRLF; CRLF;
return(false); } return(false);
}
tm.tm_year=atoi(str); tm.tm_year=atoi(str);
if(tm.tm_year<1970) { /* unix time is seconds since 1/1/1970 */ if(tm.tm_year<1970) { /* unix time is seconds since 1/1/1970 */
CRLF; CRLF;
return(false); } return(false);
}
tm.tm_year-=1900; /* tm_year is years since 1900 */ tm.tm_year-=1900; /* tm_year is years since 1900 */
bputs(text[NScanMonth]); bputs(text[NScanMonth]);
ultoa(tm.tm_mon+1,str,10); ultoa(tm.tm_mon+1,str,10);
if(!getstr(str,2,K_EDIT|K_AUTODEL|K_NUMBER|K_NOCRLF) || sys_status&SS_ABORT) { if(!getstr(str,2,K_EDIT|K_AUTODEL|K_NUMBER|K_NOCRLF) || sys_status&SS_ABORT) {
CRLF; CRLF;
return(false); } return(false);
}
tm.tm_mon=atoi(str); tm.tm_mon=atoi(str);
if(tm.tm_mon<1 || tm.tm_mon>12) { if(tm.tm_mon<1 || tm.tm_mon>12) {
CRLF; CRLF;
return(false); } return(false);
}
tm.tm_mon--; /* tm_mon is zero-based */ tm.tm_mon--; /* tm_mon is zero-based */
bputs(text[NScanDay]); bputs(text[NScanDay]);
ultoa(tm.tm_mday,str,10); ultoa(tm.tm_mday,str,10);
if(!getstr(str,2,K_EDIT|K_AUTODEL|K_NUMBER|K_NOCRLF) || sys_status&SS_ABORT) { if(!getstr(str,2,K_EDIT|K_AUTODEL|K_NUMBER|K_NOCRLF) || sys_status&SS_ABORT) {
CRLF; CRLF;
return(false); } return(false);
}
tm.tm_mday=atoi(str); tm.tm_mday=atoi(str);
if(tm.tm_mday<1 || tm.tm_mday>31) { if(tm.tm_mday<1 || tm.tm_mday>31) {
CRLF; CRLF;
return(false); } return(false);
}
bputs(text[NScanHour]); bputs(text[NScanHour]);
if(cfg.sys_misc&SM_MILITARY) if(cfg.sys_misc&SM_MILITARY)
hour=tm.tm_hour; hour=tm.tm_hour;
else { else {
if(tm.tm_hour==0) { /* 12 midnite */ if(tm.tm_hour==0) { /* 12 midnite */
pm=false; pm=false;
hour=12; } hour=12;
}
else if(tm.tm_hour>12) { else if(tm.tm_hour>12) {
hour=tm.tm_hour-12; hour=tm.tm_hour-12;
pm=true; } pm=true;
}
else { else {
hour=tm.tm_hour; hour=tm.tm_hour;
pm=false; } } pm=false;
}
}
ultoa(hour,str,10); ultoa(hour,str,10);
if(!getstr(str,2,K_EDIT|K_AUTODEL|K_NUMBER|K_NOCRLF) || sys_status&SS_ABORT) { if(!getstr(str,2,K_EDIT|K_AUTODEL|K_NUMBER|K_NOCRLF) || sys_status&SS_ABORT) {
CRLF; CRLF;
return(false); } return(false);
}
tm.tm_hour=atoi(str); tm.tm_hour=atoi(str);
if(tm.tm_hour>24) { if(tm.tm_hour>24) {
CRLF; CRLF;
return(false); } return(false);
}
bputs(text[NScanMinute]); bputs(text[NScanMinute]);
ultoa(tm.tm_min,str,10); ultoa(tm.tm_min,str,10);
if(!getstr(str,2,K_EDIT|K_AUTODEL|K_NUMBER|K_NOCRLF) || sys_status&SS_ABORT) { if(!getstr(str,2,K_EDIT|K_AUTODEL|K_NUMBER|K_NOCRLF) || sys_status&SS_ABORT) {
CRLF; CRLF;
return(false); } return(false);
}
tm.tm_min=atoi(str); tm.tm_min=atoi(str);
if(tm.tm_min>59) { if(tm.tm_min>59) {
CRLF; CRLF;
return(false); } return(false);
}
tm.tm_sec=0; tm.tm_sec=0;
if(!(cfg.sys_misc&SM_MILITARY) && tm.tm_hour && tm.tm_hour<13) { if(!(cfg.sys_misc&SM_MILITARY) && tm.tm_hour && tm.tm_hour<13) {
if(pm && yesno(text[NScanPmQ])) { if(pm && yesno(text[NScanPmQ])) {
if(tm.tm_hour<12) if(tm.tm_hour<12)
tm.tm_hour+=12; } tm.tm_hour+=12;
}
else if(!pm && !yesno(text[NScanAmQ])) { else if(!pm && !yesno(text[NScanAmQ])) {
if(tm.tm_hour<12) if(tm.tm_hour<12)
tm.tm_hour+=12; } tm.tm_hour+=12;
}
else if(tm.tm_hour==12) else if(tm.tm_hour==12)
tm.tm_hour=0; } tm.tm_hour=0;
}
else { else {
CRLF; } CRLF;
}
*dt=mktime(&tm); *dt=mktime(&tm);
return(true); return(true);
} }
...@@ -597,29 +682,34 @@ bool sbbs_t::chkpass(char *pass, user_t* user, bool unique) ...@@ -597,29 +682,34 @@ bool sbbs_t::chkpass(char *pass, user_t* user, bool unique)
if(strlen(pass)<4) { if(strlen(pass)<4) {
bputs(text[PasswordTooShort]); bputs(text[PasswordTooShort]);
return(0); } return(0);
}
if(!strcmp(pass,user->pass)) { if(!strcmp(pass,user->pass)) {
bputs(text[PasswordNotChanged]); bputs(text[PasswordNotChanged]);
return(0); } return(0);
}
d=strlen(pass); d=strlen(pass);
for(c=1;c<d;c++) for(c=1;c<d;c++)
if(pass[c]!=pass[c-1]) if(pass[c]!=pass[c-1])
break; break;
if(c==d) { if(c==d) {
bputs(text[PasswordInvalid]); bputs(text[PasswordInvalid]);
return(0); } return(0);
}
for(c=0;c<3;c++) /* check for 1234 and ABCD */ for(c=0;c<3;c++) /* check for 1234 and ABCD */
if(pass[c]!=pass[c+1]+1) if(pass[c]!=pass[c+1]+1)
break; break;
if(c==3) { if(c==3) {
bputs(text[PasswordObvious]); bputs(text[PasswordObvious]);
return(0); } return(0);
}
for(c=0;c<3;c++) /* check for 4321 and ZYXW */ for(c=0;c<3;c++) /* check for 4321 and ZYXW */
if(pass[c]!=pass[c+1]-1) if(pass[c]!=pass[c+1]-1)
break; break;
if(c==3) { if(c==3) {
bputs(text[PasswordObvious]); bputs(text[PasswordObvious]);
return(0); } return(0);
}
strcpy(name,user->name); strcpy(name,user->name);
strupr(name); strupr(name);
strcpy(alias,user->alias); strcpy(alias,user->alias);
...@@ -628,7 +718,8 @@ bool sbbs_t::chkpass(char *pass, user_t* user, bool unique) ...@@ -628,7 +718,8 @@ bool sbbs_t::chkpass(char *pass, user_t* user, bool unique)
p=strchr(first,SP); p=strchr(first,SP);
if(p) { if(p) {
*p=0; *p=0;
strcpy(last,p+1); } strcpy(last,p+1);
}
else else
last[0]=0; last[0]=0;
strcpy(handle,user->handle); strcpy(handle,user->handle);
...@@ -662,7 +753,8 @@ bool sbbs_t::chkpass(char *pass, user_t* user, bool unique) ...@@ -662,7 +753,8 @@ bool sbbs_t::chkpass(char *pass, user_t* user, bool unique)
) )
{ {
bputs(text[PasswordObvious]); bputs(text[PasswordObvious]);
return(0); } return(0);
}
return(1); return(1);
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment