Comparing files 1B00\LOGONOFF.C and 1A14\LOGONOFF.C
***** 1B00\LOGONOFF.C
starttime=logontime;
ns_time=useron.laston;
ns_time-=(useron.tlast*60);     /* file newscan time == last logon time */
***** 1A14\LOGONOFF.C
starttime=logontime;
date.da_mon=((useron.lastond[0]&0xf)*10)+(useron.lastond[1]&0xf);
date.da_day=((useron.lastond[3]&0xf)*10)+(useron.lastond[4]&0xf);
date.da_year=((useron.lastond[6]&0xf)*10)+(useron.lastond[7]&0xf)+1900;
curtime.ti_hour=((useron.lastont[0]&0xf)*10)+(useron.lastont[1]&0xf);
curtime.ti_min=((useron.lastont[3]&0xf)*10)+(useron.lastont[4]&0xf);
curtime.ti_sec=0;               /* Set newscan date/time to last logon */
ns_time=dostounix(&date,&curtime);
ns_time-=(useron.tlast*60);     /* file newscan time == last logon time */
*****

***** 1B00\LOGONOFF.C
        putuserrec(useron.number,U_XEDIT,2,"0"); }
if(useron.cmdset>total_altcmds && useron.cmdset!=0xff) { /* invalid cmdset */
        useron.cmdset=0;
        putuserrec(useron.number,U_CMDSET,2,"0"); }
else if(online==ON_LOCAL) rows=node_scrnlen-1;
unixtodstr(logontime,str);
if(!strncmp(str,useron.birth,5)) {
***** 1A14\LOGONOFF.C
        putuserrec(useron.number,U_XEDIT,2,"0"); }
else if(online==ON_LOCAL) rows=node_scrnlen-1;
unixtodos(logontime,&date,&curtime);
sprintf(str,"%2.2d/%2.2d/%2.2d",date.da_mon,date.da_day
        ,date.da_year-1900);
if(!strncmp(str,useron.birth,5)) {
*****

***** 1B00\LOGONOFF.C
        bputs(text[HappyBirthday]);
        pause();
        CLS;
        user_event(EVENT_BIRTHDAY); }
unixtodstr(useron.laston,tmp);
if(strcmp(str,tmp)) {                   /* str still equals logon time */
        useron.ltoday=1;
***** 1A14\LOGONOFF.C
        bputs(text[HappyBirthday]);
        pause(); }
if(strcmp(str,useron.lastond)) {
        useron.ltoday=1;
*****

***** 1B00\LOGONOFF.C
        useron.ltoday++;

if(!(useron.rest&FLAG('Q'))) {      /* QWK Nodes don't go through this */

        if(sys_pwdays
                && logontime>(useron.pwmod+((ulong)sys_pwdays*24UL*60UL*60UL))) {
                bprintf(text[TimeToChangePw],sys_pwdays);
                while(online) {
                        bputs(text[NewPassword]);
                        getstr(str,LEN_PASS,K_LINE|K_UPPER);
                        truncsp(str);
                        if(!chkpass(str,useron))
                                continue;
                        bputs(text[VerifyPassword]);
                        console|=CON_R_ECHOX;
                        i=getstr(tmp,LEN_PASS,K_UPPER);
                        console&=~CON_R_ECHOX;
                        if(strcmp(str,tmp)) {
                                bputs(text[Wrong]);
                                continue; }
                        break; }
                if(!online) {
                        sprintf(str,"(%04u)  %-25s  Hung up upon on reentry"
                                ,useron.number,useron.alias);
                        logline("+!",str);
                        return(0); }
                strcpy(useron.pass,str);
                useron.pwmod=time(NULL);
                putuserrec(useron.number,U_PWMOD,8,ultoa(useron.pwmod,str,16));
                bputs(text[PasswordChanged]);
                pause(); }
        if(useron.ltoday>level_callsperday[useron.ml]
                && !(useron.exempt&FLAG('L'))) {
                bputs(text[NoMoreLogons]);
                sprintf(str,"(%04u)  %-25s  Out of logons"
                        ,useron.number,useron.alias);
***** 1A14\LOGONOFF.C
        useron.ltoday++;
sprintf(str,"%2.2d%2.2d%2.2d",date.da_year-1900,date.da_mon,date.da_day);
sprintf(tmp,"%2.2s%2.2s%2.2s",useron.expire+6,useron.expire,useron.expire+3);
if(strcmp(str,tmp)>=0) {        /* past or on expiration date */
        bputs(text[ExpiredAccount]);
        putuserrec(useron.number,U_DEL,1,"Y");
        sprintf(str,"(%04u)  %-25s  Expired Account",useron.number,useron.alias);
        logline("+!",str);
        hangup();
        return(0); }
date.da_mon=((useron.pwmod[0]&0xf)*10)+(useron.pwmod[1]&0xf);
date.da_day=((useron.pwmod[3]&0xf)*10)+(useron.pwmod[4]&0xf);
date.da_year=((useron.pwmod[6]&0xf)*10)+(useron.pwmod[7]&0xf)+1900;
curtime.ti_hour=curtime.ti_min=curtime.ti_sec=0;
now=dostounix(&date,&curtime);  /* force password change */
if(sys_pwdays && logontime>(now+((ulong)sys_pwdays*24UL*60UL*60UL))) {
        bprintf(text[TimeToChangePw],sys_pwdays);
        while(online) {
                bputs(text[NewPassword]);
                getstr(str,LEN_PASS,K_LINE|K_UPPER);
                truncsp(str);
                if(!chkpass(str,useron))
                        continue;
                bputs(text[VerifyPassword]);
                console|=CON_R_ECHOX;
                i=getstr(tmp,LEN_PASS,K_UPPER);
                console&=~CON_R_ECHOX;
                if(strcmp(str,tmp)) {
                        bputs(text[Wrong]);
                        continue; }
                break; }
        if(!online) {
                sprintf(str,"(%04u)  %-25s  Hung up upon on reentry"
                        ,useron.number,useron.alias);
*****

***** 1B00\LOGONOFF.C
                logline("+!",str);
                hangup();
                return(0); }
        if(useron.rest&FLAG('L') && useron.ltoday>1) {
                bputs(text[R_Logons]);
                sprintf(str,"(%04u)  %-25s  Out of logons"
                        ,useron.number,useron.alias);
                logline("+!",str);
                hangup();
                return(0); }
        if(!useron.name[0])
                while(online) {
                        bputs(text[EnterYourRealName]);
                        if(!getstr(useron.name,LEN_NAME,K_UPRLWR))
                                bputs(text[YouCantUseThatName]);
                        else
                                break; }
        if(!useron.handle[0]) {
                sprintf(useron.handle,"%.*s",LEN_HANDLE,useron.alias);
                while(online) {
                        bputs(text[EnterYourHandle]);
                        if(!getstr(useron.handle,LEN_HANDLE,K_LINE|K_EDIT)
                                || userdatdupe(useron.number,U_HANDLE,LEN_HANDLE
                                ,useron.handle,0))
                                bputs(text[YouCantUseThatName]);
                        else
                                break; } }
        if(!useron.location[0])
                while(online) {
                        bputs(text[EnterYourCityState]);
                        if(getstr(useron.location,LEN_LOCATION,K_UPRLWR))
                                break; }
        if(sys_misc&SM_ADDRESS && !useron.address[0])
                while(online) {
                        bputs(text[EnterYourAddress]);
                        if(getstr(useron.address,LEN_ADDRESS,0))
                                break; }
        if(sys_misc&SM_ADDRESS && !useron.zipcode[0])
                while(online) {
                        bputs(text[EnterYourZipCode]);
                        if(getstr(useron.zipcode,LEN_ZIPCODE,K_UPPER))
                                break; }
        if(!useron.phone[0]) {
                i=yesno(text[CallingFromUSAQ]);
                while(online) {
                        bputs(text[EnterYourPhoneNumber]);
                        if(i && gettmplt(useron.phone,"nnn-nnn-nnnn",0)==LEN_PHONE)
                                break;
                        if(!i && getstr(useron.phone,LEN_PHONE,K_UPPER))
                                break; } }
        if(!useron.comp[0])
                getcomputer(useron.comp);
        if(new_sif[0] && !(useron.rest&FLAG('Q'))) {
                sprintf(str,"%sUSER\\%4.4u.DAT",data_dir,useron.number);
                if(flength(str)<1L)
                        create_sif_dat(new_sif,str); } }
gettimeleft();
if(!online) {
        sprintf(str,"(%04u)  %-25s  Unsuccessful logon"
                ,useron.number,useron.alias);
***** 1A14\LOGONOFF.C
                logline("+!",str);
                return(0); }
        strcpy(useron.pass,str);
        now=time(NULL);
        unixtodos(now,&date,&curtime);
        sprintf(useron.pwmod,"%2.2d/%2.2d/%2.2d",date.da_mon,date.da_day
                ,date.da_year-1900);
        bputs(text[PasswordChanged]);
        pause(); }
if(useron.ltoday>level_callsperday[useron.ml] && !(useron.exempt&FLAG('L'))) {
        bputs(text[NoMoreLogons]);
        sprintf(str,"(%04u)  %-25s  Out of logons"
                ,useron.number,useron.alias);
        logline("+!",str);
        hangup();
        return(0); }
if(useron.rest&FLAG('L') && useron.ltoday>1) {
        bputs(text[R_Logons]);
        sprintf(str,"(%04u)  %-25s  Out of logons"
                ,useron.number,useron.alias);
*****

***** 1B00\LOGONOFF.C
    logline("+!",str);
        return(0); }
***** 1A14\LOGONOFF.C
    logline("+!",str);
        hangup();
        return(0); }
if(!useron.alias[0])
        while(online) {
                bputs(text[EnterYourAlias]);
                if(getstr(useron.alias,LEN_ALIAS,K_UPRLWR))
                        break; }
if(!useron.name[0])
        while(online) {
                if(sys_misc&SM_ALIASES)
                        bputs(text[EnterYourRealName]);
                else
                        bputs(text[EnterYourAddress]);
                if(getstr(useron.name,LEN_NAME,K_UPRLWR))
                        break; }
if(!useron.phone[0])
        while(online) {
                bputs(text[EnterYourPhoneNumber]);
                if(gettmplt(useron.phone,"nnn-nnn-nnnn",0)==LEN_PHONE)
                        break; }
if(!useron.birth[0])
        while(online) {
                bputs(text[EnterYourBirthday]);
                if(gettmplt(useron.birth,"nn/nn/nn",0)==LEN_BIRTH)
                        break; }
if(!useron.comp[0])
        getcomputer(useron.comp);
if(!useron.note[0] && !(sys_misc&SM_ALIASES)) {
        while(online) {
                bputs(text[EnterYourCityState]);
                if(getstr(str,25,K_LINE))
                        break; }
        sprintf(useron.note,"%-25.25s",str);
        while(online) {
                bputs(text[EnterYourZipCode]);
                if(getstr(str,5,K_NUMBER|K_LINE)==5)
                        break; }
        strcat(useron.note,str); }
if(new_sif[0]) {
        sprintf(str,"%sUSER\\%4.4u.DAT",data_dir,useron.number);
        if(!fexist(str))
                create_sif_dat(new_sif,str); }
gettimeleft();
if(!online) {
        sprintf(str,"(%04u)  %-25s  Unsuccessful logon"
                ,useron.number,useron.alias);
    logline("+!",str);
        return(0); }
*****

***** 1B00\LOGONOFF.C
        bputs(text[ReducedTime]);
getnodedat(node_num,&thisnode,0);
for(i=1;i<=sys_nodes;i++)
        if(i!=node_num) {
                getnodedat(i,&node,0);
                if(node.status==NODE_INUSE
                        || ((node.status==NODE_QUIET || node.errors) && SYSOP))
                        printnodedat(i,node);
                if(node.status==NODE_INUSE && i!=node_num && node.useron==useron.number
                        && !SYSOP && !(useron.exempt&FLAG('G'))) {
                        sprintf(str,"(%04u)  %-25s  On two nodes at the same time!"
                                ,useron.number,useron.alias);
                        logline("+!",str);
                        bputs(text[UserOnTwoNodes]);
                        hangup();
                        return(0); }
                if(thisnode.status!=NODE_QUIET
                        && (node.status==NODE_INUSE || node.status==NODE_QUIET)
                        && !(node.misc&NODE_AOFF) && node.useron!=useron.number) {
                        sprintf(str,text[NodeLoggedOnAtNbps]
                                ,node_num
                                ,thisnode.misc&NODE_ANON ? text[UNKNOWN_USER] : useron.alias
                                ,connection);
                        putsmsg(node.useron,str); } }
if(criterrs && SYSOP)
***** 1A14\LOGONOFF.C
        bputs(text[ReducedTime]);
for(i=1;i<=sys_nodes;i++) {
        getnodedat(i,&node,0);
        if(i!=node_num && (node.status==NODE_INUSE || (node.errors && SYSOP)))
                printnodedat(i,node);
        if(node.status==NODE_INUSE && i!=node_num && node.useron==useron.number
                && !SYSOP && !(useron.exempt&FLAG('G'))) {
                sprintf(str,"(%04u)  %-25s  On two nodes at the same time!"
                        ,useron.number,useron.alias);
                logline("+!",str);
                bputs(text[UserOnTwoNodes]);
                hangup();
                return(0); } }
if(criterrs && SYSOP)
*****

***** 1B00\LOGONOFF.C
        cursub[i]=0;
if(useron.misc&CURSUB) {
        if(useron.curgrp<total_grps)
                curgrp=useron.curgrp;
        cursub[curgrp]=useron.cursub;
        if(useron.curlib<total_libs)
                curlib=useron.curlib;
        curdir[curlib]=useron.curdir; }
lastnodemsg=0;
return(1);
***** 1A14\LOGONOFF.C
        cursub[i]=0;
return(1);
*****

***** 1B00\LOGONOFF.C
        file_t  f;
        node_t  node;
        struct  date logondate;
***** 1A14\LOGONOFF.C
        file_t  f;
        struct  date logondate;
*****

***** 1B00\LOGONOFF.C

#if INHOUSE
if(!(strncmpi(useron.alias,"GUEST",5)))         /* Reset guest's n-scan cfg */
        for(i=0;i<total_subs;i++)
                sub[i]->misc|=SUB_SCAN;
#endif

if(thisnode.status!=NODE_QUIET)
        for(i=1;i<=sys_nodes;i++)
                if(i!=node_num) {
                        getnodedat(i,&node,0);
                        if((node.status==NODE_INUSE || node.status==NODE_QUIET)
                                && !(node.misc&NODE_AOFF) && node.useron!=useron.number) {
                                sprintf(str,text[NodeLoggedOff],node_num,useron.alias);
                                putsmsg(node.useron,str); } }

getnodedat(node_num,&thisnode,1);
thisnode.status=NODE_WFC;
thisnode.misc&=~(NODE_INTR|NODE_MSGW|NODE_POFF|NODE_AOFF);
putnodedat(node_num,thisnode);

if(sys_status&SS_SYSALERT) {
    mswait(500);
    dtr(1);
    mswait(500);
    offhook();
    CLS;
        lputs("\r\n\r\nAlerting Sysop...");
    while(!lkbrd(1)) {
        sound(1000);
        mswait(200);
        nosound();
        mswait(200); }
    lkbrd(0); }

sys_status&=~(SS_USERON|SS_SYSALERT);
if(sys_logoff[0])               /* execute system logoff event */
***** 1A14\LOGONOFF.C

sys_status&=~SS_USERON;
if(sys_logoff[0])               /* execute system logoff event */
*****

***** 1B00\LOGONOFF.C
        logofflist();
now=useron.laston=time(NULL);

***** 1A14\LOGONOFF.C
        logofflist();
now=time(NULL);
unixtodos(now,&date,&curtime);
sprintf(useron.lastond,"%2.2d/%2.2d/%2.2d",date.da_mon,date.da_day
        ,date.da_year-1900);
sprintf(useron.lastont,"%2.2d:%2.2d",curtime.ti_hour,curtime.ti_min);

*****

***** 1B00\LOGONOFF.C

if(timeleft>0 && starttime-logontime>0)                         /* extra time */
        useron.textra+=(starttime-logontime)/60;

unixtodos(now,&date,&curtime);
unixtodos(logontime,&logondate,&curtime);
***** 1A14\LOGONOFF.C

if(timeleft>0 && starttime-logontime>0) { /* extra time from */
        /***    removed 05/27/92
        if((int)(starttime-logontime)<timeleft)  /* uploads or Alt + */
        ***/
                useron.textra+=(starttime-logontime)/60;
        /***    removed 05/27/92 - questionable process. Why not give all
        else                                                                                     extra time?
                useron.textra+=timeleft/60;
        ***/ }

unixtodos(logontime,&logondate,&curtime);
*****

***** 1B00\LOGONOFF.C

putuserrec(useron.number,U_LASTON,8,ultoa(useron.laston,str,16));
putuserrec(useron.number,U_TIMEON,5,itoa(useron.timeon,str,10));
***** 1A14\LOGONOFF.C

putuserrec(useron.number,U_LASTOND,8,useron.lastond);
putuserrec(useron.number,U_LASTONT,5,useron.lastont);
putuserrec(useron.number,U_TIMEON,5,itoa(useron.timeon,str,10));
*****

***** 1B00\LOGONOFF.C
putuserrec(useron.number,U_TLAST,5,itoa(useron.tlast,str,10));
putuserrec(useron.number,U_CURGRP,4,itoa(curgrp,str,16));
putuserrec(useron.number,U_CURSUB,4,itoa(cursub[curgrp],str,16));
putuserrec(useron.number,U_CURLIB,4,itoa(curlib,str,16));
putuserrec(useron.number,U_CURDIR,4,itoa(curdir[curlib],str,16));
}
***** 1A14\LOGONOFF.C
putuserrec(useron.number,U_TLAST,5,itoa(useron.tlast,str,10));
}
*****

***** 1B00\LOGONOFF.C
{
        char    c,str[512],usa;
        uint    i,j;
        ulong   misc;

***** 1A14\LOGONOFF.C
{
        char    c,str[512];
        uint    i,j;

*****

***** 1B00\LOGONOFF.C
putnodedat(node_num,thisnode);
memset(&useron,NULL,sizeof(user_t));     /* Initialize user info to null */
useron.misc|=UPAUSE;    /* make sure new users have pause set on by default */
***** 1A14\LOGONOFF.C
putnodedat(node_num,thisnode);
memset(&useron,0,sizeof(user_t));
useron.misc|=UPAUSE;    /* make sure new users have pause set on by default */
*****

***** 1B00\LOGONOFF.C
strcpy(useron.modem,connection);
strcpy(useron.main_cmd,SBBS_MAIN_CMDS);
strcpy(useron.xfer_cmd,SBBS_XFER_CMDS);
strcpy(useron.scan_cmd,SBBS_SCAN_CMDS);
strcpy(useron.mail_cmd,SBBS_MAIL_CMDS);
useron.firston=useron.laston=useron.pwmod=time(NULL);
useron.expire=useron.firston+(1440L*60L*365L*5L);       /* 5 years in the future */
strcpy(useron.alias,"New");
strcpy(useron.modem,connection);
***** 1A14\LOGONOFF.C
strcpy(useron.modem,connection);
useron.dls=useron.uls=useron.dlb=useron.ulb=useron.timeon=useron.tlast=0;
useron.logons=useron.ltoday=useron.ttoday=useron.posts=useron.emails=0;
useron.fbacks=useron.etoday=useron.ptoday=useron.textra=useron.ml=0;
useron.xedit=0; /* fix 05/21/92 */
getdate(&date);
strcpy(useron.expire,"99/99/99");
sprintf(useron.firston,"%2.2d/%2.2d/%2.2d",date.da_mon,date.da_day
        ,date.da_year-1900);
strcpy(useron.alias,"New");
strcpy(useron.pass,nulstr);
strcpy(useron.phone,nulstr);
strcpy(useron.name,nulstr);
strcpy(useron.pwmod,useron.firston);
strcpy(useron.lastond,useron.firston);
strcpy(useron.lastont,"00:00");
strcpy(useron.comment,nulstr);
strcpy(useron.note,nulstr);
strcpy(useron.modem,connection);
*****

***** 1B00\LOGONOFF.C
        useron.ml=useron.tl=99;
        useron.exempt=useron.mf=useron.tf=0xffffffffUL&~ALL_FLAG;
        useron.rest=0L; }
***** 1A14\LOGONOFF.C
        useron.ml=useron.tl=99;
        useron.mf=useron.tf=0xffffffffUL;
        useron.rest=0L; }
*****

***** 1B00\LOGONOFF.C
        useron.tf=new_tf;
        useron.rest=new_rest;
        useron.exempt=new_exempt; }

useron.cdt=new_cdt;
***** 1A14\LOGONOFF.C
        useron.tf=new_tf;
        useron.rest=new_rest; }

useron.exempt=new_exempt;
useron.cdt=new_cdt;
*****

***** 1B00\LOGONOFF.C
useron.min=new_min;
useron.xedit=new_xedit;
useron.cmdset=new_cmdset;
statline=1;
***** 1A14\LOGONOFF.C
useron.min=new_min;
statline=1;
*****

***** 1B00\LOGONOFF.C
statusline();
while(online) {
***** 1A14\LOGONOFF.C
statusline();
c=0;
while(online) {
*****

***** 1B00\LOGONOFF.C
                getstr(useron.alias,LEN_ALIAS,K_UPRLWR);
                truncsp(useron.alias);
                if(useron.alias[0]<33 || isdigit(useron.alias[0])
                        || !strcmpi(useron.alias,"NEW") || !strcmpi(useron.alias,"ALL")
                        || matchuser(useron.alias) || strchr(useron.alias,'@')
                        || strchr(useron.alias,',')) {
                        bputs(text[YouCantUseThatName]);
                        continue; }
***** 1A14\LOGONOFF.C
                getstr(useron.alias,LEN_ALIAS,K_UPRLWR);
                i=strlen(useron.alias);
                while(i && useron.alias[--i]==SP)       /* Takes spaces off the end */
                        useron.alias[i]=0;
                if(useron.alias[0]<33 || isdigit(useron.alias[0])
                        || !strcmpi(useron.alias,"NEW") || matchuser(useron.alias)
                        || strchr(useron.alias,'@')) {
                        bprintf(text[YouCantUseThatName]
                                ,sys_misc&SM_ALIASES ?  "alias" : "name");
                        if(++c==3) hangup();
                        continue; }
*****

***** 1B00\LOGONOFF.C
        if(sys_misc&SM_ALIASES)
                while(online) {
                        bputs(text[EnterYourRealName]);
                        if(!getstr(useron.name,LEN_NAME,K_UPRLWR))
                                bputs(text[YouCantUseThatName]);
                        else
                                break; }
        else
                strcpy(useron.name,useron.alias);
    if(!online) return;
        sprintf(useron.handle,"%.*s",LEN_HANDLE,useron.alias);
        while(online) {
                bputs(text[EnterYourHandle]);
                if(!getstr(useron.handle,LEN_HANDLE,K_LINE|K_EDIT)
                        || userdatdupe(0,U_HANDLE,LEN_HANDLE,useron.handle,0))
                        bputs(text[YouCantUseThatName]);
                else
                        break; }
        if(!online) return;
        if(sys_misc&SM_ADDRESS)
                while(online) {            /* Get address and zip code */
                        bputs(text[EnterYourAddress]);
                        if(getstr(useron.address,LEN_ADDRESS,0))
                                break; }
        if(!online) return;
        while(online) {
                bputs(text[EnterYourCityState]);
                if(getstr(useron.location,LEN_LOCATION,K_UPRLWR))
                        break; }
        if(sys_misc&SM_ADDRESS)
                while(online) {
                        bputs(text[EnterYourZipCode]);
                        if(getstr(useron.zipcode,LEN_ZIPCODE,K_UPPER))
                                break; }
        if(!online) return;
        usa=yesno(text[CallingFromUSAQ]);
        while(online) {
***** 1A14\LOGONOFF.C
        if(sys_misc&SM_ALIASES)
                bputs(text[EnterYourRealName]);
        else
                bputs(text[EnterYourAddress]);
        c=0;
        while(!getstr(useron.name,LEN_NAME,K_UPRLWR) && online && ++c<3) {
                if(sys_misc&SM_ALIASES)
                        bputs(text[EnterYourRealName]);
                else
                        bputs(text[EnterYourAddress]); }
        if(c==3) hangup();
        if(!online) return;
        if(!(sys_misc&SM_ALIASES)) {
                bputs(text[EnterYourCityState]);
                c=0;
                while(!getstr(str,25,K_UPRLWR) && online && ++c<3) {
                        bputs(text[EnterYourCityState]); }
                if(c==3) hangup();
                if(!online) return;
                sprintf(useron.note,"%-25.25s",str);
                bputs(text[EnterYourZipCode]);
                c=0;
                while(getstr(str,5,K_NUMBER)!=5 && online && ++c<3) {
                        bputs(text[EnterYourZipCode]); }
                if(c==3) hangup();
                strcat(useron.note,str); }
        if(!online) return;
        c=0;
        while(online) {
*****

***** 1B00\LOGONOFF.C
                bputs(text[EnterYourPhoneNumber]);
                if(!usa && getstr(useron.phone,LEN_PHONE,K_UPPER))
                        break;
                if(usa && gettmplt(useron.phone,"nnn-nnn-nnnn",0)==LEN_PHONE)
                        break; }
        if(!online) return;
***** 1A14\LOGONOFF.C
                bputs(text[EnterYourPhoneNumber]);
                if(gettmplt(useron.phone,"nnn-nnn-nnnn",0)==LEN_PHONE)
                        break;
                if(++c==3) hangup(); }
        if(!online) return;
*****

***** 1B00\LOGONOFF.C
        useron.sex=getkeys("MF",0);
        while(online) {
***** 1A14\LOGONOFF.C
        useron.sex=getkeys("MF",0);
        c=0;
        while(online) {
*****

***** 1B00\LOGONOFF.C
                bputs(text[EnterYourBirthday]);
                if(gettmplt(useron.birth,"nn/nn/nn",0)==8)
                        break; }
        if(yesno(text[UserInfoCorrectQ]))
***** 1A14\LOGONOFF.C
                bputs(text[EnterYourBirthday]);
                if(gettmplt(useron.birth,"nn/nn/nn",0)==LEN_BIRTH)
                        break;
                if(++c==3) hangup(); }
        if(yesno(text[UserInfoCorrectQ]))
*****

***** 1B00\LOGONOFF.C

if(sys_misc&SM_PWEDIT && !noyes(text[NewPasswordQ]))
        while(online) {
***** 1A14\LOGONOFF.C

if(sys_misc&SM_PWEDIT)
        while(online) {
*****

***** 1B00\LOGONOFF.C
                bputs(text[NewPassword]);
                getstr(str,LEN_PASS,K_UPPER|K_LINE);
                truncsp(str);
***** 1A14\LOGONOFF.C
                bputs(text[NewPassword]);
                if(!getstr(str,LEN_PASS,K_UPPER|K_LINE))
                        break;
                truncsp(str);
*****

***** 1B00\LOGONOFF.C
while(i<=j) {
        getuserrec(i,U_MISC,8,str);
        misc=ahtoul(str);
        if(misc&DELETED) {
                getuserrec(i,U_LASTON,8,str);
                now=ahtoul(str);
                if((time(NULL)-now)/86400>=sys_deldays) break; }
        i++; }
***** 1A14\LOGONOFF.C
while(i<=j) {
        getuserrec(i,U_DEL,1,str);
        if(str[0]=='Y') {
                getuserrec(i,U_LASTOND,8,str);
                date.da_mon=((str[0]&0xf)*10)+(str[1]&0xf);
                date.da_day=((str[3]&0xf)*10)+(str[4]&0xf);
                date.da_year=1900+((str[6]&0xf)*10)+(str[7]&0xf);
                ns_time=dostounix(&date,&curtime);
                now=time(NULL);
                if((now-ns_time)/86400>=sys_deldays) break; }
        i++; }
*****

***** 1B00\LOGONOFF.C
maindflts(useron);
if(useron.number!=1 && node_valuser) {
        sprintf(str,"%sFEEDBACK.MSG",text_dir);
***** 1A14\LOGONOFF.C
maindflts(useron);
if(useron.number!=1) {  /* allow user #1 to logon without sending mail */
        sprintf(str,"%sFEEDBACK.MSG",text_dir);
*****

***** 1B00\LOGONOFF.C
        printfile(str,P_NOABORT);
        sprintf(str,text[NewUserFeedbackHdr]
                ,nulstr,getage(useron.birth),useron.sex,useron.birth
                ,useron.name,useron.phone,useron.comp,useron.modem);
        email(node_valuser,str);
***** 1A14\LOGONOFF.C
        printfile(str,P_NOABORT);
        if(sys_misc&SM_ALIASES)
                sprintf(str,text[NewUserFeedbackHdr]
                        ,nulstr,getage(useron.birth),useron.sex,useron.birth
                        ,useron.name,useron.phone,useron.comp,useron.modem);

        else
                sprintf(str,text[NewUserFeedbackHdr_NA]
                        ,useron.name,getage(useron.birth),useron.sex,useron.birth
                        ,useron.note,useron.phone,useron.comp,useron.modem);
        email(node_valuser,str);
*****

***** 1B00\LOGONOFF.C
                        putuserrec(useron.number,U_COMMENT,60,"Didn't leave feedback");
                        putuserrec(useron.number,U_MISC,8
                                ,ultoa(useron.misc|DELETED,tmp,16));
                        putusername(useron.number,nulstr);
***** 1A14\LOGONOFF.C
                        putuserrec(useron.number,U_COMMENT,60,"Didn't leave feedback");
                        putuserrec(useron.number,U_DEL,1,"Y");
                        putusername(useron.number,nulstr);
*****

***** 1B00\LOGONOFF.C
        sprintf(tmp,"%3.3x",useron.number);
        removeline(str,tmp,3,0); }
sprintf(str,"%sMAIL",data_dir);
***** 1A14\LOGONOFF.C
        sprintf(tmp,"%3.3x",useron.number);
        removeline(str,tmp,3); }
sprintf(str,"%sMAIL",data_dir);
*****


